neoctl 0.2.11 → 0.2.12
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/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/repl/index.js +3114 -314
- package/dist/repl/index.js.map +1 -1
- package/dist/tools/builtins/image-note-tool.js +1 -5
- package/dist/tools/builtins/image-note-tool.js.map +1 -1
- package/dist/web/html.js +8 -14
- package/dist/web/html.js.map +1 -1
- package/dist/web/index.d.ts +0 -5
- package/dist/web/index.js +5 -41
- package/dist/web/index.js.map +1 -1
- package/package.json +1 -1
- package/scripts/install-ripgrep.cjs +196 -196
- package/vendor/ripgrep/darwin-arm64/COPYING +3 -3
- package/vendor/ripgrep/darwin-arm64/LICENSE-MIT +21 -21
- package/vendor/ripgrep/darwin-arm64/UNLICENSE +24 -24
- package/vendor/ripgrep/darwin-arm64/manifest.json +7 -7
- package/vendor/ripgrep/darwin-x64/COPYING +3 -3
- package/vendor/ripgrep/darwin-x64/LICENSE-MIT +21 -21
- package/vendor/ripgrep/darwin-x64/UNLICENSE +24 -24
- package/vendor/ripgrep/darwin-x64/manifest.json +7 -7
- package/vendor/ripgrep/linux-arm64/COPYING +3 -3
- package/vendor/ripgrep/linux-arm64/LICENSE-MIT +21 -21
- package/vendor/ripgrep/linux-arm64/UNLICENSE +24 -24
- package/vendor/ripgrep/linux-arm64/manifest.json +7 -7
- package/vendor/ripgrep/linux-x64/COPYING +3 -3
- package/vendor/ripgrep/linux-x64/LICENSE-MIT +21 -21
- package/vendor/ripgrep/linux-x64/UNLICENSE +24 -24
- package/vendor/ripgrep/linux-x64/manifest.json +7 -7
- package/vendor/ripgrep/win32-arm64/manifest.json +7 -7
- package/dist/repl/browser.d.ts +0 -232
- package/dist/repl/browser.js +0 -156
- package/dist/repl/browser.js.map +0 -1
- package/dist/repl/env-file.d.ts +0 -4
- package/dist/repl/env-file.js +0 -97
- package/dist/repl/env-file.js.map +0 -1
- package/dist/repl/foreground-exec.d.ts +0 -10
- package/dist/repl/foreground-exec.js +0 -34
- package/dist/repl/foreground-exec.js.map +0 -1
- package/dist/repl/login-view.d.ts +0 -75
- package/dist/repl/login-view.js +0 -38
- package/dist/repl/login-view.js.map +0 -1
- package/dist/repl/login.d.ts +0 -14
- package/dist/repl/login.js +0 -165
- package/dist/repl/login.js.map +0 -1
- package/dist/repl/message-rendering.d.ts +0 -99
- package/dist/repl/message-rendering.js +0 -476
- package/dist/repl/message-rendering.js.map +0 -1
- package/dist/repl/prompt-payload.d.ts +0 -9
- package/dist/repl/prompt-payload.js +0 -64
- package/dist/repl/prompt-payload.js.map +0 -1
- package/dist/repl/prompt-view.d.ts +0 -235
- package/dist/repl/prompt-view.js +0 -184
- package/dist/repl/prompt-view.js.map +0 -1
- package/dist/repl/repl-types.d.ts +0 -88
- package/dist/repl/repl-types.js +0 -2
- package/dist/repl/repl-types.js.map +0 -1
- package/dist/repl/runtime.d.ts +0 -33
- package/dist/repl/runtime.js +0 -202
- package/dist/repl/runtime.js.map +0 -1
- package/dist/repl/slash-completion.d.ts +0 -28
- package/dist/repl/slash-completion.js +0 -287
- package/dist/repl/slash-completion.js.map +0 -1
- package/dist/repl/status-panel.d.ts +0 -234
- package/dist/repl/status-panel.js +0 -509
- package/dist/repl/status-panel.js.map +0 -1
- package/dist/repl/terminal.d.ts +0 -19
- package/dist/repl/terminal.js +0 -81
- package/dist/repl/terminal.js.map +0 -1
- package/dist/repl/tool-rendering.d.ts +0 -6
- package/dist/repl/tool-rendering.js +0 -502
- package/dist/repl/tool-rendering.js.map +0 -1
- package/dist/repl/usage.d.ts +0 -17
- package/dist/repl/usage.js +0 -57
- package/dist/repl/usage.js.map +0 -1
- package/dist/tips.d.ts +0 -10
- package/dist/tips.js +0 -168
- package/dist/tips.js.map +0 -1
|
@@ -144,15 +144,11 @@ export function createImageNoteTool() {
|
|
|
144
144
|
renderToolResultMessage(result, request) {
|
|
145
145
|
if (!request)
|
|
146
146
|
return undefined;
|
|
147
|
-
const output = result.output;
|
|
148
|
-
const text = result.ok
|
|
149
|
-
? `Recorded semantic notes for images: ${output.recorded.map((item) => item.imageRef).join(", ")}.`
|
|
150
|
-
: `Image note result: recorded ${output.recorded?.length ?? 0}, failed ${output.failed?.map((item) => `${item.imageRef}: ${item.error}`).join("; ") ?? "unknown"}.`;
|
|
151
147
|
return {
|
|
152
148
|
id: `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`,
|
|
153
149
|
role: "tool_result",
|
|
154
150
|
createdAt: new Date().toISOString(),
|
|
155
|
-
blocks: [{ type: "tool_result", toolUseId: request.id, name: request.name, ok: result.ok, output:
|
|
151
|
+
blocks: [{ type: "tool_result", toolUseId: request.id, name: request.name, ok: result.ok, output: result.output }],
|
|
156
152
|
};
|
|
157
153
|
},
|
|
158
154
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-note-tool.js","sourceRoot":"","sources":["../../../src/tools/builtins/image-note-tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"image-note-tool.js","sourceRoot":"","sources":["../../../src/tools/builtins/image-note-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/web/html.js
CHANGED
|
@@ -203,7 +203,7 @@ const ANIMATED_NUMBER_INTERVAL_MS = 50;
|
|
|
203
203
|
const ANIMATED_NUMBER_MIN_DURATION_MS = 180;
|
|
204
204
|
const ANIMATED_NUMBER_MAX_DURATION_MS = 700;
|
|
205
205
|
const ANIMATED_NUMBER_DURATION_SCALE_MS = 130;
|
|
206
|
-
const state = { lines: [], status: { phase: 'ready', streamedOutputTokens: 0 }, busy: false, queuedInput: undefined, backgroundTaskCount: 0, backgroundTasks: [], backgroundSessionRunCount: 0, runningSessionIds: [], session: undefined, catalog: { commands: [], modelIds: [], reasoning: [] }, interactive: {},
|
|
206
|
+
const state = { lines: [], status: { phase: 'ready', streamedOutputTokens: 0 }, busy: false, queuedInput: undefined, backgroundTaskCount: 0, backgroundTasks: [], backgroundSessionRunCount: 0, runningSessionIds: [], session: undefined, catalog: { commands: [], modelIds: [], reasoning: [] }, interactive: {}, history: [], historyIndex: undefined, completionIndex: 0, expandedToolLines: new Set(), panel: undefined, panelSelection: 0, attachments: [], attachmentCounter: 0, view: location.pathname === '/sessions' ? 'sessions' : 'chat' };
|
|
207
207
|
const animatedNumbers = { input: { target: undefined, display: undefined, timer: undefined }, output: { target: undefined, display: undefined, timer: undefined } };
|
|
208
208
|
const renderedLineKeys = new Map();
|
|
209
209
|
const statusNodes = {};
|
|
@@ -244,8 +244,6 @@ es.addEventListener('sync', (event) => {
|
|
|
244
244
|
state.session = payload.session;
|
|
245
245
|
if (payload.catalog) state.catalog = payload.catalog;
|
|
246
246
|
if (payload.interactive) state.interactive = payload.interactive;
|
|
247
|
-
if (payload.tips) state.tips = payload.tips;
|
|
248
|
-
if (payload.tipIndex !== undefined && state.tipIndex === 0) state.tipIndex = payload.tipIndex;
|
|
249
247
|
updateInputPlaceholder();
|
|
250
248
|
scheduleRender();
|
|
251
249
|
});
|
|
@@ -311,10 +309,10 @@ function lineRenderKey(line) {
|
|
|
311
309
|
const expanded = state.expandedToolLines.has(line.id);
|
|
312
310
|
const collapsible = kind === 'tool' && line.collapsible !== false && hasMoreThanLines(line.text || '', TOOL_COLLAPSED_LINES);
|
|
313
311
|
const image = line.image ? [line.image.src || '', line.image.label || '', line.image.mimeType || ''].join('\u001e') : '';
|
|
314
|
-
return [kind, line.text || '', line.title || '', line.bodyTitle || '', line.titleStatus || '', line.format || '', line.previewStyle || '', line.summaryMaxLines || '', line.live ? '1' : '0',
|
|
312
|
+
return [kind, line.text || '', line.title || '', line.bodyTitle || '', line.titleStatus || '', line.format || '', line.previewStyle || '', line.summaryMaxLines || '', line.live ? '1' : '0', collapsible ? '1' : '0', expanded ? '1' : '0', image].join('\u001f');
|
|
315
313
|
}
|
|
316
314
|
function markerForLine(line, kind) {
|
|
317
|
-
if (kind === 'tool') return line.live
|
|
315
|
+
if (kind === 'tool') return line.live ? '◇' : '◆';
|
|
318
316
|
if (kind === 'thinking') return '◆';
|
|
319
317
|
return '●';
|
|
320
318
|
}
|
|
@@ -633,10 +631,8 @@ function renderCompletions() {
|
|
|
633
631
|
completionsEl.innerHTML = '<div class="completion-title">' + esc(title) + '</div>' + visible.map((c, i) => '<div class="completion-row ' + (c.kind || '') + ' ' + (i + pageStart === selected ? 'selected' : '') + '"><span class="num">' + (i + pageStart + 1) + '.</span><span class="name">' + esc(c.value) + '</span><span class="desc">' + esc(c.description || '') + '</span></div>').join('') + '<div class="completion-footer">↑/↓ select · ←/→ page · Tab complete</div>';
|
|
634
632
|
}
|
|
635
633
|
function selectedCompletion() { const list = completions(); return list.length ? list[Math.max(0, Math.min(state.completionIndex, list.length - 1))] : undefined; }
|
|
636
|
-
function completeSelection() { const c = selectedCompletion(); if (!c) return false; const cursor = input.selectionStart || 0; input.value = c.insertText + input.value.slice(cursor); input.selectionStart = input.selectionEnd = c.insertText.length;
|
|
637
|
-
function
|
|
638
|
-
function advanceTip(delta = 1) { state.tipIndex += delta; updateInputPlaceholder(); }
|
|
639
|
-
function updateInputPlaceholder() { const tip = currentTip(); input.placeholder = tip ? tip.placeholder : 'Type a message, or /help for commands'; }
|
|
634
|
+
function completeSelection() { const c = selectedCompletion(); if (!c) return false; const cursor = input.selectionStart || 0; input.value = c.insertText + input.value.slice(cursor); input.selectionStart = input.selectionEnd = c.insertText.length; autosize(); renderCompletions(); return true; }
|
|
635
|
+
function updateInputPlaceholder() { input.placeholder = 'Type a message, or /help for commands'; }
|
|
640
636
|
async function postJson(url, body) { const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body) }); const value = await res.json(); if (!value.ok && value.error) alert(value.error); return value; }
|
|
641
637
|
async function saveLoginPanel() {
|
|
642
638
|
const login = state.login;
|
|
@@ -648,7 +644,7 @@ async function saveLoginPanel() {
|
|
|
648
644
|
if (result.ok) { state.panel = undefined; renderPanel(); }
|
|
649
645
|
}
|
|
650
646
|
function attachmentsForText(text) { return state.attachments.filter(attachment => text.includes(attachment.label)); }
|
|
651
|
-
function insertAtCursor(value) { const start = input.selectionStart || 0, end = input.selectionEnd || start; input.value = input.value.slice(0, start) + value + input.value.slice(end); input.selectionStart = input.selectionEnd = start + value.length;
|
|
647
|
+
function insertAtCursor(value) { const start = input.selectionStart || 0, end = input.selectionEnd || start; input.value = input.value.slice(0, start) + value + input.value.slice(end); input.selectionStart = input.selectionEnd = start + value.length; autosize(); renderCompletions(); }
|
|
652
648
|
async function fileToDataUrlPayload(file) {
|
|
653
649
|
const dataUrl = await new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = () => resolve(String(reader.result || '')); reader.onerror = () => reject(reader.error || new Error('read failed')); reader.readAsDataURL(file); });
|
|
654
650
|
const comma = dataUrl.indexOf(',');
|
|
@@ -742,15 +738,13 @@ input.addEventListener('keydown', (e) => {
|
|
|
742
738
|
const count = completions().length;
|
|
743
739
|
if (handleSessionsKey(e)) return;
|
|
744
740
|
if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); const c = selectedCompletion(); if (c && c.kind === 'command' && c.arguments !== 'none') { completeSelection(); input.value += ' '; input.selectionStart = input.selectionEnd = input.value.length; return; } submit(); return; }
|
|
745
|
-
if (e.key === 'Tab') { if (completeSelection()) e.preventDefault();
|
|
741
|
+
if (e.key === 'Tab') { if (completeSelection()) e.preventDefault(); return; }
|
|
746
742
|
if (e.key === 'ArrowUp' && count) { e.preventDefault(); state.completionIndex = (state.completionIndex + count - 1) % count; renderCompletions(); return; }
|
|
747
743
|
if (e.key === 'ArrowDown' && count) { e.preventDefault(); state.completionIndex = (state.completionIndex + 1) % count; renderCompletions(); return; }
|
|
748
744
|
if (e.key === 'ArrowLeft' && count > 10) { e.preventDefault(); state.completionIndex = (state.completionIndex + count - 10) % count; renderCompletions(); return; }
|
|
749
745
|
if (e.key === 'ArrowRight' && count > 10) { e.preventDefault(); state.completionIndex = (state.completionIndex + 10) % count; renderCompletions(); return; }
|
|
750
746
|
if (e.key === 'ArrowUp' && !input.value && state.history.length) { e.preventDefault(); state.historyIndex = Math.min(state.history.length - 1, (state.historyIndex ?? -1) + 1); input.value = state.history[state.historyIndex] || ''; autosize(); return; }
|
|
751
|
-
if (e.key === 'ArrowUp' && !input.value) { e.preventDefault(); advanceTip(-1); return; }
|
|
752
747
|
if (e.key === 'ArrowDown' && state.historyIndex !== undefined) { e.preventDefault(); state.historyIndex -= 1; if (state.historyIndex < 0) { state.historyIndex = undefined; input.value = ''; } else input.value = state.history[state.historyIndex] || ''; autosize(); return; }
|
|
753
|
-
if (e.key === 'ArrowDown' && !input.value) { e.preventDefault(); advanceTip(); return; }
|
|
754
748
|
if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === 'c') { if (input.value) { input.value = ''; autosize(); renderCompletions(); } else if (state.queuedInput) { state.queuedInput = undefined; scheduleRender(); fetch('/api/queue/cancel', { method: 'POST' }); } else fetch('/api/interrupt', { method: 'POST' }); }
|
|
755
749
|
if (e.key === 'Escape') { state.completionIndex = 0; if (state.queuedInput) { state.queuedInput = undefined; scheduleRender(); fetch('/api/queue/cancel', { method: 'POST' }); } else renderCompletions(); }
|
|
756
750
|
});
|
|
@@ -758,7 +752,7 @@ document.addEventListener('keydown', (e) => {
|
|
|
758
752
|
if (e.target === input || e.target.closest('input, textarea, select')) return;
|
|
759
753
|
handleSessionsKey(e);
|
|
760
754
|
});
|
|
761
|
-
input.addEventListener('input', () => { state.completionIndex = 0; state.attachments = attachmentsForText(input.value);
|
|
755
|
+
input.addEventListener('input', () => { state.completionIndex = 0; state.attachments = attachmentsForText(input.value); autosize(); renderCompletions(); });
|
|
762
756
|
input.addEventListener('paste', (e) => { void handlePaste(e); });
|
|
763
757
|
function autosize() { input.style.height = 'auto'; input.style.height = Math.min(input.scrollHeight, window.innerHeight * .35) + 'px'; updateScrollBottomAffordance(); }
|
|
764
758
|
function phaseLabel(phase) { if (phase === 'calling_model') return 'model'; if (phase === 'thinking') return 'think'; if (phase === 'running_tools') return 'tools'; if (phase === 'injecting_context') return 'context'; return phase || 'ready'; }
|
package/dist/web/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/web/html.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/web/html.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAq1B1B,CAAC"}
|
package/dist/web/index.d.ts
CHANGED
|
@@ -55,7 +55,6 @@ interface UiLine {
|
|
|
55
55
|
previewStyle?: "summary";
|
|
56
56
|
summaryMaxLines?: number;
|
|
57
57
|
live?: boolean;
|
|
58
|
-
pendingReplacement?: boolean;
|
|
59
58
|
collapsible?: boolean;
|
|
60
59
|
image?: UiLineImage;
|
|
61
60
|
}
|
|
@@ -144,7 +143,6 @@ export declare class WebRepl {
|
|
|
144
143
|
private finalizedThinkingLineId;
|
|
145
144
|
private activeAbortController;
|
|
146
145
|
private interruptArmed;
|
|
147
|
-
private readonly toolLineIds;
|
|
148
146
|
private lines;
|
|
149
147
|
private status;
|
|
150
148
|
private busy;
|
|
@@ -185,8 +183,6 @@ export declare class WebRepl {
|
|
|
185
183
|
sessions: boolean;
|
|
186
184
|
login: LoginFormPayload;
|
|
187
185
|
} | undefined;
|
|
188
|
-
tips: import("../tips.js").AppTip[] | undefined;
|
|
189
|
-
tipIndex: number;
|
|
190
186
|
};
|
|
191
187
|
submit(text: string, attachments?: WebAttachmentPayload[]): Promise<{
|
|
192
188
|
ok: true;
|
|
@@ -255,7 +251,6 @@ export declare class WebRepl {
|
|
|
255
251
|
private reduce;
|
|
256
252
|
private finalizeLiveLine;
|
|
257
253
|
private finalizeThinkingLine;
|
|
258
|
-
private finalizeActiveToolLines;
|
|
259
254
|
private handleEvent;
|
|
260
255
|
private handleCommandOrPrompt;
|
|
261
256
|
private runCompaction;
|
package/dist/web/index.js
CHANGED
|
@@ -29,7 +29,6 @@ import { TaskStore } from "../tasks/task-store.js";
|
|
|
29
29
|
import { parseReplCommand, helpText, replCommandDefinitions } from "../repl/commands.js";
|
|
30
30
|
import { writeSessionMarkdownExport } from "../session/session-export.js";
|
|
31
31
|
import { WEB_HTML } from "./html.js";
|
|
32
|
-
import { appTips, formatTipLine, initialTipIndex, tipAt } from "../tips.js";
|
|
33
32
|
import { openDirectory } from "../open-directory.js";
|
|
34
33
|
import { resolveImageBlockDataSync } from "../core/image-storage.js";
|
|
35
34
|
const require = createRequire(import.meta.url);
|
|
@@ -256,7 +255,6 @@ export class WebRepl {
|
|
|
256
255
|
finalizedThinkingLineId;
|
|
257
256
|
activeAbortController;
|
|
258
257
|
interruptArmed = false;
|
|
259
|
-
toolLineIds = new Map();
|
|
260
258
|
lines;
|
|
261
259
|
status;
|
|
262
260
|
busy = false;
|
|
@@ -304,8 +302,6 @@ export class WebRepl {
|
|
|
304
302
|
appPrompt: this.runtime.engine.getAppPrompt(),
|
|
305
303
|
catalog: includeCatalog ? webCatalog(this.runtime) : undefined,
|
|
306
304
|
interactive: includeCatalog ? webInteractiveCatalog(this.runtime) : undefined,
|
|
307
|
-
tips: includeCatalog ? appTips : undefined,
|
|
308
|
-
tipIndex: initialTipIndex(this.runtime.engine.snapshot().session?.sessionId ?? process.cwd()),
|
|
309
305
|
};
|
|
310
306
|
}
|
|
311
307
|
async submit(text, attachments = []) {
|
|
@@ -396,7 +392,6 @@ export class WebRepl {
|
|
|
396
392
|
this.assistantLineId = undefined;
|
|
397
393
|
this.thinkingLineId = undefined;
|
|
398
394
|
this.finalizedThinkingLineId = undefined;
|
|
399
|
-
this.toolLineIds.clear();
|
|
400
395
|
if (line)
|
|
401
396
|
this.append(line);
|
|
402
397
|
this.broadcastSync();
|
|
@@ -515,7 +510,6 @@ export class WebRepl {
|
|
|
515
510
|
finalizeForegroundView() {
|
|
516
511
|
this.finalizeLiveLine(this.assistantLineId);
|
|
517
512
|
this.finalizeThinkingLine();
|
|
518
|
-
this.finalizeActiveToolLines();
|
|
519
513
|
this.assistantLineId = undefined;
|
|
520
514
|
this.finalizedThinkingLineId = undefined;
|
|
521
515
|
}
|
|
@@ -611,11 +605,6 @@ export class WebRepl {
|
|
|
611
605
|
this.finalizedThinkingLineId = id;
|
|
612
606
|
this.thinkingLineId = undefined;
|
|
613
607
|
}
|
|
614
|
-
finalizeActiveToolLines() {
|
|
615
|
-
for (const id of this.toolLineIds.values())
|
|
616
|
-
this.replaceLine(id, { live: false, pendingReplacement: false });
|
|
617
|
-
this.toolLineIds.clear();
|
|
618
|
-
}
|
|
619
608
|
handleEvent(event) {
|
|
620
609
|
this.reduce(event);
|
|
621
610
|
if (event.type === "state" || event.type === "context.metrics" || event.type === "usage" || event.type === "tool_call.delta" || event.type === "retrying") {
|
|
@@ -664,7 +653,7 @@ export class WebRepl {
|
|
|
664
653
|
return;
|
|
665
654
|
}
|
|
666
655
|
if (event.message.role === "tool_result") {
|
|
667
|
-
renderToolResultMessage(event.message, (line) => this.append(line)
|
|
656
|
+
renderToolResultMessage(event.message, (line) => this.append(line));
|
|
668
657
|
renderMessageImages(event.message, (line) => this.append(line));
|
|
669
658
|
return;
|
|
670
659
|
}
|
|
@@ -685,22 +674,13 @@ export class WebRepl {
|
|
|
685
674
|
if (event.type === "tool.started") {
|
|
686
675
|
this.finalizeLiveLine(this.assistantLineId);
|
|
687
676
|
this.finalizeThinkingLine();
|
|
688
|
-
const id = this.append({ ...formatToolUse(event.toolUse), live: true });
|
|
689
|
-
this.toolLineIds.set(event.toolUse.id, id);
|
|
690
677
|
return;
|
|
691
678
|
}
|
|
692
|
-
if (event.type === "tool.finished")
|
|
693
|
-
const id = this.toolLineIds.get(event.toolUse.id);
|
|
694
|
-
if (id !== undefined) {
|
|
695
|
-
this.replaceLine(id, formatToolFinishedWithoutResult(event.toolUse, event.ok));
|
|
696
|
-
this.toolLineIds.delete(event.toolUse.id);
|
|
697
|
-
}
|
|
679
|
+
if (event.type === "tool.finished")
|
|
698
680
|
return;
|
|
699
|
-
}
|
|
700
681
|
if (event.type === "terminal") {
|
|
701
682
|
this.finalizeLiveLine(this.assistantLineId);
|
|
702
683
|
this.finalizeThinkingLine();
|
|
703
|
-
this.finalizeActiveToolLines();
|
|
704
684
|
this.assistantLineId = undefined;
|
|
705
685
|
this.broadcastSync();
|
|
706
686
|
return;
|
|
@@ -1018,11 +998,7 @@ function webInteractiveCatalog(runtime) {
|
|
|
1018
998
|
};
|
|
1019
999
|
}
|
|
1020
1000
|
function initialLines(runtime, lineId) {
|
|
1021
|
-
const
|
|
1022
|
-
const suffix = session ? ` Session: ${session.sessionId}${session.resumedMessages > 0 ? ` (${session.resumedMessages} resumed messages)` : ""}.` : "";
|
|
1023
|
-
const lines = [
|
|
1024
|
-
{ id: 0, kind: "system", title: "System", text: `Interactive web UI enabled. Type /help for commands.${suffix}\n${formatTipLine(tipAt(initialTipIndex(session?.sessionId ?? process.cwd())))}`, previewStyle: "summary" },
|
|
1025
|
-
];
|
|
1001
|
+
const lines = [];
|
|
1026
1002
|
lineId.current = 0;
|
|
1027
1003
|
if (runtime.envNotice)
|
|
1028
1004
|
lines.push({ id: ++lineId.current, kind: "system", title: "Config", text: runtime.envNotice, format: "plain", previewStyle: "summary" });
|
|
@@ -1467,19 +1443,12 @@ function renderMessage(message, append, activeAssistantId, options = {}) {
|
|
|
1467
1443
|
}
|
|
1468
1444
|
return rendered;
|
|
1469
1445
|
}
|
|
1470
|
-
function renderToolResultMessage(message, append
|
|
1446
|
+
function renderToolResultMessage(message, append) {
|
|
1471
1447
|
let rendered = false;
|
|
1472
1448
|
for (const block of message.blocks) {
|
|
1473
1449
|
if (block.type !== "tool_result")
|
|
1474
1450
|
continue;
|
|
1475
|
-
|
|
1476
|
-
const id = activeToolLineIds.get(block.toolUseId);
|
|
1477
|
-
if (id === undefined)
|
|
1478
|
-
append(line);
|
|
1479
|
-
else {
|
|
1480
|
-
replaceLine(id, { ...line, title: toolTitle(block.name, "finished"), live: false, pendingReplacement: false });
|
|
1481
|
-
activeToolLineIds.delete(block.toolUseId);
|
|
1482
|
-
}
|
|
1451
|
+
append(formatToolResultLine(block.name, block.output, block.ok));
|
|
1483
1452
|
rendered = true;
|
|
1484
1453
|
}
|
|
1485
1454
|
return rendered;
|
|
@@ -1580,11 +1549,6 @@ function formatToolResultLine(toolName, output, ok) {
|
|
|
1580
1549
|
const formatted = formatToolResult(toolName, output, ok);
|
|
1581
1550
|
return { kind: ok ? "tool" : "error", title: toolTitle(toolName, "finished"), bodyTitle: formatted.bodyTitle, titleStatus: ok ? "success" : "failure", text: formatted.text, format: formatted.format, live: false, previewStyle: formatted.full ? undefined : "summary", summaryMaxLines: formatted.summaryMaxLines, collapsible: true };
|
|
1582
1551
|
}
|
|
1583
|
-
function formatToolFinishedWithoutResult(toolUse, ok) {
|
|
1584
|
-
const inputText = formatReplData(toolUse.input, 1200);
|
|
1585
|
-
const description = toolUse.name === "exec" ? execDescriptionFromInput(toolUse.input) : undefined;
|
|
1586
|
-
return { kind: ok ? "tool" : "error", title: toolTitle(toolUse.name, "finished"), bodyTitle: description, titleStatus: ok ? "success" : "failure", text: inputText ? `${ok ? "finished" : "failed"}\n${inputText}` : ok ? "finished" : "failed", previewStyle: "summary", live: true, pendingReplacement: true, collapsible: true };
|
|
1587
|
-
}
|
|
1588
1552
|
function toolTitle(toolName, _phase) {
|
|
1589
1553
|
return toolName;
|
|
1590
1554
|
}
|