@redplanethq/corebrain 2.8.26 → 2.8.28
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/server/api/auth.d.ts +18 -2
- package/dist/server/api/auth.d.ts.map +1 -1
- package/dist/server/api/auth.js +83 -3
- package/dist/server/api/auth.js.map +1 -1
- package/dist/server/api/manifest-builder.d.ts.map +1 -1
- package/dist/server/api/manifest-builder.js +4 -0
- package/dist/server/api/manifest-builder.js.map +1 -1
- package/dist/server/coding-session-watcher.d.ts.map +1 -1
- package/dist/server/coding-session-watcher.js +23 -4
- package/dist/server/coding-session-watcher.js.map +1 -1
- package/dist/utils/agent-templates.d.ts.map +1 -1
- package/dist/utils/agent-templates.js +8 -13
- package/dist/utils/agent-templates.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,10 +8,26 @@ export declare function generateSecurityKey(): string;
|
|
|
8
8
|
export declare function verifySecurityKey(rawToken: string | undefined): boolean;
|
|
9
9
|
/** Extract the bearer token from an Authorization header, or null. */
|
|
10
10
|
export declare function extractBearer(header: string | undefined): string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Verify a short-lived xterm WS ticket. Ticket format:
|
|
13
|
+
*
|
|
14
|
+
* base64url(JSON({sid, exp})) "." base64url(HMAC-SHA256(hmacKey, payload))
|
|
15
|
+
*
|
|
16
|
+
* `hmacKey` is the gateway's stored `securityKeyHash` (hex string of
|
|
17
|
+
* sha256(rawKey)) — the webapp recomputes the same value from the raw key it
|
|
18
|
+
* decrypted from its DB, so both sides arrive at the same MAC key without
|
|
19
|
+
* having to share a separate secret.
|
|
20
|
+
*
|
|
21
|
+
* The ticket is bound to a single PTY: the caller must pass the `session_id`
|
|
22
|
+
* the WS is attaching to so we can reject tickets minted for a different
|
|
23
|
+
* session. Expiry is checked with a small (+5s) skew tolerance.
|
|
24
|
+
*/
|
|
25
|
+
export declare function verifyTicket(rawTicket: string | undefined, sessionId: string): boolean;
|
|
11
26
|
/**
|
|
12
27
|
* Fastify onRequest hook. Skips authentication for paths in `skip`
|
|
13
|
-
* (e.g. `/healthz/public`).
|
|
14
|
-
*
|
|
28
|
+
* (e.g. `/healthz/public`). On `TICKET_PATHS` requests may authenticate
|
|
29
|
+
* via `?ticket=…&session_id=…`; every other request must present a valid
|
|
30
|
+
* Bearer securityKey — there is no loopback bypass.
|
|
15
31
|
*/
|
|
16
32
|
export declare function makeAuthHook(skip?: string[]): (req: FastifyRequest, reply: FastifyReply) => Promise<void>;
|
|
17
33
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/server/api/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAG1D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQvE;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAGvE;AAED
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/server/api/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAG1D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQvE;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAGvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC3B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GACf,OAAO,CAoCT;AAWD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAM,EAAwB,IACjC,KAAK,cAAc,EAAE,OAAO,YAAY,mBAyBvE"}
|
package/dist/server/api/auth.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createHash, timingSafeEqual, randomBytes } from 'node:crypto';
|
|
1
|
+
import { createHash, createHmac, timingSafeEqual, randomBytes } from 'node:crypto';
|
|
2
2
|
import { getPreferences } from '../../config/preferences.js';
|
|
3
3
|
export function hashKey(key) {
|
|
4
4
|
return createHash('sha256').update(key).digest('hex');
|
|
@@ -27,15 +27,95 @@ export function extractBearer(header) {
|
|
|
27
27
|
return null;
|
|
28
28
|
return header.slice('Bearer '.length).trim();
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Verify a short-lived xterm WS ticket. Ticket format:
|
|
32
|
+
*
|
|
33
|
+
* base64url(JSON({sid, exp})) "." base64url(HMAC-SHA256(hmacKey, payload))
|
|
34
|
+
*
|
|
35
|
+
* `hmacKey` is the gateway's stored `securityKeyHash` (hex string of
|
|
36
|
+
* sha256(rawKey)) — the webapp recomputes the same value from the raw key it
|
|
37
|
+
* decrypted from its DB, so both sides arrive at the same MAC key without
|
|
38
|
+
* having to share a separate secret.
|
|
39
|
+
*
|
|
40
|
+
* The ticket is bound to a single PTY: the caller must pass the `session_id`
|
|
41
|
+
* the WS is attaching to so we can reject tickets minted for a different
|
|
42
|
+
* session. Expiry is checked with a small (+5s) skew tolerance.
|
|
43
|
+
*/
|
|
44
|
+
export function verifyTicket(rawTicket, sessionId) {
|
|
45
|
+
if (!rawTicket || !sessionId)
|
|
46
|
+
return false;
|
|
47
|
+
const hmacKey = getPreferences().gateway?.securityKeyHash;
|
|
48
|
+
if (!hmacKey)
|
|
49
|
+
return false;
|
|
50
|
+
const dot = rawTicket.indexOf('.');
|
|
51
|
+
if (dot <= 0 || dot === rawTicket.length - 1)
|
|
52
|
+
return false;
|
|
53
|
+
const payloadB64 = rawTicket.slice(0, dot);
|
|
54
|
+
const sigB64 = rawTicket.slice(dot + 1);
|
|
55
|
+
const expected = createHmac('sha256', hmacKey).update(payloadB64).digest();
|
|
56
|
+
let provided;
|
|
57
|
+
try {
|
|
58
|
+
provided = Buffer.from(sigB64, 'base64url');
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if (provided.length !== expected.length)
|
|
64
|
+
return false;
|
|
65
|
+
if (!timingSafeEqual(provided, expected))
|
|
66
|
+
return false;
|
|
67
|
+
let payload;
|
|
68
|
+
try {
|
|
69
|
+
payload = JSON.parse(Buffer.from(payloadB64, 'base64url').toString('utf8'));
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (typeof payload.sid !== 'string' || typeof payload.exp !== 'number') {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
if (payload.sid !== sessionId)
|
|
78
|
+
return false;
|
|
79
|
+
// 5s skew tolerance for clock drift between webapp and gateway hosts.
|
|
80
|
+
if (payload.exp + 5_000 < Date.now())
|
|
81
|
+
return false;
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Paths where `?ticket=…` is accepted in lieu of `Authorization: Bearer`.
|
|
86
|
+
* Kept tiny and explicit — the ticket auth path is only for browser-direct
|
|
87
|
+
* WebSocket attaches; every other route still requires the full security key.
|
|
88
|
+
*/
|
|
89
|
+
const TICKET_PATHS = new Set([
|
|
90
|
+
'/api/coding/coding_xterm_session',
|
|
91
|
+
]);
|
|
30
92
|
/**
|
|
31
93
|
* Fastify onRequest hook. Skips authentication for paths in `skip`
|
|
32
|
-
* (e.g. `/healthz/public`).
|
|
33
|
-
*
|
|
94
|
+
* (e.g. `/healthz/public`). On `TICKET_PATHS` requests may authenticate
|
|
95
|
+
* via `?ticket=…&session_id=…`; every other request must present a valid
|
|
96
|
+
* Bearer securityKey — there is no loopback bypass.
|
|
34
97
|
*/
|
|
35
98
|
export function makeAuthHook(skip = ['/healthz/public']) {
|
|
36
99
|
return async function authHook(req, reply) {
|
|
37
100
|
if (skip.some((s) => req.url === s || req.url.startsWith(s + '?')))
|
|
38
101
|
return;
|
|
102
|
+
// Ticket auth for the browser-direct xterm WS. A request that targets
|
|
103
|
+
// a TICKET_PATH and supplies `?ticket=…` is verified via HMAC instead
|
|
104
|
+
// of Bearer — the browser never sees the gateway's raw securityKey.
|
|
105
|
+
const pathOnly = req.url.split('?')[0] ?? req.url;
|
|
106
|
+
if (TICKET_PATHS.has(pathOnly)) {
|
|
107
|
+
const q = req.query;
|
|
108
|
+
if (q?.ticket) {
|
|
109
|
+
if (verifyTicket(q.ticket, q.session_id ?? ''))
|
|
110
|
+
return;
|
|
111
|
+
reply.code(401).send({
|
|
112
|
+
ok: false,
|
|
113
|
+
error: { code: 'UNAUTHORIZED', message: 'invalid or expired ticket' },
|
|
114
|
+
});
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
// no ticket present → fall through to Bearer (legacy webapp proxy path)
|
|
118
|
+
}
|
|
39
119
|
const token = extractBearer(req.headers['authorization']);
|
|
40
120
|
if (!verifySecurityKey(token ?? undefined)) {
|
|
41
121
|
reply.code(401).send({ ok: false, error: { code: 'UNAUTHORIZED', message: 'invalid or missing security key' } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/server/api/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,eAAe,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/server/api/auth.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;AAsHhE;;;;;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,
|
|
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;AAsHhE;;;;;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,CA8DlE"}
|
|
@@ -169,6 +169,10 @@ export function buildManifest() {
|
|
|
169
169
|
enabled: isSlotEnabled(slots, 'browser'),
|
|
170
170
|
engines: ['chromium'],
|
|
171
171
|
},
|
|
172
|
+
// Browser-direct xterm via HMAC tickets is available whenever the
|
|
173
|
+
// coding slot is on (that's where the xterm WS route lives). When
|
|
174
|
+
// off, the webapp falls back to its proxy path.
|
|
175
|
+
directXterm: isSlotEnabled(slots, 'coding'),
|
|
172
176
|
},
|
|
173
177
|
folders: listFolders(),
|
|
174
178
|
tools,
|
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-session-watcher.d.ts","sourceRoot":"","sources":["../../src/server/coding-session-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAoDH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"coding-session-watcher.d.ts","sourceRoot":"","sources":["../../src/server/coding-session-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAoDH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ,GAAG,IAAI,CAyGP;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAuBhE"}
|
|
@@ -85,17 +85,20 @@ export function startCodingSessionWatcher(args) {
|
|
|
85
85
|
stopping: false,
|
|
86
86
|
};
|
|
87
87
|
watched.set(args.sessionId, entry);
|
|
88
|
+
gatewayLog(`coding-watch: started sessionId=${args.sessionId} agent=${args.agentName} file=${filePath}`);
|
|
88
89
|
// Watch the parent directory and filter by basename. Watching the
|
|
89
90
|
// dir (not the file) handles: file doesn't exist yet, agent uses
|
|
90
91
|
// temp+rename for atomic writes, file gets replaced.
|
|
91
92
|
const parentDir = dirname(filePath);
|
|
92
93
|
const targetBasename = basename(filePath);
|
|
93
94
|
try {
|
|
94
|
-
entry.watcher = fsWatch(parentDir, { persistent: false }, (
|
|
95
|
+
entry.watcher = fsWatch(parentDir, { persistent: false }, (event, name) => {
|
|
95
96
|
if (name && name !== targetBasename)
|
|
96
97
|
return;
|
|
98
|
+
gatewayLog(`coding-watch: fs event sessionId=${args.sessionId} event=${event} name=${name ?? '(null)'}`);
|
|
97
99
|
scheduleTick(entry, 'watch');
|
|
98
100
|
});
|
|
101
|
+
gatewayLog(`coding-watch: fs.watch attached sessionId=${args.sessionId} dir=${parentDir} basename=${targetBasename}`);
|
|
99
102
|
}
|
|
100
103
|
catch (err) {
|
|
101
104
|
gatewayLog(`coding-watch: fs.watch failed for ${parentDir} err=${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -107,6 +110,7 @@ export function startCodingSessionWatcher(args) {
|
|
|
107
110
|
entry.mtimePoll = setInterval(() => {
|
|
108
111
|
const mtime = safeMtime(entry.filePath);
|
|
109
112
|
if (mtime > entry.lastMtimeMs) {
|
|
113
|
+
gatewayLog(`coding-watch: mtime change sessionId=${args.sessionId} prev=${entry.lastMtimeMs} cur=${mtime}`);
|
|
110
114
|
scheduleTick(entry, 'mtime');
|
|
111
115
|
}
|
|
112
116
|
}, MTIME_POLL_MS);
|
|
@@ -171,6 +175,7 @@ function flushAndStop(sessionId) {
|
|
|
171
175
|
const entry = watched.get(sessionId);
|
|
172
176
|
if (!entry)
|
|
173
177
|
return;
|
|
178
|
+
gatewayLog(`coding-watch: pty exit sessionId=${sessionId}, flushing final tick`);
|
|
174
179
|
if (entry.debounceTimer) {
|
|
175
180
|
clearTimeout(entry.debounceTimer);
|
|
176
181
|
entry.debounceTimer = null;
|
|
@@ -208,9 +213,11 @@ async function tick(entry, source) {
|
|
|
208
213
|
// re-firing on the same change.
|
|
209
214
|
entry.lastMtimeMs = safeMtime(entry.filePath);
|
|
210
215
|
const status = deriveStatus({ running, fileExists, turns });
|
|
216
|
+
gatewayLog(`coding-watch: tick sessionId=${entry.sessionId} src=${source} status=${status} prev=${entry.lastStatus} turns=${turns.length} running=${running} fileExists=${fileExists}`);
|
|
211
217
|
// working → idle (and initializing → idle) = assistant finished
|
|
212
218
|
// responding. The only edge we care about.
|
|
213
219
|
if (status === 'idle' && entry.lastStatus !== 'idle') {
|
|
220
|
+
gatewayLog(`coding-watch: transition ${entry.lastStatus}→idle sessionId=${entry.sessionId}, posting turn_ended`);
|
|
214
221
|
postTurnEnded(entry.sessionId).catch(err => {
|
|
215
222
|
gatewayLog(`coding-watch: post failed sessionId=${entry.sessionId} err=${err instanceof Error ? err.message : String(err)}`);
|
|
216
223
|
});
|
|
@@ -276,13 +283,18 @@ async function postTurnEnded(sessionId) {
|
|
|
276
283
|
// Gateway never logged in — silently skip. Headless gateways
|
|
277
284
|
// without a configured webapp are still valid: they just don't
|
|
278
285
|
// get the task-description update side-effect.
|
|
286
|
+
gatewayLog(`coding-watch: skip post sessionId=${sessionId} reason=no_auth url=${url ?? '(missing)'} apiKey=${apiKey ? '(set)' : '(missing)'}`);
|
|
279
287
|
return;
|
|
280
288
|
}
|
|
281
289
|
const prefs = getPreferences();
|
|
282
290
|
const baseUrl = prefs.gateway?.httpBaseUrl;
|
|
283
|
-
if (!baseUrl)
|
|
291
|
+
if (!baseUrl) {
|
|
292
|
+
gatewayLog(`coding-watch: skip post sessionId=${sessionId} reason=no_baseUrl`);
|
|
284
293
|
return;
|
|
294
|
+
}
|
|
285
295
|
const endpoint = `${url.replace(/\/+$/, '')}/api/v1/internal/coding-events`;
|
|
296
|
+
const sanitizedBaseUrl = baseUrl.replace(/\/+$/, '');
|
|
297
|
+
gatewayLog(`coding-watch: posting turn_ended sessionId=${sessionId} endpoint=${endpoint} baseUrl=${sanitizedBaseUrl}`);
|
|
286
298
|
const controller = new AbortController();
|
|
287
299
|
const timeout = setTimeout(() => controller.abort(), 8_000);
|
|
288
300
|
try {
|
|
@@ -294,16 +306,23 @@ async function postTurnEnded(sessionId) {
|
|
|
294
306
|
},
|
|
295
307
|
body: JSON.stringify({
|
|
296
308
|
kind: 'turn_ended',
|
|
297
|
-
baseUrl:
|
|
309
|
+
baseUrl: sanitizedBaseUrl,
|
|
298
310
|
sessionId,
|
|
299
311
|
at: new Date().toISOString(),
|
|
300
312
|
}),
|
|
301
313
|
signal: controller.signal,
|
|
302
314
|
});
|
|
315
|
+
const bodyText = await res.text().catch(() => '');
|
|
303
316
|
if (!res.ok) {
|
|
304
|
-
gatewayLog(`coding-watch: post turn_ended status=${res.status} sessionId=${sessionId}`);
|
|
317
|
+
gatewayLog(`coding-watch: post turn_ended FAILED status=${res.status} sessionId=${sessionId} body=${bodyText.slice(0, 200)}`);
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
gatewayLog(`coding-watch: post turn_ended OK status=${res.status} sessionId=${sessionId}`);
|
|
305
321
|
}
|
|
306
322
|
}
|
|
323
|
+
catch (err) {
|
|
324
|
+
gatewayLog(`coding-watch: post turn_ended threw sessionId=${sessionId} err=${err instanceof Error ? err.message : String(err)}`);
|
|
325
|
+
}
|
|
307
326
|
finally {
|
|
308
327
|
clearTimeout(timeout);
|
|
309
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-session-watcher.js","sourceRoot":"","sources":["../../src/server/coding-session-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAC,KAAK,IAAI,OAAO,EAAE,QAAQ,EAAiB,MAAM,SAAS,CAAC;AACnE,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACN,cAAc,EACd,qBAAqB,GAErB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD;wDACwD;AACxD,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;sCACsC;AACtC,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B;;uBAEuB;AACvB,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B,yDAAyD;AACzD,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAoBnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;AAElD,MAAM,UAAU,yBAAyB,CAAC,IAIzC;IACA,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO;IAExC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,UAAU,CACT,sCAAsC,IAAI,CAAC,SAAS,aAAa,CACjE,CAAC;QACF,OAAO;IACR,CAAC;IAED,qEAAqE;IACrE,iEAAiE;IACjE,sEAAsE;IACtE,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,UAAU,CACT,kDAAkD,IAAI,CAAC,SAAS,YAAY,CAC5E,CAAC;QACF,OAAO;IACR,CAAC;IAED,MAAM,KAAK,GAAmB;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ;QACR,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC;QAChC,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;KACf,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEnC,kEAAkE;IAClE,iEAAiE;IACjE,qDAAqD;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC;QACJ,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,EAAC,UAAU,EAAE,KAAK,EAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"coding-session-watcher.js","sourceRoot":"","sources":["../../src/server/coding-session-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-templates.d.ts","sourceRoot":"","sources":["../../src/utils/agent-templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;CACjD;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"agent-templates.d.ts","sourceRoot":"","sources":["../../src/utils/agent-templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;CACjD;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EA2C1C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYzD"}
|
|
@@ -35,20 +35,15 @@ export const AGENT_TEMPLATES = [
|
|
|
35
35
|
{
|
|
36
36
|
name: 'opencode',
|
|
37
37
|
commands: ['opencode'],
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
38
|
+
// Always launch the bare TUI inside the PTY — that's the only mode the
|
|
39
|
+
// gateway uses (xterm session and coding_ask both run in an interactive
|
|
40
|
+
// PTY). Resume uses `--session <id>` to reattach to a specific session.
|
|
41
|
+
// sessionMode:'existing' means opencode assigns its own session ID which
|
|
42
|
+
// we discover from its SQLite database after spawn via
|
|
43
|
+
// findLatestOpenCodeSession.
|
|
44
44
|
defaultConfig: {
|
|
45
|
-
args: [
|
|
46
|
-
resumeArgs: [
|
|
47
|
-
'run',
|
|
48
|
-
'--dangerously-skip-permissions',
|
|
49
|
-
'--session',
|
|
50
|
-
'{sessionId}',
|
|
51
|
-
],
|
|
45
|
+
args: [],
|
|
46
|
+
resumeArgs: ['--session', '{sessionId}'],
|
|
52
47
|
sessionMode: 'existing',
|
|
53
48
|
modelArg: '--model',
|
|
54
49
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-templates.js","sourceRoot":"","sources":["../../src/utils/agent-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AASnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC/C;QACC,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,aAAa,EAAE;YACd,IAAI,EAAE,CAAC,gCAAgC,CAAC;YACxC,UAAU,EAAE,CAAC,gCAAgC,EAAE,UAAU,EAAE,aAAa,CAAC;YACzE,UAAU,EAAE,cAAc;YAC1B,WAAW,EAAE,QAAQ;YACrB,eAAe,EAAE,CAAC,YAAY,CAAC;SAC/B;KACD;IACD;QACC,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,CAAC,OAAO,CAAC;QACnB,oEAAoE;QACpE,oEAAoE;QACpE,qEAAqE;QACrE,2DAA2D;QAC3D,aAAa,EAAE;YACd,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;YACrC,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,SAAS;SACnB;KACD;IACD;QACC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,
|
|
1
|
+
{"version":3,"file":"agent-templates.js","sourceRoot":"","sources":["../../src/utils/agent-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AASnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC/C;QACC,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,aAAa,EAAE;YACd,IAAI,EAAE,CAAC,gCAAgC,CAAC;YACxC,UAAU,EAAE,CAAC,gCAAgC,EAAE,UAAU,EAAE,aAAa,CAAC;YACzE,UAAU,EAAE,cAAc;YAC1B,WAAW,EAAE,QAAQ;YACrB,eAAe,EAAE,CAAC,YAAY,CAAC;SAC/B;KACD;IACD;QACC,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,CAAC,OAAO,CAAC;QACnB,oEAAoE;QACpE,oEAAoE;QACpE,qEAAqE;QACrE,2DAA2D;QAC3D,aAAa,EAAE;YACd,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;YACrC,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,SAAS;SACnB;KACD;IACD;QACC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,uDAAuD;QACvD,6BAA6B;QAC7B,aAAa,EAAE;YACd,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;YACxC,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,SAAS;SACnB;KACD;CACD,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,EAAE,CAAC,EAAE;YAChE,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,IAAI,IAAI,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
|