jupyterlab-codex-sidebar 0.1.6 → 0.1.7

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.
@@ -359,8 +359,12 @@ export function toCellOutputPreview(context, widget, notebookMode, outputText) {
359
359
  };
360
360
  }
361
361
  export const ACTIVE_CELL_OUTPUT_MAX_CHARS = 20000;
362
+ export const ERROR_CELL_OUTPUT_MAX_CHARS = 8000;
362
363
  export const ACTIVE_CELL_OUTPUT_MAX_ITEMS = 24;
363
364
  const CELL_OUTPUT_TRUNCATED_MARKER = '... (truncated)';
365
+ const CELL_OUTPUT_LONG_LINE_MARKER = ' ... [long line truncated] ... ';
366
+ const ACTIVE_CELL_OUTPUT_MAX_LINE_CHARS = 8000;
367
+ const ERROR_CELL_OUTPUT_MAX_LINE_CHARS = 2000;
364
368
  export function stripAnsi(value) {
365
369
  // Best-effort removal of ANSI escape codes (tracebacks sometimes include them).
366
370
  return value.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g, '');
@@ -434,6 +438,27 @@ export function formatJupyterOutput(output) {
434
438
  export function isJupyterErrorOutput(output) {
435
439
  return Boolean(output && typeof output === 'object' && output.output_type === 'error');
436
440
  }
441
+ function truncateMiddle(text, maxChars, marker) {
442
+ if (text.length <= maxChars) {
443
+ return text;
444
+ }
445
+ if (maxChars <= marker.length) {
446
+ return text.slice(0, maxChars);
447
+ }
448
+ const remaining = maxChars - marker.length;
449
+ const headLength = Math.ceil(remaining / 2);
450
+ const tailLength = Math.floor(remaining / 2);
451
+ return `${text.slice(0, headLength)}${marker}${text.slice(text.length - tailLength)}`;
452
+ }
453
+ function truncateLongOutputLines(text, maxLineChars) {
454
+ return text
455
+ .split('\n')
456
+ .map(line => truncateMiddle(line, maxLineChars, CELL_OUTPUT_LONG_LINE_MARKER))
457
+ .join('\n');
458
+ }
459
+ function sanitizeCellOutputChunk(text, isError) {
460
+ return truncateLongOutputLines(text, isError ? ERROR_CELL_OUTPUT_MAX_LINE_CHARS : ACTIVE_CELL_OUTPUT_MAX_LINE_CHARS);
461
+ }
437
462
  function truncateCellOutput(text, maxChars, fromEnd) {
438
463
  if (text.length <= maxChars) {
439
464
  return text;
@@ -460,12 +485,13 @@ export function summarizeJupyterOutputs(outputs) {
460
485
  exceededMaxItems = true;
461
486
  break;
462
487
  }
463
- const chunk = formatJupyterOutput(output);
488
+ const isError = isJupyterErrorOutput(output);
489
+ const chunk = sanitizeCellOutputChunk(formatJupyterOutput(output), isError);
464
490
  if (!chunk) {
465
491
  continue;
466
492
  }
467
493
  appended += 1;
468
- if (isJupyterErrorOutput(output)) {
494
+ if (isError) {
469
495
  hasErrorOutput = true;
470
496
  }
471
497
  chunks.push(chunk);
@@ -477,7 +503,7 @@ export function summarizeJupyterOutputs(outputs) {
477
503
  if (exceededMaxItems) {
478
504
  combined = `${combined}\n\n${CELL_OUTPUT_TRUNCATED_MARKER}`;
479
505
  }
480
- combined = truncateCellOutput(combined, ACTIVE_CELL_OUTPUT_MAX_CHARS, hasErrorOutput);
506
+ combined = truncateCellOutput(combined, hasErrorOutput ? ERROR_CELL_OUTPUT_MAX_CHARS : ACTIVE_CELL_OUTPUT_MAX_CHARS, hasErrorOutput);
481
507
  combined = combined.replace(/\s+$/, '');
482
508
  return combined;
483
509
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codexChatDocumentUtils.js","sourceRoot":"","sources":["../src/codexChatDocumentUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codexChatDocumentUtils.js","sourceRoot":"","sources":["../src/codexChatDocumentUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jupyterlab-codex-sidebar",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "author": "ILHO AHN",
5
5
  "description": "Codex sidebar for JupyterLab",
6
6
  "license": "BSD-3-Clause",
package/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jupyterlab-codex-sidebar"
7
- version = "0.1.6"
7
+ version = "0.1.7"
8
8
  description = "JupyterLab Codex sidebar with server extension"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -10,6 +10,9 @@ export type SentAttachmentTruncationResult = {
10
10
  cellOutputTruncated: boolean;
11
11
  };
12
12
 
13
+ const ACTIVE_CELL_SELECTION_MAX_LINE_CHARS = 2000;
14
+ const ACTIVE_CELL_LONG_LINE_MARKER = ' ... [long line truncated] ... ';
15
+
13
16
  function clampNonNegativeInteger(value: number): number {
14
17
  if (!Number.isFinite(value)) {
15
18
  return 0;
@@ -27,6 +30,30 @@ function sliceByCharLimit(value: string, limit: number): string {
27
30
  return value.slice(0, limit);
28
31
  }
29
32
 
33
+ function truncateMiddle(text: string, maxChars: number, marker: string): string {
34
+ if (text.length <= maxChars) {
35
+ return text;
36
+ }
37
+ if (maxChars <= marker.length) {
38
+ return text.slice(0, maxChars);
39
+ }
40
+ const remaining = maxChars - marker.length;
41
+ const headLength = Math.ceil(remaining / 2);
42
+ const tailLength = Math.floor(remaining / 2);
43
+ return `${text.slice(0, headLength)}${marker}${text.slice(text.length - tailLength)}`;
44
+ }
45
+
46
+ function truncateLongSelectionLines(value: string, totalLimit: number): string {
47
+ if (totalLimit <= 0) {
48
+ return '';
49
+ }
50
+ const lineLimit = Math.min(totalLimit, ACTIVE_CELL_SELECTION_MAX_LINE_CHARS);
51
+ return value
52
+ .split('\n')
53
+ .map(line => truncateMiddle(line, lineLimit, ACTIVE_CELL_LONG_LINE_MARKER))
54
+ .join('\n');
55
+ }
56
+
30
57
  export function limitActiveCellAttachmentPayload(
31
58
  selection: string,
32
59
  cellOutput: string,
@@ -37,13 +64,13 @@ export function limitActiveCellAttachmentPayload(
37
64
  const sourceCellOutput = typeof cellOutput === 'string' ? cellOutput : '';
38
65
  const selectionLimit = clampNonNegativeInteger(maxSelectionChars);
39
66
  const cellOutputLimit = clampNonNegativeInteger(maxCellOutputChars);
40
- const nextSelection = sliceByCharLimit(sourceSelection, selectionLimit);
67
+ const nextSelection = sliceByCharLimit(truncateLongSelectionLines(sourceSelection, selectionLimit), selectionLimit);
41
68
  const nextCellOutput = sliceByCharLimit(sourceCellOutput, cellOutputLimit);
42
69
  return {
43
70
  selection: nextSelection,
44
71
  cellOutput: nextCellOutput,
45
- selectionTruncated: nextSelection.length < sourceSelection.length,
46
- cellOutputTruncated: nextCellOutput.length < sourceCellOutput.length
72
+ selectionTruncated: nextSelection !== sourceSelection,
73
+ cellOutputTruncated: nextCellOutput !== sourceCellOutput
47
74
  };
48
75
  }
49
76
 
@@ -483,8 +483,12 @@ export function toCellOutputPreview(
483
483
  }
484
484
 
485
485
  export const ACTIVE_CELL_OUTPUT_MAX_CHARS = 20000;
486
+ export const ERROR_CELL_OUTPUT_MAX_CHARS = 8000;
486
487
  export const ACTIVE_CELL_OUTPUT_MAX_ITEMS = 24;
487
488
  const CELL_OUTPUT_TRUNCATED_MARKER = '... (truncated)';
489
+ const CELL_OUTPUT_LONG_LINE_MARKER = ' ... [long line truncated] ... ';
490
+ const ACTIVE_CELL_OUTPUT_MAX_LINE_CHARS = 8000;
491
+ const ERROR_CELL_OUTPUT_MAX_LINE_CHARS = 2000;
488
492
 
489
493
  export function stripAnsi(value: string): string {
490
494
  // Best-effort removal of ANSI escape codes (tracebacks sometimes include them).
@@ -568,6 +572,33 @@ export function isJupyterErrorOutput(output: any): boolean {
568
572
  return Boolean(output && typeof output === 'object' && output.output_type === 'error');
569
573
  }
570
574
 
575
+ function truncateMiddle(text: string, maxChars: number, marker: string): string {
576
+ if (text.length <= maxChars) {
577
+ return text;
578
+ }
579
+ if (maxChars <= marker.length) {
580
+ return text.slice(0, maxChars);
581
+ }
582
+ const remaining = maxChars - marker.length;
583
+ const headLength = Math.ceil(remaining / 2);
584
+ const tailLength = Math.floor(remaining / 2);
585
+ return `${text.slice(0, headLength)}${marker}${text.slice(text.length - tailLength)}`;
586
+ }
587
+
588
+ function truncateLongOutputLines(text: string, maxLineChars: number): string {
589
+ return text
590
+ .split('\n')
591
+ .map(line => truncateMiddle(line, maxLineChars, CELL_OUTPUT_LONG_LINE_MARKER))
592
+ .join('\n');
593
+ }
594
+
595
+ function sanitizeCellOutputChunk(text: string, isError: boolean): string {
596
+ return truncateLongOutputLines(
597
+ text,
598
+ isError ? ERROR_CELL_OUTPUT_MAX_LINE_CHARS : ACTIVE_CELL_OUTPUT_MAX_LINE_CHARS
599
+ );
600
+ }
601
+
571
602
  function truncateCellOutput(text: string, maxChars: number, fromEnd: boolean): string {
572
603
  if (text.length <= maxChars) {
573
604
  return text;
@@ -597,12 +628,13 @@ export function summarizeJupyterOutputs(outputs: any[]): string {
597
628
  exceededMaxItems = true;
598
629
  break;
599
630
  }
600
- const chunk = formatJupyterOutput(output);
631
+ const isError = isJupyterErrorOutput(output);
632
+ const chunk = sanitizeCellOutputChunk(formatJupyterOutput(output), isError);
601
633
  if (!chunk) {
602
634
  continue;
603
635
  }
604
636
  appended += 1;
605
- if (isJupyterErrorOutput(output)) {
637
+ if (isError) {
606
638
  hasErrorOutput = true;
607
639
  }
608
640
  chunks.push(chunk);
@@ -615,7 +647,11 @@ export function summarizeJupyterOutputs(outputs: any[]): string {
615
647
  if (exceededMaxItems) {
616
648
  combined = `${combined}\n\n${CELL_OUTPUT_TRUNCATED_MARKER}`;
617
649
  }
618
- combined = truncateCellOutput(combined, ACTIVE_CELL_OUTPUT_MAX_CHARS, hasErrorOutput);
650
+ combined = truncateCellOutput(
651
+ combined,
652
+ hasErrorOutput ? ERROR_CELL_OUTPUT_MAX_CHARS : ACTIVE_CELL_OUTPUT_MAX_CHARS,
653
+ hasErrorOutput
654
+ );
619
655
  combined = combined.replace(/\s+$/, '');
620
656
  return combined;
621
657
  }
@@ -116,41 +116,50 @@ function writeNotebookFixture() {
116
116
  }
117
117
 
118
118
  test('error cell output sends the tail of the traceback to Codex', async ({ page, baseURL }) => {
119
- writeNotebookFixture();
119
+ const originalNotebook = fs.readFileSync(NOTEBOOK_IPYNB_PATH, 'utf8');
120
+ const originalPy = fs.readFileSync(NOTEBOOK_PY_PATH, 'utf8');
120
121
  const codexCommandPath =
121
122
  process.env.PLAYWRIGHT_CODEX_COMMAND || path.resolve(__dirname, 'mock-codex-cli-prompt-echo.py');
122
123
  const targetUrl = baseURL || process.env.JUPYTERLAB_URL || 'http://127.0.0.1:8888/lab';
123
124
 
124
- await page.addInitScript(commandPath => {
125
- window.localStorage.setItem('jupyterlab-codex:command-path', commandPath);
126
- window.localStorage.setItem('jupyterlab-codex:include-active-cell', 'true');
127
- window.localStorage.setItem('jupyterlab-codex:include-active-cell-output', 'true');
128
- }, codexCommandPath);
129
-
130
- await page.goto(buildInitialNotebookUrl(targetUrl, NOTEBOOK_RELATIVE_PATH), { waitUntil: 'domcontentloaded' });
131
- await page.waitForSelector('main[aria-label="Main Content"], .jp-LabShell, .lm-DockPanel', {
132
- timeout: 30000
133
- });
134
- await dismissBlockingDialogs(page);
135
- await ensureCodexPanel(page);
136
-
137
- const notebookCell = page.locator('.jp-Notebook .jp-Cell').first();
138
- await expect(notebookCell).toBeVisible({ timeout: 20000 });
139
- await notebookCell.click();
140
-
141
- const composer = page.locator('.jp-CodexComposer textarea');
142
- const sendBtn = page.locator('.jp-CodexSendBtn');
143
- await composer.fill('Inspect the attached output.');
144
- await expect(sendBtn).toBeEnabled({ timeout: 15000 });
145
- await sendBtn.click();
146
- await expect(page.locator('.jp-CodexSendBtn.is-stop')).toHaveCount(0, { timeout: 30000 });
147
-
148
- const assistantMessage = page.locator('.jp-CodexChat-message.jp-mod-assistant').last();
149
- await expect(assistantMessage).toContainText('PROMPT_TAIL_START', { timeout: 30000 });
150
- const responseText = await assistantMessage.innerText();
151
-
152
- const tailSection = responseText.split('PROMPT_TAIL_START\n')[1]?.split('\nPROMPT_TAIL_END')[0] || '';
153
- expect(tailSection).toContain(TRACE_TAIL_MARKER);
154
- expect(tailSection).not.toContain(TRACE_HEAD_MARKER);
155
- expect(responseText).toContain('Current Cell Output:');
125
+ try {
126
+ writeNotebookFixture();
127
+
128
+ await page.addInitScript(commandPath => {
129
+ window.localStorage.setItem('jupyterlab-codex:command-path', commandPath);
130
+ window.localStorage.setItem('jupyterlab-codex:include-active-cell', 'true');
131
+ window.localStorage.setItem('jupyterlab-codex:include-active-cell-output', 'true');
132
+ }, codexCommandPath);
133
+
134
+ await page.goto(buildInitialNotebookUrl(targetUrl, NOTEBOOK_RELATIVE_PATH), { waitUntil: 'domcontentloaded' });
135
+ await page.waitForSelector('main[aria-label="Main Content"], .jp-LabShell, .lm-DockPanel', {
136
+ timeout: 30000
137
+ });
138
+ await dismissBlockingDialogs(page);
139
+ await ensureCodexPanel(page);
140
+
141
+ const cellEditor = page.locator('.jp-Notebook [aria-label="Code Cell Content with Output"] [role="textbox"]');
142
+ await expect(cellEditor).toBeVisible({ timeout: 20000 });
143
+ await cellEditor.click();
144
+
145
+ const composer = page.locator('.jp-CodexComposer textarea');
146
+ const sendBtn = page.locator('.jp-CodexSendBtn');
147
+ await composer.fill('Inspect the attached output.');
148
+ await expect(sendBtn).toBeEnabled({ timeout: 15000 });
149
+ await sendBtn.click();
150
+ await expect(page.locator('.jp-CodexSendBtn.is-stop')).toHaveCount(0, { timeout: 30000 });
151
+
152
+ const assistantMessage = page.locator('.jp-CodexChat-message.jp-CodexChat-assistant').last();
153
+ await expect(assistantMessage).toContainText('PROMPT_TAIL_START', { timeout: 30000 });
154
+ const responseText = await assistantMessage.innerText();
155
+
156
+ const tailSection = responseText.split('PROMPT_TAIL_START\n')[1]?.split('\nPROMPT_TAIL_END')[0] || '';
157
+ expect(responseText).toContain('PROMPT_HAS_CURRENT_CELL_CONTENT=true');
158
+ expect(responseText).toContain('PROMPT_HAS_CURRENT_CELL_OUTPUT=true');
159
+ expect(tailSection).toContain(TRACE_TAIL_MARKER);
160
+ expect(tailSection).not.toContain(TRACE_HEAD_MARKER);
161
+ } finally {
162
+ fs.writeFileSync(NOTEBOOK_IPYNB_PATH, originalNotebook, 'utf8');
163
+ fs.writeFileSync(NOTEBOOK_PY_PATH, originalPy, 'utf8');
164
+ }
156
165
  });
@@ -56,6 +56,8 @@ def _run_exec_mode() -> int:
56
56
  thread_id = f"mock-thread-{uuid.uuid4().hex[:12]}"
57
57
  head = prompt[:800]
58
58
  tail = prompt[-800:] if prompt else ""
59
+ has_current_cell_content = "Current Cell Content:" in prompt
60
+ has_current_cell_output = "Current Cell Output:" in prompt
59
61
 
60
62
  _emit({"type": "thread.started", "thread_id": thread_id})
61
63
  _emit(
@@ -64,6 +66,8 @@ def _run_exec_mode() -> int:
64
66
  "item": {
65
67
  "type": "agent_message",
66
68
  "text": (
69
+ f"PROMPT_HAS_CURRENT_CELL_CONTENT={str(has_current_cell_content).lower()}\n"
70
+ f"PROMPT_HAS_CURRENT_CELL_OUTPUT={str(has_current_cell_output).lower()}\n"
67
71
  "PROMPT_HEAD_START\n"
68
72
  f"{head}\n"
69
73
  "PROMPT_HEAD_END\n"
@@ -26,6 +26,16 @@ test('limitActiveCellAttachmentPayload applies separate limits to input and outp
26
26
  });
27
27
  });
28
28
 
29
+ test('limitActiveCellAttachmentPayload truncates long single-line input from the middle', () => {
30
+ const result = limitActiveCellAttachmentPayload(`start-${'x'.repeat(3000)}-end`, '', 4000, 10);
31
+ expect(result.selection).toContain('[long line truncated]');
32
+ expect(result.selection.startsWith('start-')).toBeTruthy();
33
+ expect(result.selection.endsWith('-end')).toBeTruthy();
34
+ expect(result.selection.length).toBeLessThanOrEqual(4000);
35
+ expect(result.selectionTruncated).toBeTruthy();
36
+ expect(result.cellOutputTruncated).toBeFalsy();
37
+ });
38
+
29
39
  test('limitActiveCellAttachmentPayload truncates output independently when output exceeds max', () => {
30
40
  const result = limitActiveCellAttachmentPayload('12345', 'abcdefghij', 4, 4);
31
41
  expect(result).toEqual({
@@ -2,6 +2,7 @@ import { expect, test } from '@playwright/test';
2
2
 
3
3
  import {
4
4
  ACTIVE_CELL_OUTPUT_MAX_CHARS,
5
+ ERROR_CELL_OUTPUT_MAX_CHARS,
5
6
  summarizeJupyterOutputs,
6
7
  toMessageSelectionPreview
7
8
  } from '../../src/codexChatDocumentUtils';
@@ -34,7 +35,7 @@ test('toMessageSelectionPreview uses the attached text after payload truncation'
34
35
  });
35
36
  });
36
37
 
37
- test('summarizeJupyterOutputs keeps the start of non-error output when truncating', () => {
38
+ test('summarizeJupyterOutputs truncates long non-error output lines before sending', () => {
38
39
  const output = summarizeJupyterOutputs([
39
40
  {
40
41
  output_type: 'stream',
@@ -44,7 +45,7 @@ test('summarizeJupyterOutputs keeps the start of non-error output when truncatin
44
45
  ]);
45
46
 
46
47
  expect(output.startsWith('A'.repeat(16))).toBeTruthy();
47
- expect(output.endsWith('... (truncated)')).toBeTruthy();
48
+ expect(output).toContain('[long line truncated]');
48
49
  expect(output.length).toBeLessThanOrEqual(ACTIVE_CELL_OUTPUT_MAX_CHARS);
49
50
  });
50
51
 
@@ -57,7 +58,21 @@ test('summarizeJupyterOutputs keeps the end of error output when truncating', ()
57
58
  }
58
59
  ]);
59
60
 
61
+ expect(output).toContain('[long line truncated]');
62
+ expect(output.endsWith(tail)).toBeTruthy();
63
+ expect(output.length).toBeLessThanOrEqual(ERROR_CELL_OUTPUT_MAX_CHARS);
64
+ });
65
+
66
+ test('summarizeJupyterOutputs applies a smaller total cap to error output', () => {
67
+ const tail = 'RuntimeError: compact final detail';
68
+ const output = summarizeJupyterOutputs([
69
+ {
70
+ output_type: 'error',
71
+ traceback: Array.from({ length: 12 }, (_, index) => `trace ${index}: ${'C'.repeat(1800)}`).concat(tail)
72
+ }
73
+ ]);
74
+
60
75
  expect(output.startsWith('... (truncated)')).toBeTruthy();
61
76
  expect(output.endsWith(tail)).toBeTruthy();
62
- expect(output.length).toBeLessThanOrEqual(ACTIVE_CELL_OUTPUT_MAX_CHARS);
77
+ expect(output.length).toBeLessThanOrEqual(ERROR_CELL_OUTPUT_MAX_CHARS);
63
78
  });