@redplanethq/corebrain 2.6.3 → 2.6.5
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/commands/coding/agents.d.ts +8 -0
- package/dist/commands/coding/agents.d.ts.map +1 -0
- package/dist/commands/coding/agents.js +34 -0
- package/dist/commands/coding/agents.js.map +1 -0
- package/dist/commands/coding/close.d.ts.map +1 -1
- package/dist/commands/coding/close.js +13 -25
- package/dist/commands/coding/close.js.map +1 -1
- package/dist/commands/coding/list.d.ts +4 -0
- package/dist/commands/coding/list.d.ts.map +1 -1
- package/dist/commands/coding/list.js +18 -38
- package/dist/commands/coding/list.js.map +1 -1
- package/dist/commands/coding/read.d.ts +1 -0
- package/dist/commands/coding/read.d.ts.map +1 -1
- package/dist/commands/coding/read.js +36 -35
- package/dist/commands/coding/read.js.map +1 -1
- package/dist/commands/coding/resume.d.ts +1 -0
- package/dist/commands/coding/resume.d.ts.map +1 -1
- package/dist/commands/coding/resume.js +37 -31
- package/dist/commands/coding/resume.js.map +1 -1
- package/dist/commands/coding/setup.d.ts.map +1 -1
- package/dist/commands/coding/setup.js +34 -5
- package/dist/commands/coding/setup.js.map +1 -1
- package/dist/commands/coding/start.d.ts.map +1 -1
- package/dist/commands/coding/start.js +7 -32
- package/dist/commands/coding/start.js.map +1 -1
- package/dist/server/gateway-client.d.ts.map +1 -1
- package/dist/server/gateway-client.js +4 -0
- package/dist/server/gateway-client.js.map +1 -1
- package/dist/server/tools/coding-tools.d.ts +0 -22
- package/dist/server/tools/coding-tools.d.ts.map +1 -1
- package/dist/server/tools/coding-tools.js +255 -230
- package/dist/server/tools/coding-tools.js.map +1 -1
- package/dist/tui/chat.d.ts.map +1 -1
- package/dist/tui/chat.js +41 -0
- package/dist/tui/chat.js.map +1 -1
- package/dist/tui/hooks/use-conversation.d.ts +2 -0
- package/dist/tui/hooks/use-conversation.d.ts.map +1 -1
- package/dist/tui/hooks/use-conversation.js +8 -1
- package/dist/tui/hooks/use-conversation.js.map +1 -1
- package/dist/tui/utils/stream.d.ts +1 -1
- package/dist/tui/utils/stream.d.ts.map +1 -1
- package/dist/tui/utils/stream.js +2 -2
- package/dist/tui/utils/stream.js.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/coding-agents/claude-code.d.ts +8 -6
- package/dist/utils/coding-agents/claude-code.d.ts.map +1 -1
- package/dist/utils/coding-agents/claude-code.js +77 -111
- package/dist/utils/coding-agents/claude-code.js.map +1 -1
- package/dist/utils/coding-agents/codex.d.ts +23 -0
- package/dist/utils/coding-agents/codex.d.ts.map +1 -0
- package/dist/utils/coding-agents/codex.js +243 -0
- package/dist/utils/coding-agents/codex.js.map +1 -0
- package/dist/utils/coding-agents/index.d.ts +12 -10
- package/dist/utils/coding-agents/index.d.ts.map +1 -1
- package/dist/utils/coding-agents/index.js +30 -23
- package/dist/utils/coding-agents/index.js.map +1 -1
- package/dist/utils/coding-agents/types.d.ts +37 -21
- package/dist/utils/coding-agents/types.d.ts.map +1 -1
- package/dist/utils/coding-agents/types.js +98 -1
- package/dist/utils/coding-agents/types.js.map +1 -1
- package/dist/utils/coding-runner.d.ts +1 -28
- package/dist/utils/coding-runner.d.ts.map +1 -1
- package/dist/utils/coding-runner.js +10 -85
- package/dist/utils/coding-runner.js.map +1 -1
- package/dist/utils/coding-sessions.d.ts +4 -57
- package/dist/utils/coding-sessions.d.ts.map +1 -1
- package/dist/utils/coding-sessions.js +9 -75
- package/dist/utils/coding-sessions.js.map +1 -1
- package/package.json +2 -2
- package/dist/assets/assets/AppIcon.icns +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/coding-agents/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/coding-agents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +1,21 @@
|
|
|
1
1
|
import type { CliBackendConfig } from '../types/config.js';
|
|
2
|
-
/**
|
|
3
|
-
* Get agent configuration by name
|
|
4
|
-
*/
|
|
5
2
|
export declare function getAgentConfig(agentName: string): CliBackendConfig | null;
|
|
6
|
-
/**
|
|
7
|
-
* Build command arguments for starting a new session
|
|
8
|
-
*/
|
|
9
3
|
export declare function buildStartArgs(config: CliBackendConfig, params: {
|
|
10
4
|
prompt: string;
|
|
11
5
|
sessionId: string;
|
|
12
6
|
model?: string;
|
|
13
7
|
systemPrompt?: string;
|
|
14
8
|
}): string[];
|
|
15
|
-
/**
|
|
16
|
-
* Build command arguments for resuming an existing session
|
|
17
|
-
*/
|
|
18
9
|
export declare function buildResumeArgs(config: CliBackendConfig, params: {
|
|
19
10
|
prompt: string;
|
|
20
11
|
sessionId: string;
|
|
21
12
|
}): string[];
|
|
13
|
+
export declare function getSessionLogPath(sessionId: string, stream: 'stdout' | 'stderr'): string;
|
|
22
14
|
export type Logger = (message: string) => void;
|
|
23
|
-
/**
|
|
24
|
-
* Start an agent process in the background (detached)
|
|
25
|
-
* Returns immediately, CLI can exit while process continues
|
|
26
|
-
* Output is written by the agent to its own session files (e.g., Claude Code writes to ~/.claude/projects/)
|
|
27
|
-
*/
|
|
28
15
|
export declare function startAgentProcess(sessionId: string, config: CliBackendConfig, args: string[], workingDirectory: string, logger?: Logger): {
|
|
29
16
|
pid: number | undefined;
|
|
30
17
|
error?: string;
|
|
31
18
|
};
|
|
32
|
-
/**
|
|
33
|
-
* Check if a process is still running by session ID
|
|
34
|
-
*/
|
|
35
19
|
export declare function isProcessRunning(sessionId: string): boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Stop/kill a running process by session ID
|
|
38
|
-
*/
|
|
39
20
|
export declare function stopProcess(sessionId: string): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Get process info from session
|
|
42
|
-
*/
|
|
43
|
-
export declare function getProcessInfo(sessionId: string): {
|
|
44
|
-
pid: number | undefined;
|
|
45
|
-
running: boolean;
|
|
46
|
-
startedAt: number;
|
|
47
|
-
} | null;
|
|
48
21
|
//# sourceMappingURL=coding-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-runner.d.ts","sourceRoot":"","sources":["../../src/utils/coding-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"coding-runner.d.ts","sourceRoot":"","sources":["../../src/utils/coding-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAOzE;AAED,wBAAgB,cAAc,CAC7B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,GACC,MAAM,EAAE,CA6BV;AAED,wBAAgB,eAAe,CAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GACzC,MAAM,EAAE,CASV;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAExF;AASD,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE/C,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EAAE,EACd,gBAAgB,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,GACb;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAqC3C;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAI3D;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAatD"}
|
|
@@ -3,10 +3,7 @@ import { existsSync, mkdirSync, openSync } from 'node:fs';
|
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { homedir } from 'node:os';
|
|
5
5
|
import { getPreferences } from '../config/preferences.js';
|
|
6
|
-
import {
|
|
7
|
-
/**
|
|
8
|
-
* Get agent configuration by name
|
|
9
|
-
*/
|
|
6
|
+
import { getSession, isProcessRunningByPid } from '../utils/coding-sessions.js';
|
|
10
7
|
export function getAgentConfig(agentName) {
|
|
11
8
|
const prefs = getPreferences();
|
|
12
9
|
const coding = prefs.coding;
|
|
@@ -15,91 +12,56 @@ export function getAgentConfig(agentName) {
|
|
|
15
12
|
}
|
|
16
13
|
return coding[agentName];
|
|
17
14
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Build command arguments for starting a new session
|
|
20
|
-
*/
|
|
21
15
|
export function buildStartArgs(config, params) {
|
|
22
16
|
const args = [...(config.args || [])];
|
|
23
|
-
// Add session arg
|
|
24
17
|
if (config.sessionArg && config.sessionMode === 'always') {
|
|
25
18
|
args.push(config.sessionArg, params.sessionId);
|
|
26
19
|
}
|
|
27
|
-
// Add allowed tools
|
|
28
20
|
if (config.allowedTools && config.allowedTools.length > 0) {
|
|
29
21
|
for (const tool of config.allowedTools) {
|
|
30
22
|
args.push('--allowedTools', tool);
|
|
31
23
|
}
|
|
32
24
|
}
|
|
33
|
-
// Add disallowed tools
|
|
34
25
|
if (config.disallowedTools && config.disallowedTools.length > 0) {
|
|
35
26
|
for (const tool of config.disallowedTools) {
|
|
36
27
|
args.push('--disallowedTools', tool);
|
|
37
28
|
}
|
|
38
29
|
}
|
|
39
|
-
// Add model
|
|
40
30
|
if (params.model && config.modelArg) {
|
|
41
31
|
args.push(config.modelArg, params.model);
|
|
42
32
|
}
|
|
43
|
-
// Add system prompt
|
|
44
33
|
if (params.systemPrompt && config.systemPromptArg) {
|
|
45
34
|
args.push(config.systemPromptArg, params.systemPrompt);
|
|
46
35
|
}
|
|
47
|
-
// Add the prompt as the last argument
|
|
48
36
|
args.push(params.prompt);
|
|
49
37
|
return args;
|
|
50
38
|
}
|
|
51
|
-
/**
|
|
52
|
-
* Build command arguments for resuming an existing session
|
|
53
|
-
*/
|
|
54
39
|
export function buildResumeArgs(config, params) {
|
|
55
40
|
if (config.resumeArgs) {
|
|
56
|
-
// Use resume args and replace {sessionId} placeholder
|
|
57
41
|
const args = config.resumeArgs.map(arg => arg.replace('{sessionId}', params.sessionId));
|
|
58
42
|
args.push(params.prompt);
|
|
59
43
|
return args;
|
|
60
44
|
}
|
|
61
|
-
// Fallback to start args with session
|
|
62
45
|
return buildStartArgs(config, params);
|
|
63
46
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
*/
|
|
67
|
-
function getSessionLogPath(sessionId, stream) {
|
|
68
|
-
const logsDir = join(homedir(), '.corebrain', 'logs');
|
|
69
|
-
return join(logsDir, `${sessionId}.${stream}.log`);
|
|
47
|
+
export function getSessionLogPath(sessionId, stream) {
|
|
48
|
+
return join(homedir(), '.corebrain', 'logs', `${sessionId}.${stream}.log`);
|
|
70
49
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Ensure logs directory exists
|
|
73
|
-
*/
|
|
74
50
|
function ensureLogsDir() {
|
|
75
51
|
const logsDir = join(homedir(), '.corebrain', 'logs');
|
|
76
52
|
if (!existsSync(logsDir)) {
|
|
77
53
|
mkdirSync(logsDir, { recursive: true });
|
|
78
54
|
}
|
|
79
55
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Start an agent process in the background (detached)
|
|
82
|
-
* Returns immediately, CLI can exit while process continues
|
|
83
|
-
* Output is written by the agent to its own session files (e.g., Claude Code writes to ~/.claude/projects/)
|
|
84
|
-
*/
|
|
85
56
|
export function startAgentProcess(sessionId, config, args, workingDirectory, logger) {
|
|
86
57
|
const log = logger || (() => { });
|
|
87
58
|
log(`SPAWN_START: sessionId=${sessionId}`);
|
|
88
59
|
log(`SPAWN_COMMAND: ${config.command}`);
|
|
89
60
|
log(`SPAWN_ARGS: ${JSON.stringify(args)}`);
|
|
90
61
|
log(`SPAWN_CWD: ${workingDirectory}`);
|
|
91
|
-
// Ensure logs directory exists
|
|
92
62
|
ensureLogsDir();
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
const stderrPath = getSessionLogPath(sessionId, 'stderr');
|
|
96
|
-
log(`SPAWN_STDOUT_LOG: ${stdoutPath}`);
|
|
97
|
-
log(`SPAWN_STDERR_LOG: ${stderrPath}`);
|
|
98
|
-
const stdoutFd = openSync(stdoutPath, 'w');
|
|
99
|
-
const stderrFd = openSync(stderrPath, 'w');
|
|
100
|
-
// Spawn detached process
|
|
101
|
-
// Note: shell: false is required to avoid shell metacharacter issues in prompts
|
|
102
|
-
// (parentheses, quotes, etc. would otherwise be interpreted by the shell)
|
|
63
|
+
const stdoutFd = openSync(getSessionLogPath(sessionId, 'stdout'), 'w');
|
|
64
|
+
const stderrFd = openSync(getSessionLogPath(sessionId, 'stderr'), 'w');
|
|
103
65
|
let proc;
|
|
104
66
|
try {
|
|
105
67
|
proc = spawn(config.command, args, {
|
|
@@ -111,50 +73,27 @@ export function startAgentProcess(sessionId, config, args, workingDirectory, log
|
|
|
111
73
|
}
|
|
112
74
|
catch (err) {
|
|
113
75
|
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
114
|
-
log(`SPAWN_ERROR:
|
|
76
|
+
log(`SPAWN_ERROR: ${errorMsg}`);
|
|
115
77
|
return { pid: undefined, error: errorMsg };
|
|
116
78
|
}
|
|
117
79
|
const pid = proc.pid;
|
|
118
80
|
log(`SPAWN_PID: ${pid}`);
|
|
119
|
-
|
|
120
|
-
proc.on('
|
|
121
|
-
log(`SPAWN_PROCESS_ERROR: ${err.message}`);
|
|
122
|
-
});
|
|
123
|
-
// Log when process exits (useful for debugging quick failures)
|
|
124
|
-
proc.on('exit', (code, signal) => {
|
|
125
|
-
log(`SPAWN_EXIT: pid=${pid} code=${code} signal=${signal}`);
|
|
126
|
-
});
|
|
127
|
-
// Store PID in session
|
|
128
|
-
const session = getSession(sessionId);
|
|
129
|
-
if (session && pid) {
|
|
130
|
-
session.pid = pid;
|
|
131
|
-
session.updatedAt = Date.now();
|
|
132
|
-
updateSession(session);
|
|
133
|
-
log(`SPAWN_SESSION_UPDATED: pid stored in session`);
|
|
134
|
-
}
|
|
135
|
-
// Unref so parent can exit
|
|
81
|
+
proc.on('error', (err) => log(`SPAWN_PROCESS_ERROR: ${err.message}`));
|
|
82
|
+
proc.on('exit', (code, signal) => log(`SPAWN_EXIT: pid=${pid} code=${code} signal=${signal}`));
|
|
136
83
|
proc.unref();
|
|
137
84
|
log(`SPAWN_DETACHED: process detached and running`);
|
|
138
85
|
return { pid };
|
|
139
86
|
}
|
|
140
|
-
/**
|
|
141
|
-
* Check if a process is still running by session ID
|
|
142
|
-
*/
|
|
143
87
|
export function isProcessRunning(sessionId) {
|
|
144
88
|
const session = getSession(sessionId);
|
|
145
|
-
if (!session?.pid)
|
|
89
|
+
if (!session?.pid)
|
|
146
90
|
return false;
|
|
147
|
-
}
|
|
148
91
|
return isProcessRunningByPid(session.pid);
|
|
149
92
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Stop/kill a running process by session ID
|
|
152
|
-
*/
|
|
153
93
|
export function stopProcess(sessionId) {
|
|
154
94
|
const session = getSession(sessionId);
|
|
155
|
-
if (!session?.pid)
|
|
95
|
+
if (!session?.pid)
|
|
156
96
|
return false;
|
|
157
|
-
}
|
|
158
97
|
if (isProcessRunningByPid(session.pid)) {
|
|
159
98
|
try {
|
|
160
99
|
process.kill(session.pid, 'SIGTERM');
|
|
@@ -166,18 +105,4 @@ export function stopProcess(sessionId) {
|
|
|
166
105
|
}
|
|
167
106
|
return false;
|
|
168
107
|
}
|
|
169
|
-
/**
|
|
170
|
-
* Get process info from session
|
|
171
|
-
*/
|
|
172
|
-
export function getProcessInfo(sessionId) {
|
|
173
|
-
const session = getSession(sessionId);
|
|
174
|
-
if (!session) {
|
|
175
|
-
return null;
|
|
176
|
-
}
|
|
177
|
-
return {
|
|
178
|
-
pid: session.pid,
|
|
179
|
-
running: session.pid ? isProcessRunningByPid(session.pid) : false,
|
|
180
|
-
startedAt: session.startedAt,
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
108
|
//# sourceMappingURL=coding-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-runner.js","sourceRoot":"","sources":["../../src/utils/coding-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AACxD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAEpD,OAAO,
|
|
1
|
+
{"version":3,"file":"coding-runner.js","sourceRoot":"","sources":["../../src/utils/coding-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,66 +1,13 @@
|
|
|
1
|
-
export
|
|
2
|
-
export interface StoredSession {
|
|
1
|
+
export interface RunningSession {
|
|
3
2
|
sessionId: string;
|
|
4
3
|
agent: string;
|
|
5
|
-
prompt: string;
|
|
6
4
|
dir: string;
|
|
7
|
-
status: SessionStatus;
|
|
8
5
|
pid?: number;
|
|
9
|
-
output?: string;
|
|
10
|
-
error?: string;
|
|
11
6
|
startedAt: number;
|
|
12
|
-
updatedAt: number;
|
|
13
7
|
}
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Ensure sessions directory exists
|
|
19
|
-
*/
|
|
20
|
-
export declare function ensureSessionsDir(): void;
|
|
21
|
-
/**
|
|
22
|
-
* Load all sessions from disk
|
|
23
|
-
*/
|
|
24
|
-
export declare function loadSessions(): SessionsData;
|
|
25
|
-
/**
|
|
26
|
-
* Save all sessions to disk
|
|
27
|
-
*/
|
|
28
|
-
export declare function saveSessions(data: SessionsData): void;
|
|
29
|
-
/**
|
|
30
|
-
* Get a single session by ID
|
|
31
|
-
*/
|
|
32
|
-
export declare function getSession(sessionId: string): StoredSession | null;
|
|
33
|
-
/**
|
|
34
|
-
* Create or update a session
|
|
35
|
-
*/
|
|
36
|
-
export declare function updateSession(session: StoredSession): void;
|
|
37
|
-
/**
|
|
38
|
-
* Delete a session by ID
|
|
39
|
-
*/
|
|
8
|
+
export declare function getSession(sessionId: string): RunningSession | null;
|
|
9
|
+
export declare function upsertSession(session: RunningSession): void;
|
|
40
10
|
export declare function deleteSession(sessionId: string): boolean;
|
|
41
|
-
|
|
42
|
-
* Check if a process is still running by PID
|
|
43
|
-
*/
|
|
11
|
+
export declare function listRunningSessions(): RunningSession[];
|
|
44
12
|
export declare function isProcessRunningByPid(pid: number): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* List all sessions
|
|
47
|
-
*/
|
|
48
|
-
export declare function listSessions(): StoredSession[];
|
|
49
|
-
/**
|
|
50
|
-
* Create a new session object
|
|
51
|
-
*/
|
|
52
|
-
export declare function createSession(params: {
|
|
53
|
-
sessionId: string;
|
|
54
|
-
agent: string;
|
|
55
|
-
prompt: string;
|
|
56
|
-
dir: string;
|
|
57
|
-
}): StoredSession;
|
|
58
|
-
/**
|
|
59
|
-
* Mark session as completed with output
|
|
60
|
-
*/
|
|
61
|
-
export declare function completeSession(sessionId: string, output: string, success: boolean, error?: string): void;
|
|
62
|
-
/**
|
|
63
|
-
* Mark session as closed
|
|
64
|
-
*/
|
|
65
|
-
export declare function closeSession(sessionId: string): boolean;
|
|
66
13
|
//# sourceMappingURL=coding-sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-sessions.d.ts","sourceRoot":"","sources":["../../src/utils/coding-sessions.ts"],"names":[],"mappings":"AASA,MAAM,
|
|
1
|
+
{"version":3,"file":"coding-sessions.d.ts","sourceRoot":"","sources":["../../src/utils/coding-sessions.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CAElB;AA8BD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGnE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAI3D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQxD;AAED,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAGtD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO1D"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { getConfigPath } from '../config/paths.js';
|
|
4
|
-
// Sessions file path - uses same directory as config
|
|
5
4
|
const SESSIONS_DIR = getConfigPath();
|
|
6
5
|
const SESSIONS_FILE = join(SESSIONS_DIR, 'sessions.json');
|
|
7
|
-
|
|
8
|
-
* Ensure sessions directory exists
|
|
9
|
-
*/
|
|
10
|
-
export function ensureSessionsDir() {
|
|
6
|
+
function ensureSessionsDir() {
|
|
11
7
|
if (!existsSync(SESSIONS_DIR)) {
|
|
12
8
|
mkdirSync(SESSIONS_DIR, { recursive: true });
|
|
13
9
|
}
|
|
14
10
|
}
|
|
15
|
-
|
|
16
|
-
* Load all sessions from disk
|
|
17
|
-
*/
|
|
18
|
-
export function loadSessions() {
|
|
11
|
+
function loadSessions() {
|
|
19
12
|
ensureSessionsDir();
|
|
20
13
|
try {
|
|
21
14
|
if (existsSync(SESSIONS_FILE)) {
|
|
@@ -24,35 +17,23 @@ export function loadSessions() {
|
|
|
24
17
|
}
|
|
25
18
|
}
|
|
26
19
|
catch {
|
|
27
|
-
// Ignore
|
|
20
|
+
// Ignore, return empty
|
|
28
21
|
}
|
|
29
22
|
return { sessions: {} };
|
|
30
23
|
}
|
|
31
|
-
|
|
32
|
-
* Save all sessions to disk
|
|
33
|
-
*/
|
|
34
|
-
export function saveSessions(data) {
|
|
24
|
+
function saveSessions(data) {
|
|
35
25
|
ensureSessionsDir();
|
|
36
26
|
writeFileSync(SESSIONS_FILE, JSON.stringify(data, null, 2), 'utf-8');
|
|
37
27
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Get a single session by ID
|
|
40
|
-
*/
|
|
41
28
|
export function getSession(sessionId) {
|
|
42
29
|
const data = loadSessions();
|
|
43
30
|
return data.sessions[sessionId] || null;
|
|
44
31
|
}
|
|
45
|
-
|
|
46
|
-
* Create or update a session
|
|
47
|
-
*/
|
|
48
|
-
export function updateSession(session) {
|
|
32
|
+
export function upsertSession(session) {
|
|
49
33
|
const data = loadSessions();
|
|
50
34
|
data.sessions[session.sessionId] = session;
|
|
51
35
|
saveSessions(data);
|
|
52
36
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Delete a session by ID
|
|
55
|
-
*/
|
|
56
37
|
export function deleteSession(sessionId) {
|
|
57
38
|
const data = loadSessions();
|
|
58
39
|
if (data.sessions[sessionId]) {
|
|
@@ -62,12 +43,12 @@ export function deleteSession(sessionId) {
|
|
|
62
43
|
}
|
|
63
44
|
return false;
|
|
64
45
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
46
|
+
export function listRunningSessions() {
|
|
47
|
+
const data = loadSessions();
|
|
48
|
+
return Object.values(data.sessions);
|
|
49
|
+
}
|
|
68
50
|
export function isProcessRunningByPid(pid) {
|
|
69
51
|
try {
|
|
70
|
-
// Sending signal 0 checks if process exists without killing it
|
|
71
52
|
process.kill(pid, 0);
|
|
72
53
|
return true;
|
|
73
54
|
}
|
|
@@ -75,51 +56,4 @@ export function isProcessRunningByPid(pid) {
|
|
|
75
56
|
return false;
|
|
76
57
|
}
|
|
77
58
|
}
|
|
78
|
-
/**
|
|
79
|
-
* List all sessions
|
|
80
|
-
*/
|
|
81
|
-
export function listSessions() {
|
|
82
|
-
const data = loadSessions();
|
|
83
|
-
return Object.values(data.sessions);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Create a new session object
|
|
87
|
-
*/
|
|
88
|
-
export function createSession(params) {
|
|
89
|
-
return {
|
|
90
|
-
sessionId: params.sessionId,
|
|
91
|
-
agent: params.agent,
|
|
92
|
-
prompt: params.prompt,
|
|
93
|
-
dir: params.dir,
|
|
94
|
-
status: 'running',
|
|
95
|
-
startedAt: Date.now(),
|
|
96
|
-
updatedAt: Date.now(),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Mark session as completed with output
|
|
101
|
-
*/
|
|
102
|
-
export function completeSession(sessionId, output, success, error) {
|
|
103
|
-
const session = getSession(sessionId);
|
|
104
|
-
if (session) {
|
|
105
|
-
session.output = output;
|
|
106
|
-
session.status = success ? 'completed' : 'error';
|
|
107
|
-
session.error = error;
|
|
108
|
-
session.updatedAt = Date.now();
|
|
109
|
-
updateSession(session);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Mark session as closed
|
|
114
|
-
*/
|
|
115
|
-
export function closeSession(sessionId) {
|
|
116
|
-
const session = getSession(sessionId);
|
|
117
|
-
if (session) {
|
|
118
|
-
session.status = 'closed';
|
|
119
|
-
session.updatedAt = Date.now();
|
|
120
|
-
updateSession(session);
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
59
|
//# sourceMappingURL=coding-sessions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-sessions.js","sourceRoot":"","sources":["../../src/utils/coding-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAE7C,
|
|
1
|
+
{"version":3,"file":"coding-sessions.js","sourceRoot":"","sources":["../../src/utils/coding-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAE7C,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;AACrC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AAiB1D,SAAS,iBAAiB;IACzB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,SAAS,CAAC,YAAY,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC5C,CAAC;AACF,CAAC;AAED,SAAS,YAAY;IACpB,iBAAiB,EAAE,CAAC;IACpB,IAAI,CAAC;QACJ,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;QACzC,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,uBAAuB;IACxB,CAAC;IACD,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,IAAkB;IACvC,iBAAiB,EAAE,CAAC;IACpB,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC3C,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAuB;IACpD,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IAC3C,YAAY,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC9C,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAChC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB;IAClC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,IAAI,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redplanethq/corebrain",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"react": "^19.2.4",
|
|
31
31
|
"ws": "^8.18.0",
|
|
32
32
|
"zod": "^4.3.6",
|
|
33
|
-
"@redplanethq/sdk": "0.1.
|
|
33
|
+
"@redplanethq/sdk": "0.1.14"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@sindresorhus/tsconfig": "^8.1.0",
|
|
Binary file
|