codekin 0.6.0 → 0.6.1
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/README.md +7 -4
- package/dist/assets/index-BNU7FIQx.css +1 -0
- package/dist/assets/index-k7mgzd5O.js +182 -0
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/server/dist/docs-routes.js +12 -5
- package/server/dist/docs-routes.js.map +1 -1
- package/server/dist/native-permissions.js +1 -1
- package/server/dist/native-permissions.js.map +1 -1
- package/server/dist/opencode-process.d.ts +16 -0
- package/server/dist/opencode-process.js +164 -7
- package/server/dist/opencode-process.js.map +1 -1
- package/server/dist/orchestrator-reports.js +9 -4
- package/server/dist/orchestrator-reports.js.map +1 -1
- package/server/dist/prompt-router.js +4 -0
- package/server/dist/prompt-router.js.map +1 -1
- package/server/dist/session-lifecycle.js +52 -9
- package/server/dist/session-lifecycle.js.map +1 -1
- package/server/dist/session-manager.js +26 -5
- package/server/dist/session-manager.js.map +1 -1
- package/server/dist/session-persistence.js +3 -0
- package/server/dist/session-persistence.js.map +1 -1
- package/server/dist/session-restart-scheduler.d.ts +9 -2
- package/server/dist/session-restart-scheduler.js +14 -2
- package/server/dist/session-restart-scheduler.js.map +1 -1
- package/server/dist/session-routes.js +2 -2
- package/server/dist/session-routes.js.map +1 -1
- package/server/dist/tsconfig.tsbuildinfo +1 -1
- package/server/dist/types.d.ts +10 -0
- package/server/dist/ws-server.js +44 -13
- package/server/dist/ws-server.js.map +1 -1
- package/server/workflows/pr-review.md +27 -0
- package/dist/assets/index-BvKzbtKg.css +0 -1
- package/dist/assets/index-D59Xr9pK.js +0 -182
package/dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
7
7
|
<title>Codekin</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-k7mgzd5O.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BNU7FIQx.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body class="bg-neutral-12 text-neutral-2">
|
|
12
12
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codekin",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"licenseNotes": "dompurify is dual-licensed (MPL-2.0 OR Apache-2.0); both are permissively compatible with MIT for library use. lightningcss (MPL-2.0) is a build-time-only dependency used by TailwindCSS and is not included in distributed artifacts.",
|
|
6
6
|
"author": "multiplier-labs",
|
|
@@ -96,7 +96,7 @@ export function createDocsRouter(verifyToken, extractToken) {
|
|
|
96
96
|
if (!allowedRoots.some(root => realRepo.startsWith(root + '/') || realRepo === root)) {
|
|
97
97
|
return res.status(403).json({ error: 'Access denied' });
|
|
98
98
|
}
|
|
99
|
-
const mdFiles = findMarkdownFiles(
|
|
99
|
+
const mdFiles = findMarkdownFiles(realRepo, 3);
|
|
100
100
|
const pinnedSet = new Set(PINNED_FILES.map(f => f.toLowerCase()));
|
|
101
101
|
const pinned = [];
|
|
102
102
|
const rest = [];
|
|
@@ -143,10 +143,17 @@ export function createDocsRouter(verifyToken, extractToken) {
|
|
|
143
143
|
if (extname(filePath).toLowerCase() !== '.md') {
|
|
144
144
|
return res.status(400).json({ error: 'Only .md files are supported' });
|
|
145
145
|
}
|
|
146
|
-
// Path traversal guard
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
// Path traversal guard — dereference symlinks to prevent escape
|
|
147
|
+
let resolved;
|
|
148
|
+
let realRepo;
|
|
149
|
+
try {
|
|
150
|
+
resolved = realpathSync(resolve(repoPath, filePath));
|
|
151
|
+
realRepo = realpathSync(resolve(repoPath));
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return res.status(404).json({ error: 'File not found' });
|
|
155
|
+
}
|
|
156
|
+
if (!resolved.startsWith(realRepo + '/') && resolved !== realRepo) {
|
|
150
157
|
return res.status(404).json({ error: 'File not found' });
|
|
151
158
|
}
|
|
152
159
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-routes.js","sourceRoot":"","sources":["../docs-routes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"docs-routes.js","sourceRoot":"","sources":["../docs-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ const writeLocks = new Map();
|
|
|
15
15
|
/** Acquire a per-repo write lock. All sessions share one Node process. */
|
|
16
16
|
function withLock(repoDir, fn) {
|
|
17
17
|
const prev = writeLocks.get(repoDir) ?? Promise.resolve();
|
|
18
|
-
const next = prev.then(fn
|
|
18
|
+
const next = prev.catch(() => { }).then(fn);
|
|
19
19
|
writeLocks.set(repoDir, next);
|
|
20
20
|
// Clean up the reference once done so we don't leak memory
|
|
21
21
|
void next.then(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-permissions.js","sourceRoot":"","sources":["../native-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,iFAAiF;AACjF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAA;AAEnD,0EAA0E;AAC1E,SAAS,QAAQ,CAAC,OAAe,EAAE,EAAuB;IACxD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"native-permissions.js","sourceRoot":"","sources":["../native-permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,20 @@ export declare class OpenCodeProcess extends EventEmitter<ClaudeProcessEvents> i
|
|
|
64
64
|
private tasks;
|
|
65
65
|
private turnComplete;
|
|
66
66
|
private taskSeq;
|
|
67
|
+
/** Whether we've received streaming delta events this turn (to avoid double-emitting text). */
|
|
68
|
+
private receivedDeltas;
|
|
69
|
+
/** Whether we've already emitted text via message.part.updated (to avoid re-emitting from message.updated). */
|
|
70
|
+
private emittedPartText;
|
|
71
|
+
/** Last user input text — used to detect and strip user echo from assistant deltas. */
|
|
72
|
+
private lastUserInput;
|
|
73
|
+
/** Buffer for initial text deltas — held until we can check for user echo prefix. */
|
|
74
|
+
private deltaBuffer;
|
|
75
|
+
/** Whether the delta buffer has been flushed (user echo check complete). */
|
|
76
|
+
private deltaBufferFlushed;
|
|
77
|
+
/** Accumulated reasoning delta text for emitting thinking summaries during streaming. */
|
|
78
|
+
private reasoningBuffer;
|
|
79
|
+
/** Whether we've already emitted a thinking summary from reasoning deltas. */
|
|
80
|
+
private emittedReasoningSummary;
|
|
67
81
|
constructor(workingDir: string, opts?: Partial<OpenCodeProcessOptions>);
|
|
68
82
|
/** Connect to the OpenCode server, create a session, and subscribe to SSE events. */
|
|
69
83
|
start(): void;
|
|
@@ -77,6 +91,8 @@ export declare class OpenCodeProcess extends EventEmitter<ClaudeProcessEvents> i
|
|
|
77
91
|
* cross-session leakage on the shared SSE stream.
|
|
78
92
|
*/
|
|
79
93
|
private isOwnSession;
|
|
94
|
+
/** Flush any buffered text deltas that haven't been emitted yet (e.g. turn ended before buffer threshold). */
|
|
95
|
+
private flushDeltaBuffer;
|
|
80
96
|
/** Map an OpenCode SSE event to CodingProcess events. */
|
|
81
97
|
private handleSSEEvent;
|
|
82
98
|
/** Reply to an OpenCode permission request via HTTP. */
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
import { EventEmitter } from 'events';
|
|
19
19
|
import { spawn } from 'child_process';
|
|
20
20
|
import { randomUUID } from 'crypto';
|
|
21
|
+
import { readFileSync, existsSync } from 'fs';
|
|
22
|
+
import { extname } from 'path';
|
|
21
23
|
import { OPENCODE_CAPABILITIES } from './coding-process.js';
|
|
22
24
|
import { summarizeToolInput } from './tool-labels.js';
|
|
23
25
|
const serverState = {
|
|
@@ -52,13 +54,19 @@ async function startOpenCodeServer(workingDir) {
|
|
|
52
54
|
// Pick a port in the ephemeral range
|
|
53
55
|
serverState.port = 14096 + Math.floor(Math.random() * 1000);
|
|
54
56
|
serverState.password = randomUUID();
|
|
57
|
+
// Strip API keys and GIT_* vars (except GIT_EDITOR) — same filtering as
|
|
58
|
+
// claude-process.ts. GIT_INDEX_FILE=.git/index breaks worktrees where
|
|
59
|
+
// .git is a file, and stale API keys override OpenCode's own auth.
|
|
60
|
+
const API_KEY_VARS = new Set(['ANTHROPIC_API_KEY', 'CLAUDE_CODE_API_KEY', 'AUTH_TOKEN', 'AUTH_TOKEN_FILE']);
|
|
55
61
|
const env = {
|
|
56
|
-
...Object.fromEntries(Object.entries(process.env).filter((entry) => entry[1] != null
|
|
62
|
+
...Object.fromEntries(Object.entries(process.env).filter((entry) => entry[1] != null &&
|
|
63
|
+
!API_KEY_VARS.has(entry[0]) &&
|
|
64
|
+
(!entry[0].startsWith('GIT_') || entry[0] === 'GIT_EDITOR'))),
|
|
57
65
|
OPENCODE_SERVER_PASSWORD: serverState.password,
|
|
58
66
|
};
|
|
59
67
|
const proc = spawn('opencode', ['serve', '--port', String(serverState.port)], {
|
|
60
68
|
cwd: workingDir,
|
|
61
|
-
stdio:
|
|
69
|
+
stdio: 'ignore', // prevents buffer deadlock — pipes were never drained
|
|
62
70
|
env,
|
|
63
71
|
});
|
|
64
72
|
serverState.process = proc;
|
|
@@ -154,6 +162,20 @@ export class OpenCodeProcess extends EventEmitter {
|
|
|
154
162
|
tasks = new Map();
|
|
155
163
|
turnComplete = false;
|
|
156
164
|
taskSeq = 0;
|
|
165
|
+
/** Whether we've received streaming delta events this turn (to avoid double-emitting text). */
|
|
166
|
+
receivedDeltas = false;
|
|
167
|
+
/** Whether we've already emitted text via message.part.updated (to avoid re-emitting from message.updated). */
|
|
168
|
+
emittedPartText = false;
|
|
169
|
+
/** Last user input text — used to detect and strip user echo from assistant deltas. */
|
|
170
|
+
lastUserInput = '';
|
|
171
|
+
/** Buffer for initial text deltas — held until we can check for user echo prefix. */
|
|
172
|
+
deltaBuffer = '';
|
|
173
|
+
/** Whether the delta buffer has been flushed (user echo check complete). */
|
|
174
|
+
deltaBufferFlushed = false;
|
|
175
|
+
/** Accumulated reasoning delta text for emitting thinking summaries during streaming. */
|
|
176
|
+
reasoningBuffer = '';
|
|
177
|
+
/** Whether we've already emitted a thinking summary from reasoning deltas. */
|
|
178
|
+
emittedReasoningSummary = false;
|
|
157
179
|
constructor(workingDir, opts) {
|
|
158
180
|
super();
|
|
159
181
|
this.workingDir = workingDir;
|
|
@@ -324,6 +346,21 @@ export class OpenCodeProcess extends EventEmitter {
|
|
|
324
346
|
return true;
|
|
325
347
|
return sessionID === this.opencodeSessionId;
|
|
326
348
|
}
|
|
349
|
+
/** Flush any buffered text deltas that haven't been emitted yet (e.g. turn ended before buffer threshold). */
|
|
350
|
+
flushDeltaBuffer() {
|
|
351
|
+
if (!this.deltaBufferFlushed && this.deltaBuffer) {
|
|
352
|
+
this.deltaBufferFlushed = true;
|
|
353
|
+
if (this.lastUserInput && this.deltaBuffer.startsWith(this.lastUserInput)) {
|
|
354
|
+
const remainder = this.deltaBuffer.slice(this.lastUserInput.length);
|
|
355
|
+
if (remainder)
|
|
356
|
+
this.emit('text', remainder);
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
this.emit('text', this.deltaBuffer);
|
|
360
|
+
}
|
|
361
|
+
this.deltaBuffer = '';
|
|
362
|
+
}
|
|
363
|
+
}
|
|
327
364
|
/** Map an OpenCode SSE event to CodingProcess events. */
|
|
328
365
|
handleSSEEvent(event) {
|
|
329
366
|
const { type, properties } = event;
|
|
@@ -335,7 +372,43 @@ export class OpenCodeProcess extends EventEmitter {
|
|
|
335
372
|
const field = properties.field;
|
|
336
373
|
const delta = properties.delta;
|
|
337
374
|
if (field === 'text' && delta) {
|
|
338
|
-
this.
|
|
375
|
+
this.receivedDeltas = true;
|
|
376
|
+
// Buffer initial deltas to detect and strip user echo prefix.
|
|
377
|
+
// Some providers echo the user message at the start of the assistant
|
|
378
|
+
// response, which causes duplicate display.
|
|
379
|
+
if (!this.deltaBufferFlushed && this.lastUserInput) {
|
|
380
|
+
this.deltaBuffer += delta;
|
|
381
|
+
if (this.deltaBuffer.length >= this.lastUserInput.length) {
|
|
382
|
+
this.deltaBufferFlushed = true;
|
|
383
|
+
if (this.deltaBuffer.startsWith(this.lastUserInput)) {
|
|
384
|
+
const remainder = this.deltaBuffer.slice(this.lastUserInput.length);
|
|
385
|
+
if (remainder)
|
|
386
|
+
this.emit('text', remainder);
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
this.emit('text', this.deltaBuffer);
|
|
390
|
+
}
|
|
391
|
+
this.deltaBuffer = '';
|
|
392
|
+
}
|
|
393
|
+
// Still buffering — don't emit yet
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
this.emit('text', delta);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
else if (field === 'reasoning' && delta) {
|
|
400
|
+
// Accumulate reasoning deltas and emit a thinking summary once we
|
|
401
|
+
// have enough content, so the UI shows a thinking indicator during
|
|
402
|
+
// streaming (not only when message.part.updated arrives later).
|
|
403
|
+
this.reasoningBuffer += delta;
|
|
404
|
+
if (this.reasoningBuffer.length > 20 && !this.emittedReasoningSummary) {
|
|
405
|
+
this.emittedReasoningSummary = true;
|
|
406
|
+
const match = this.reasoningBuffer.match(/^(.+?[.!?\n])/);
|
|
407
|
+
const summary = match && match[1].length <= 120
|
|
408
|
+
? match[1].replace(/\n/g, ' ').trim()
|
|
409
|
+
: this.reasoningBuffer.slice(0, 80).trim();
|
|
410
|
+
this.emit('thinking', summary);
|
|
411
|
+
}
|
|
339
412
|
}
|
|
340
413
|
break;
|
|
341
414
|
}
|
|
@@ -348,7 +421,20 @@ export class OpenCodeProcess extends EventEmitter {
|
|
|
348
421
|
break;
|
|
349
422
|
switch (part.type) {
|
|
350
423
|
case 'text': {
|
|
351
|
-
// Text
|
|
424
|
+
// Text may arrive via message.part.delta (streaming) or as full
|
|
425
|
+
// content here (OpenCode >=1.4 message.updated). Only emit if we
|
|
426
|
+
// haven't already streamed it via delta events or emitted it from
|
|
427
|
+
// an earlier message.part.updated event.
|
|
428
|
+
if (part.text && !this.receivedDeltas && !this.emittedPartText) {
|
|
429
|
+
this.emittedPartText = true;
|
|
430
|
+
// Strip user echo prefix if the full text starts with the last input
|
|
431
|
+
let text = part.text;
|
|
432
|
+
if (this.lastUserInput && text.startsWith(this.lastUserInput)) {
|
|
433
|
+
text = text.slice(this.lastUserInput.length);
|
|
434
|
+
}
|
|
435
|
+
if (text)
|
|
436
|
+
this.emit('text', text);
|
|
437
|
+
}
|
|
352
438
|
break;
|
|
353
439
|
}
|
|
354
440
|
case 'reasoning': {
|
|
@@ -414,6 +500,7 @@ export class OpenCodeProcess extends EventEmitter {
|
|
|
414
500
|
if (this.turnComplete)
|
|
415
501
|
break;
|
|
416
502
|
this.turnComplete = true;
|
|
503
|
+
this.flushDeltaBuffer();
|
|
417
504
|
this.emit('result', '', false);
|
|
418
505
|
}
|
|
419
506
|
break;
|
|
@@ -460,6 +547,7 @@ export class OpenCodeProcess extends EventEmitter {
|
|
|
460
547
|
if (this.turnComplete)
|
|
461
548
|
break;
|
|
462
549
|
this.turnComplete = true;
|
|
550
|
+
this.flushDeltaBuffer();
|
|
463
551
|
this.emit('result', '', false);
|
|
464
552
|
break;
|
|
465
553
|
}
|
|
@@ -474,10 +562,35 @@ export class OpenCodeProcess extends EventEmitter {
|
|
|
474
562
|
if (this.turnComplete)
|
|
475
563
|
break;
|
|
476
564
|
this.turnComplete = true;
|
|
565
|
+
this.flushDeltaBuffer();
|
|
477
566
|
this.emit('result', '', false);
|
|
478
567
|
}
|
|
479
568
|
break;
|
|
480
569
|
}
|
|
570
|
+
// OpenCode >=1.4 sends session.idle as a standalone event (not nested in session.status)
|
|
571
|
+
case 'session.idle': {
|
|
572
|
+
if (!this.isOwnSession(properties))
|
|
573
|
+
break;
|
|
574
|
+
if (this.turnComplete)
|
|
575
|
+
break;
|
|
576
|
+
this.turnComplete = true;
|
|
577
|
+
this.flushDeltaBuffer();
|
|
578
|
+
this.emit('result', '', false);
|
|
579
|
+
break;
|
|
580
|
+
}
|
|
581
|
+
// OpenCode >=1.4 sends message.updated with full message info including parts.
|
|
582
|
+
// Extract parts and process them like message.part.updated events.
|
|
583
|
+
case 'message.updated': {
|
|
584
|
+
if (!this.isOwnSession(properties))
|
|
585
|
+
break;
|
|
586
|
+
const info = properties.info;
|
|
587
|
+
if (!info || info.role !== 'assistant' || !info.parts)
|
|
588
|
+
break;
|
|
589
|
+
for (const part of info.parts) {
|
|
590
|
+
this.handleSSEEvent({ type: 'message.part.updated', properties: { ...properties, part } });
|
|
591
|
+
}
|
|
592
|
+
break;
|
|
593
|
+
}
|
|
481
594
|
default:
|
|
482
595
|
// Log unhandled session-scoped events for debugging (skip noisy ones)
|
|
483
596
|
if (type !== 'heartbeat' && type !== 'server.connected' && type !== 'message.part.added') {
|
|
@@ -574,11 +687,55 @@ export class OpenCodeProcess extends EventEmitter {
|
|
|
574
687
|
return;
|
|
575
688
|
}
|
|
576
689
|
this.turnComplete = false; // reset completion latch for new turn
|
|
690
|
+
this.receivedDeltas = false;
|
|
691
|
+
this.emittedPartText = false;
|
|
692
|
+
this.deltaBuffer = '';
|
|
693
|
+
this.deltaBufferFlushed = false;
|
|
694
|
+
this.reasoningBuffer = '';
|
|
695
|
+
this.emittedReasoningSummary = false;
|
|
577
696
|
const baseUrl = `http://localhost:${serverState.port}`;
|
|
697
|
+
// Parse [Attached files: ...] prefix and convert image paths to proper parts.
|
|
698
|
+
// The frontend uploads images to the screenshots dir and wraps them as:
|
|
699
|
+
// [Attached files: /path/to/img1, /path/to/img2]\nuser text
|
|
700
|
+
const parts = [];
|
|
701
|
+
let textContent = content;
|
|
702
|
+
const attachMatch = content.match(/^\[Attached files: ([^\]]+)\]\n?/);
|
|
703
|
+
if (attachMatch) {
|
|
704
|
+
textContent = content.slice(attachMatch[0].length);
|
|
705
|
+
const filePaths = attachMatch[1].split(',').map(p => p.trim());
|
|
706
|
+
const imageMimeMap = {
|
|
707
|
+
'.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg',
|
|
708
|
+
'.gif': 'image/gif', '.webp': 'image/webp',
|
|
709
|
+
};
|
|
710
|
+
const textExtensions = new Set(['.md', '.txt', '.csv', '.json', '.xml', '.yaml', '.yml', '.log']);
|
|
711
|
+
for (const filePath of filePaths) {
|
|
712
|
+
if (!existsSync(filePath)) {
|
|
713
|
+
console.warn(`[opencode] Attached file not found: ${filePath}`);
|
|
714
|
+
continue;
|
|
715
|
+
}
|
|
716
|
+
const ext = extname(filePath).toLowerCase();
|
|
717
|
+
const imageMime = imageMimeMap[ext];
|
|
718
|
+
if (imageMime) {
|
|
719
|
+
const base64 = readFileSync(filePath).toString('base64');
|
|
720
|
+
parts.push({ type: 'file', mime: imageMime, filename: filePath.split('/').pop(), url: `data:${imageMime};base64,${base64}` });
|
|
721
|
+
}
|
|
722
|
+
else if (textExtensions.has(ext)) {
|
|
723
|
+
// Send text-based files as inline text content
|
|
724
|
+
const fileContent = readFileSync(filePath, 'utf-8');
|
|
725
|
+
const fileName = filePath.split('/').pop() || filePath;
|
|
726
|
+
parts.push({ type: 'text', text: `--- ${fileName} ---\n${fileContent}` });
|
|
727
|
+
}
|
|
728
|
+
else {
|
|
729
|
+
console.warn(`[opencode] Unsupported file type for attachment: ${ext} (${filePath})`);
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
this.lastUserInput = textContent.trim();
|
|
734
|
+
if (textContent.trim()) {
|
|
735
|
+
parts.push({ type: 'text', text: textContent });
|
|
736
|
+
}
|
|
578
737
|
// Build request body with optional model override
|
|
579
|
-
const body = {
|
|
580
|
-
parts: [{ type: 'text', text: content }],
|
|
581
|
-
};
|
|
738
|
+
const body = { parts };
|
|
582
739
|
// Model is stored as "providerID/modelID" — split only at first slash so
|
|
583
740
|
// OpenRouter-style IDs like "openrouter/meta-llama/llama-3.1-8b" stay intact.
|
|
584
741
|
if (this.model && this.model.includes('/')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-process.js","sourceRoot":"","sources":["../opencode-process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opencode-process.js","sourceRoot":"","sources":["../opencode-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Discovers audit reports, parses their metadata, and provides them
|
|
5
5
|
* to the orchestrator session for triage and action.
|
|
6
6
|
*/
|
|
7
|
-
import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
|
|
7
|
+
import { existsSync, readdirSync, readFileSync, realpathSync, statSync } from 'fs';
|
|
8
8
|
import { join, basename, resolve } from 'path';
|
|
9
9
|
import { REPOS_ROOT, DATA_DIR } from './config.js';
|
|
10
10
|
// ---------------------------------------------------------------------------
|
|
@@ -67,15 +67,20 @@ export function scanRepoReports(repoPath) {
|
|
|
67
67
|
* Read a report's full content.
|
|
68
68
|
*/
|
|
69
69
|
export function readReport(filePath) {
|
|
70
|
-
|
|
70
|
+
// Dereference symlinks to prevent path traversal escape
|
|
71
|
+
let resolved;
|
|
72
|
+
try {
|
|
73
|
+
resolved = realpathSync(resolve(filePath));
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
71
78
|
// Verify the path is within a known reports directory (anchored startsWith, not includes)
|
|
72
79
|
const isDataReport = resolved.startsWith(DATA_DIR + '/reports/');
|
|
73
80
|
const isRepoReport = resolved.startsWith(REPOS_ROOT + '/') &&
|
|
74
81
|
/^[^/]+\/\.codekin\/reports\//.test(resolved.slice(REPOS_ROOT.length + 1));
|
|
75
82
|
if (!isDataReport && !isRepoReport)
|
|
76
83
|
return null;
|
|
77
|
-
if (!existsSync(resolved))
|
|
78
|
-
return null;
|
|
79
84
|
const content = readFileSync(resolved, 'utf-8');
|
|
80
85
|
const stat = statSync(resolved);
|
|
81
86
|
// Extract metadata from path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-reports.js","sourceRoot":"","sources":["../orchestrator-reports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"orchestrator-reports.js","sourceRoot":"","sources":["../orchestrator-reports.ts"],"names":[],"mappings":"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"}
|
|
@@ -493,6 +493,8 @@ export class PromptRouter {
|
|
|
493
493
|
answers[questions[0].question] = value.join(', ');
|
|
494
494
|
}
|
|
495
495
|
updatedInput.answers = answers;
|
|
496
|
+
if (!session.claudeProcess?.isAlive())
|
|
497
|
+
return;
|
|
496
498
|
session.claudeProcess.sendControlResponse(pending.requestId, 'allow', updatedInput);
|
|
497
499
|
}
|
|
498
500
|
/** Send a permission control response (allow/always_allow/approve_pattern/deny). */
|
|
@@ -505,6 +507,8 @@ export class PromptRouter {
|
|
|
505
507
|
this.deps.approvalManager.savePatternApproval(session.groupDir ?? session.workingDir, pending.toolName, pending.toolInput);
|
|
506
508
|
}
|
|
507
509
|
const behavior = isDeny ? 'deny' : 'allow';
|
|
510
|
+
if (!session.claudeProcess?.isAlive())
|
|
511
|
+
return;
|
|
508
512
|
session.claudeProcess.sendControlResponse(pending.requestId, behavior);
|
|
509
513
|
}
|
|
510
514
|
/**
|