@redplanethq/corebrain 2.8.16 → 2.8.18
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/config/folders.d.ts.map +1 -1
- package/dist/config/folders.js +50 -10
- package/dist/config/folders.js.map +1 -1
- package/dist/server/api/manifest-builder.d.ts.map +1 -1
- package/dist/server/api/manifest-builder.js +4 -2
- package/dist/server/api/manifest-builder.js.map +1 -1
- package/dist/server/api/shell/index.d.ts +0 -14
- package/dist/server/api/shell/index.d.ts.map +1 -1
- package/dist/server/api/shell/index.js +29 -6
- package/dist/server/api/shell/index.js.map +1 -1
- package/dist/server/gateway-entry.js +36 -3
- package/dist/server/gateway-entry.js.map +1 -1
- package/dist/server/tools/coding-tools.d.ts.map +1 -1
- package/dist/server/tools/coding-tools.js +46 -24
- package/dist/server/tools/coding-tools.js.map +1 -1
- package/dist/utils/browser-manager.d.ts +11 -0
- package/dist/utils/browser-manager.d.ts.map +1 -1
- package/dist/utils/browser-manager.js +86 -0
- package/dist/utils/browser-manager.js.map +1 -1
- package/dist/utils/coding-agents/claude-code.d.ts.map +1 -1
- package/dist/utils/coding-agents/claude-code.js +7 -2
- package/dist/utils/coding-agents/claude-code.js.map +1 -1
- package/dist/utils/env-bootstrap.d.ts.map +1 -1
- package/dist/utils/env-bootstrap.js +13 -8
- package/dist/utils/env-bootstrap.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../src/config/folders.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../src/config/folders.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,KAAK,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AA+B5C,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAE5C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,EAAE,CAAC;CAChB,GAAG,YAAY,CAqCf;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAenD;AAED,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE;IAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;CAAC,GACnC,YAAY,CAuBd;AAED,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,GACV;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,CAqChD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAElE"}
|
package/dist/config/folders.js
CHANGED
|
@@ -1,20 +1,48 @@
|
|
|
1
1
|
import { realpathSync, statSync, existsSync } from 'node:fs';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
3
4
|
import { randomUUID } from 'node:crypto';
|
|
4
5
|
import { getPreferences, updatePreferences } from './preferences.js';
|
|
6
|
+
// `~/.corebrain` holds corebrain-managed state (worktrees, etc.) so it's
|
|
7
|
+
// implicitly registered with all scopes. This lets coding/files/exec tools
|
|
8
|
+
// operate on paths under it (e.g. ~/.corebrain/worktrees/<repo>/<branch>)
|
|
9
|
+
// without forcing the user to register it manually.
|
|
10
|
+
const COREBRAIN_HOME = resolve(homedir(), '.corebrain');
|
|
11
|
+
const COREBRAIN_HOME_FOLDER = {
|
|
12
|
+
id: 'fld_corebrain_home',
|
|
13
|
+
name: 'corebrain',
|
|
14
|
+
path: COREBRAIN_HOME,
|
|
15
|
+
scopes: ['files', 'coding', 'exec'],
|
|
16
|
+
gitRepo: false,
|
|
17
|
+
};
|
|
18
|
+
function isUnderCorebrainHome(abs) {
|
|
19
|
+
return abs === COREBRAIN_HOME || abs.startsWith(COREBRAIN_HOME + '/');
|
|
20
|
+
}
|
|
21
|
+
// Best-effort realpath. Used only for security in `resolveFolderForPath` —
|
|
22
|
+
// the stored folder path stays in the user-supplied form so symlinked
|
|
23
|
+
// workspaces (e.g. Railway's `/app → /mnt/volume/workspace`) show as `/app`
|
|
24
|
+
// in the UI and match the terminal's `pwd`.
|
|
25
|
+
function realpathSafe(p) {
|
|
26
|
+
try {
|
|
27
|
+
return realpathSync(p);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return p;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
5
33
|
export function listFolders() {
|
|
6
34
|
return getPreferences().gateway?.folders ?? [];
|
|
7
35
|
}
|
|
8
36
|
export function addFolder(input) {
|
|
9
|
-
const
|
|
10
|
-
if (!existsSync(
|
|
11
|
-
throw new Error(`Not a directory: ${
|
|
37
|
+
const inputPath = resolve(input.path);
|
|
38
|
+
if (!existsSync(inputPath) || !statSync(inputPath).isDirectory()) {
|
|
39
|
+
throw new Error(`Not a directory: ${inputPath}`);
|
|
12
40
|
}
|
|
13
41
|
const folders = listFolders();
|
|
14
|
-
if (folders.some(f => f.path ===
|
|
15
|
-
throw new Error(`Folder already registered: ${
|
|
42
|
+
if (folders.some(f => f.path === inputPath)) {
|
|
43
|
+
throw new Error(`Folder already registered: ${inputPath}`);
|
|
16
44
|
}
|
|
17
|
-
const name = input.name ??
|
|
45
|
+
const name = input.name ?? inputPath.split('/').filter(Boolean).pop() ?? 'folder';
|
|
18
46
|
if (folders.some(f => f.name === name)) {
|
|
19
47
|
throw new Error(`Folder name in use: ${name}`);
|
|
20
48
|
}
|
|
@@ -24,9 +52,9 @@ export function addFolder(input) {
|
|
|
24
52
|
const folder = {
|
|
25
53
|
id: `fld_${randomUUID()}`,
|
|
26
54
|
name,
|
|
27
|
-
path:
|
|
55
|
+
path: inputPath,
|
|
28
56
|
scopes: Array.from(new Set(input.scopes)),
|
|
29
|
-
gitRepo: existsSync(`${
|
|
57
|
+
gitRepo: existsSync(`${inputPath}/.git`),
|
|
30
58
|
};
|
|
31
59
|
const prefs = getPreferences();
|
|
32
60
|
updatePreferences({
|
|
@@ -104,8 +132,20 @@ export function resolveFolderForPath(target, scope) {
|
|
|
104
132
|
const tail = parts.slice(i).join('/');
|
|
105
133
|
abs = tail ? `${realExisting}/${tail}` : realExisting;
|
|
106
134
|
}
|
|
107
|
-
|
|
108
|
-
|
|
135
|
+
if (isUnderCorebrainHome(abs)) {
|
|
136
|
+
return { folder: COREBRAIN_HOME_FOLDER, absPath: abs };
|
|
137
|
+
}
|
|
138
|
+
// Compare against realpath of `f.path` too — `f.path` may be a symlink
|
|
139
|
+
// (e.g. Railway's `/app → /mnt/volume/workspace`) while `abs` is already
|
|
140
|
+
// the physical path.
|
|
141
|
+
const folder = listFolders().find(f => {
|
|
142
|
+
if (!f.scopes.includes(scope))
|
|
143
|
+
return false;
|
|
144
|
+
if (abs === f.path || abs.startsWith(f.path + '/'))
|
|
145
|
+
return true;
|
|
146
|
+
const real = realpathSafe(f.path);
|
|
147
|
+
return abs === real || abs.startsWith(real + '/');
|
|
148
|
+
});
|
|
109
149
|
return folder ? { folder, absPath: abs } : null;
|
|
110
150
|
}
|
|
111
151
|
export function getFolderById(id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folders.js","sourceRoot":"","sources":["../../src/config/folders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAKhE,MAAM,UAAU,WAAW;IAC1B,OAAO,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAIzB;IACA,MAAM,
|
|
1
|
+
{"version":3,"file":"folders.js","sourceRoot":"","sources":["../../src/config/folders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-builder.d.ts","sourceRoot":"","sources":["../../../src/server/api/manifest-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAEN,KAAK,QAAQ,EAGb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAgB,YAAY,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest-builder.d.ts","sourceRoot":"","sources":["../../../src/server/api/manifest-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAEN,KAAK,QAAQ,EAGb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAgB,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAqHhE;;;;;GAKG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,IAAI,EAAE,MAAM,YAAY,GACtB,OAAO,CAOT;AAED,wBAAgB,aAAa,IAAI;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CA0DlE"}
|
|
@@ -82,9 +82,10 @@ function detectAvailableAgents(configuredAgents, coding) {
|
|
|
82
82
|
return result;
|
|
83
83
|
}
|
|
84
84
|
function detectDeployMode() {
|
|
85
|
-
// Explicit env wins (Dockerfile sets COREBRAIN_DEPLOY_MODE=docker
|
|
85
|
+
// Explicit env wins (Dockerfile sets COREBRAIN_DEPLOY_MODE=docker; Railway
|
|
86
|
+
// deploys override to `railway`).
|
|
86
87
|
const envMode = process.env.COREBRAIN_DEPLOY_MODE;
|
|
87
|
-
if (envMode === 'docker' || envMode === 'native')
|
|
88
|
+
if (envMode === 'docker' || envMode === 'native' || envMode === 'railway')
|
|
88
89
|
return envMode;
|
|
89
90
|
// Fallback heuristic — `/.dockerenv` is created by Docker on container init.
|
|
90
91
|
if (existsSync('/.dockerenv'))
|
|
@@ -156,6 +157,7 @@ export function buildManifest() {
|
|
|
156
157
|
gateway: {
|
|
157
158
|
id: gw.id ?? 'pending',
|
|
158
159
|
name: gw.name ?? `${hostname()}-gateway`,
|
|
160
|
+
...(gw.description ? { description: gw.description } : {}),
|
|
159
161
|
version: cliVersion,
|
|
160
162
|
platform: platform(),
|
|
161
163
|
hostname: hostname(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../../../src/server/api/manifest-builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../../../src/server/api/manifest-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,3 @@
|
|
|
1
1
|
import type { FastifyPluginAsync } from 'fastify';
|
|
2
|
-
/**
|
|
3
|
-
* General-purpose shell PTY for the webapp's per-gateway Terminal tab.
|
|
4
|
-
*
|
|
5
|
-
* POST /api/shell/spawn
|
|
6
|
-
* body: { cwd?: string }
|
|
7
|
-
* → 200 { ok: true, sessionId, pid }
|
|
8
|
-
*
|
|
9
|
-
* Spawns the user's `$SHELL` (falling back to `/bin/bash` → `/bin/sh`) inside
|
|
10
|
-
* a PTY managed by `ptyManager`. The browser attaches via the existing xterm
|
|
11
|
-
* WS endpoint — no CodingSession involved.
|
|
12
|
-
*
|
|
13
|
-
* Auth is handled by the global gateway auth hook (security key), so anyone
|
|
14
|
-
* able to hit this can already exec arbitrary tools — no extra guardrails.
|
|
15
|
-
*/
|
|
16
2
|
export declare const shellRoutes: FastifyPluginAsync;
|
|
17
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/api/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/api/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAyBhD,eAAO,MAAM,WAAW,EAAE,kBAyEzB,CAAC"}
|
|
@@ -7,19 +7,41 @@ import { gatewayLog } from '../../../server/gateway-log.js';
|
|
|
7
7
|
* General-purpose shell PTY for the webapp's per-gateway Terminal tab.
|
|
8
8
|
*
|
|
9
9
|
* POST /api/shell/spawn
|
|
10
|
-
* body: { cwd?: string }
|
|
11
|
-
* → 200 { ok: true, sessionId, pid }
|
|
10
|
+
* body: { cwd?: string, fresh?: boolean }
|
|
11
|
+
* → 200 { ok: true, sessionId, pid, resumed }
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* Singleton model: the gateway tracks one active shell session at a time.
|
|
14
|
+
* Without `fresh`, calls return the existing session if it's still alive
|
|
15
|
+
* (the browser then replays scrollback over the xterm WS — see
|
|
16
|
+
* `ptyManager.attach`). With `fresh: true`, the previous session is killed
|
|
17
|
+
* and a new one spawned. `resumed` distinguishes the two outcomes for the UI.
|
|
16
18
|
*
|
|
17
19
|
* Auth is handled by the global gateway auth hook (security key), so anyone
|
|
18
20
|
* able to hit this can already exec arbitrary tools — no extra guardrails.
|
|
19
21
|
*/
|
|
22
|
+
let currentShellSessionId = null;
|
|
20
23
|
export const shellRoutes = async (app) => {
|
|
21
24
|
app.post('/spawn', async (req, reply) => {
|
|
22
25
|
const body = (req.body ?? {});
|
|
26
|
+
// Resume path: an existing session is still running and the caller
|
|
27
|
+
// didn't ask for a fresh one. Skip the spawn.
|
|
28
|
+
if (!body.fresh &&
|
|
29
|
+
currentShellSessionId &&
|
|
30
|
+
ptyManager.isRunning(currentShellSessionId)) {
|
|
31
|
+
const pid = ptyManager.getPid(currentShellSessionId) ?? 0;
|
|
32
|
+
return {
|
|
33
|
+
ok: true,
|
|
34
|
+
sessionId: currentShellSessionId,
|
|
35
|
+
pid,
|
|
36
|
+
resumed: true,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// Either no session yet, the previous one exited, or `fresh` was set.
|
|
40
|
+
// Kill any lingering session first so we don't leak PTYs.
|
|
41
|
+
if (currentShellSessionId) {
|
|
42
|
+
ptyManager.kill(currentShellSessionId);
|
|
43
|
+
currentShellSessionId = null;
|
|
44
|
+
}
|
|
23
45
|
// Resolve a usable shell. SHELL → /bin/zsh → /bin/bash → /bin/sh.
|
|
24
46
|
const candidates = [
|
|
25
47
|
process.env.SHELL,
|
|
@@ -48,7 +70,8 @@ export const shellRoutes = async (app) => {
|
|
|
48
70
|
cwd,
|
|
49
71
|
agent: 'shell',
|
|
50
72
|
});
|
|
51
|
-
|
|
73
|
+
currentShellSessionId = sessionId;
|
|
74
|
+
return { ok: true, sessionId, pid, resumed: false };
|
|
52
75
|
}
|
|
53
76
|
catch (err) {
|
|
54
77
|
const msg = err instanceof Error ? err.message : 'spawn failed';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/api/shell/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/api/shell/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,IAAI,qBAAqB,GAAkB,IAAI,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAuB,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5D,GAAG,CAAC,IAAI,CACP,QAAQ,EACR,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAoC,CAAC;QAEjE,mEAAmE;QACnE,8CAA8C;QAC9C,IACC,CAAC,IAAI,CAAC,KAAK;YACX,qBAAqB;YACrB,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAC1C,CAAC;YACF,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO;gBACN,EAAE,EAAE,IAAI;gBACR,SAAS,EAAE,qBAAqB;gBAChC,GAAG;gBACH,OAAO,EAAE,IAAI;aACb,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,0DAA0D;QAC1D,IAAI,qBAAqB,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACvC,qBAAqB,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,kEAAkE;QAClE,MAAM,UAAU,GAAG;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK;YACjB,UAAU;YACV,WAAW;YACX,SAAS;SACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAC,CAAC;QACtD,CAAC;QAED,MAAM,GAAG,GACR,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,GAAG;YACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B;gBACtC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;gBACrD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B;gBACzC,CAAC,CAAC,OAAO,EAAE,CAAC;QAEf,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,UAAU,CACT,sBAAsB,KAAK,QAAQ,GAAG,cAAc,SAAS,EAAE,CAC/D,CAAC;QAEF,IAAI,CAAC;YACJ,MAAM,EAAC,GAAG,EAAC,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC9B,SAAS;gBACT,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,iDAAiD;gBAChE,GAAG;gBACH,KAAK,EAAE,OAAO;aACd,CAAC,CAAC;YACH,qBAAqB,GAAG,SAAS,CAAC;YAClC,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;YAChE,UAAU,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC;QAChC,CAAC;IACF,CAAC,CACD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { getPreferences, updatePreferences } from '../config/preferences.js';
|
|
|
8
8
|
import { startServer } from './api/server.js';
|
|
9
9
|
import { ptyManager } from './pty/manager.js';
|
|
10
10
|
import { gatewayLog, GATEWAY_LOG_FILE } from './gateway-log.js';
|
|
11
|
+
import { clearStaleProfileLocks, closeAllSessions } from '../utils/browser-manager.js';
|
|
11
12
|
const LOG_MAX_AGE_DAYS = 3;
|
|
12
13
|
function clearOldLogs() {
|
|
13
14
|
try {
|
|
@@ -31,6 +32,19 @@ const log = gatewayLog;
|
|
|
31
32
|
async function main() {
|
|
32
33
|
clearOldLogs();
|
|
33
34
|
log('Starting gateway daemon...');
|
|
35
|
+
// Containers (Railway et al.) hard-kill the previous gateway, leaving
|
|
36
|
+
// Chromium SingletonLock symlinks in browser-profile dirs that point at
|
|
37
|
+
// the prior container's hostname/pid. Brave refuses to launch against
|
|
38
|
+
// those, so evict them before any browser session can start.
|
|
39
|
+
try {
|
|
40
|
+
const { cleared } = clearStaleProfileLocks();
|
|
41
|
+
if (cleared.length > 0) {
|
|
42
|
+
log(`Cleared stale browser-profile locks: ${cleared.join(', ')}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
log(`clearStaleProfileLocks failed: ${err.message}`);
|
|
47
|
+
}
|
|
34
48
|
const prefs = getPreferences();
|
|
35
49
|
const gw = prefs.gateway;
|
|
36
50
|
const port = Number(process.env.COREBRAIN_GATEWAY_HTTP_PORT ?? gw?.httpPort ?? 7787);
|
|
@@ -47,13 +61,32 @@ async function main() {
|
|
|
47
61
|
log(`Failed to start HTTP server: ${err.message}`);
|
|
48
62
|
process.exit(1);
|
|
49
63
|
}
|
|
50
|
-
|
|
64
|
+
let shuttingDown = false;
|
|
65
|
+
const shutdown = async (signal) => {
|
|
66
|
+
if (shuttingDown)
|
|
67
|
+
return;
|
|
68
|
+
shuttingDown = true;
|
|
51
69
|
log(`Shutting down (${signal})...`);
|
|
52
70
|
ptyManager.killAll();
|
|
71
|
+
try {
|
|
72
|
+
// Bound the wait so a wedged Playwright doesn't keep us past the
|
|
73
|
+
// container's grace period (Railway sends SIGKILL after ~30s).
|
|
74
|
+
await Promise.race([
|
|
75
|
+
closeAllSessions(),
|
|
76
|
+
new Promise(resolve => setTimeout(resolve, 5000)),
|
|
77
|
+
]);
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
log(`closeAllSessions error: ${err instanceof Error ? err.message : String(err)}`);
|
|
81
|
+
}
|
|
53
82
|
process.exit(0);
|
|
54
83
|
};
|
|
55
|
-
process.on('SIGTERM', () =>
|
|
56
|
-
|
|
84
|
+
process.on('SIGTERM', () => {
|
|
85
|
+
void shutdown('SIGTERM');
|
|
86
|
+
});
|
|
87
|
+
process.on('SIGINT', () => {
|
|
88
|
+
void shutdown('SIGINT');
|
|
89
|
+
});
|
|
57
90
|
process.on('uncaughtException', (err) => {
|
|
58
91
|
log(`Uncaught exception: ${err.message}`);
|
|
59
92
|
log(err.stack || '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-entry.js","sourceRoot":"","sources":["../../src/server/gateway-entry.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AACxE,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway-entry.js","sourceRoot":"","sources":["../../src/server/gateway-entry.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AACxE,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAErF,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,SAAS,YAAY;IACpB,IAAI,CAAC;QACJ,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACxD,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACtB,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAC7B,aAAa,CACZ,gBAAgB,EAChB,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,sCAAsC,gBAAgB,UAAU,CAC5F,CAAC;QACH,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,4BAA4B;IAC7B,CAAC;AACF,CAAC;AAED,6EAA6E;AAC7E,2CAA2C;AAC3C,MAAM,GAAG,GAAG,UAAU,CAAC;AAEvB,KAAK,UAAU,IAAI;IAClB,YAAY,EAAE,CAAC;IACf,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAElC,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI,CAAC;QACJ,MAAM,EAAC,OAAO,EAAC,GAAG,sBAAsB,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,wCAAwC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,kCAAmC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IAEzB,MAAM,IAAI,GAAG,MAAM,CAClB,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,EAAE,QAAQ,IAAI,IAAI,CAC/D,CAAC;IACF,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACrB,GAAG,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,iBAAiB,EAAE,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC;QAC1B,GAAG,CACF,gIAAgI,CAChI,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,WAAW,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,gCAAiC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACzC,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,GAAG,CAAC,kBAAkB,MAAM,MAAM,CAAC,CAAC;QACpC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACJ,iEAAiE;YACjE,+DAA+D;YAC/D,MAAM,OAAO,CAAC,IAAI,CAAC;gBAClB,gBAAgB,EAAE;gBAClB,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACjD,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CACF,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7E,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QAC1B,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACzB,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;QACvC,GAAG,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC3C,GAAG,CAAC,wBAAwB,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC;QACjB,OAAO,EAAE;YACR,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC;YAC5C,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE,IAAI;SACd;KACD,CAAC,CAAC;IAEH,GAAG,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-tools.d.ts","sourceRoot":"","sources":["../../../src/server/tools/coding-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coding-tools.d.ts","sourceRoot":"","sources":["../../../src/server/tools/coding-tools.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAUjD,OAAO,EAON,KAAK,MAAM,EACX,MAAM,uBAAuB,CAAC;AA2K/B,eAAO,MAAM,WAAW,EAAE,WAAW,EA0CpC,CAAC;AAmnBF,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CA6B/D"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import zod from 'zod';
|
|
2
|
-
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { randomUUID, createHash } from 'node:crypto';
|
|
3
3
|
import { execSync } from 'node:child_process';
|
|
4
|
-
import { existsSync, mkdirSync, cpSync,
|
|
5
|
-
import { resolve } from 'node:path';
|
|
4
|
+
import { existsSync, mkdirSync, cpSync, realpathSync } from 'node:fs';
|
|
5
|
+
import { resolve, basename } from 'node:path';
|
|
6
|
+
import { homedir } from 'node:os';
|
|
6
7
|
import { getPreferences } from '../../config/preferences.js';
|
|
7
8
|
import { listFolders, resolveFolderForPath } from '../../config/folders.js';
|
|
8
9
|
import { folderScopeError } from './scope-error.js';
|
|
@@ -234,28 +235,27 @@ function detectAgentForSession(sessionId, dir) {
|
|
|
234
235
|
return prefs.defaultCodingAgent ?? 'claude-code';
|
|
235
236
|
}
|
|
236
237
|
// ============ Worktree Helpers ============
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
238
|
+
const CB_WORKTREES_ROOT = resolve(homedir(), '.corebrain', 'worktrees');
|
|
239
|
+
/**
|
|
240
|
+
* Stable per-repo namespace under the corebrain home: `<basename>-<sha8>`.
|
|
241
|
+
* Basename keeps it human-skimmable; the hash of the real path makes sure two
|
|
242
|
+
* different repos that share a basename don't collide.
|
|
243
|
+
*/
|
|
244
|
+
function repoWorktreeNamespace(repoDir) {
|
|
245
|
+
let abs;
|
|
242
246
|
try {
|
|
243
|
-
|
|
244
|
-
? readFileSync(gitignorePath, 'utf8')
|
|
245
|
-
: '';
|
|
246
|
-
const lines = existing.split('\n').map(l => l.trim());
|
|
247
|
-
if (lines.includes(entry) || lines.includes('.worktrees'))
|
|
248
|
-
return;
|
|
249
|
-
const sep = existing && !existing.endsWith('\n') ? '\n' : '';
|
|
250
|
-
appendFileSync(gitignorePath, `${sep}${entry}\n`, 'utf8');
|
|
247
|
+
abs = realpathSync(resolve(repoDir));
|
|
251
248
|
}
|
|
252
249
|
catch {
|
|
253
|
-
|
|
250
|
+
abs = resolve(repoDir);
|
|
254
251
|
}
|
|
252
|
+
const base = basename(abs) || 'repo';
|
|
253
|
+
const hash = createHash('sha256').update(abs).digest('hex').slice(0, 8);
|
|
254
|
+
return `${base}-${hash}`;
|
|
255
255
|
}
|
|
256
256
|
function setupWorktree(dir, baseBranch, branch) {
|
|
257
257
|
const encodedBranch = branch.replace(/\//g, '-');
|
|
258
|
-
const worktreePath = resolve(
|
|
258
|
+
const worktreePath = resolve(CB_WORKTREES_ROOT, repoWorktreeNamespace(dir), encodedBranch);
|
|
259
259
|
// If the worktree already exists (valid git worktree), reuse it so multiple
|
|
260
260
|
// sessions can run against the same branch without hitting "already checked out".
|
|
261
261
|
if (existsSync(resolve(worktreePath, '.git'))) {
|
|
@@ -272,7 +272,6 @@ function setupWorktree(dir, baseBranch, branch) {
|
|
|
272
272
|
return { worktreePath, worktreeBranch: branch };
|
|
273
273
|
}
|
|
274
274
|
try {
|
|
275
|
-
ensureWorktreesIgnored(dir);
|
|
276
275
|
mkdirSync(worktreePath, { recursive: true });
|
|
277
276
|
execSync(`git -C ${JSON.stringify(dir)} worktree add ${JSON.stringify(worktreePath)} -b ${JSON.stringify(branch)} ${JSON.stringify(baseBranch)}`, { stdio: 'pipe' });
|
|
278
277
|
// Copy .claude settings to worktree so plugins are available
|
|
@@ -311,6 +310,15 @@ function removeWorktree(worktreePath, repoDir) {
|
|
|
311
310
|
}
|
|
312
311
|
}
|
|
313
312
|
// ============ Handlers ============
|
|
313
|
+
async function waitForProcessExit(sessionId, timeoutMs) {
|
|
314
|
+
const deadline = Date.now() + timeoutMs;
|
|
315
|
+
while (Date.now() < deadline) {
|
|
316
|
+
if (!isProcessRunning(sessionId))
|
|
317
|
+
return true;
|
|
318
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
319
|
+
}
|
|
320
|
+
return !isProcessRunning(sessionId);
|
|
321
|
+
}
|
|
314
322
|
async function handleAsk(params, logger = gatewayLog) {
|
|
315
323
|
if (!existsSync(params.dir)) {
|
|
316
324
|
return { success: false, error: `Directory "${params.dir}" does not exist` };
|
|
@@ -345,12 +353,26 @@ async function handleAsk(params, logger = gatewayLog) {
|
|
|
345
353
|
}
|
|
346
354
|
const isResume = Boolean(params.sessionId);
|
|
347
355
|
let sessionId = params.sessionId || randomUUID();
|
|
348
|
-
//
|
|
356
|
+
// On resume, if a previous PTY is still alive for this id, kill it before
|
|
357
|
+
// respawning. The TUI has no API to inject a new prompt into a running
|
|
358
|
+
// instance, so the only way to deliver `params.prompt` is a fresh
|
|
359
|
+
// `--resume <id>` process. SIGTERM gives the agent a chance to flush its
|
|
360
|
+
// transcript; we escalate to SIGKILL only if it doesn't exit in time.
|
|
349
361
|
if (isResume && isProcessRunning(sessionId)) {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
362
|
+
logger(`coding_ask resume: killing running pty for sessionId=${sessionId}`);
|
|
363
|
+
stopProcess(sessionId);
|
|
364
|
+
let exited = await waitForProcessExit(sessionId, 5_000);
|
|
365
|
+
if (!exited) {
|
|
366
|
+
logger(`coding_ask resume: SIGTERM did not exit, escalating to SIGKILL`);
|
|
367
|
+
ptyManager.kill(sessionId, 'SIGKILL');
|
|
368
|
+
exited = await waitForProcessExit(sessionId, 2_000);
|
|
369
|
+
}
|
|
370
|
+
if (!exited) {
|
|
371
|
+
return {
|
|
372
|
+
success: false,
|
|
373
|
+
error: `Session "${sessionId}" did not exit after SIGTERM/SIGKILL — cannot resume.`,
|
|
374
|
+
};
|
|
375
|
+
}
|
|
354
376
|
}
|
|
355
377
|
// Set up worktree for new sessions when requested
|
|
356
378
|
let workingDir = params.dir;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-tools.js","sourceRoot":"","sources":["../../../src/server/tools/coding-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coding-tools.js","sourceRoot":"","sources":["../../../src/server/tools/coding-tools.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AACpE,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC/C,OAAO,EACN,UAAU,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GAEX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACN,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,cAAc,EACd,sBAAsB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD,oCAAoC;AAEpC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;IACpB,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,oCAAoC;IACpE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,oCAAoC;IACpE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;IACnB,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,yCAAyC;AAEzC,MAAM,WAAW,GAA4C;IAC5D,UAAU,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACX,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACV,6FAA6F;aAC9F;YACD,MAAM,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;aACxD;YACD,GAAG,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EACV,oKAAoK;aACrK;YACD,SAAS,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EACV,+DAA+D;aAChE;YACD,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACxC;YACD,YAAY,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sDAAsD;aACnE;YACD,QAAQ,EAAE;gBACT,IAAI,EAAE,SAAS;gBACf,WAAW,EACV,mEAAmE;aACpE;YACD,UAAU,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EACV,uFAAuF;aACxF;YACD,MAAM,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EACV,4EAA4E;aAC7E;SACD;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;KAC3B;IACD,oBAAoB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACX,SAAS,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAC;SAC/D;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACvB;IACD,gBAAgB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACd;IACD,mBAAmB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACX,SAAS,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC7C;SACD;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACvB;IACD,oBAAoB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACX,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACV,8DAA8D;aAC/D;YACD,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACV,gFAAgF;aACjF;YACD,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;aAC5D;YACD,MAAM,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC3D;SACD;QACD,QAAQ,EAAE,EAAE;KACZ;IACD,sBAAsB,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACX,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC1D;YACD,GAAG,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EACV,4DAA4D;aAC7D;YACD,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qCAAqC;aAClD;SACD;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACnB;IACD,kBAAkB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACZ;CACD,CAAC;AAEF,6CAA6C;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAkB;IACzC;QACC,IAAI,EAAE,YAAY;QAClB,WAAW,EACV,sWAAsW;QACvW,WAAW,EAAE,WAAW,CAAC,UAAW;KACpC;IACD;QACC,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,+BAA+B;QAC5C,WAAW,EAAE,WAAW,CAAC,oBAAqB;KAC9C;IACD;QACC,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACV,+DAA+D;QAChE,WAAW,EAAE,WAAW,CAAC,gBAAiB;KAC1C;IACD;QACC,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACV,sWAAsW;QACvW,WAAW,EAAE,WAAW,CAAC,mBAAoB;KAC7C;IACD;QACC,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACV,yGAAyG;QAC1G,WAAW,EAAE,WAAW,CAAC,oBAAqB;KAC9C;IACD;QACC,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACV,+DAA+D;QAChE,WAAW,EAAE,WAAW,CAAC,sBAAuB;KAChD;IACD;QACC,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACV,gEAAgE;QACjE,WAAW,EAAE,WAAW,CAAC,kBAAmB;KAC5C;CACD,CAAC;AAEF,oCAAoC;AAEpC;;;GAGG;AACH,SAAS,YAAY,CAAC,UAAmB;IACxC,IAAI,UAAU;QAAE,OAAO,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;IAE3C,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAC,KAAK,EAAE,0DAA0D,EAAC,CAAC;IAC5E,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAClE,OAAO,EAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAC,CAAC;IAC1C,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAE,EAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACN,KAAK,EAAE,+BAA+B,UAAU,CAAC,IAAI,CACpD,IAAI,CACJ,uEAAuE;KACxE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,SAAiB,EAAE,GAAW;IAC5D,oCAAoC;IACpC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,KAAK;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAEvC,kCAAkC;IAClC,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,WAAW,CAAU,CAAC;IACtD,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC7D,CAAC;IAED,uBAAuB;IACvB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,KAAK,CAAC,kBAAkB,IAAI,aAAa,CAAC;AAClD,CAAC;AAED,6CAA6C;AAE7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAExE;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAC7C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACJ,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACR,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CACrB,GAAW,EACX,UAAkB,EAClB,MAAc;IAEd,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,OAAO,CAC3B,iBAAiB,EACjB,qBAAqB,CAAC,GAAG,CAAC,EAC1B,aAAa,CACb,CAAC;IAEF,4EAA4E;IAC5E,kFAAkF;IAClF,IAAI,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC;gBACJ,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACR,YAAY;YACb,CAAC;QACF,CAAC;QACD,OAAO,EAAC,YAAY,EAAE,cAAc,EAAE,MAAM,EAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC;QACJ,SAAS,CAAC,YAAY,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QAC3C,QAAQ,CACP,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAC3D,YAAY,CACZ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAC9D,EAAC,KAAK,EAAE,MAAM,EAAC,CACf,CAAC;QACF,6DAA6D;QAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC;gBACJ,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACR,8CAA8C;YAC/C,CAAC;QACF,CAAC;QAED,OAAO,EAAC,YAAY,EAAE,cAAc,EAAE,MAAM,EAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAI,GAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACpE,OAAO;YACN,KAAK,EAAE,8BACN,MAAM,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAC5D,EAAE;SACF,CAAC;IACH,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CACtB,YAAoB,EACpB,OAAe;IAEf,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CACtB,UAAU,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,qBAAqB,EAC3D,EAAC,KAAK,EAAE,MAAM,EAAC,CACf;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QACT,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;QAC5C,CAAC;QACD,QAAQ,CACP,UAAU,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAClE,YAAY,CACZ,EAAE,EACH,EAAC,KAAK,EAAE,MAAM,EAAC,CACf,CAAC;QACF,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAC,CAAC;IAC7C,CAAC;AACF,CAAC;AAED,qCAAqC;AAErC,KAAK,UAAU,kBAAkB,CAChC,SAAiB,EACjB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,SAAS,CACvB,MAAmC,EACnC,SAAiB,UAAU;IAE3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,MAAM,CAAC,GAAG,kBAAkB,EAAC,CAAC;IAC5E,CAAC;IAED,kEAAkE;IAClE,IAAI,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACnD,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;aAChD,CAAC;QACH,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EACJ,yEAAyE;SAC1E,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAC,CAAC;IACxE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEjC,IAAI,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,UAAU,SAAS,0DAA0D,SAAS,cAAc;SAC3G,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;IAEjD,0EAA0E;IAC1E,uEAAuE;IACvE,kEAAkE;IAClE,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,QAAQ,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,wDAAwD,SAAS,EAAE,CAAC,CAAC;QAC5E,WAAW,CAAC,SAAS,CAAC,CAAC;QACvB,IAAI,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,CAAC,gEAAgE,CAAC,CAAC;YACzE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACtC,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY,SAAS,uDAAuD;aACnF,CAAC;QACH,CAAC;IACF,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC;IAC5B,IAAI,YAAgC,CAAC;IACrC,IAAI,cAAkC,CAAC;IAEvC,4EAA4E;IAC5E,iFAAiF;IACjF,6EAA6E;IAC7E,wDAAwD;IACxD,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,aAAa,EAAE,YAAY,EAAE,CAAC;YACjC,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC;YACxC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;YAC1C,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;QAC/C,CAAC;aAAM,CAAC;YACP,MAAM,EAAC,QAAQ,EAAE,WAAW,EAAC,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YACjE,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;gBAClB,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,UAAW,EAAE,MAAM,CAAC,MAAO,CAAC,CAAC;QACzE,IAAI,OAAO,IAAI,EAAE;YAAE,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAC,CAAC;QAC5D,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;QAC/B,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;QACnC,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC;QAE7B,0EAA0E;QAC1E,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,GAAG;gBACR,GAAG,MAAM;gBACT,IAAI,EAAE;oBACL,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACtB,4CAA4C;iBAC5C;aACD,CAAC;QACH,CAAC;IACF,CAAC;IAED,aAAa;IACb,MAAM,IAAI,GAAG,QAAQ;QACpB,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAC,CAAC;QAC7D,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS;YACT,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,YAAY;SAChC,CAAC,CAAC;IAEN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,gCAAgC;IAChC,aAAa,CAAC;QACb,SAAS;QACT,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,SAAS;QACT,YAAY;QACZ,cAAc;KACd,CAAC,CAAC;IAEH,MAAM,EAAC,GAAG,EAAE,KAAK,EAAC,GAAG,iBAAiB,CACrC,SAAS,EACT,MAAM,EACN,IAAI,EACJ,UAAU,EACV,MAAM,CACN,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACX,IAAI,YAAY;YAAE,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3D,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,KAAK,EAAE,EAAC,CAAC;IAC7D,CAAC;IAED,YAAY;IACZ,aAAa,CAAC;QACb,SAAS;QACT,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG;QACH,SAAS;QACT,YAAY;QACZ,cAAc;KACd,CAAC,CAAC;IAEH,4CAA4C;IAC5C,kFAAkF;IAClF,gFAAgF;IAChF,iCAAiC;IACjC,kFAAkF;IAClF,gFAAgF;IAChF,uDAAuD;IACvD,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACrD,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,IAAI,QAAQ,EAAE,CAAC;gBACd,OAAO,wBAAwB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,YAAY,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3D,OAAO,OAAO,CAAC,YAAY,IAAI,YAAY,GAAG,SAAS,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,OAAO,CAAU,OAAO,CAAC,EAAE;YACzD,SAAS,KAAK;gBACb,IAAI,OAAO,EAAE;oBAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;oBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5D,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;oBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACxB,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,WAAW,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,YAAY,IAAI,CAAC,QAAQ;gBAAE,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACxE,aAAa,CAAC,SAAS,CAAC,CAAC;YACzB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,QAAQ;oBACd,CAAC,CAAC,gFAAgF;oBAClF,CAAC,CAAC,yEAAyE;aAC5E,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,kFAAkF;QAClF,IAAI,SAAS,KAAK,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAElE,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5C,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;gBAC5B,aAAa,CAAC;oBACb,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,GAAG;oBACH,SAAS;oBACT,YAAY;oBACZ,cAAc;iBACd,CAAC,CAAC;gBACH,OAAO;oBACN,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE;wBACP,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,GAAG;wBACH,OAAO,EAAE,QAAQ;wBACjB,OAAO,EACN,wIAAwI;qBACzI;iBACD,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE;YACP,SAAS;YACT,GAAG;YACH,OAAO,EAAE,QAAQ;YACjB,OAAO,EACN,wIAAwI;YACzI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC,YAAY,EAAE,cAAc,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD;KACD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA4C;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9B,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEhC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC3B,MAAM,EAAC,OAAO,EAAE,WAAW,EAAC,GAAG,cAAc,CAC5C,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,GAAG,CACX,CAAC;QACF,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;YAC7B,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,yCAAyC,OAAO,CAAC,YAAY,kCAAkC;oBACxG,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,cAAc,EAAE,OAAO,CAAC,cAAc;iBACtC;aACD,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,EAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAC;KAChE,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACtB,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,OAAO,GAKR,EAAE,CAAC;IAER,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/B,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,EAAC,OAAO,EAAE,WAAW,EAAC,GAAG,cAAc,CAC5C,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,GAAG,CACX,CAAC;YACF,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,4DAA4D;oBACrE,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,cAAc,EAAE,OAAO,CAAC,cAAc;iBACtC,CAAC,CAAC;gBACH,SAAS;YACV,CAAC;QACF,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;IACjE,CAAC;IAED,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAC;KACnD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAA2C;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnD,+EAA+E;IAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,EAAC,QAAQ,EAAE,WAAW,EAAC,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;IAExE,iDAAiD;IACjD,MAAM,UAAU,GAAG,MAAM,EAAE,YAAY,IAAI,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,CAAC;IAEvE,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,CAAC,SAAS,aAAa,EAAC,CAAC;IAC3E,CAAC;IAED,uDAAuD;IACvD,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAElE,MAAM,EACL,KAAK,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,KAAK,EAAE,SAAS,GAChB,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAErE,IAAI,MAAc,CAAC;IACnB,IAAI,aAAiC,CAAC;IAEtC,iFAAiF;IACjF,+EAA+E;IAC/E,MAAM,aAAa,GAAG,MAAM,CAAC;IAE7B,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,GAAG,cAAc,CAAC;QACxB,aAAa,GAAG,sDAAsD,CAAC;IACxE,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACpB,MAAM,GAAG,SAAS,CAAC;IACpB,CAAC;SAAM,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;QAC7C,0EAA0E;QAC1E,IAAI,MAAM;YAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;YACnD,MAAM,GAAG,cAAc,CAAC;YACxB,aAAa,GAAG,sDAAsD,CAAC;QACxE,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,QAAQ,CAAC;YAClB,aAAa,GAAG,mEAAmE,CAAC;QACrF,CAAC;IACF,CAAC;SAAM,CAAC;QACP,qDAAqD;QACrD,IAAI,MAAM;YAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,GAAG,WAAW,CAAC;IACtB,CAAC;IAED,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE;YACP,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,GAAG,EAAE,UAAU;YACf,MAAM;YACN,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO;YACP,KAAK;YACL,KAAK,EAAE,SAAS;YAChB,UAAU;YACV,UAAU;YACV,aAAa;YACb,aAAa;SACb;KACD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAChC,MAA4C;IAE5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAC,GAAG,MAAM,eAAe,CAAC;QACxD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK;QACL,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAExE,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE;YACP,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;gBAC9C,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;gBAC9C,aAAa,EAAE,CAAC,CAAC,aAAa;aAC9B,CAAC,CAAC;YACH,KAAK;YACL,OAAO;YACP,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;SAC1B;KACD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAClC,MAA8C;IAE9C,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE;QACnD,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;KACzB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAExE,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE;YACP,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;aAC9C,CAAC,CAAC;YACH,KAAK,EAAE,QAAQ,CAAC,MAAM;SACtB;KACD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACxB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI;QACJ,SAAS,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KACxE,CAAC,CAAC,CAAC;IACJ,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE;YACP,MAAM;YACN,OAAO,EAAE,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI;SAC5D;KACD,CAAC;AACH,CAAC;AAED,qCAAqC;AAErC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,QAAgB,EAChB,MAA+B,EAC/B,MAAe;IAEf,IAAI,CAAC;QACJ,QAAQ,QAAQ,EAAE,CAAC;YAClB,KAAK,YAAY;gBAChB,OAAO,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACzD,KAAK,sBAAsB;gBAC1B,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,KAAK,kBAAkB;gBACtB,OAAO,cAAc,EAAE,CAAC;YACzB,KAAK,qBAAqB;gBACzB,OAAO,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACjE,KAAK,sBAAsB;gBAC1B,OAAO,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACnE,KAAK,wBAAwB;gBAC5B,OAAO,MAAM,oBAAoB,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,KAAK,oBAAoB;gBACxB,OAAO,gBAAgB,EAAE,CAAC;YAC3B;gBACC,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,QAAQ,EAAE,EAAC,CAAC;QAC9D,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,GAAG,CAAC,OAAO,EAAE,EAAC,CAAC;QACtE,CAAC;QACD,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAC3D,CAAC;IACH,CAAC;AACF,CAAC"}
|
|
@@ -42,6 +42,17 @@ export declare function closeSession(sessionName: string): Promise<{
|
|
|
42
42
|
export declare function closeAllSessions(): Promise<{
|
|
43
43
|
success: boolean;
|
|
44
44
|
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Walk every profile under `~/.corebrain/browser-profiles/` and remove
|
|
47
|
+
* Chromium singleton files left over from a prior process (different
|
|
48
|
+
* container hostname, or same host but the pid is gone). Safe to call only
|
|
49
|
+
* at gateway boot — within a live process, `sessionMap` is the source of
|
|
50
|
+
* truth for which profiles are in use, and Chromium manages the lock files
|
|
51
|
+
* itself.
|
|
52
|
+
*/
|
|
53
|
+
export declare function clearStaleProfileLocks(): {
|
|
54
|
+
cleared: string[];
|
|
55
|
+
};
|
|
45
56
|
export declare function getLiveSessions(): string[];
|
|
46
57
|
export {};
|
|
47
58
|
//# sourceMappingURL=browser-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-manager.d.ts","sourceRoot":"","sources":["../../src/utils/browser-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser-manager.d.ts","sourceRoot":"","sources":["../../src/utils/browser-manager.ts"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACvB,OAAO,EAAE,OAAO,YAAY,EAAE,cAAc,CAAC;IAC7C,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AA0DD,wBAAsB,kBAAkB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,UAAQ,GACZ,OAAO,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAiEpD;AAED,wBAAsB,aAAa,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACb,OAAO,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CA8DpD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAChC,WAAW,EAAE,MAAM,GACjB;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,CAQjE;AAED,wBAAsB,YAAY,CACjC,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAgB7C;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAAC,CAIpE;AAyCD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAC,CAkC5D;AAED,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
2
4
|
import { getProfileDir, getBrowserExecutable, getSessionConfig } from '../utils/browser-config.js';
|
|
3
5
|
import { gatewayLog } from '../server/gateway-log.js';
|
|
4
6
|
const sessionMap = new Map();
|
|
@@ -201,6 +203,90 @@ export async function closeAllSessions() {
|
|
|
201
203
|
await Promise.allSettled(names.map(async (name) => closeSession(name)));
|
|
202
204
|
return { success: true };
|
|
203
205
|
}
|
|
206
|
+
const SINGLETON_FILES = ['SingletonLock', 'SingletonCookie', 'SingletonSocket'];
|
|
207
|
+
/**
|
|
208
|
+
* Decide whether `profileDir` holds a stale Chromium SingletonLock. Chromium
|
|
209
|
+
* writes the lock as a symlink whose target is `<hostname>-<pid>`. If the
|
|
210
|
+
* hostname differs from ours (different container) or the pid isn't alive,
|
|
211
|
+
* the lock is left over from a prior process and Brave will refuse to launch
|
|
212
|
+
* until it's removed.
|
|
213
|
+
*/
|
|
214
|
+
function lockIsStale(profileDir) {
|
|
215
|
+
const lockPath = path.join(profileDir, 'SingletonLock');
|
|
216
|
+
let target;
|
|
217
|
+
try {
|
|
218
|
+
target = fs.readlinkSync(lockPath);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
if (err.code === 'ENOENT')
|
|
222
|
+
return false;
|
|
223
|
+
// File exists but isn't a symlink we can read — unparseable, treat as
|
|
224
|
+
// stale so we clear it rather than leave Brave wedged.
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
// Hostnames can contain hyphens (Docker uses 12-char hex which can't, but
|
|
228
|
+
// be defensive), so split from the right.
|
|
229
|
+
const dash = target.lastIndexOf('-');
|
|
230
|
+
if (dash < 0)
|
|
231
|
+
return true;
|
|
232
|
+
const host = target.slice(0, dash);
|
|
233
|
+
const pid = Number(target.slice(dash + 1));
|
|
234
|
+
if (host !== os.hostname())
|
|
235
|
+
return true;
|
|
236
|
+
if (!Number.isFinite(pid) || pid <= 0)
|
|
237
|
+
return true;
|
|
238
|
+
try {
|
|
239
|
+
process.kill(pid, 0);
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Walk every profile under `~/.corebrain/browser-profiles/` and remove
|
|
248
|
+
* Chromium singleton files left over from a prior process (different
|
|
249
|
+
* container hostname, or same host but the pid is gone). Safe to call only
|
|
250
|
+
* at gateway boot — within a live process, `sessionMap` is the source of
|
|
251
|
+
* truth for which profiles are in use, and Chromium manages the lock files
|
|
252
|
+
* itself.
|
|
253
|
+
*/
|
|
254
|
+
export function clearStaleProfileLocks() {
|
|
255
|
+
const profilesRoot = path.join(os.homedir(), '.corebrain', 'browser-profiles');
|
|
256
|
+
const cleared = [];
|
|
257
|
+
if (!fs.existsSync(profilesRoot))
|
|
258
|
+
return { cleared };
|
|
259
|
+
let entries;
|
|
260
|
+
try {
|
|
261
|
+
entries = fs.readdirSync(profilesRoot);
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
return { cleared };
|
|
265
|
+
}
|
|
266
|
+
for (const entry of entries) {
|
|
267
|
+
const profileDir = path.join(profilesRoot, entry);
|
|
268
|
+
try {
|
|
269
|
+
if (!fs.statSync(profileDir).isDirectory())
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
if (!lockIsStale(profileDir))
|
|
276
|
+
continue;
|
|
277
|
+
for (const name of SINGLETON_FILES) {
|
|
278
|
+
try {
|
|
279
|
+
fs.rmSync(path.join(profileDir, name), { force: true });
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
/* best effort */
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
cleared.push(entry);
|
|
286
|
+
gatewayLog(`browser: cleared stale profile lock for "${entry}"`);
|
|
287
|
+
}
|
|
288
|
+
return { cleared };
|
|
289
|
+
}
|
|
204
290
|
export function getLiveSessions() {
|
|
205
291
|
return [...sessionMap.keys()];
|
|
206
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-manager.js","sourceRoot":"","sources":["../../src/utils/browser-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-manager.js","sourceRoot":"","sources":["../../src/utils/browser-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/utils/coding-agents/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,qBAAqB,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/utils/coding-agents/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,qBAAqB,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAC,MAAM,SAAS,CAAC;AAiEnM,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAUpF;AAED,qBAAa,gBAAiB,SAAQ,qBAAqB;IAC1D,QAAQ,CAAC,SAAS,iBAAiB;IAEnC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAItD,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IASrE,iBAAiB,CACtB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC5B,OAAO,CAAC,eAAe,CAAC;IAyBrB,gBAAgB,CACrB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IAYtB,YAAY,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAuExE;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
|
@@ -5,10 +5,15 @@ import { createInterface } from 'node:readline';
|
|
|
5
5
|
import { BaseCodingAgentReader } from './types.js';
|
|
6
6
|
const CLAUDE_PROJECTS_DIR = join(homedir(), '.claude', 'projects');
|
|
7
7
|
/**
|
|
8
|
-
* /Users/foo/bar
|
|
8
|
+
* /Users/foo/bar → -Users-foo-bar
|
|
9
|
+
* /Users/foo/.work/bar → -Users-foo--work-bar
|
|
10
|
+
*
|
|
11
|
+
* Claude Code encodes both `/` and `.` as `-` when mapping cwd → project folder,
|
|
12
|
+
* so paths containing dot-prefixed segments (e.g. `.worktrees`) collapse to a
|
|
13
|
+
* double hyphen. Match that exactly or session lookups miss the file.
|
|
9
14
|
*/
|
|
10
15
|
function dirToProjectFolder(dir) {
|
|
11
|
-
return dir.replace(
|
|
16
|
+
return dir.replace(/[/.]/g, '-');
|
|
12
17
|
}
|
|
13
18
|
/**
|
|
14
19
|
* -Users-foo-bar → /Users/foo/bar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/utils/coding-agents/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAsJ,MAAM,SAAS,CAAC;AAEnM,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/utils/coding-agents/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAsJ,MAAM,SAAS,CAAC;AAEnM,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACzC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,IAAI,KAAK,GAAkB,IAAI,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,EAAE,GAAG,eAAe,CAAC,EAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAC,CAAC,CAAC;QACrF,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,OAAO;YAClC,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC;gBAAC,EAAE,CAAC,KAAK,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACzC,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;gBAClD,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBAChD,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;oBAClB,EAAE,CAAC,KAAK,EAAE,CAAC;gBACZ,CAAC;YACF,CAAC;YAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,SAAiB;IACrD,OAAO,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,OAAsD;IAC1E,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,4EAA4E;IAC5E,OAAO,OAAO;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;SACnB,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAuB;IAC/D,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,SAAS;QACtF,MAAM,EAAC,IAAI,EAAE,OAAO,EAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QACtC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW;YAAE,SAAS;QACtD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAA4B,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,OAAO,gBAAiB,SAAQ,qBAAqB;IACjD,SAAS,GAAG,aAAa,CAAC;IAEnC,aAAa,CAAC,GAAW,EAAE,SAAiB;QAC3C,OAAO,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAa;QAChE,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC;YACJ,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,GAAW,EACX,SAAiB,EACjB,UAA4B,EAAE;QAE9B,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC;QAClH,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC;YACJ,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAExB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,CAAC;YACJ,MAAM,EAAC,OAAO,EAAE,UAAU,EAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC9E,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAC,CAAC;QAC7G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO;gBACN,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa;gBAC5F,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;aACzE,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,GAAW,EACX,SAAiB,EACjB,UAA4B,EAAE;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO;YACN,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,KAAK,EAAE,MAAM,CAAC,KAAK;SACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAuB,EAAE;QAC3C,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAAE,OAAO,EAAE,CAAC;QAEhD,IAAI,cAAwB,CAAC;QAC7B,IAAI,CAAC;YACJ,cAAc,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;QAED,8EAA8E;QAC9E,+EAA+E;QAC/E,6EAA6E;QAC7E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5E,MAAM,OAAO,GAAqB,EAAE,CAAC;QAErC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,cAAc,IAAI,MAAM,KAAK,cAAc;gBAAE,SAAS;YAE1D,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;YACtD,IAAI,KAAe,CAAC;YACpB,IAAI,CAAC;gBACJ,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,KAAK,CAAC;gBACV,IAAI,CAAC;oBACJ,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACR,SAAS;gBACV,CAAC;gBAED,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK;oBAAE,SAAS;gBAE7D,OAAO,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;oBACnC,KAAK,EAAE,IAAI,CAAC,SAAS;oBACrB,GAAG,EAAE,WAAW,EAAE,kDAAkD;oBACpE,KAAK,EAAE,IAAI;oBACX,QAAQ;oBACR,aAAa,EAAE,KAAK,CAAC,IAAI;oBACzB,SAAS,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO;oBAC7C,SAAS,EAAE,KAAK,CAAC,OAAO;oBACxB,SAAS,EAAE,CAAC;iBACZ,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAElD,0EAA0E;QAC1E,8EAA8E;QAC9E,qCAAqC;QACrC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACtC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC5B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC7B,CAAC,CAAC;YACH,IAAI,GAAG;gBAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;YACrB,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC,CAAC;QAEJ,oFAAoF;QACpF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7E,CAAC;CACD;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -1 +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,
|
|
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,CAmL3C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { existsSync,
|
|
2
|
+
import { existsSync, statSync } from 'node:fs';
|
|
3
3
|
import { resolve } from 'node:path';
|
|
4
4
|
import { updateConfig, getConfig } from '../config/index.js';
|
|
5
5
|
import { getPreferences, updatePreferences } from '../config/preferences.js';
|
|
@@ -98,14 +98,19 @@ export function bootstrapFromEnv() {
|
|
|
98
98
|
// as a coding+files+exec folder so a brand-new container is immediately
|
|
99
99
|
// usable from the webapp's "New coding session" dialog without the user
|
|
100
100
|
// having to add a folder manually.
|
|
101
|
+
//
|
|
102
|
+
// We store the env-supplied path as-is (e.g. `/app`) instead of its
|
|
103
|
+
// realpath. On Railway the workspace is a symlink to `/mnt/volume/...`
|
|
104
|
+
// so the volume persists across restarts, but `/app` is the form the
|
|
105
|
+
// terminal prompt and tooling use — that's what should appear in the UI.
|
|
101
106
|
const foldersPatch = {};
|
|
102
107
|
if (defaultWorkspace && existsSync(defaultWorkspace)) {
|
|
103
108
|
try {
|
|
104
|
-
const
|
|
105
|
-
if (statSync(
|
|
109
|
+
const inputPath = resolve(defaultWorkspace);
|
|
110
|
+
if (statSync(inputPath).isDirectory()) {
|
|
106
111
|
const existingFolders = existing.folders ?? [];
|
|
107
|
-
if (!existingFolders.some(f => f.path ===
|
|
108
|
-
const baseName =
|
|
112
|
+
if (!existingFolders.some(f => f.path === inputPath)) {
|
|
113
|
+
const baseName = inputPath.split('/').filter(Boolean).pop() ?? 'app';
|
|
109
114
|
let name = baseName;
|
|
110
115
|
for (let i = 2; existingFolders.some(f => f.name === name); i++) {
|
|
111
116
|
name = `${baseName}-${i}`;
|
|
@@ -115,12 +120,12 @@ export function bootstrapFromEnv() {
|
|
|
115
120
|
{
|
|
116
121
|
id: `fld_${randomUUID()}`,
|
|
117
122
|
name,
|
|
118
|
-
path:
|
|
123
|
+
path: inputPath,
|
|
119
124
|
scopes: ['files', 'coding', 'exec'],
|
|
120
|
-
gitRepo: existsSync(`${
|
|
125
|
+
gitRepo: existsSync(`${inputPath}/.git`),
|
|
121
126
|
},
|
|
122
127
|
];
|
|
123
|
-
applied.push(`folder:${name}=${
|
|
128
|
+
applied.push(`folder:${name}=${inputPath}`);
|
|
124
129
|
}
|
|
125
130
|
}
|
|
126
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-bootstrap.js","sourceRoot":"","sources":["../../src/utils/env-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"env-bootstrap.js","sourceRoot":"","sources":["../../src/utils/env-bootstrap.ts"],"names":[],"mappings":"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"}
|