@slopus/rig 0.0.2 → 0.0.4
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/agent/selectSystemPromptForModel.js +1 -1
- package/dist/app/CodingAssistantApp.d.ts +2 -1
- package/dist/app/CodingAssistantApp.d.ts.map +1 -1
- package/dist/app/CodingAssistantApp.js +52 -16
- package/dist/app/FileMentionAutocomplete.d.ts +27 -0
- package/dist/app/FileMentionAutocomplete.d.ts.map +1 -0
- package/dist/app/FileMentionAutocomplete.js +122 -0
- package/dist/app/createCodingAssistantAgent.js +2 -2
- package/dist/app/createFileMentionAutocompleteItems.d.ts +4 -0
- package/dist/app/createFileMentionAutocompleteItems.d.ts.map +1 -0
- package/dist/app/createFileMentionAutocompleteItems.js +7 -0
- package/dist/app/describeReasoningLevel.d.ts.map +1 -1
- package/dist/app/describeReasoningLevel.js +1 -0
- package/dist/app/findFileMentionContext.d.ts +10 -0
- package/dist/app/findFileMentionContext.d.ts.map +1 -0
- package/dist/app/findFileMentionContext.js +13 -0
- package/dist/app/findFileMentionPrefix.d.ts +6 -0
- package/dist/app/findFileMentionPrefix.d.ts.map +1 -0
- package/dist/app/findFileMentionPrefix.js +17 -0
- package/dist/app/formatFileMention.d.ts +2 -0
- package/dist/app/formatFileMention.d.ts.map +1 -0
- package/dist/app/formatFileMention.js +6 -0
- package/dist/app/humanizeReasoningLevel.d.ts.map +1 -1
- package/dist/app/humanizeReasoningLevel.js +3 -0
- package/dist/app/runApp.d.ts.map +1 -1
- package/dist/app/runApp.js +3 -0
- package/dist/client/ProtocolHttpClient.d.ts +2 -1
- package/dist/client/ProtocolHttpClient.d.ts.map +1 -1
- package/dist/client/ProtocolHttpClient.js +7 -0
- package/dist/protocol/SessionProtocol.d.ts +7 -0
- package/dist/protocol/SessionProtocol.d.ts.map +1 -1
- package/dist/protocol/index.d.ts +1 -1
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/providers/codex.d.ts.map +1 -1
- package/dist/providers/codex.js +52 -6
- package/dist/providers/models.d.ts +3 -0
- package/dist/providers/models.d.ts.map +1 -1
- package/dist/providers/models.js +18 -0
- package/dist/server/FileSearchService.d.ts +14 -0
- package/dist/server/FileSearchService.d.ts.map +1 -0
- package/dist/server/FileSearchService.js +71 -0
- package/dist/server/createModelCatalog.js +2 -2
- package/dist/server/createProtocolHttpServer.d.ts +2 -0
- package/dist/server/createProtocolHttpServer.d.ts.map +1 -1
- package/dist/server/createProtocolHttpServer.js +25 -3
- package/dist/web/assets/highlighted-body-OFNGDK62-CCrJakL3.js +1 -0
- package/dist/web/assets/index-B6Z_CQNK.css +1 -0
- package/dist/web/assets/index-kjfb8ssZ.js +341 -0
- package/dist/web/index.html +2 -2
- package/package.json +2 -1
|
@@ -24,7 +24,7 @@ export function selectSystemPromptForModel(provider, model) {
|
|
|
24
24
|
providerId.includes("openai") ||
|
|
25
25
|
modelId.includes("openai/") ||
|
|
26
26
|
modelName.includes("gpt")) {
|
|
27
|
-
if (modelIdentity.includes("gpt-5.5")) {
|
|
27
|
+
if (modelIdentity.includes("gpt-5.6") || modelIdentity.includes("gpt-5.5")) {
|
|
28
28
|
return GPT_5_5_SYSTEM_PROMPT;
|
|
29
29
|
}
|
|
30
30
|
if (modelIdentity.includes("gpt-5.4")) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Component, type Focusable, type TUI } from "@earendil-works/pi-tui";
|
|
2
2
|
import type { NativeProxessManager } from "../processes/index.js";
|
|
3
|
-
import type { SessionEvent } from "../protocol/index.js";
|
|
3
|
+
import type { FileSearchResult, SessionEvent } from "../protocol/index.js";
|
|
4
4
|
import type { CodingAssistantAgentBackend } from "./CodingAssistantAgentBackend.js";
|
|
5
5
|
import { type ClipboardImage, type ReadClipboardImageOptions } from "./readClipboardImage.js";
|
|
6
6
|
export interface CodingAssistantAppOptions {
|
|
@@ -17,6 +17,7 @@ export interface CodingAssistantAppOptions {
|
|
|
17
17
|
onExit?: () => void | Promise<void>;
|
|
18
18
|
now?: () => number;
|
|
19
19
|
readClipboardImage?: (options?: ReadClipboardImageOptions) => Promise<ClipboardImage | undefined>;
|
|
20
|
+
searchFiles?: (query: string) => Promise<readonly FileSearchResult[]>;
|
|
20
21
|
showReasoning?: boolean;
|
|
21
22
|
version?: string;
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodingAssistantApp.d.ts","sourceRoot":"","sources":["../../sources/app/CodingAssistantApp.ts"],"names":[],"mappings":"AAGA,OAAO,EAQH,KAAK,SAAS,EAEd,KAAK,SAAS,EACd,KAAK,GAAG,EACX,MAAM,wBAAwB,CAAC;AAYhC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"CodingAssistantApp.d.ts","sourceRoot":"","sources":["../../sources/app/CodingAssistantApp.ts"],"names":[],"mappings":"AAGA,OAAO,EAQH,KAAK,SAAS,EAEd,KAAK,SAAS,EACd,KAAK,GAAG,EACX,MAAM,wBAAwB,CAAC;AAYhC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,KAAK,EACR,2BAA2B,EAE9B,MAAM,kCAAkC,CAAC;AAW1C,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,yBAAyB,EACjC,MAAM,yBAAyB,CAAC;AAsDjC,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,2BAA2B,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,oBAAoB,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,CACjB,OAAO,CAAC,EAAE,yBAAyB,KAClC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,aAAa,EAAE,OAAO,CAAC;CAC1B;AAmBD,qBAAa,kBAAmB,YAAW,SAAS,EAAE,SAAS;;gBA4D/C,OAAO,EAAE,yBAAyB;IAmC9C,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAUzB;IAED,KAAK,CAAC,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAUpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAmFtC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBlC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAwN/B,UAAU,IAAI,IAAI;IAIlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAuwDlC"}
|
|
@@ -10,6 +10,8 @@ import { describeModelChoice } from "./describeModelChoice.js";
|
|
|
10
10
|
import { describeReasoningLevel } from "./describeReasoningLevel.js";
|
|
11
11
|
import { encodeModelChoice } from "./encodeModelChoice.js";
|
|
12
12
|
import { formatActivityElapsedTime } from "./formatActivityElapsedTime.js";
|
|
13
|
+
import { FileMentionAutocomplete } from "./FileMentionAutocomplete.js";
|
|
14
|
+
import { formatFileMention } from "./formatFileMention.js";
|
|
13
15
|
import { humanizeReasoningLevel } from "./humanizeReasoningLevel.js";
|
|
14
16
|
import { readClipboardImage, } from "./readClipboardImage.js";
|
|
15
17
|
import { ACTIVITY_WAVE_FRAME_COUNT, renderActivityWave } from "./renderActivityWave.js";
|
|
@@ -43,12 +45,13 @@ const REASONING_DOWN_RAW_KEYS = new Set(["\x1b,", "\x1b[1;2B"]);
|
|
|
43
45
|
const REASONING_UP_RAW_KEYS = new Set(["\x1b.", "\x1b[1;2A"]);
|
|
44
46
|
const MODEL_MENU_RAW_KEYS = new Set(["\x1bm", "\x1bM"]);
|
|
45
47
|
const IMAGE_PASTE_RAW_KEYS = new Set(["\x16", "\x1bv"]);
|
|
46
|
-
const
|
|
48
|
+
const AUTOCOMPLETE_MAX_VISIBLE = 6;
|
|
47
49
|
const BRACKETED_PASTE_START = "\x1b[200~";
|
|
48
50
|
const BRACKETED_PASTE_END = "\x1b[201~";
|
|
49
51
|
const IMAGE_PLACEHOLDER_REGEX = /\[Image #(\d+) [A-Z0-9]+\]/gu;
|
|
50
52
|
const IMAGE_CHIP_BG = "\x1b[48;5;240m";
|
|
51
53
|
const IMAGE_CHIP_FG = "\x1b[38;5;255m";
|
|
54
|
+
const FILE_MENTION_SEGMENTER = new Intl.Segmenter(undefined, { granularity: "grapheme" });
|
|
52
55
|
const EDITOR_THEME = {
|
|
53
56
|
borderColor: (text) => text,
|
|
54
57
|
selectList: {
|
|
@@ -66,6 +69,7 @@ export class CodingAssistantApp {
|
|
|
66
69
|
#idFactory;
|
|
67
70
|
#now;
|
|
68
71
|
#editor;
|
|
72
|
+
#fileMentionAutocomplete;
|
|
69
73
|
#onDefaultModelChange;
|
|
70
74
|
#onSettingsChange;
|
|
71
75
|
#onExit;
|
|
@@ -129,6 +133,10 @@ export class CodingAssistantApp {
|
|
|
129
133
|
this.#tui = options.tui;
|
|
130
134
|
this.#version = options.version ?? "0.0.0";
|
|
131
135
|
this.#editor = new Editor(this.#tui, EDITOR_THEME, { paddingX: 0 });
|
|
136
|
+
this.#fileMentionAutocomplete =
|
|
137
|
+
options.searchFiles === undefined
|
|
138
|
+
? undefined
|
|
139
|
+
: new FileMentionAutocomplete(options.searchFiles, () => this.#requestRender());
|
|
132
140
|
this.#exitPromise = new Promise((resolve) => {
|
|
133
141
|
this.#exitResolve = resolve;
|
|
134
142
|
});
|
|
@@ -173,6 +181,7 @@ export class CodingAssistantApp {
|
|
|
173
181
|
this.#abortController?.abort();
|
|
174
182
|
this.#stopActivityAnimation();
|
|
175
183
|
this.#stopCursorBlink();
|
|
184
|
+
this.#fileMentionAutocomplete?.clear();
|
|
176
185
|
this.#editor.setText("");
|
|
177
186
|
this.#pastedImagesById.clear();
|
|
178
187
|
this.#requestRender();
|
|
@@ -306,11 +315,17 @@ export class CodingAssistantApp {
|
|
|
306
315
|
return;
|
|
307
316
|
}
|
|
308
317
|
const previousSlashCommandSuggestionCount = this.#slashCommandSuggestions().length;
|
|
318
|
+
const previousFileMentionSuggestionCount = this.#fileMentionSnapshot()?.items.length ?? 0;
|
|
309
319
|
if (this.#handleSlashCommandAutocompleteInput(data)) {
|
|
310
320
|
const nextSlashCommandSuggestionCount = this.#slashCommandSuggestions().length;
|
|
311
321
|
this.#requestRender(nextSlashCommandSuggestionCount < previousSlashCommandSuggestionCount);
|
|
312
322
|
return;
|
|
313
323
|
}
|
|
324
|
+
if (this.#fileMentionAutocomplete?.handleInput(data, this.#editor.getLines(), this.#editor.getCursor(), (path, context) => this.#completeFileMention(path, context)) === true) {
|
|
325
|
+
const nextFileMentionSuggestionCount = this.#fileMentionSnapshot()?.items.length ?? 0;
|
|
326
|
+
this.#requestRender(nextFileMentionSuggestionCount < previousFileMentionSuggestionCount);
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
314
329
|
if (matchesKey(data, "escape")) {
|
|
315
330
|
this.#markTypingActivity();
|
|
316
331
|
this.#handleEscape();
|
|
@@ -327,9 +342,11 @@ export class CodingAssistantApp {
|
|
|
327
342
|
}
|
|
328
343
|
this.#markTypingActivity();
|
|
329
344
|
this.#editor.handleInput(data);
|
|
330
|
-
this.#
|
|
345
|
+
this.#syncAutocompleteState();
|
|
331
346
|
const nextSlashCommandSuggestionCount = this.#slashCommandSuggestions().length;
|
|
332
|
-
this.#
|
|
347
|
+
const nextFileMentionSuggestionCount = this.#fileMentionSnapshot()?.items.length ?? 0;
|
|
348
|
+
this.#requestRender(nextSlashCommandSuggestionCount < previousSlashCommandSuggestionCount ||
|
|
349
|
+
nextFileMentionSuggestionCount < previousFileMentionSuggestionCount);
|
|
333
350
|
}
|
|
334
351
|
#handlePastedInput(data) {
|
|
335
352
|
if (this.#bracketedPasteBuffer !== undefined) {
|
|
@@ -406,7 +423,7 @@ export class CodingAssistantApp {
|
|
|
406
423
|
const prefix = currentText.length > 0 && !/\s$/u.test(currentText) ? " " : "";
|
|
407
424
|
this.#markTypingActivity();
|
|
408
425
|
this.#editor.insertTextAtCursor(`${prefix}${placeholder} `);
|
|
409
|
-
this.#
|
|
426
|
+
this.#syncAutocompleteState();
|
|
410
427
|
this.#requestRender();
|
|
411
428
|
}
|
|
412
429
|
#appendBracketedPaste(data) {
|
|
@@ -428,13 +445,13 @@ export class CodingAssistantApp {
|
|
|
428
445
|
}
|
|
429
446
|
#insertPaste(text) {
|
|
430
447
|
if (text.length === 0) {
|
|
431
|
-
this.#
|
|
448
|
+
this.#syncAutocompleteState();
|
|
432
449
|
this.#requestRender();
|
|
433
450
|
return;
|
|
434
451
|
}
|
|
435
452
|
this.#markTypingActivity();
|
|
436
453
|
this.#editor.handleInput(`${BRACKETED_PASTE_START}${text}${BRACKETED_PASTE_END}`);
|
|
437
|
-
this.#
|
|
454
|
+
this.#syncAutocompleteState();
|
|
438
455
|
this.#requestRender();
|
|
439
456
|
}
|
|
440
457
|
#isPlainPastePayload(data) {
|
|
@@ -447,7 +464,12 @@ export class CodingAssistantApp {
|
|
|
447
464
|
const safeWidth = Math.max(20, width);
|
|
448
465
|
const header = this.#renderHeader(safeWidth);
|
|
449
466
|
const slashCommandSuggestions = this.#slashCommandSuggestions();
|
|
450
|
-
const
|
|
467
|
+
const fileMentionSnapshot = slashCommandSuggestions.length === 0 ? this.#fileMentionSnapshot() : undefined;
|
|
468
|
+
const footer = this.#renderFooter(safeWidth, slashCommandSuggestions.length > 0
|
|
469
|
+
? slashCommandSuggestions
|
|
470
|
+
: (fileMentionSnapshot?.items ?? []), slashCommandSuggestions.length > 0
|
|
471
|
+
? this.#slashCommandSelectionIndex
|
|
472
|
+
: (fileMentionSnapshot?.selectedIndex ?? 0));
|
|
451
473
|
const input = this.#renderInput(safeWidth);
|
|
452
474
|
if (this.#exiting) {
|
|
453
475
|
return [...header, ...this.#renderTranscript(safeWidth)];
|
|
@@ -483,6 +505,7 @@ export class CodingAssistantApp {
|
|
|
483
505
|
return;
|
|
484
506
|
}
|
|
485
507
|
const prompt = submission.displayText;
|
|
508
|
+
this.#fileMentionAutocomplete?.clear();
|
|
486
509
|
this.#editor.setText("");
|
|
487
510
|
if (prompt.startsWith("/skill:")) {
|
|
488
511
|
await this.#submitSkillCommand(prompt);
|
|
@@ -1096,9 +1119,9 @@ export class CodingAssistantApp {
|
|
|
1096
1119
|
}
|
|
1097
1120
|
return this.#renderNoticeEntry("system", entry.text, width, SURFACE_MUTED_FG);
|
|
1098
1121
|
}
|
|
1099
|
-
#renderFooter(width,
|
|
1100
|
-
if (
|
|
1101
|
-
return this.#
|
|
1122
|
+
#renderFooter(width, suggestions, selectedIndex) {
|
|
1123
|
+
if (suggestions.length > 0) {
|
|
1124
|
+
return this.#renderAutocomplete(width, suggestions, selectedIndex);
|
|
1102
1125
|
}
|
|
1103
1126
|
const parts = [`${FOOTER_MODEL_FG}${this.#modelWithReasoningDisplayName()}${RESET}`];
|
|
1104
1127
|
parts.push(`${FOOTER_CWD_FG}${this.#cwdDisplayName()}${RESET}`);
|
|
@@ -1108,17 +1131,17 @@ export class CodingAssistantApp {
|
|
|
1108
1131
|
const line = `${" ".repeat(visibleWidth(INPUT_PROMPT))}${parts.join(`${DIM} • ${RESET}`)}`;
|
|
1109
1132
|
return [this.#fitLine(line, width)];
|
|
1110
1133
|
}
|
|
1111
|
-
#
|
|
1134
|
+
#renderAutocomplete(width, suggestions, selectedIndex, maxVisible = AUTOCOMPLETE_MAX_VISIBLE) {
|
|
1112
1135
|
const rowWidth = Math.max(1, width - 1);
|
|
1113
|
-
const visibleCount = Math.max(1, Math.min(maxVisible,
|
|
1114
|
-
const
|
|
1115
|
-
const startIndex = Math.max(0, Math.min(
|
|
1136
|
+
const visibleCount = Math.max(1, Math.min(maxVisible, AUTOCOMPLETE_MAX_VISIBLE));
|
|
1137
|
+
const safeSelectedIndex = Math.min(selectedIndex, suggestions.length - 1);
|
|
1138
|
+
const startIndex = Math.max(0, Math.min(safeSelectedIndex - Math.floor(visibleCount / 2), suggestions.length - visibleCount));
|
|
1116
1139
|
const visibleSuggestions = suggestions.slice(startIndex, startIndex + visibleCount);
|
|
1117
1140
|
const labelWidth = Math.max(8, ...visibleSuggestions.map((item) => visibleWidth(this.#singleLine(item.label)) + 2));
|
|
1118
1141
|
const labelColumnWidth = Math.min(labelWidth, Math.max(1, rowWidth - 2));
|
|
1119
1142
|
return visibleSuggestions.map((item, index) => {
|
|
1120
1143
|
const absoluteIndex = startIndex + index;
|
|
1121
|
-
const isSelected = absoluteIndex ===
|
|
1144
|
+
const isSelected = absoluteIndex === safeSelectedIndex;
|
|
1122
1145
|
const marker = isSelected ? "→ " : " ";
|
|
1123
1146
|
const label = this.#fitAndPadLine(this.#singleLine(item.label), labelColumnWidth);
|
|
1124
1147
|
const remainingWidth = Math.max(0, rowWidth - visibleWidth(marker) - visibleWidth(label));
|
|
@@ -1698,13 +1721,26 @@ export class CodingAssistantApp {
|
|
|
1698
1721
|
}
|
|
1699
1722
|
return suggestions;
|
|
1700
1723
|
}
|
|
1701
|
-
#
|
|
1724
|
+
#completeFileMention(path, context) {
|
|
1725
|
+
for (const _segment of FILE_MENTION_SEGMENTER.segment(context.prefix)) {
|
|
1726
|
+
this.#editor.handleInput("\x7f");
|
|
1727
|
+
}
|
|
1728
|
+
const suffix = context.afterCursor.length === 0 || !/^\s/u.test(context.afterCursor) ? " " : "";
|
|
1729
|
+
this.#editor.insertTextAtCursor(`${formatFileMention(path)}${suffix}`);
|
|
1730
|
+
this.#fileMentionAutocomplete?.clear();
|
|
1731
|
+
this.#syncAutocompleteState();
|
|
1732
|
+
}
|
|
1733
|
+
#fileMentionSnapshot() {
|
|
1734
|
+
return this.#fileMentionAutocomplete?.snapshot(this.#editor.getLines(), this.#editor.getCursor());
|
|
1735
|
+
}
|
|
1736
|
+
#syncAutocompleteState() {
|
|
1702
1737
|
const text = this.#editor.getText();
|
|
1703
1738
|
if (this.#dismissedSlashCommandText !== undefined &&
|
|
1704
1739
|
text !== this.#dismissedSlashCommandText) {
|
|
1705
1740
|
this.#dismissedSlashCommandText = undefined;
|
|
1706
1741
|
}
|
|
1707
1742
|
this.#slashCommandSuggestions();
|
|
1743
|
+
this.#fileMentionAutocomplete?.sync(this.#editor.getLines(), this.#editor.getCursor());
|
|
1708
1744
|
}
|
|
1709
1745
|
#reasoningShortcutDirection(data) {
|
|
1710
1746
|
if (REASONING_DOWN_RAW_KEYS.has(data) ||
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type AutocompleteItem } from "@earendil-works/pi-tui";
|
|
2
|
+
import type { FileSearchResult } from "../protocol/index.js";
|
|
3
|
+
import { type FileMentionContext } from "./findFileMentionContext.js";
|
|
4
|
+
export type SearchFilesForMention = (query: string) => Promise<readonly FileSearchResult[]>;
|
|
5
|
+
export interface FileMentionAutocompleteSnapshot {
|
|
6
|
+
context: FileMentionContext;
|
|
7
|
+
items: readonly AutocompleteItem[];
|
|
8
|
+
selectedIndex: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class FileMentionAutocomplete {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(searchFiles: SearchFilesForMention, onChange: () => void);
|
|
13
|
+
clear(): void;
|
|
14
|
+
handleInput(data: string, lines: readonly string[], cursor: {
|
|
15
|
+
line: number;
|
|
16
|
+
col: number;
|
|
17
|
+
}, onComplete: (path: string, context: FileMentionContext) => void): boolean;
|
|
18
|
+
snapshot(lines: readonly string[], cursor: {
|
|
19
|
+
line: number;
|
|
20
|
+
col: number;
|
|
21
|
+
}): FileMentionAutocompleteSnapshot | undefined;
|
|
22
|
+
sync(lines: readonly string[], cursor: {
|
|
23
|
+
line: number;
|
|
24
|
+
col: number;
|
|
25
|
+
}): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=FileMentionAutocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileMentionAutocomplete.d.ts","sourceRoot":"","sources":["../../sources/app/FileMentionAutocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAI9F,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;AAE5F,MAAM,WAAW,+BAA+B;IAC5C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,uBAAuB;;gBAWpB,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,IAAI;IAKpE,KAAK,IAAI,IAAI;IAQb,WAAW,CACP,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EACrC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,IAAI,GAChE,OAAO;IAyCV,QAAQ,CACJ,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACtC,+BAA+B,GAAG,SAAS;IAkB9C,IAAI,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAuD9E"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { matchesKey } from "@earendil-works/pi-tui";
|
|
2
|
+
import { createFileMentionAutocompleteItems } from "./createFileMentionAutocompleteItems.js";
|
|
3
|
+
import { findFileMentionContext } from "./findFileMentionContext.js";
|
|
4
|
+
const SEARCH_DEBOUNCE_MS = 80;
|
|
5
|
+
export class FileMentionAutocomplete {
|
|
6
|
+
#onChange;
|
|
7
|
+
#searchFiles;
|
|
8
|
+
#contextKey;
|
|
9
|
+
#dismissedContextKey;
|
|
10
|
+
#items = [];
|
|
11
|
+
#requestId = 0;
|
|
12
|
+
#searchTimer;
|
|
13
|
+
#selectedIndex = 0;
|
|
14
|
+
constructor(searchFiles, onChange) {
|
|
15
|
+
this.#searchFiles = searchFiles;
|
|
16
|
+
this.#onChange = onChange;
|
|
17
|
+
}
|
|
18
|
+
clear() {
|
|
19
|
+
this.#cancelSearch();
|
|
20
|
+
this.#contextKey = undefined;
|
|
21
|
+
this.#dismissedContextKey = undefined;
|
|
22
|
+
this.#items = [];
|
|
23
|
+
this.#selectedIndex = 0;
|
|
24
|
+
}
|
|
25
|
+
handleInput(data, lines, cursor, onComplete) {
|
|
26
|
+
const snapshot = this.snapshot(lines, cursor);
|
|
27
|
+
const context = snapshot?.context ?? findFileMentionContext(lines, cursor);
|
|
28
|
+
if (context === undefined || context.key === this.#dismissedContextKey) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (matchesKey(data, "escape")) {
|
|
32
|
+
this.#dismissedContextKey = context.key;
|
|
33
|
+
this.#cancelSearch();
|
|
34
|
+
this.#items = [];
|
|
35
|
+
this.#selectedIndex = 0;
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
if (snapshot === undefined || snapshot.items.length === 0) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
if (matchesKey(data, "up")) {
|
|
42
|
+
this.#selectedIndex =
|
|
43
|
+
(this.#selectedIndex + snapshot.items.length - 1) % snapshot.items.length;
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
if (matchesKey(data, "down")) {
|
|
47
|
+
this.#selectedIndex = (this.#selectedIndex + 1) % snapshot.items.length;
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
if (matchesKey(data, "enter") || matchesKey(data, "tab")) {
|
|
51
|
+
const selected = snapshot.items[this.#selectedIndex] ?? snapshot.items[0];
|
|
52
|
+
if (selected !== undefined) {
|
|
53
|
+
onComplete(selected.value, context);
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
snapshot(lines, cursor) {
|
|
60
|
+
const context = findFileMentionContext(lines, cursor);
|
|
61
|
+
if (context === undefined ||
|
|
62
|
+
context.key !== this.#contextKey ||
|
|
63
|
+
context.key === this.#dismissedContextKey ||
|
|
64
|
+
this.#items.length === 0) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
context,
|
|
69
|
+
items: this.#items,
|
|
70
|
+
selectedIndex: this.#selectedIndex,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
sync(lines, cursor) {
|
|
74
|
+
const context = findFileMentionContext(lines, cursor);
|
|
75
|
+
if (context === undefined) {
|
|
76
|
+
this.clear();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (context.key === this.#dismissedContextKey) {
|
|
80
|
+
this.#contextKey = context.key;
|
|
81
|
+
this.#items = [];
|
|
82
|
+
this.#selectedIndex = 0;
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (context.key === this.#contextKey) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.#dismissedContextKey = undefined;
|
|
89
|
+
this.#contextKey = context.key;
|
|
90
|
+
this.#cancelSearch();
|
|
91
|
+
const requestId = this.#requestId;
|
|
92
|
+
this.#searchTimer = setTimeout(() => {
|
|
93
|
+
this.#searchTimer = undefined;
|
|
94
|
+
void this.#runSearch(context, requestId);
|
|
95
|
+
}, SEARCH_DEBOUNCE_MS);
|
|
96
|
+
this.#searchTimer.unref?.();
|
|
97
|
+
}
|
|
98
|
+
#cancelSearch() {
|
|
99
|
+
this.#requestId += 1;
|
|
100
|
+
if (this.#searchTimer !== undefined) {
|
|
101
|
+
clearTimeout(this.#searchTimer);
|
|
102
|
+
this.#searchTimer = undefined;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async #runSearch(context, requestId) {
|
|
106
|
+
let files;
|
|
107
|
+
try {
|
|
108
|
+
files = await this.#searchFiles(context.query);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
files = [];
|
|
112
|
+
}
|
|
113
|
+
if (requestId !== this.#requestId || context.key !== this.#contextKey) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
this.#items = createFileMentionAutocompleteItems(files);
|
|
117
|
+
if (this.#selectedIndex >= this.#items.length) {
|
|
118
|
+
this.#selectedIndex = 0;
|
|
119
|
+
}
|
|
120
|
+
this.#onChange();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -4,7 +4,7 @@ import { createBedrockProvider } from "../providers/bedrock.js";
|
|
|
4
4
|
import { createClaudeSdkProvider } from "../providers/claude-sdk.js";
|
|
5
5
|
import { createCodexProvider } from "../providers/codex.js";
|
|
6
6
|
import { getBedrockModelRoute } from "../providers/getBedrockModelRoute.js";
|
|
7
|
-
import {
|
|
7
|
+
import { modelOpenaiGpt56Sol } from "../providers/models.js";
|
|
8
8
|
import { claudeCodeTools } from "../tools/claude/index.js";
|
|
9
9
|
import { codexTools } from "../tools/codex/index.js";
|
|
10
10
|
import { piTools } from "../tools/pi/index.js";
|
|
@@ -19,7 +19,7 @@ export function createCodingAssistantAgent(options) {
|
|
|
19
19
|
if (options.subagents !== undefined) {
|
|
20
20
|
context.subagents = options.subagents;
|
|
21
21
|
}
|
|
22
|
-
const modelId = options.modelId ??
|
|
22
|
+
const modelId = options.modelId ?? modelOpenaiGpt56Sol.id;
|
|
23
23
|
const providerId = options.providerId ??
|
|
24
24
|
(modelId.startsWith("anthropic/")
|
|
25
25
|
? "claude-sdk"
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AutocompleteItem } from "@earendil-works/pi-tui";
|
|
2
|
+
import type { FileSearchResult } from "../protocol/index.js";
|
|
3
|
+
export declare function createFileMentionAutocompleteItems(files: readonly FileSearchResult[]): AutocompleteItem[];
|
|
4
|
+
//# sourceMappingURL=createFileMentionAutocompleteItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createFileMentionAutocompleteItems.d.ts","sourceRoot":"","sources":["../../sources/app/createFileMentionAutocompleteItems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,SAAS,gBAAgB,EAAE,GACnC,gBAAgB,EAAE,CAMpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describeReasoningLevel.d.ts","sourceRoot":"","sources":["../../sources/app/describeReasoningLevel.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GACpD,MAAM,
|
|
1
|
+
{"version":3,"file":"describeReasoningLevel.d.ts","sourceRoot":"","sources":["../../sources/app/describeReasoningLevel.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GACpD,MAAM,CAqBR"}
|
|
@@ -9,6 +9,7 @@ export function describeReasoningLevel(level, options) {
|
|
|
9
9
|
high: "Spend more time on harder changes.",
|
|
10
10
|
xhigh: "Think deeply through complex work.",
|
|
11
11
|
max: "Use the largest reasoning budget available.",
|
|
12
|
+
ultra: "Use maximum reasoning with task delegation.",
|
|
12
13
|
};
|
|
13
14
|
const parts = [descriptions[level] ?? `Use ${humanizeReasoningLevel(level)} reasoning.`];
|
|
14
15
|
if (options.isCurrent) {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type FileMentionPrefix } from "./findFileMentionPrefix.js";
|
|
2
|
+
export interface FileMentionContext extends FileMentionPrefix {
|
|
3
|
+
afterCursor: string;
|
|
4
|
+
key: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function findFileMentionContext(lines: readonly string[], cursor: {
|
|
7
|
+
line: number;
|
|
8
|
+
col: number;
|
|
9
|
+
}): FileMentionContext | undefined;
|
|
10
|
+
//# sourceMappingURL=findFileMentionContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findFileMentionContext.d.ts","sourceRoot":"","sources":["../../sources/app/findFileMentionContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACtC,kBAAkB,GAAG,SAAS,CAYhC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { findFileMentionPrefix } from "./findFileMentionPrefix.js";
|
|
2
|
+
export function findFileMentionContext(lines, cursor) {
|
|
3
|
+
const line = lines[cursor.line] ?? "";
|
|
4
|
+
const mention = findFileMentionPrefix(line.slice(0, cursor.col));
|
|
5
|
+
if (mention === undefined) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
...mention,
|
|
10
|
+
afterCursor: line.slice(cursor.col),
|
|
11
|
+
key: `${cursor.line}:${cursor.col}:${mention.prefix}`,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findFileMentionPrefix.d.ts","sourceRoot":"","sources":["../../sources/app/findFileMentionPrefix.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAkB7F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function findFileMentionPrefix(textBeforeCursor) {
|
|
2
|
+
const quoted = /(?:^|\s)(@"([^"]*))$/u.exec(textBeforeCursor);
|
|
3
|
+
if (quoted?.[1] !== undefined) {
|
|
4
|
+
return {
|
|
5
|
+
prefix: quoted[1],
|
|
6
|
+
query: quoted[2] ?? "",
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
const unquoted = /(?:^|\s)(@([^\s"]*))$/u.exec(textBeforeCursor);
|
|
10
|
+
if (unquoted?.[1] === undefined) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
prefix: unquoted[1],
|
|
15
|
+
query: unquoted[2] ?? "",
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatFileMention.d.ts","sourceRoot":"","sources":["../../sources/app/formatFileMention.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanizeReasoningLevel.d.ts","sourceRoot":"","sources":["../../sources/app/humanizeReasoningLevel.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"humanizeReasoningLevel.d.ts","sourceRoot":"","sources":["../../sources/app/humanizeReasoningLevel.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+B5D"}
|
package/dist/app/runApp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runApp.d.ts","sourceRoot":"","sources":["../../sources/app/runApp.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"runApp.d.ts","sourceRoot":"","sources":["../../sources/app/runApp.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwJvE"}
|
package/dist/app/runApp.js
CHANGED
|
@@ -115,6 +115,9 @@ export async function runApp(options = {}) {
|
|
|
115
115
|
});
|
|
116
116
|
},
|
|
117
117
|
processManager,
|
|
118
|
+
searchFiles: (query) => localServer.client
|
|
119
|
+
.searchFiles(session.session.id, query)
|
|
120
|
+
.then((response) => response.files),
|
|
118
121
|
sessionBacked: true,
|
|
119
122
|
showReasoning,
|
|
120
123
|
tui,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AbortRunResponse, ChangeEffortRequest, ChangeModelRequest, CreateSessionRequest, CreateSessionResponse, EventId, HealthResponse, ListModelsResponse, ListSessionsResponse, ListSubagentsResponse, ProtocolSession, SessionEvent, ShutdownServerResponse, SubmitMessageRequest, SubmitMessageResponse } from "../protocol/index.js";
|
|
1
|
+
import type { AbortRunResponse, ChangeEffortRequest, ChangeModelRequest, CreateSessionRequest, CreateSessionResponse, EventId, HealthResponse, ListModelsResponse, ListSessionsResponse, ListSubagentsResponse, ProtocolSession, SearchFilesResponse, SessionEvent, ShutdownServerResponse, SubmitMessageRequest, SubmitMessageResponse } from "../protocol/index.js";
|
|
2
2
|
export interface ProtocolHttpClientOptions {
|
|
3
3
|
socketPath: string;
|
|
4
4
|
token: string;
|
|
@@ -26,6 +26,7 @@ export declare class ProtocolHttpClient {
|
|
|
26
26
|
models(): Promise<ListModelsResponse>;
|
|
27
27
|
listSessions(limit?: number): Promise<ListSessionsResponse>;
|
|
28
28
|
listSubagents(sessionId: string): Promise<ListSubagentsResponse>;
|
|
29
|
+
searchFiles(sessionId: string, query: string, limit?: number): Promise<SearchFilesResponse>;
|
|
29
30
|
getSession(sessionId: string): Promise<{
|
|
30
31
|
session: ProtocolSession;
|
|
31
32
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtocolHttpClient.d.ts","sourceRoot":"","sources":["../../sources/client/ProtocolHttpClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,qBAAa,kBAAkB;;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,yBAAyB;IAK9C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInD,WAAW,CACP,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAQxC,YAAY,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAQxC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI5E,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAIjC,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAM3D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAIpE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAQlF,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAI/D,QAAQ,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAI3C,aAAa,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IAQ3B,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsH9E"}
|
|
1
|
+
{"version":3,"file":"ProtocolHttpClient.d.ts","sourceRoot":"","sources":["../../sources/client/ProtocolHttpClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,qBAAa,kBAAkB;;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,yBAAyB;IAK9C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInD,WAAW,CACP,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAQxC,YAAY,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAQxC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI5E,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAIjC,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAM3D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAWvF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAIpE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAQlF,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAI/D,QAAQ,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAI3C,aAAa,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IAQ3B,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsH9E"}
|
|
@@ -31,6 +31,13 @@ export class ProtocolHttpClient {
|
|
|
31
31
|
listSubagents(sessionId) {
|
|
32
32
|
return this.#requestJson("GET", `/sessions/${encodeURIComponent(sessionId)}/subagents`);
|
|
33
33
|
}
|
|
34
|
+
searchFiles(sessionId, query, limit = 20) {
|
|
35
|
+
const parameters = new URLSearchParams({
|
|
36
|
+
limit: String(limit),
|
|
37
|
+
query,
|
|
38
|
+
});
|
|
39
|
+
return this.#requestJson("GET", `/sessions/${encodeURIComponent(sessionId)}/files?${parameters.toString()}`);
|
|
40
|
+
}
|
|
34
41
|
getSession(sessionId) {
|
|
35
42
|
return this.#requestJson("GET", `/sessions/${encodeURIComponent(sessionId)}`);
|
|
36
43
|
}
|
|
@@ -103,6 +103,13 @@ export interface ListSessionsResponse {
|
|
|
103
103
|
export interface ListSubagentsResponse {
|
|
104
104
|
subagents: readonly SubagentSummary[];
|
|
105
105
|
}
|
|
106
|
+
export interface FileSearchResult {
|
|
107
|
+
fileName: string;
|
|
108
|
+
path: string;
|
|
109
|
+
}
|
|
110
|
+
export interface SearchFilesResponse {
|
|
111
|
+
files: readonly FileSearchResult[];
|
|
112
|
+
}
|
|
106
113
|
export interface ShutdownServerResponse {
|
|
107
114
|
shuttingDown: boolean;
|
|
108
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionProtocol.d.ts","sourceRoot":"","sources":["../../sources/protocol/SessionProtocol.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SessionProtocol.d.ts","sourceRoot":"","sources":["../../sources/protocol/SessionProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,yBAAyB,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAExE,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,0BAA0B,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,aAAa,GACb,mBAAmB,GACnB,iBAAiB,GACjB,wBAAwB,GACxB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,CAAC;AAE3B,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,iBAAiB,EAAE;IAAE,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC,CAAC;AAEpG,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAChD,mBAAmB,EACnB;IACI,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACjB,CACJ,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,aAAa,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAC3C,aAAa,EACb;IACI,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB,CACJ,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAC5C,eAAe,EACf;IACI,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,CACJ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAC3C,cAAc,EACd;IACI,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;CAC1B,CACJ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,gBAAgB,CACxC,WAAW,EACX;IACI,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACjB,CACJ,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAC9C,iBAAiB,EACjB;IACI,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CACJ,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,eAAe,EAAE;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAE/F,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CACnD,uBAAuB,EACvB;IACI,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CACJ,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAC5C,eAAe,EACf;IACI,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;CAC3B,CACJ,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAC7C,gBAAgB,EAChB;IACI,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;CAC3B,CACJ,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAC/C,kBAAkB,EAClB;IACI,QAAQ,EAAE,eAAe,CAAC;CAC7B,CACJ,CAAC"}
|