agkan 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/board/boardRenderer.d.ts.map +1 -1
- package/dist/board/boardRenderer.js +2 -1
- package/dist/board/boardRenderer.js.map +1 -1
- package/dist/board/boardRoutes.d.ts.map +1 -1
- package/dist/board/boardRoutes.js +86 -1
- package/dist/board/boardRoutes.js.map +1 -1
- package/dist/board/client/board.js +22 -46
- package/dist/cli/utils/response-formatter.d.ts +19 -0
- package/dist/cli/utils/response-formatter.d.ts.map +1 -0
- package/dist/cli/utils/response-formatter.js +43 -0
- package/dist/cli/utils/response-formatter.js.map +1 -0
- package/dist/db/config.d.ts.map +1 -1
- package/dist/db/config.js +4 -2
- package/dist/db/config.js.map +1 -1
- package/dist/models/Attachment.d.ts +25 -0
- package/dist/models/Attachment.d.ts.map +1 -0
- package/dist/models/Attachment.js +7 -0
- package/dist/models/Attachment.js.map +1 -0
- package/dist/services/AttachmentService.d.ts +62 -0
- package/dist/services/AttachmentService.d.ts.map +1 -0
- package/dist/services/AttachmentService.js +95 -0
- package/dist/services/AttachmentService.js.map +1 -0
- package/dist/services/ClaudeProcessService.d.ts +3 -0
- package/dist/services/ClaudeProcessService.d.ts.map +1 -1
- package/dist/services/ClaudeProcessService.js +14 -0
- package/dist/services/ClaudeProcessService.js.map +1 -1
- package/package.json +1 -1
- package/dist/services/CodexProcessService.d.ts +0 -44
- package/dist/services/CodexProcessService.d.ts.map +0 -1
- package/dist/services/CodexProcessService.js +0 -257
- package/dist/services/CodexProcessService.js.map +0 -1
- package/dist/services/IProcessService.d.ts +0 -44
- package/dist/services/IProcessService.d.ts.map +0 -1
- package/dist/services/IProcessService.js +0 -3
- package/dist/services/IProcessService.js.map +0 -1
- package/dist/services/ProcessServiceFactory.d.ts +0 -18
- package/dist/services/ProcessServiceFactory.d.ts.map +0 -1
- package/dist/services/ProcessServiceFactory.js +0 -27
- package/dist/services/ProcessServiceFactory.js.map +0 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Attachment, CreateAttachmentInput } from '../models';
|
|
2
|
+
import Database from 'better-sqlite3';
|
|
3
|
+
/**
|
|
4
|
+
* Attachment Service
|
|
5
|
+
* Provides management of attachment records
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* **Future Feature**: This service is fully implemented but CLI commands are not yet available.
|
|
9
|
+
* See docs/planned-features.md for implementation timeline and planned CLI interface.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const service = new AttachmentService();
|
|
14
|
+
* const attachment = service.createAttachment({
|
|
15
|
+
* task_id: 1,
|
|
16
|
+
* file_name: 'design.pdf',
|
|
17
|
+
* file_path: '/path/to/design.pdf'
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare class AttachmentService {
|
|
22
|
+
private db;
|
|
23
|
+
constructor(db?: Database.Database);
|
|
24
|
+
/**
|
|
25
|
+
* Create a new attachment record
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* **Future Feature**: CLI command not yet implemented.
|
|
29
|
+
* Planned command: `agkan task attach add <task-id> <file-path>`
|
|
30
|
+
*
|
|
31
|
+
* @param input - Attachment creation input
|
|
32
|
+
* @returns Created attachment record
|
|
33
|
+
* @throws Will throw if task_id does not exist (foreign key constraint)
|
|
34
|
+
*/
|
|
35
|
+
createAttachment(input: CreateAttachmentInput): Attachment;
|
|
36
|
+
/**
|
|
37
|
+
* Get attachments for a specific task
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* **Future Feature**: CLI command not yet implemented.
|
|
41
|
+
* Planned command: `agkan task attach list <task-id>`
|
|
42
|
+
*
|
|
43
|
+
* @param taskId - Task ID
|
|
44
|
+
* @returns Array of attachments ordered by creation date (newest first)
|
|
45
|
+
*/
|
|
46
|
+
getAttachmentsByTaskId(taskId: number): Attachment[];
|
|
47
|
+
/**
|
|
48
|
+
* Delete an attachment record
|
|
49
|
+
*
|
|
50
|
+
* @remarks
|
|
51
|
+
* **Future Feature**: CLI command not yet implemented.
|
|
52
|
+
* Planned command: `agkan task attach delete <attachment-id>`
|
|
53
|
+
*
|
|
54
|
+
* @param id - Attachment ID
|
|
55
|
+
* @returns True if deletion succeeded, false if not found
|
|
56
|
+
*
|
|
57
|
+
* @todo Implement file deletion from filesystem
|
|
58
|
+
* @todo Add --keep-file option to CLI command
|
|
59
|
+
*/
|
|
60
|
+
deleteAttachment(id: number): boolean;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=AttachmentService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentService.d.ts","sourceRoot":"","sources":["../../src/services/AttachmentService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAoB;gBAElB,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ;IAIlC;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,UAAU;IAoB1D;;;;;;;;;OASG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE;IAOpD;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAetC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AttachmentService = void 0;
|
|
4
|
+
const connection_1 = require("../db/connection");
|
|
5
|
+
/**
|
|
6
|
+
* Attachment Service
|
|
7
|
+
* Provides management of attachment records
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* **Future Feature**: This service is fully implemented but CLI commands are not yet available.
|
|
11
|
+
* See docs/planned-features.md for implementation timeline and planned CLI interface.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const service = new AttachmentService();
|
|
16
|
+
* const attachment = service.createAttachment({
|
|
17
|
+
* task_id: 1,
|
|
18
|
+
* file_name: 'design.pdf',
|
|
19
|
+
* file_path: '/path/to/design.pdf'
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
class AttachmentService {
|
|
24
|
+
constructor(db) {
|
|
25
|
+
this.db = db || (0, connection_1.getDatabase)();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create a new attachment record
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* **Future Feature**: CLI command not yet implemented.
|
|
32
|
+
* Planned command: `agkan task attach add <task-id> <file-path>`
|
|
33
|
+
*
|
|
34
|
+
* @param input - Attachment creation input
|
|
35
|
+
* @returns Created attachment record
|
|
36
|
+
* @throws Will throw if task_id does not exist (foreign key constraint)
|
|
37
|
+
*/
|
|
38
|
+
createAttachment(input) {
|
|
39
|
+
const db = this.db;
|
|
40
|
+
const now = new Date().toISOString();
|
|
41
|
+
const stmt = db.prepare(`
|
|
42
|
+
INSERT INTO attachments (task_id, file_name, file_path, created_at)
|
|
43
|
+
VALUES (?, ?, ?, ?)
|
|
44
|
+
`);
|
|
45
|
+
const result = stmt.run(input.task_id, input.file_name, input.file_path, now);
|
|
46
|
+
return {
|
|
47
|
+
id: result.lastInsertRowid,
|
|
48
|
+
task_id: input.task_id,
|
|
49
|
+
file_name: input.file_name,
|
|
50
|
+
file_path: input.file_path,
|
|
51
|
+
created_at: now,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get attachments for a specific task
|
|
56
|
+
*
|
|
57
|
+
* @remarks
|
|
58
|
+
* **Future Feature**: CLI command not yet implemented.
|
|
59
|
+
* Planned command: `agkan task attach list <task-id>`
|
|
60
|
+
*
|
|
61
|
+
* @param taskId - Task ID
|
|
62
|
+
* @returns Array of attachments ordered by creation date (newest first)
|
|
63
|
+
*/
|
|
64
|
+
getAttachmentsByTaskId(taskId) {
|
|
65
|
+
const db = this.db;
|
|
66
|
+
const stmt = db.prepare('SELECT * FROM attachments WHERE task_id = ? ORDER BY created_at DESC');
|
|
67
|
+
return stmt.all(taskId);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Delete an attachment record
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* **Future Feature**: CLI command not yet implemented.
|
|
74
|
+
* Planned command: `agkan task attach delete <attachment-id>`
|
|
75
|
+
*
|
|
76
|
+
* @param id - Attachment ID
|
|
77
|
+
* @returns True if deletion succeeded, false if not found
|
|
78
|
+
*
|
|
79
|
+
* @todo Implement file deletion from filesystem
|
|
80
|
+
* @todo Add --keep-file option to CLI command
|
|
81
|
+
*/
|
|
82
|
+
deleteAttachment(id) {
|
|
83
|
+
const db = this.db;
|
|
84
|
+
const stmt = db.prepare('SELECT * FROM attachments WHERE id = ?');
|
|
85
|
+
const attachment = stmt.get(id);
|
|
86
|
+
if (!attachment) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
const deleteStmt = db.prepare('DELETE FROM attachments WHERE id = ?');
|
|
90
|
+
deleteStmt.run(id);
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.AttachmentService = AttachmentService;
|
|
95
|
+
//# sourceMappingURL=AttachmentService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentService.js","sourceRoot":"","sources":["../../src/services/AttachmentService.ts"],"names":[],"mappings":";;;AACA,iDAA+C;AAG/C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,iBAAiB;IAG5B,YAAY,EAAsB;QAChC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAA,wBAAW,GAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,KAA4B;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAGvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9E,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,eAAyB;YACpC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,sBAAsB,CAAC,MAAc;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAiB,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAU;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACtE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnFD,8CAmFC"}
|
|
@@ -61,7 +61,10 @@ export interface RunLog {
|
|
|
61
61
|
export declare class ClaudeProcessService {
|
|
62
62
|
private processes;
|
|
63
63
|
private db;
|
|
64
|
+
private runningTasksChangeSubscribers;
|
|
64
65
|
constructor(db?: StorageBackend | null);
|
|
66
|
+
subscribeRunningTasksChange(callback: () => void): () => void;
|
|
67
|
+
private notifyRunningTasksChange;
|
|
65
68
|
/**
|
|
66
69
|
* Start a claude process for the given taskId and prompt.
|
|
67
70
|
* Prevents duplicate processes for the same taskId.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeProcessService.d.ts","sourceRoot":"","sources":["../../src/services/ClaudeProcessService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAmB7D,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAChF;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,KAAK,CACV;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAC9B;YAAE,IAAI,EAAE,UAAU,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CACjF,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAClG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAE7D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAiBD;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,EAAE,CAAwB;
|
|
1
|
+
{"version":3,"file":"ClaudeProcessService.d.ts","sourceRoot":"","sources":["../../src/services/ClaudeProcessService.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,19 @@ const CLAUDE_BIN = resolveClaudePath();
|
|
|
25
25
|
class ClaudeProcessService {
|
|
26
26
|
processes = new Map();
|
|
27
27
|
db;
|
|
28
|
+
runningTasksChangeSubscribers = new Set();
|
|
28
29
|
constructor(db) {
|
|
29
30
|
this.db = db ?? null;
|
|
30
31
|
}
|
|
32
|
+
subscribeRunningTasksChange(callback) {
|
|
33
|
+
this.runningTasksChangeSubscribers.add(callback);
|
|
34
|
+
return () => {
|
|
35
|
+
this.runningTasksChangeSubscribers.delete(callback);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
notifyRunningTasksChange() {
|
|
39
|
+
this.runningTasksChangeSubscribers.forEach((cb) => cb());
|
|
40
|
+
}
|
|
31
41
|
/**
|
|
32
42
|
* Start a claude process for the given taskId and prompt.
|
|
33
43
|
* Prevents duplicate processes for the same taskId.
|
|
@@ -63,6 +73,7 @@ class ClaudeProcessService {
|
|
|
63
73
|
};
|
|
64
74
|
this.processes.set(taskId, info);
|
|
65
75
|
(0, logger_1.verboseLog)(`[ClaudeProcessService] process added to map taskId=${taskId} total=${this.processes.size}`);
|
|
76
|
+
this.notifyRunningTasksChange();
|
|
66
77
|
if (this.db) {
|
|
67
78
|
info.runLogId = this.db.runLogs.create(info.taskId, info.startedAt.toISOString());
|
|
68
79
|
(0, logger_1.verboseLog)(`[ClaudeProcessService] run log created id=${info.runLogId} taskId=${taskId}`);
|
|
@@ -86,6 +97,7 @@ class ClaudeProcessService {
|
|
|
86
97
|
if (this.processes.get(taskId) === info) {
|
|
87
98
|
this.processes.delete(taskId);
|
|
88
99
|
(0, logger_1.verboseLog)(`[ClaudeProcessService] process removed from map (error) taskId=${taskId} total=${this.processes.size}`);
|
|
100
|
+
this.notifyRunningTasksChange();
|
|
89
101
|
}
|
|
90
102
|
else {
|
|
91
103
|
(0, logger_1.verboseLog)(`[ClaudeProcessService] process error skipped map delete (stale entry) taskId=${taskId}`);
|
|
@@ -160,6 +172,7 @@ class ClaudeProcessService {
|
|
|
160
172
|
if (this.processes.get(taskId) === info) {
|
|
161
173
|
this.processes.delete(taskId);
|
|
162
174
|
(0, logger_1.verboseLog)(`[ClaudeProcessService] process removed from map (close) taskId=${taskId} total=${this.processes.size}`);
|
|
175
|
+
this.notifyRunningTasksChange();
|
|
163
176
|
}
|
|
164
177
|
else {
|
|
165
178
|
(0, logger_1.verboseLog)(`[ClaudeProcessService] process close skipped map delete (stale entry) taskId=${taskId}`);
|
|
@@ -180,6 +193,7 @@ class ClaudeProcessService {
|
|
|
180
193
|
info.process.kill('SIGTERM');
|
|
181
194
|
this.processes.delete(taskId);
|
|
182
195
|
(0, logger_1.verboseLog)(`[ClaudeProcessService] process removed from map (stop) taskId=${taskId} total=${this.processes.size}`);
|
|
196
|
+
this.notifyRunningTasksChange();
|
|
183
197
|
return true;
|
|
184
198
|
}
|
|
185
199
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeProcessService.js","sourceRoot":"","sources":["../../src/services/ClaudeProcessService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClaudeProcessService.js","sourceRoot":"","sources":["../../src/services/ClaudeProcessService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,44 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,257 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CodexProcessService.js","sourceRoot":"","sources":["../../src/services/CodexProcessService.ts"],"names":[],"mappings":"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"}
|