agkan 3.17.1 → 3.19.0
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/board/boardRoutes.d.ts +1 -0
- package/dist/board/boardRoutes.d.ts.map +1 -1
- package/dist/board/boardRoutes.js +9 -1
- package/dist/board/boardRoutes.js.map +1 -1
- package/dist/cli/commands/comment/update.d.ts +6 -0
- package/dist/cli/commands/comment/update.d.ts.map +1 -0
- package/dist/cli/commands/comment/update.js +65 -0
- package/dist/cli/commands/comment/update.js.map +1 -0
- package/dist/cli/commands/tag/delete.d.ts.map +1 -1
- package/dist/cli/commands/tag/delete.js +21 -8
- package/dist/cli/commands/tag/delete.js.map +1 -1
- package/dist/cli/commands/task/delete.d.ts.map +1 -1
- package/dist/cli/commands/task/delete.js +38 -4
- package/dist/cli/commands/task/delete.js.map +1 -1
- package/dist/cli/commands/task/find.d.ts.map +1 -1
- package/dist/cli/commands/task/find.js +19 -2
- package/dist/cli/commands/task/find.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/hooks/claudeHookSettings.js +4 -4
- package/dist/hooks/claudeHookSettings.js.map +1 -1
- package/dist/hooks/hook-stop.mjs +84 -16
- package/dist/services/TagService.d.ts +14 -2
- package/dist/services/TagService.d.ts.map +1 -1
- package/dist/services/TagService.js +20 -2
- package/dist/services/TagService.js.map +1 -1
- package/dist/services/TaskService.d.ts +22 -2
- package/dist/services/TaskService.d.ts.map +1 -1
- package/dist/services/TaskService.js +27 -2
- package/dist/services/TaskService.js.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/terminal/PtySessionService.d.ts +4 -0
- package/dist/terminal/PtySessionService.d.ts.map +1 -1
- package/dist/terminal/PtySessionService.js +282 -0
- package/dist/terminal/PtySessionService.js.map +1 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +8 -13
- package/dist/utils/security.js.map +1 -1
- package/package.json +1 -1
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.PtySessionService = void 0;
|
|
37
37
|
exports.stripAnsi = stripAnsi;
|
|
38
|
+
exports.detectClaudeScreenStatus = detectClaudeScreenStatus;
|
|
38
39
|
const pty = __importStar(require("node-pty"));
|
|
39
40
|
const child_process_1 = require("child_process");
|
|
40
41
|
const errors_1 = require("../errors");
|
|
@@ -66,15 +67,226 @@ const PROMPT_FALLBACK_DELAY_MS = 10000;
|
|
|
66
67
|
const PROMPT_ENTER_DELAY_MS = 200;
|
|
67
68
|
const ENTER_RETRY_INTERVAL_MS = 2000;
|
|
68
69
|
const MAX_ENTER_RETRIES = 3;
|
|
70
|
+
// When stopProcessFromHook's screen-status guard skips termination (screen still looks
|
|
71
|
+
// working/blocked), the Stop hook that triggered the call fires only once per turn and may
|
|
72
|
+
// never fire again if this really was the session's final turn — leaving the PTY process
|
|
73
|
+
// leaked forever with no further signal to clean it up. Re-evaluate the screen status on a
|
|
74
|
+
// delay instead of trusting the single stale snapshot; a "working" screen whose output has
|
|
75
|
+
// been static for this many consecutive checks is treated as a stale frame and force-stopped
|
|
76
|
+
// (see scheduleDeferredHookStop), so a leaked session is never permanent.
|
|
77
|
+
const DEFERRED_HOOK_STOP_INTERVAL_MS = 3000;
|
|
78
|
+
const MAX_STALLED_DEFERRED_HOOK_STOP_CHECKS = 5;
|
|
69
79
|
const CLAUDE_BUSY_SIGNAL = 'esc to interrupt';
|
|
70
80
|
const MAX_SNAPSHOT_BYTES = 500_000;
|
|
71
81
|
const MAX_COMPLETED_SNAPSHOTS = 10;
|
|
82
|
+
const RECENT_SCREEN_LINE_LIMIT = 80;
|
|
72
83
|
function hasWorkspaceTrustPrompt(text) {
|
|
73
84
|
return /trust.*folder|Do you trust/i.test(text) && /y\/n|yes.*trust/i.test(text);
|
|
74
85
|
}
|
|
75
86
|
function hasClaudeReadySignal(text) {
|
|
76
87
|
return text.includes('bypass permissions');
|
|
77
88
|
}
|
|
89
|
+
const OSC_TITLE_PATTERN = /\x1b\](?:0|2);([^\x07\x1b]*)(?:\x07|\x1b\\|$)/y;
|
|
90
|
+
// Returns the payload of the most recent OSC 0/2 "set title" sequence in `text`,
|
|
91
|
+
// or null if there is none. Only the last match is ever needed, so this walks
|
|
92
|
+
// backward from the end of the (up to 500KB) buffer via lastIndexOf instead of
|
|
93
|
+
// running a global regex (matchAll) over the entire buffer to find every match
|
|
94
|
+
// just to discard all but the last one.
|
|
95
|
+
function latestOscTitle(text) {
|
|
96
|
+
let searchEnd = text.length;
|
|
97
|
+
while (searchEnd > 0) {
|
|
98
|
+
const idx = text.lastIndexOf('\x1b]', searchEnd - 1);
|
|
99
|
+
if (idx === -1)
|
|
100
|
+
return null;
|
|
101
|
+
OSC_TITLE_PATTERN.lastIndex = idx;
|
|
102
|
+
const match = OSC_TITLE_PATTERN.exec(text);
|
|
103
|
+
if (match) {
|
|
104
|
+
return match[1] ?? null;
|
|
105
|
+
}
|
|
106
|
+
searchEnd = idx;
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
const CSI_PATTERN = /^\x1b\[([\x30-\x3F]*)([\x20-\x2F]*)([\x40-\x7E])/;
|
|
111
|
+
const OSC_PATTERN = /^\x1b\][^\x07\x1b]*(?:\x07|\x1b\\|$)/;
|
|
112
|
+
const LONE_ESC_PATTERN = /^\x1b[=>]/;
|
|
113
|
+
function parseCsiParam(raw) {
|
|
114
|
+
const value = parseInt(raw, 10);
|
|
115
|
+
return Number.isNaN(value) ? undefined : value;
|
|
116
|
+
}
|
|
117
|
+
function ensureRow(lines, row) {
|
|
118
|
+
while (lines.length <= row)
|
|
119
|
+
lines.push('');
|
|
120
|
+
}
|
|
121
|
+
function eraseLine(lines, cursor, mode) {
|
|
122
|
+
const line = lines[cursor.row] ?? '';
|
|
123
|
+
if (mode === 1) {
|
|
124
|
+
// Erase from start of line to cursor, inclusive of the cursor position.
|
|
125
|
+
const eraseEnd = Math.min(cursor.col + 1, line.length);
|
|
126
|
+
lines[cursor.row] = ' '.repeat(eraseEnd) + line.slice(eraseEnd);
|
|
127
|
+
}
|
|
128
|
+
else if (mode === 2) {
|
|
129
|
+
// Erase entire line.
|
|
130
|
+
lines[cursor.row] = '';
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Erase from cursor to end of line (default).
|
|
134
|
+
lines[cursor.row] = line.slice(0, cursor.col);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function eraseDisplay(lines, cursor, mode) {
|
|
138
|
+
if (mode === 1) {
|
|
139
|
+
// Erase from start of screen to cursor.
|
|
140
|
+
for (let i = 0; i < cursor.row; i++)
|
|
141
|
+
lines[i] = '';
|
|
142
|
+
eraseLine(lines, cursor, 1);
|
|
143
|
+
}
|
|
144
|
+
else if (mode === 2 || mode === 3) {
|
|
145
|
+
// Erase entire screen (and scrollback for mode 3, which we treat the same).
|
|
146
|
+
for (let i = 0; i < lines.length; i++)
|
|
147
|
+
lines[i] = '';
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// Erase from cursor to end of screen (default).
|
|
151
|
+
eraseLine(lines, cursor, 0);
|
|
152
|
+
lines.length = cursor.row + 1;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function applyCsiSequence(lines, cursor, paramStr, final) {
|
|
156
|
+
const n = paramStr.split(';').map(parseCsiParam)[0];
|
|
157
|
+
switch (final) {
|
|
158
|
+
case 'A':
|
|
159
|
+
cursor.row = Math.max(0, cursor.row - (n ?? 1));
|
|
160
|
+
break;
|
|
161
|
+
case 'B':
|
|
162
|
+
cursor.row += n ?? 1;
|
|
163
|
+
ensureRow(lines, cursor.row);
|
|
164
|
+
break;
|
|
165
|
+
case 'K':
|
|
166
|
+
eraseLine(lines, cursor, n);
|
|
167
|
+
break;
|
|
168
|
+
case 'J':
|
|
169
|
+
eraseDisplay(lines, cursor, n);
|
|
170
|
+
break;
|
|
171
|
+
default:
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Consumes one escape sequence starting at `text[at]` and returns its length in
|
|
176
|
+
// characters (at least 1, so callers always make progress). Recognized CSI cursor
|
|
177
|
+
// movement (A/B) and erase (K/J) sequences are applied to the virtual screen; all
|
|
178
|
+
// other CSI/OSC/lone-ESC sequences are consumed with no effect, matching stripAnsi.
|
|
179
|
+
function consumeEscapeSequence(text, at, lines, cursor) {
|
|
180
|
+
const rest = text.slice(at);
|
|
181
|
+
const csiMatch = CSI_PATTERN.exec(rest);
|
|
182
|
+
if (csiMatch) {
|
|
183
|
+
const [full, paramStr, , final] = csiMatch;
|
|
184
|
+
applyCsiSequence(lines, cursor, paramStr, final);
|
|
185
|
+
return full.length;
|
|
186
|
+
}
|
|
187
|
+
const oscMatch = OSC_PATTERN.exec(rest);
|
|
188
|
+
if (oscMatch)
|
|
189
|
+
return oscMatch[0].length;
|
|
190
|
+
const loneMatch = LONE_ESC_PATTERN.exec(rest);
|
|
191
|
+
if (loneMatch)
|
|
192
|
+
return loneMatch[0].length;
|
|
193
|
+
// Unrecognized escape byte: drop it alone so we can't get stuck looping.
|
|
194
|
+
return 1;
|
|
195
|
+
}
|
|
196
|
+
function writeChar(lines, cursor, ch) {
|
|
197
|
+
ensureRow(lines, cursor.row);
|
|
198
|
+
const line = lines[cursor.row];
|
|
199
|
+
const padded = line.length < cursor.col ? line + ' '.repeat(cursor.col - line.length) : line;
|
|
200
|
+
lines[cursor.row] = padded.slice(0, cursor.col) + ch + padded.slice(cursor.col + 1);
|
|
201
|
+
cursor.col += 1;
|
|
202
|
+
}
|
|
203
|
+
// Interprets cursor-movement (CUU/CUD) and erase (EL/ED) escape sequences against a
|
|
204
|
+
// virtual line buffer instead of just stripping them. Claude Code's TUI redraws its
|
|
205
|
+
// footer in place by moving the cursor up and erasing the old line(s) rather than
|
|
206
|
+
// emitting a newline, so a naive strip-and-split (the old `recentScreenText`
|
|
207
|
+
// implementation) leaves stale, visually-erased text (e.g. "esc to interrupt")
|
|
208
|
+
// looking like it's still part of the "recent" screen.
|
|
209
|
+
function renderVisibleScreen(text) {
|
|
210
|
+
const lines = [''];
|
|
211
|
+
const cursor = { row: 0, col: 0 };
|
|
212
|
+
let i = 0;
|
|
213
|
+
while (i < text.length) {
|
|
214
|
+
const ch = text[i];
|
|
215
|
+
if (ch === '\x1b') {
|
|
216
|
+
i += consumeEscapeSequence(text, i, lines, cursor);
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
if (ch === '\r') {
|
|
220
|
+
cursor.col = 0;
|
|
221
|
+
i += 1;
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
if (ch === '\n') {
|
|
225
|
+
cursor.row += 1;
|
|
226
|
+
cursor.col = 0;
|
|
227
|
+
ensureRow(lines, cursor.row);
|
|
228
|
+
i += 1;
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
writeChar(lines, cursor, ch);
|
|
232
|
+
i += 1;
|
|
233
|
+
}
|
|
234
|
+
return lines.join('\n');
|
|
235
|
+
}
|
|
236
|
+
function recentScreenText(text) {
|
|
237
|
+
return renderVisibleScreen(text).split('\n').slice(-RECENT_SCREEN_LINE_LIMIT).join('\n');
|
|
238
|
+
}
|
|
239
|
+
const BLOCKED_LINE_PATTERNS = [
|
|
240
|
+
/\benter to select\b/,
|
|
241
|
+
/\besc to cancel\b/,
|
|
242
|
+
/\brun a dynamic workflow\b/,
|
|
243
|
+
/\bdo you want to proceed\b/,
|
|
244
|
+
];
|
|
245
|
+
// A permission prompt's selection cursor also renders as "❯ 1. Yes", reusing the same
|
|
246
|
+
// glyph as the idle input prompt marker. Without excluding this shape, a permission UI
|
|
247
|
+
// with no trailing hint line (e.g. "Do you want to proceed?\n❯ 1. Yes\n 2. No") would have
|
|
248
|
+
// its lowest ❯-bearing line mistaken for an idle prompt instead of the selection cursor.
|
|
249
|
+
const SELECTION_CURSOR_LINE_PATTERN = /^\s*❯\s*\d+[.)]/;
|
|
250
|
+
function isBlockedLine(line) {
|
|
251
|
+
return BLOCKED_LINE_PATTERNS.some((pattern) => pattern.test(line));
|
|
252
|
+
}
|
|
253
|
+
function isIdlePromptLine(line) {
|
|
254
|
+
return line.includes('❯') && !SELECTION_CURSOR_LINE_PATTERN.test(line);
|
|
255
|
+
}
|
|
256
|
+
function findLastMatchingLineIndex(lines, predicate) {
|
|
257
|
+
for (let i = lines.length - 1; i >= 0; i -= 1) {
|
|
258
|
+
if (predicate(lines[i])) {
|
|
259
|
+
return i;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return -1;
|
|
263
|
+
}
|
|
264
|
+
function detectClaudeScreenStatus(outputBuffer) {
|
|
265
|
+
const recent = recentScreenText(outputBuffer);
|
|
266
|
+
const normalized = recent.toLowerCase();
|
|
267
|
+
if (normalized.includes(CLAUDE_BUSY_SIGNAL)) {
|
|
268
|
+
return 'working';
|
|
269
|
+
}
|
|
270
|
+
// Blocked words (e.g. "esc to cancel") and the idle prompt marker (❯) can both appear
|
|
271
|
+
// on screen at once: an ordinary answer may mention "Press Esc to cancel" above a fresh
|
|
272
|
+
// idle prompt, while a real permission UI renders its hint words below the prompt's
|
|
273
|
+
// selection cursor. Rather than a fixed precedence, prefer whichever signal is on the
|
|
274
|
+
// lowest (most recently rendered) line.
|
|
275
|
+
const lines = normalized.split('\n');
|
|
276
|
+
const blockedLineIdx = findLastMatchingLineIndex(lines, isBlockedLine);
|
|
277
|
+
const idleLineIdx = findLastMatchingLineIndex(lines, isIdlePromptLine);
|
|
278
|
+
if (blockedLineIdx !== -1 && blockedLineIdx >= idleLineIdx) {
|
|
279
|
+
return 'blocked';
|
|
280
|
+
}
|
|
281
|
+
const title = latestOscTitle(outputBuffer);
|
|
282
|
+
if (title && /^[\u2800-\u28ff] /.test(title)) {
|
|
283
|
+
return 'working';
|
|
284
|
+
}
|
|
285
|
+
if (idleLineIdx !== -1) {
|
|
286
|
+
return 'idle';
|
|
287
|
+
}
|
|
288
|
+
return 'unknown';
|
|
289
|
+
}
|
|
78
290
|
class PtySessionService {
|
|
79
291
|
sessions = new Map();
|
|
80
292
|
completedSnapshots = new Map();
|
|
@@ -199,6 +411,7 @@ class PtySessionService {
|
|
|
199
411
|
pendingPrompt: prompt,
|
|
200
412
|
promptTimer: null,
|
|
201
413
|
enterWatchdogTimer: null,
|
|
414
|
+
deferredHookStopTimer: null,
|
|
202
415
|
workspaceTrustHandled: false,
|
|
203
416
|
lastEventsUpdate: 0,
|
|
204
417
|
};
|
|
@@ -273,6 +486,10 @@ class PtySessionService {
|
|
|
273
486
|
clearTimeout(info.enterWatchdogTimer);
|
|
274
487
|
info.enterWatchdogTimer = null;
|
|
275
488
|
}
|
|
489
|
+
if (info.deferredHookStopTimer !== null) {
|
|
490
|
+
clearTimeout(info.deferredHookStopTimer);
|
|
491
|
+
info.deferredHookStopTimer = null;
|
|
492
|
+
}
|
|
276
493
|
info.pendingPrompt = null;
|
|
277
494
|
if (this.db && info.runLogId) {
|
|
278
495
|
const finishedAt = new Date().toISOString();
|
|
@@ -313,6 +530,10 @@ class PtySessionService {
|
|
|
313
530
|
clearTimeout(info.enterWatchdogTimer);
|
|
314
531
|
info.enterWatchdogTimer = null;
|
|
315
532
|
}
|
|
533
|
+
if (info.deferredHookStopTimer !== null) {
|
|
534
|
+
clearTimeout(info.deferredHookStopTimer);
|
|
535
|
+
info.deferredHookStopTimer = null;
|
|
536
|
+
}
|
|
316
537
|
info.pendingPrompt = null;
|
|
317
538
|
// Mark as user-stopped before emitting so synchronous subscribers (e.g. boardRoutes.ts)
|
|
318
539
|
// observe isUserStopped() === true and skip auto-advancing status on this done event.
|
|
@@ -327,6 +548,67 @@ class PtySessionService {
|
|
|
327
548
|
this.notifyRunningTasksChange();
|
|
328
549
|
return true;
|
|
329
550
|
}
|
|
551
|
+
stopProcessFromHook(taskId) {
|
|
552
|
+
const info = this.sessions.get(taskId);
|
|
553
|
+
if (!info)
|
|
554
|
+
return false;
|
|
555
|
+
const status = detectClaudeScreenStatus(info.outputBuffer);
|
|
556
|
+
if (status === 'working' || status === 'blocked') {
|
|
557
|
+
console.error(`[pty][hook-stop-guard] taskId=${taskId} skipped stopProcess because Claude screen is ${status}`);
|
|
558
|
+
this.scheduleDeferredHookStop(taskId, info, 0, info.outputBuffer);
|
|
559
|
+
return false;
|
|
560
|
+
}
|
|
561
|
+
return this.stopProcess(taskId);
|
|
562
|
+
}
|
|
563
|
+
// Re-evaluates the screen-status guard after a delay instead of trusting the single stale
|
|
564
|
+
// snapshot taken during stopProcessFromHook. This is not an immediate retry (which would
|
|
565
|
+
// observe the same unchanged outputBuffer and reach the same wrong conclusion) — by the
|
|
566
|
+
// time the timer fires, the render has often settled to idle/unknown, in which case we
|
|
567
|
+
// stop right away.
|
|
568
|
+
//
|
|
569
|
+
// If the screen still looks working/blocked, compare the buffer against the snapshot taken
|
|
570
|
+
// at the last check: while output keeps changing, this is genuine in-flight work, so we
|
|
571
|
+
// keep re-evaluating indefinitely and never force-stop it. Only once output has been
|
|
572
|
+
// completely static for MAX_STALLED_DEFERRED_HOOK_STOP_CHECKS consecutive re-evaluations
|
|
573
|
+
// while the screen claims "working" do we force-stop — a working screen with zero output
|
|
574
|
+
// for that long is a stale frame (genuine work always animates the spinner or streams
|
|
575
|
+
// tokens), which means the process is almost certainly a leaked PTY. A `blocked` screen is
|
|
576
|
+
// never force-stopped this way: a permission prompt is legitimately static while it waits
|
|
577
|
+
// for the user, so it just keeps being re-evaluated until it clears (the timer is cleaned
|
|
578
|
+
// up on stopProcess/natural exit regardless).
|
|
579
|
+
scheduleDeferredHookStop(taskId, info, stalledChecks, lastBuffer) {
|
|
580
|
+
if (info.deferredHookStopTimer !== null) {
|
|
581
|
+
// A re-evaluation is already pending for this session; do not stack another one on
|
|
582
|
+
// top of it just because another Stop-hook call skipped again in the meantime.
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
info.deferredHookStopTimer = setTimeout(() => {
|
|
586
|
+
info.deferredHookStopTimer = null;
|
|
587
|
+
// The session may have exited (and a new one for the same taskId started) between
|
|
588
|
+
// scheduling and firing; only act if this exact session is still the live one.
|
|
589
|
+
if (this.sessions.get(taskId) !== info)
|
|
590
|
+
return;
|
|
591
|
+
const status = detectClaudeScreenStatus(info.outputBuffer);
|
|
592
|
+
if (status !== 'working' && status !== 'blocked') {
|
|
593
|
+
console.error(`[pty][hook-stop-guard] taskId=${taskId} deferred re-evaluation found screen ${status}; stopping now`);
|
|
594
|
+
this.stopProcess(taskId);
|
|
595
|
+
return;
|
|
596
|
+
}
|
|
597
|
+
if (info.outputBuffer !== lastBuffer) {
|
|
598
|
+
// Output is still flowing: genuine in-flight work, so reset the stall counter and
|
|
599
|
+
// keep watching rather than ever force-stopping it.
|
|
600
|
+
this.scheduleDeferredHookStop(taskId, info, 0, info.outputBuffer);
|
|
601
|
+
return;
|
|
602
|
+
}
|
|
603
|
+
const next = stalledChecks + 1;
|
|
604
|
+
if (status === 'working' && next >= MAX_STALLED_DEFERRED_HOOK_STOP_CHECKS) {
|
|
605
|
+
console.error(`[pty][hook-stop-guard] taskId=${taskId} still working but stalled with no output after ${MAX_STALLED_DEFERRED_HOOK_STOP_CHECKS} consecutive checks; force-stopping to avoid a leaked session`);
|
|
606
|
+
this.stopProcess(taskId);
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
this.scheduleDeferredHookStop(taskId, info, next, lastBuffer);
|
|
610
|
+
}, DEFERRED_HOOK_STOP_INTERVAL_MS);
|
|
611
|
+
}
|
|
330
612
|
listRunningTasks() {
|
|
331
613
|
return Array.from(this.sessions.values()).map((s) => ({ taskId: s.taskId, command: s.command }));
|
|
332
614
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PtySessionService.js","sourceRoot":"","sources":["../../src/terminal/PtySessionService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PtySessionService.js","sourceRoot":"","sources":["../../src/terminal/PtySessionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWpD"}
|
package/dist/utils/security.js
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isPathSafe = isPathSafe;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
2
|
/**
|
|
9
3
|
* Security utility functions
|
|
10
4
|
* Provides path validation and security checks
|
|
11
5
|
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.isPathSafe = isPathSafe;
|
|
12
8
|
/**
|
|
13
9
|
* Check if a file path is safe from path traversal attacks
|
|
14
10
|
* @param filePath - Path to validate
|
|
15
11
|
* @returns True if path is safe, false otherwise
|
|
16
12
|
*/
|
|
17
13
|
function isPathSafe(filePath) {
|
|
18
|
-
// Check for path traversal
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (normalizedPath.includes('..')) {
|
|
14
|
+
// Check for path traversal by inspecting path segments, not substrings.
|
|
15
|
+
// This must run against the original path (not path.normalize(filePath)),
|
|
16
|
+
// since normalize collapses 'dir/../file.txt' into 'file.txt' and would
|
|
17
|
+
// hide a traversal segment.
|
|
18
|
+
const segments = filePath.split(/[/\\]/);
|
|
19
|
+
if (segments.includes('..')) {
|
|
25
20
|
return false;
|
|
26
21
|
}
|
|
27
22
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAOH,gCAWC;AAhBD;;;;GAIG;AACH,SAAgB,UAAU,CAAC,QAAgB;IACzC,wEAAwE;IACxE,0EAA0E;IAC1E,wEAAwE;IACxE,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|