@redplanethq/corebrain 2.8.12 → 2.8.14
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/list.js +1 -1
- package/dist/commands/coding/list.js.map +1 -1
- package/dist/commands/coding/setup.d.ts +2 -1
- package/dist/commands/coding/setup.d.ts.map +1 -1
- package/dist/commands/coding/setup.js +1 -24
- package/dist/commands/coding/setup.js.map +1 -1
- package/dist/commands/folder/add.d.ts +13 -0
- package/dist/commands/folder/add.d.ts.map +1 -0
- package/dist/commands/folder/add.js +71 -0
- package/dist/commands/folder/add.js.map +1 -0
- package/dist/commands/folder/index.d.ts +3 -0
- package/dist/commands/folder/index.d.ts.map +1 -0
- package/dist/commands/folder/index.js +5 -0
- package/dist/commands/folder/index.js.map +1 -0
- package/dist/commands/folder/list.d.ts +8 -0
- package/dist/commands/folder/list.d.ts.map +1 -0
- package/dist/commands/folder/list.js +39 -0
- package/dist/commands/folder/list.js.map +1 -0
- package/dist/commands/folder/remove.d.ts +10 -0
- package/dist/commands/folder/remove.d.ts.map +1 -0
- package/dist/commands/folder/remove.js +29 -0
- package/dist/commands/folder/remove.js.map +1 -0
- package/dist/commands/folder/scope.d.ts +13 -0
- package/dist/commands/folder/scope.d.ts.map +1 -0
- package/dist/commands/folder/scope.js +61 -0
- package/dist/commands/folder/scope.js.map +1 -0
- package/dist/commands/gateway/config.d.ts +1 -1
- package/dist/commands/gateway/config.d.ts.map +1 -1
- package/dist/commands/gateway/config.js +122 -116
- package/dist/commands/gateway/config.js.map +1 -1
- package/dist/commands/gateway/register.d.ts +37 -0
- package/dist/commands/gateway/register.d.ts.map +1 -0
- package/dist/commands/gateway/register.js +132 -0
- package/dist/commands/gateway/register.js.map +1 -0
- package/dist/commands/gateway/start.d.ts +2 -1
- package/dist/commands/gateway/start.d.ts.map +1 -1
- package/dist/commands/gateway/start.js +73 -6
- package/dist/commands/gateway/start.js.map +1 -1
- package/dist/commands/gateway/status.d.ts.map +1 -1
- package/dist/commands/gateway/status.js +10 -1
- package/dist/commands/gateway/status.js.map +1 -1
- package/dist/commands/gateway/stop.d.ts.map +1 -1
- package/dist/commands/gateway/stop.js +11 -0
- package/dist/commands/gateway/stop.js.map +1 -1
- package/dist/config/folders.d.ts +20 -0
- package/dist/config/folders.d.ts.map +1 -0
- package/dist/config/folders.js +114 -0
- package/dist/config/folders.js.map +1 -0
- package/dist/server/api/auth.d.ts +17 -0
- package/dist/server/api/auth.d.ts.map +1 -0
- package/dist/server/api/auth.js +45 -0
- package/dist/server/api/auth.js.map +1 -0
- package/dist/server/api/browser/cdp.d.ts +18 -0
- package/dist/server/api/browser/cdp.d.ts.map +1 -0
- package/dist/server/api/browser/cdp.js +137 -0
- package/dist/server/api/browser/cdp.js.map +1 -0
- package/dist/server/api/browser/index.d.ts +3 -0
- package/dist/server/api/browser/index.d.ts.map +1 -0
- package/dist/server/api/browser/index.js +10 -0
- package/dist/server/api/browser/index.js.map +1 -0
- package/dist/server/api/browser/launch.d.ts +17 -0
- package/dist/server/api/browser/launch.d.ts.map +1 -0
- package/dist/server/api/browser/launch.js +41 -0
- package/dist/server/api/browser/launch.js.map +1 -0
- package/dist/server/api/coding/coding_spawn.d.ts +22 -0
- package/dist/server/api/coding/coding_spawn.d.ts.map +1 -0
- package/dist/server/api/coding/coding_spawn.js +121 -0
- package/dist/server/api/coding/coding_spawn.js.map +1 -0
- package/dist/server/api/coding/coding_xterm_session.d.ts +3 -0
- package/dist/server/api/coding/coding_xterm_session.d.ts.map +1 -0
- package/dist/server/api/coding/coding_xterm_session.js +163 -0
- package/dist/server/api/coding/coding_xterm_session.js.map +1 -0
- package/dist/server/api/coding/index.d.ts +10 -0
- package/dist/server/api/coding/index.d.ts.map +1 -0
- package/dist/server/api/coding/index.js +17 -0
- package/dist/server/api/coding/index.js.map +1 -0
- package/dist/server/api/exec/index.d.ts +3 -0
- package/dist/server/api/exec/index.d.ts.map +1 -0
- package/dist/server/api/exec/index.js +6 -0
- package/dist/server/api/exec/index.js.map +1 -0
- package/dist/server/api/files/index.d.ts +3 -0
- package/dist/server/api/files/index.d.ts.map +1 -0
- package/dist/server/api/files/index.js +6 -0
- package/dist/server/api/files/index.js.map +1 -0
- package/dist/server/api/folders/index.d.ts +14 -0
- package/dist/server/api/folders/index.d.ts.map +1 -0
- package/dist/server/api/folders/index.js +161 -0
- package/dist/server/api/folders/index.js.map +1 -0
- package/dist/server/api/manifest-builder.d.ts +13 -0
- package/dist/server/api/manifest-builder.d.ts.map +1 -0
- package/dist/server/api/manifest-builder.js +155 -0
- package/dist/server/api/manifest-builder.js.map +1 -0
- package/dist/server/api/ops.d.ts +3 -0
- package/dist/server/api/ops.d.ts.map +1 -0
- package/dist/server/api/ops.js +32 -0
- package/dist/server/api/ops.js.map +1 -0
- package/dist/server/api/server.d.ts +9 -0
- package/dist/server/api/server.d.ts.map +1 -0
- package/dist/server/api/server.js +66 -0
- package/dist/server/api/server.js.map +1 -0
- package/dist/server/api/shell/index.d.ts +17 -0
- package/dist/server/api/shell/index.d.ts.map +1 -0
- package/dist/server/api/shell/index.js +61 -0
- package/dist/server/api/shell/index.js.map +1 -0
- package/dist/server/api/tool-group.d.ts +21 -0
- package/dist/server/api/tool-group.d.ts.map +1 -0
- package/dist/server/api/tool-group.js +23 -0
- package/dist/server/api/tool-group.js.map +1 -0
- package/dist/server/api/tunnels/ngrok.d.ts +10 -0
- package/dist/server/api/tunnels/ngrok.d.ts.map +1 -0
- package/dist/server/api/tunnels/ngrok.js +33 -0
- package/dist/server/api/tunnels/ngrok.js.map +1 -0
- package/dist/server/api/tunnels/tailscale.d.ts +12 -0
- package/dist/server/api/tunnels/tailscale.d.ts.map +1 -0
- package/dist/server/api/tunnels/tailscale.js +49 -0
- package/dist/server/api/tunnels/tailscale.js.map +1 -0
- package/dist/server/api/utils/index.d.ts +3 -0
- package/dist/server/api/utils/index.d.ts.map +1 -0
- package/dist/server/api/utils/index.js +6 -0
- package/dist/server/api/utils/index.js.map +1 -0
- package/dist/server/gateway-entry.d.ts +2 -2
- package/dist/server/gateway-entry.js +43 -106
- package/dist/server/gateway-entry.js.map +1 -1
- package/dist/server/gateway-log.d.ts +10 -0
- package/dist/server/gateway-log.d.ts.map +1 -0
- package/dist/server/gateway-log.js +33 -0
- package/dist/server/gateway-log.js.map +1 -0
- package/dist/server/pty/manager.d.ts +75 -0
- package/dist/server/pty/manager.d.ts.map +1 -0
- package/dist/server/pty/manager.js +280 -0
- package/dist/server/pty/manager.js.map +1 -0
- package/dist/server/tools/coding-tools.d.ts.map +1 -1
- package/dist/server/tools/coding-tools.js +83 -19
- package/dist/server/tools/coding-tools.js.map +1 -1
- package/dist/server/tools/exec-tools.d.ts.map +1 -1
- package/dist/server/tools/exec-tools.js +30 -3
- package/dist/server/tools/exec-tools.js.map +1 -1
- package/dist/server/tools/files-tools.d.ts +8 -0
- package/dist/server/tools/files-tools.d.ts.map +1 -0
- package/dist/server/tools/files-tools.js +523 -0
- package/dist/server/tools/files-tools.js.map +1 -0
- package/dist/server/tools/scope-error.d.ts +8 -0
- package/dist/server/tools/scope-error.d.ts.map +1 -0
- package/dist/server/tools/scope-error.js +11 -0
- package/dist/server/tools/scope-error.js.map +1 -0
- package/dist/types/config.d.ts +15 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/agent-templates.d.ts +18 -0
- package/dist/utils/agent-templates.d.ts.map +1 -0
- package/dist/utils/agent-templates.js +59 -0
- package/dist/utils/agent-templates.js.map +1 -0
- package/dist/utils/browser-manager.d.ts +20 -0
- package/dist/utils/browser-manager.d.ts.map +1 -1
- package/dist/utils/browser-manager.js +76 -0
- package/dist/utils/browser-manager.js.map +1 -1
- package/dist/utils/coding-agents/claude-code.d.ts +1 -0
- package/dist/utils/coding-agents/claude-code.d.ts.map +1 -1
- package/dist/utils/coding-agents/claude-code.js +9 -0
- package/dist/utils/coding-agents/claude-code.js.map +1 -1
- package/dist/utils/coding-agents/codex.d.ts +6 -8
- package/dist/utils/coding-agents/codex.d.ts.map +1 -1
- package/dist/utils/coding-agents/codex.js +16 -19
- package/dist/utils/coding-agents/codex.js.map +1 -1
- package/dist/utils/coding-agents/index.d.ts +1 -0
- package/dist/utils/coding-agents/index.d.ts.map +1 -1
- package/dist/utils/coding-agents/index.js +3 -0
- package/dist/utils/coding-agents/index.js.map +1 -1
- package/dist/utils/coding-agents/types.d.ts +6 -0
- package/dist/utils/coding-agents/types.d.ts.map +1 -1
- package/dist/utils/coding-agents/types.js.map +1 -1
- package/dist/utils/coding-runner.d.ts +13 -9
- package/dist/utils/coding-runner.d.ts.map +1 -1
- package/dist/utils/coding-runner.js +45 -78
- package/dist/utils/coding-runner.js.map +1 -1
- package/dist/utils/env-bootstrap.d.ts +29 -0
- package/dist/utils/env-bootstrap.d.ts.map +1 -0
- package/dist/utils/env-bootstrap.js +204 -0
- package/dist/utils/env-bootstrap.js.map +1 -0
- package/package.json +8 -1
- package/dist/commands/coding/close.d.ts +0 -11
- package/dist/commands/coding/close.d.ts.map +0 -1
- package/dist/commands/coding/close.js +0 -76
- package/dist/commands/coding/close.js.map +0 -1
- package/dist/commands/coding/resume.d.ts +0 -12
- package/dist/commands/coding/resume.d.ts.map +0 -1
- package/dist/commands/coding/resume.js +0 -86
- package/dist/commands/coding/resume.js.map +0 -1
- package/dist/commands/coding/start.d.ts +0 -17
- package/dist/commands/coding/start.d.ts.map +0 -1
- package/dist/commands/coding/start.js +0 -135
- package/dist/commands/coding/start.js.map +0 -1
- package/dist/server/gateway-client.d.ts +0 -84
- package/dist/server/gateway-client.d.ts.map +0 -1
- package/dist/server/gateway-client.js +0 -340
- package/dist/server/gateway-client.js.map +0 -1
- package/dist/server/tools/imessage-tools.d.ts +0 -34
- package/dist/server/tools/imessage-tools.d.ts.map +0 -1
- package/dist/server/tools/imessage-tools.js +0 -262
- package/dist/server/tools/imessage-tools.js.map +0 -1
- package/dist/utils/app-bundle.d.ts +0 -25
- package/dist/utils/app-bundle.d.ts.map +0 -1
- package/dist/utils/app-bundle.js +0 -117
- package/dist/utils/app-bundle.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/coding-agents/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/coding-agents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/coding-agents/types.ts"],"names":[],"mappings":"AAkEA,MAAM,OAAgB,qBAAqB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/coding-agents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import type { CliBackendConfig } from '../types/config.js';
|
|
2
2
|
export declare function getAgentConfig(agentName: string): CliBackendConfig | null;
|
|
3
|
+
/**
|
|
4
|
+
* Build CLI args for starting an agent's interactive TUI. If `prompt` is
|
|
5
|
+
* provided, it's appended as the final positional arg so the agent processes
|
|
6
|
+
* it on startup; otherwise the TUI launches blank (used by the xterm spawn
|
|
7
|
+
* path). Session id flows through `sessionArg` when the agent supports it.
|
|
8
|
+
*/
|
|
3
9
|
export declare function buildStartArgs(config: CliBackendConfig, params: {
|
|
4
|
-
prompt
|
|
10
|
+
prompt?: string;
|
|
5
11
|
sessionId: string;
|
|
6
12
|
model?: string;
|
|
7
13
|
systemPrompt?: string;
|
|
8
14
|
}): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Build CLI args for resuming an agent via `resumeArgs` (`{sessionId}` is
|
|
17
|
+
* substituted). Prompt is optional — omit for a blank-resume into the TUI,
|
|
18
|
+
* set for a prompt-on-resume flow.
|
|
19
|
+
*/
|
|
9
20
|
export declare function buildResumeArgs(config: CliBackendConfig, params: {
|
|
10
|
-
prompt
|
|
21
|
+
prompt?: string;
|
|
11
22
|
sessionId: string;
|
|
12
23
|
}): string[];
|
|
13
|
-
export declare function getSessionLogPath(sessionId: string, stream: 'stdout' | 'stderr'): string;
|
|
14
24
|
export type Logger = (message: string) => void;
|
|
15
25
|
export declare function startAgentProcess(sessionId: string, config: CliBackendConfig, args: string[], workingDirectory: string, logger?: Logger): {
|
|
16
26
|
pid: number | undefined;
|
|
@@ -18,10 +28,4 @@ export declare function startAgentProcess(sessionId: string, config: CliBackendC
|
|
|
18
28
|
};
|
|
19
29
|
export declare function isProcessRunning(sessionId: string): boolean;
|
|
20
30
|
export declare function stopProcess(sessionId: string): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Start a background watchdog for a running session.
|
|
23
|
-
* If the stdout log has not grown for `idleTimeoutMs` (default 30s), the process is killed.
|
|
24
|
-
* Also cleans up the running session record when the process exits naturally.
|
|
25
|
-
*/
|
|
26
|
-
export declare function startIdleWatchdog(sessionId: string, pid: number, idleTimeoutMs?: number): void;
|
|
27
31
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"coding-runner.d.ts","sourceRoot":"","sources":["../../src/utils/coding-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAIrD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAOzE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,GACC,MAAM,EAAE,CA+BV;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GAC1C,MAAM,EAAE,CASV;AAED,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,CAsB3C;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAc3D;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CActD"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { spawn } from 'node:child_process';
|
|
2
|
-
import { existsSync, mkdirSync, openSync, statSync } from 'node:fs';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { homedir } from 'node:os';
|
|
5
1
|
import { getPreferences } from '../config/preferences.js';
|
|
6
|
-
import { getSession
|
|
2
|
+
import { getSession } from '../utils/coding-sessions.js';
|
|
3
|
+
import { ptyManager } from '../server/pty/manager.js';
|
|
7
4
|
export function getAgentConfig(agentName) {
|
|
8
5
|
const prefs = getPreferences();
|
|
9
6
|
const coding = prefs.coding;
|
|
@@ -12,6 +9,12 @@ export function getAgentConfig(agentName) {
|
|
|
12
9
|
}
|
|
13
10
|
return coding[agentName];
|
|
14
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Build CLI args for starting an agent's interactive TUI. If `prompt` is
|
|
14
|
+
* provided, it's appended as the final positional arg so the agent processes
|
|
15
|
+
* it on startup; otherwise the TUI launches blank (used by the xterm spawn
|
|
16
|
+
* path). Session id flows through `sessionArg` when the agent supports it.
|
|
17
|
+
*/
|
|
15
18
|
export function buildStartArgs(config, params) {
|
|
16
19
|
const args = [...(config.args || [])];
|
|
17
20
|
if (config.sessionArg && config.sessionMode === 'always') {
|
|
@@ -33,114 +36,78 @@ export function buildStartArgs(config, params) {
|
|
|
33
36
|
if (params.systemPrompt && config.systemPromptArg) {
|
|
34
37
|
args.push(config.systemPromptArg, params.systemPrompt);
|
|
35
38
|
}
|
|
36
|
-
|
|
39
|
+
if (params.prompt) {
|
|
40
|
+
args.push(params.prompt);
|
|
41
|
+
}
|
|
37
42
|
return args;
|
|
38
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Build CLI args for resuming an agent via `resumeArgs` (`{sessionId}` is
|
|
46
|
+
* substituted). Prompt is optional — omit for a blank-resume into the TUI,
|
|
47
|
+
* set for a prompt-on-resume flow.
|
|
48
|
+
*/
|
|
39
49
|
export function buildResumeArgs(config, params) {
|
|
40
50
|
if (config.resumeArgs) {
|
|
41
51
|
const args = config.resumeArgs.map(arg => arg.replace('{sessionId}', params.sessionId));
|
|
42
|
-
|
|
52
|
+
if (params.prompt)
|
|
53
|
+
args.push(params.prompt);
|
|
43
54
|
return args;
|
|
44
55
|
}
|
|
45
56
|
return buildStartArgs(config, params);
|
|
46
57
|
}
|
|
47
|
-
export function getSessionLogPath(sessionId, stream) {
|
|
48
|
-
return join(homedir(), '.corebrain', 'logs', `${sessionId}.${stream}.log`);
|
|
49
|
-
}
|
|
50
|
-
function ensureLogsDir() {
|
|
51
|
-
const logsDir = join(homedir(), '.corebrain', 'logs');
|
|
52
|
-
if (!existsSync(logsDir)) {
|
|
53
|
-
mkdirSync(logsDir, { recursive: true });
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
58
|
export function startAgentProcess(sessionId, config, args, workingDirectory, logger) {
|
|
57
59
|
const log = logger || (() => { });
|
|
58
60
|
log(`SPAWN_START: sessionId=${sessionId}`);
|
|
59
61
|
log(`SPAWN_COMMAND: ${config.command}`);
|
|
60
62
|
log(`SPAWN_ARGS: ${JSON.stringify(args)}`);
|
|
61
63
|
log(`SPAWN_CWD: ${workingDirectory}`);
|
|
62
|
-
ensureLogsDir();
|
|
63
|
-
const stdoutFd = openSync(getSessionLogPath(sessionId, 'stdout'), 'w');
|
|
64
|
-
const stderrFd = openSync(getSessionLogPath(sessionId, 'stderr'), 'w');
|
|
65
|
-
let proc;
|
|
66
64
|
try {
|
|
67
|
-
|
|
65
|
+
const { pid } = ptyManager.spawn({
|
|
66
|
+
sessionId,
|
|
67
|
+
command: config.command,
|
|
68
|
+
args,
|
|
68
69
|
cwd: workingDirectory,
|
|
69
|
-
shell: false,
|
|
70
|
-
stdio: ['ignore', stdoutFd, stderrFd],
|
|
71
|
-
detached: true,
|
|
72
70
|
});
|
|
71
|
+
log(`SPAWN_PID: ${pid}`);
|
|
72
|
+
return { pid };
|
|
73
73
|
}
|
|
74
74
|
catch (err) {
|
|
75
75
|
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
76
76
|
log(`SPAWN_ERROR: ${errorMsg}`);
|
|
77
77
|
return { pid: undefined, error: errorMsg };
|
|
78
78
|
}
|
|
79
|
-
const pid = proc.pid;
|
|
80
|
-
log(`SPAWN_PID: ${pid}`);
|
|
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}`));
|
|
83
|
-
proc.unref();
|
|
84
|
-
log(`SPAWN_DETACHED: process detached and running`);
|
|
85
|
-
return { pid };
|
|
86
79
|
}
|
|
87
80
|
export function isProcessRunning(sessionId) {
|
|
81
|
+
// Primary source: PtyManager in-memory state for agents spawned under this
|
|
82
|
+
// daemon. Falls back to PID-probe for legacy session records that may have
|
|
83
|
+
// been started before the PTY refactor.
|
|
84
|
+
if (ptyManager.isRunning(sessionId))
|
|
85
|
+
return true;
|
|
88
86
|
const session = getSession(sessionId);
|
|
89
87
|
if (!session?.pid)
|
|
90
88
|
return false;
|
|
91
|
-
|
|
89
|
+
try {
|
|
90
|
+
process.kill(session.pid, 0);
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
92
96
|
}
|
|
93
97
|
export function stopProcess(sessionId) {
|
|
98
|
+
if (ptyManager.isRunning(sessionId)) {
|
|
99
|
+
return ptyManager.kill(sessionId, 'SIGTERM');
|
|
100
|
+
}
|
|
101
|
+
// Legacy path: kill by stored PID if PTY manager doesn't know about it.
|
|
94
102
|
const session = getSession(sessionId);
|
|
95
103
|
if (!session?.pid)
|
|
96
104
|
return false;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
+
try {
|
|
106
|
+
process.kill(session.pid, 'SIGTERM');
|
|
107
|
+
return true;
|
|
105
108
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Start a background watchdog for a running session.
|
|
110
|
-
* If the stdout log has not grown for `idleTimeoutMs` (default 30s), the process is killed.
|
|
111
|
-
* Also cleans up the running session record when the process exits naturally.
|
|
112
|
-
*/
|
|
113
|
-
export function startIdleWatchdog(sessionId, pid, idleTimeoutMs = 30_000) {
|
|
114
|
-
const logPath = getSessionLogPath(sessionId, 'stdout');
|
|
115
|
-
const pollInterval = 5_000;
|
|
116
|
-
let lastSize = -1;
|
|
117
|
-
let lastChangedAt = Date.now();
|
|
118
|
-
function check() {
|
|
119
|
-
// Process already dead — clean up session record and stop
|
|
120
|
-
if (!isProcessRunningByPid(pid)) {
|
|
121
|
-
deleteSession(sessionId);
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
let currentSize = 0;
|
|
125
|
-
try {
|
|
126
|
-
currentSize = statSync(logPath).size;
|
|
127
|
-
}
|
|
128
|
-
catch { /* log not created yet */ }
|
|
129
|
-
if (currentSize !== lastSize) {
|
|
130
|
-
lastSize = currentSize;
|
|
131
|
-
lastChangedAt = Date.now();
|
|
132
|
-
}
|
|
133
|
-
else if (Date.now() - lastChangedAt >= idleTimeoutMs) {
|
|
134
|
-
// Idle too long — kill and clean up
|
|
135
|
-
try {
|
|
136
|
-
process.kill(pid, 'SIGTERM');
|
|
137
|
-
}
|
|
138
|
-
catch { /* already gone */ }
|
|
139
|
-
deleteSession(sessionId);
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
setTimeout(check, pollInterval);
|
|
109
|
+
catch {
|
|
110
|
+
return false;
|
|
143
111
|
}
|
|
144
|
-
setTimeout(check, pollInterval);
|
|
145
112
|
}
|
|
146
113
|
//# 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,
|
|
1
|
+
{"version":3,"file":"coding-runner.js","sourceRoot":"","sources":["../../src/utils/coding-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bootstrap a gateway config from environment variables when running
|
|
3
|
+
* headless (Docker / systemd without an interactive `corebrain login` +
|
|
4
|
+
* `corebrain gateway config` flow).
|
|
5
|
+
*
|
|
6
|
+
* Reads (all optional; only missing values are filled in):
|
|
7
|
+
*
|
|
8
|
+
* COREBRAIN_API_URL → core.auth.url
|
|
9
|
+
* COREBRAIN_API_KEY → core.auth.apiKey (user's PAT)
|
|
10
|
+
* COREBRAIN_GATEWAY_NAME → preferences.gateway.name
|
|
11
|
+
* COREBRAIN_GATEWAY_DESCRIPTION → preferences.gateway.description
|
|
12
|
+
* COREBRAIN_GATEWAY_SECURITY_KEY → if set, used as the gateway's auth key.
|
|
13
|
+
* Otherwise one is generated and printed
|
|
14
|
+
* to stdout *once* for the user to paste
|
|
15
|
+
* into the webapp's Register Gateway flow.
|
|
16
|
+
* COREBRAIN_DEFAULT_WORKSPACE → auto-registered as a folder with
|
|
17
|
+
* [files, coding, exec] scopes; also flips
|
|
18
|
+
* on browser/coding/files/exec slots so a
|
|
19
|
+
* fresh container is ready to use.
|
|
20
|
+
*
|
|
21
|
+
* Idempotent. Safe to call on every gateway boot. Never overwrites a value
|
|
22
|
+
* already present in the on-disk config — so a user who manually runs
|
|
23
|
+
* `corebrain login` / `corebrain gateway config` inside their container
|
|
24
|
+
* won't have their hand-entered values clobbered on restart.
|
|
25
|
+
*
|
|
26
|
+
* Returns the set of fields that were populated, for logging.
|
|
27
|
+
*/
|
|
28
|
+
export declare function bootstrapFromEnv(): string[];
|
|
29
|
+
//# sourceMappingURL=env-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-bootstrap.d.ts","sourceRoot":"","sources":["../../src/utils/env-bootstrap.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CA6K3C"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { existsSync, realpathSync, statSync } from 'node:fs';
|
|
3
|
+
import { resolve } from 'node:path';
|
|
4
|
+
import { updateConfig, getConfig } from '../config/index.js';
|
|
5
|
+
import { getPreferences, updatePreferences } from '../config/preferences.js';
|
|
6
|
+
import { generateSecurityKey, hashKey } from '../server/api/auth.js';
|
|
7
|
+
import { AGENT_TEMPLATES, resolveCommand } from '../utils/agent-templates.js';
|
|
8
|
+
/**
|
|
9
|
+
* Bootstrap a gateway config from environment variables when running
|
|
10
|
+
* headless (Docker / systemd without an interactive `corebrain login` +
|
|
11
|
+
* `corebrain gateway config` flow).
|
|
12
|
+
*
|
|
13
|
+
* Reads (all optional; only missing values are filled in):
|
|
14
|
+
*
|
|
15
|
+
* COREBRAIN_API_URL → core.auth.url
|
|
16
|
+
* COREBRAIN_API_KEY → core.auth.apiKey (user's PAT)
|
|
17
|
+
* COREBRAIN_GATEWAY_NAME → preferences.gateway.name
|
|
18
|
+
* COREBRAIN_GATEWAY_DESCRIPTION → preferences.gateway.description
|
|
19
|
+
* COREBRAIN_GATEWAY_SECURITY_KEY → if set, used as the gateway's auth key.
|
|
20
|
+
* Otherwise one is generated and printed
|
|
21
|
+
* to stdout *once* for the user to paste
|
|
22
|
+
* into the webapp's Register Gateway flow.
|
|
23
|
+
* COREBRAIN_DEFAULT_WORKSPACE → auto-registered as a folder with
|
|
24
|
+
* [files, coding, exec] scopes; also flips
|
|
25
|
+
* on browser/coding/files/exec slots so a
|
|
26
|
+
* fresh container is ready to use.
|
|
27
|
+
*
|
|
28
|
+
* Idempotent. Safe to call on every gateway boot. Never overwrites a value
|
|
29
|
+
* already present in the on-disk config — so a user who manually runs
|
|
30
|
+
* `corebrain login` / `corebrain gateway config` inside their container
|
|
31
|
+
* won't have their hand-entered values clobbered on restart.
|
|
32
|
+
*
|
|
33
|
+
* Returns the set of fields that were populated, for logging.
|
|
34
|
+
*/
|
|
35
|
+
export function bootstrapFromEnv() {
|
|
36
|
+
const applied = [];
|
|
37
|
+
const apiUrl = process.env.COREBRAIN_API_URL;
|
|
38
|
+
const apiKey = process.env.COREBRAIN_API_KEY;
|
|
39
|
+
const gwName = process.env.COREBRAIN_GATEWAY_NAME;
|
|
40
|
+
const gwDesc = process.env.COREBRAIN_GATEWAY_DESCRIPTION;
|
|
41
|
+
const defaultWorkspace = process.env.COREBRAIN_DEFAULT_WORKSPACE;
|
|
42
|
+
// --- core.auth ---
|
|
43
|
+
// auth requires both url and apiKey, so we only persist when the merge
|
|
44
|
+
// would yield a complete pair (env-supplied or already on disk).
|
|
45
|
+
const config = getConfig();
|
|
46
|
+
const mergedUrl = config.auth?.url ?? apiUrl;
|
|
47
|
+
const mergedApiKey = config.auth?.apiKey ?? apiKey;
|
|
48
|
+
const addedUrl = !config.auth?.url && !!apiUrl;
|
|
49
|
+
const addedApiKey = !config.auth?.apiKey && !!apiKey;
|
|
50
|
+
if ((addedUrl || addedApiKey) && mergedUrl && mergedApiKey) {
|
|
51
|
+
updateConfig({ auth: { url: mergedUrl, apiKey: mergedApiKey } });
|
|
52
|
+
if (addedUrl)
|
|
53
|
+
applied.push('COREBRAIN_API_URL');
|
|
54
|
+
if (addedApiKey)
|
|
55
|
+
applied.push('COREBRAIN_API_KEY');
|
|
56
|
+
}
|
|
57
|
+
// --- preferences.gateway ---
|
|
58
|
+
const prefs = getPreferences();
|
|
59
|
+
const existing = prefs.gateway ?? { pid: 0, startedAt: 0 };
|
|
60
|
+
// Local id — internal key for the gateway record. Webapp assigns its own
|
|
61
|
+
// ID at registration time; this is just to satisfy the existing
|
|
62
|
+
// "configured" check in the start command.
|
|
63
|
+
const needsId = !existing.id;
|
|
64
|
+
const namePatch = gwName && !existing.name ? { name: gwName } : {};
|
|
65
|
+
const descPatch = gwDesc && !existing.description ? { description: gwDesc } : {};
|
|
66
|
+
// Security key. Without this every authed request returns 401, so make
|
|
67
|
+
// sure a fresh container always boots with one. Three cases:
|
|
68
|
+
// 1) Env var supplied → use it (user controls the value via Railway/Fly env).
|
|
69
|
+
// 2) Already on disk → keep it.
|
|
70
|
+
// 3) Neither → generate, persist the hash, print the raw key
|
|
71
|
+
// so the user can paste it into the webapp's
|
|
72
|
+
// "Register gateway" dialog.
|
|
73
|
+
const envKey = process.env.COREBRAIN_GATEWAY_SECURITY_KEY;
|
|
74
|
+
let securityKeyPatch = {};
|
|
75
|
+
let printRawKey = null;
|
|
76
|
+
if (envKey && !existing.securityKeyHash) {
|
|
77
|
+
securityKeyPatch.securityKeyHash = hashKey(envKey);
|
|
78
|
+
applied.push('COREBRAIN_GATEWAY_SECURITY_KEY');
|
|
79
|
+
}
|
|
80
|
+
else if (!envKey && !existing.securityKeyHash) {
|
|
81
|
+
printRawKey = generateSecurityKey();
|
|
82
|
+
securityKeyPatch.securityKeyHash = hashKey(printRawKey);
|
|
83
|
+
applied.push('generated-security-key');
|
|
84
|
+
}
|
|
85
|
+
// Default slots: browser/coding/files/exec on. Only applied to a fresh
|
|
86
|
+
// gateway record — once a slot has any explicit setting (even `false`),
|
|
87
|
+
// we don't override it.
|
|
88
|
+
const slotsPatch = {};
|
|
89
|
+
if (!existing.slots) {
|
|
90
|
+
slotsPatch.slots = {
|
|
91
|
+
browser: { enabled: true },
|
|
92
|
+
coding: { enabled: true },
|
|
93
|
+
files: { enabled: true },
|
|
94
|
+
exec: { enabled: true },
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// Auto-register /app (or whatever COREBRAIN_DEFAULT_WORKSPACE points at)
|
|
98
|
+
// as a coding+files+exec folder so a brand-new container is immediately
|
|
99
|
+
// usable from the webapp's "New coding session" dialog without the user
|
|
100
|
+
// having to add a folder manually.
|
|
101
|
+
const foldersPatch = {};
|
|
102
|
+
if (defaultWorkspace && existsSync(defaultWorkspace)) {
|
|
103
|
+
try {
|
|
104
|
+
const abs = realpathSync(resolve(defaultWorkspace));
|
|
105
|
+
if (statSync(abs).isDirectory()) {
|
|
106
|
+
const existingFolders = existing.folders ?? [];
|
|
107
|
+
if (!existingFolders.some(f => f.path === abs)) {
|
|
108
|
+
const baseName = abs.split('/').filter(Boolean).pop() ?? 'app';
|
|
109
|
+
let name = baseName;
|
|
110
|
+
for (let i = 2; existingFolders.some(f => f.name === name); i++) {
|
|
111
|
+
name = `${baseName}-${i}`;
|
|
112
|
+
}
|
|
113
|
+
foldersPatch.folders = [
|
|
114
|
+
...existingFolders,
|
|
115
|
+
{
|
|
116
|
+
id: `fld_${randomUUID()}`,
|
|
117
|
+
name,
|
|
118
|
+
path: abs,
|
|
119
|
+
scopes: ['files', 'coding', 'exec'],
|
|
120
|
+
gitRepo: existsSync(`${abs}/.git`),
|
|
121
|
+
},
|
|
122
|
+
];
|
|
123
|
+
applied.push(`folder:${name}=${abs}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
/* path errors fall through to "no auto-register" */
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (needsId ||
|
|
132
|
+
Object.keys(namePatch).length > 0 ||
|
|
133
|
+
Object.keys(descPatch).length > 0 ||
|
|
134
|
+
slotsPatch.slots ||
|
|
135
|
+
foldersPatch.folders ||
|
|
136
|
+
securityKeyPatch.securityKeyHash) {
|
|
137
|
+
updatePreferences({
|
|
138
|
+
gateway: {
|
|
139
|
+
...existing,
|
|
140
|
+
...(needsId ? { id: randomUUID() } : {}),
|
|
141
|
+
...namePatch,
|
|
142
|
+
...descPatch,
|
|
143
|
+
...slotsPatch,
|
|
144
|
+
...foldersPatch,
|
|
145
|
+
...securityKeyPatch,
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
if (namePatch.name)
|
|
149
|
+
applied.push('COREBRAIN_GATEWAY_NAME');
|
|
150
|
+
if (descPatch.description)
|
|
151
|
+
applied.push('COREBRAIN_GATEWAY_DESCRIPTION');
|
|
152
|
+
if (slotsPatch.slots)
|
|
153
|
+
applied.push('default-slots');
|
|
154
|
+
}
|
|
155
|
+
// --- preferences.coding ---
|
|
156
|
+
// Auto-configure any coding agent we detect on PATH that isn't already
|
|
157
|
+
// in the user's preferences. This is what `corebrain coding setup` does
|
|
158
|
+
// interactively; doing it on every boot makes Docker / headless installs
|
|
159
|
+
// usable without an extra setup step. Existing entries are never
|
|
160
|
+
// overwritten, so a user who tuned args manually keeps their values.
|
|
161
|
+
const existingCoding = (prefs.coding ?? {});
|
|
162
|
+
const codingPatch = {};
|
|
163
|
+
for (const tmpl of AGENT_TEMPLATES) {
|
|
164
|
+
if (existingCoding[tmpl.name])
|
|
165
|
+
continue;
|
|
166
|
+
const cmdPath = tmpl.commands
|
|
167
|
+
.map(c => resolveCommand(c))
|
|
168
|
+
.find((p) => Boolean(p));
|
|
169
|
+
if (!cmdPath)
|
|
170
|
+
continue;
|
|
171
|
+
codingPatch[tmpl.name] = {
|
|
172
|
+
command: cmdPath,
|
|
173
|
+
...tmpl.defaultConfig,
|
|
174
|
+
};
|
|
175
|
+
applied.push(`coding:${tmpl.name}`);
|
|
176
|
+
}
|
|
177
|
+
if (Object.keys(codingPatch).length > 0) {
|
|
178
|
+
updatePreferences({
|
|
179
|
+
coding: { ...existingCoding, ...codingPatch },
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
if (printRawKey) {
|
|
183
|
+
// Banner prints to stdout (not the log file) so it's visible in
|
|
184
|
+
// `docker logs <container>` immediately. Shown only once because the
|
|
185
|
+
// next boot already has a hash on disk and skips this branch.
|
|
186
|
+
const banner = [
|
|
187
|
+
'',
|
|
188
|
+
'='.repeat(64),
|
|
189
|
+
'CoreBrain Gateway — security key generated',
|
|
190
|
+
'',
|
|
191
|
+
` ${printRawKey}`,
|
|
192
|
+
'',
|
|
193
|
+
'Paste this (with your gateway URL) into the webapp:',
|
|
194
|
+
' Settings → Gateways → New gateway',
|
|
195
|
+
'',
|
|
196
|
+
'Set COREBRAIN_GATEWAY_SECURITY_KEY env var to provide your own.',
|
|
197
|
+
'='.repeat(64),
|
|
198
|
+
'',
|
|
199
|
+
].join('\n');
|
|
200
|
+
process.stdout.write(banner);
|
|
201
|
+
}
|
|
202
|
+
return applied;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=env-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-bootstrap.js","sourceRoot":"","sources":["../../src/utils/env-bootstrap.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redplanethq/corebrain",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.14",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16"
|
|
@@ -17,26 +17,33 @@
|
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@clack/prompts": "^1.0.1",
|
|
20
|
+
"@fastify/websocket": "^11.0.1",
|
|
20
21
|
"@mariozechner/pi-tui": "^0.57.1",
|
|
21
22
|
"@mishieck/ink-titled-box": "^0.4.2",
|
|
22
23
|
"@redplanethq/ui": "2.1.3",
|
|
24
|
+
"fastify": "^5.0.0",
|
|
23
25
|
"chalk": "^5.2.0",
|
|
26
|
+
"diff": "^5.2.0",
|
|
24
27
|
"dotenv": "^17.2.3",
|
|
28
|
+
"fast-glob": "^3.3.2",
|
|
25
29
|
"fast-png": "^8.0.0",
|
|
26
30
|
"ink": "^6.6.0",
|
|
27
31
|
"ink-select-input": "^6.2.0",
|
|
28
32
|
"ink-spinner": "5.0.0",
|
|
29
33
|
"ink-stepper": "0.2.0",
|
|
30
34
|
"ink-text-input": "^6.0.0",
|
|
35
|
+
"node-pty": "^1.0.0",
|
|
31
36
|
"pastel": "^4.0.0",
|
|
32
37
|
"playwright": "^1.44.0",
|
|
33
38
|
"react": "^19.2.4",
|
|
34
39
|
"ws": "^8.18.0",
|
|
35
40
|
"zod": "^4.3.6",
|
|
41
|
+
"@core/gateway-protocol": "0.1.0",
|
|
36
42
|
"@redplanethq/sdk": "0.1.19"
|
|
37
43
|
},
|
|
38
44
|
"devDependencies": {
|
|
39
45
|
"@sindresorhus/tsconfig": "^8.1.0",
|
|
46
|
+
"@types/diff": "^5.2.0",
|
|
40
47
|
"@types/node": "18",
|
|
41
48
|
"@types/react": "^19.2.13",
|
|
42
49
|
"@types/ws": "^8.5.13",
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import zod from 'zod';
|
|
2
|
-
export declare const options: zod.ZodObject<{
|
|
3
|
-
sessionId: zod.ZodOptional<zod.ZodString>;
|
|
4
|
-
all: zod.ZodOptional<zod.ZodBoolean>;
|
|
5
|
-
}, zod.core.$strip>;
|
|
6
|
-
type Props = {
|
|
7
|
-
options: zod.infer<typeof options>;
|
|
8
|
-
};
|
|
9
|
-
export default function CodingClose({ options: opts }: Props): null;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=close.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/close.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,OAAO;;;mBAGlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAqEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,QAUzD"}
|