@travisennis/acai 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +29 -27
- package/dist/cli/stdin.d.ts +2 -1
- package/dist/cli/stdin.d.ts.map +1 -1
- package/dist/commands/generate-rules/service.d.ts +3 -2
- package/dist/commands/generate-rules/service.d.ts.map +1 -1
- package/dist/commands/health/utils.d.ts +3 -2
- package/dist/commands/health/utils.d.ts.map +1 -1
- package/dist/commands/init-project/utils.d.ts +2 -1
- package/dist/commands/init-project/utils.d.ts.map +1 -1
- package/dist/commands/review/utils.d.ts +6 -1
- package/dist/commands/review/utils.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/models/opencode-go-provider.d.ts +25 -0
- package/dist/models/opencode-go-provider.d.ts.map +1 -0
- package/dist/models/opencode-go-provider.js +78 -0
- package/dist/models/opencode-zen-provider.d.ts +3 -3
- package/dist/models/opencode-zen-provider.js +17 -17
- package/dist/models/openrouter-provider.d.ts +4 -1
- package/dist/models/openrouter-provider.d.ts.map +1 -1
- package/dist/models/openrouter-provider.js +39 -0
- package/dist/models/providers.d.ts +3 -3
- package/dist/models/providers.d.ts.map +1 -1
- package/dist/models/providers.js +6 -0
- package/dist/modes/manager.d.ts +2 -1
- package/dist/modes/manager.d.ts.map +1 -1
- package/dist/modes/prompts.d.ts +1 -1
- package/dist/modes/prompts.d.ts.map +1 -1
- package/dist/modes/prompts.js +1 -2
- package/dist/prompts/mentions.d.ts.map +1 -1
- package/dist/prompts/mentions.js +35 -6
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +9 -1
- package/dist/sessions/manager.d.ts +3 -3
- package/dist/sessions/manager.d.ts.map +1 -1
- package/dist/sessions/manager.js +1 -1
- package/dist/skills/index.d.ts +2 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/subagents/index.d.ts +2 -1
- package/dist/subagents/index.d.ts.map +1 -1
- package/dist/terminal/table/utils.d.ts +1 -1
- package/dist/terminal/table/utils.d.ts.map +1 -1
- package/dist/terminal/wrap-ansi.js +2 -2
- package/dist/tools/agent.js +1 -1
- package/dist/tools/apply-patch.d.ts +62 -0
- package/dist/tools/apply-patch.d.ts.map +1 -0
- package/dist/tools/apply-patch.js +377 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +28 -7
- package/dist/tools/directory-tree.d.ts.map +1 -1
- package/dist/tools/directory-tree.js +1 -1
- package/dist/tools/dynamic-tool-loader.d.ts +1 -1
- package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
- package/dist/tools/edit-file.d.ts.map +1 -1
- package/dist/tools/edit-file.js +188 -79
- package/dist/tools/glob.d.ts.map +1 -1
- package/dist/tools/glob.js +22 -15
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +43 -29
- package/dist/tools/index.d.ts +15 -48
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -4
- package/dist/tools/ls.d.ts.map +1 -1
- package/dist/tools/ls.js +1 -1
- package/dist/tools/read-file.d.ts +1 -3
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +21 -16
- package/dist/tools/save-file.d.ts.map +1 -1
- package/dist/tools/save-file.js +26 -21
- package/dist/tools/web-fetch.d.ts +0 -12
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +18 -1
- package/dist/tools/web-search.d.ts +0 -18
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tui/autocomplete/file-search-provider.js +1 -1
- package/dist/tui/autocomplete/utils.d.ts +2 -1
- package/dist/tui/autocomplete/utils.d.ts.map +1 -1
- package/dist/tui/autocomplete/utils.js +25 -23
- package/dist/tui/components/editor.d.ts +2 -1
- package/dist/tui/components/editor.d.ts.map +1 -1
- package/dist/tui/components/editor.js +1 -1
- package/dist/tui/components/markdown.d.ts +2 -2
- package/dist/tui/components/markdown.d.ts.map +1 -1
- package/dist/tui/components/welcome.d.ts +2 -1
- package/dist/tui/components/welcome.d.ts.map +1 -1
- package/dist/tui/editor-launcher.d.ts +3 -2
- package/dist/tui/editor-launcher.d.ts.map +1 -1
- package/dist/tui/index.d.ts +0 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/tui.d.ts +1 -0
- package/dist/tui/tui.d.ts.map +1 -1
- package/dist/tui/tui.js +9 -0
- package/dist/tui/utils.d.ts +1 -5
- package/dist/tui/utils.d.ts.map +1 -1
- package/dist/tui/utils.js +271 -44
- package/package.json +18 -18
- package/dist/commands/add-directory/types.d.ts +0 -6
- package/dist/commands/add-directory/types.d.ts.map +0 -1
- package/dist/commands/add-directory/types.js +0 -1
- package/dist/commands/copy/types.d.ts +0 -3
- package/dist/commands/copy/types.d.ts.map +0 -1
- package/dist/commands/copy/types.js +0 -1
- package/dist/commands/review/types.d.ts +0 -12
- package/dist/commands/review/types.d.ts.map +0 -1
- package/dist/commands/review/types.js +0 -1
- package/dist/tools/code-search.d.ts +0 -41
- package/dist/tools/code-search.d.ts.map +0 -1
- package/dist/tools/code-search.js +0 -195
- package/dist/utils/iterables.d.ts +0 -2
- package/dist/utils/iterables.d.ts.map +0 -1
- package/dist/utils/iterables.js +0 -6
|
@@ -21,7 +21,6 @@ declare const inputSchema: z.ZodObject<{
|
|
|
21
21
|
}>>>;
|
|
22
22
|
startLine: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
|
|
23
23
|
lineCount: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
|
|
24
|
-
maxBytes: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
|
|
25
24
|
}, z.core.$strip>;
|
|
26
25
|
type ReadFileInputSchema = z.infer<typeof inputSchema>;
|
|
27
26
|
export declare const createReadFileTool: (options: {
|
|
@@ -46,11 +45,10 @@ export declare const createReadFileTool: (options: {
|
|
|
46
45
|
}>>>;
|
|
47
46
|
startLine: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
|
|
48
47
|
lineCount: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
|
|
49
|
-
maxBytes: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
|
|
50
48
|
}, z.core.$strip>;
|
|
51
49
|
};
|
|
52
50
|
display({ path: providedPath, startLine, lineCount }: ReadFileInputSchema): string;
|
|
53
|
-
execute({ path: providedPath, encoding, startLine, lineCount,
|
|
51
|
+
execute({ path: providedPath, encoding, startLine, lineCount, }: ReadFileInputSchema, { abortSignal }: ToolExecutionOptions): Promise<string>;
|
|
54
52
|
}>;
|
|
55
53
|
export {};
|
|
56
54
|
//# sourceMappingURL=read-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../source/tools/read-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../source/tools/read-file.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAsBvD,eAAO,MAAM,YAAY;;CAExB,CAAC;AAEF,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;iBAkBf,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,eAAO,MAAM,kBAAkB,GAAU,SAAS;IAChD,SAAS,EAAE,gBAAgB,CAAC;CAC7B;;;;;;;;;;;;;;;;;;;;;;0DAOyD,mBAAmB;qEAUpE,mBAAmB,mBACL,oBAAoB,GACpC,OAAO,CAAC,MAAM,CAAC;EAsBrB,CAAC"}
|
package/dist/tools/read-file.js
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
2
4
|
import { createInterface } from "node:readline/promises";
|
|
3
5
|
import { isNumber } from "@travisennis/stdlib/typeguards";
|
|
4
6
|
import { z } from "zod";
|
|
5
7
|
import style from "../terminal/style.js";
|
|
6
8
|
import { toDisplayPath } from "../utils/filesystem/path-display.js";
|
|
7
|
-
import { joinWorkingDir, validatePath } from "../utils/filesystem/security.js";
|
|
8
9
|
import { convertNullString } from "../utils/zod.js";
|
|
9
10
|
import { fileEncodingSchema } from "./types.js";
|
|
10
|
-
//
|
|
11
|
-
const
|
|
11
|
+
// hardcoded limit in bytes (50KB) - not configurable by the agent
|
|
12
|
+
const BYTE_LIMIT = 50 * 1024;
|
|
13
|
+
// Resolve a path for reading, expanding ~ and handling relative paths
|
|
14
|
+
function resolveReadPath(providedPath, workingDir) {
|
|
15
|
+
// Expand ~ to home directory
|
|
16
|
+
let resolved = providedPath;
|
|
17
|
+
if (resolved.startsWith("~/") || resolved === "~") {
|
|
18
|
+
resolved = path.join(os.homedir(), resolved.slice(1));
|
|
19
|
+
}
|
|
20
|
+
// If not absolute, join with working directory
|
|
21
|
+
if (!path.isAbsolute(resolved)) {
|
|
22
|
+
resolved = path.join(workingDir, resolved);
|
|
23
|
+
}
|
|
24
|
+
return path.normalize(resolved);
|
|
25
|
+
}
|
|
12
26
|
export const ReadFileTool = {
|
|
13
27
|
name: "Read",
|
|
14
28
|
};
|
|
@@ -24,13 +38,9 @@ const inputSchema = z.object({
|
|
|
24
38
|
lineCount: z
|
|
25
39
|
.preprocess((val) => convertNullString(val), z.coerce.number().nullable())
|
|
26
40
|
.describe("Maximum number of lines to read. Required but nullable. Pass null to get all lines."),
|
|
27
|
-
maxBytes: z
|
|
28
|
-
.preprocess((val) => convertNullString(val), z.coerce.number().nullable())
|
|
29
|
-
.describe("Maximum number of bytes to read. Set to 0 for no limit. (Default: 20KB)"),
|
|
30
41
|
});
|
|
31
42
|
export const createReadFileTool = async (options) => {
|
|
32
|
-
const { primaryDir
|
|
33
|
-
const allowedDirectory = allowedDirs ?? [primaryDir];
|
|
43
|
+
const { primaryDir } = options.workspace;
|
|
34
44
|
return {
|
|
35
45
|
toolDef: {
|
|
36
46
|
description: "Read the contents of a file.",
|
|
@@ -40,15 +50,14 @@ export const createReadFileTool = async (options) => {
|
|
|
40
50
|
const displayPath = toDisplayPath(providedPath);
|
|
41
51
|
return `${style.cyan(displayPath)}${startLine ? style.cyan(`:${startLine}`) : ""}${lineCount ? style.cyan(`:${lineCount}`) : ""}`;
|
|
42
52
|
},
|
|
43
|
-
async execute({ path: providedPath, encoding, startLine, lineCount,
|
|
53
|
+
async execute({ path: providedPath, encoding, startLine, lineCount, }, { abortSignal }) {
|
|
44
54
|
if (abortSignal?.aborted) {
|
|
45
55
|
throw new Error("File reading aborted");
|
|
46
56
|
}
|
|
47
|
-
const filePath =
|
|
57
|
+
const filePath = resolveReadPath(providedPath, primaryDir);
|
|
48
58
|
const effectiveEncoding = encoding ?? "utf-8";
|
|
49
|
-
const effectiveMaxBytes = maxBytes ?? DEFAULT_BYTE_LIMIT;
|
|
50
59
|
const file = await readFileContent(filePath, effectiveEncoding, startLine, lineCount, abortSignal);
|
|
51
|
-
validateByteLimit(file, effectiveEncoding,
|
|
60
|
+
validateByteLimit(file, effectiveEncoding, BYTE_LIMIT);
|
|
52
61
|
return file;
|
|
53
62
|
},
|
|
54
63
|
};
|
|
@@ -98,15 +107,11 @@ async function readFileLines(filePath, startLine, lineCount, abortSignal) {
|
|
|
98
107
|
}
|
|
99
108
|
// Validate that file content doesn't exceed byte limit
|
|
100
109
|
function validateByteLimit(file, encoding, maxBytes) {
|
|
101
|
-
if (maxBytes <= 0) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
110
|
const byteLength = Buffer.byteLength(file, encoding);
|
|
105
111
|
if (byteLength > maxBytes) {
|
|
106
112
|
const fileSizeKb = (byteLength / 1024).toFixed(1);
|
|
107
113
|
const limitKb = (maxBytes / 1024).toFixed(0);
|
|
108
114
|
throw new Error(`File (${fileSizeKb}KB) exceeds the ${limitKb}KB read limit. To read this file, use one of these options:\n` +
|
|
109
|
-
"• Set maxBytes: 0 to read the entire file\n" +
|
|
110
115
|
"• Use startLine and lineCount to read specific portions (e.g., startLine: 1, lineCount: 100)\n" +
|
|
111
116
|
"• Use the Grep tool to search for specific content\n" +
|
|
112
117
|
`• Use the Bash tool with 'tail' or 'head' commands`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-file.d.ts","sourceRoot":"","sources":["../../source/tools/save-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AASpD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE3E,eAAO,MAAM,YAAY;;CAExB,CAAC;AAEF,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;iBAQf,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"save-file.d.ts","sourceRoot":"","sources":["../../source/tools/save-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AASpD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE3E,eAAO,MAAM,YAAY;;CAExB,CAAC;AAEF,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;iBAQf,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AA8BvD,eAAO,MAAM,kBAAkB,GAAU,SAAS;IAChD,SAAS,EAAE,gBAAgB,CAAC;CAC7B;;;;;;;;;;;;;;;;;;;;;sBAUqB,mBAAmB;mDAKI,mBAAmB,mBACzC,oBAAoB,GACpC,OAAO,CAAC,MAAM,CAAC;EA8BrB,CAAC"}
|
package/dist/tools/save-file.js
CHANGED
|
@@ -17,6 +17,30 @@ const inputSchema = z.object({
|
|
|
17
17
|
.describe('Encoding format for saving the file. Use "utf-8" as default for text files')
|
|
18
18
|
.default("utf-8"),
|
|
19
19
|
});
|
|
20
|
+
async function checkFileNotReadOnly(filePath, projectConfig, primaryDir) {
|
|
21
|
+
try {
|
|
22
|
+
await fs.stat(filePath);
|
|
23
|
+
validateFileNotReadOnly(filePath, projectConfig, primaryDir);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error.code !== "ENOENT") {
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async function ensurePathIsFile(filePath) {
|
|
32
|
+
try {
|
|
33
|
+
const stat = await fs.stat(filePath);
|
|
34
|
+
if (stat.isDirectory()) {
|
|
35
|
+
throw new Error(`Cannot save file - path is a directory: ${filePath}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error.code !== "ENOENT") {
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
20
44
|
export const createSaveFileTool = async (options) => {
|
|
21
45
|
const { primaryDir, allowedDirs } = options.workspace;
|
|
22
46
|
const allowedDirectory = allowedDirs ?? [primaryDir];
|
|
@@ -35,27 +59,8 @@ export const createSaveFileTool = async (options) => {
|
|
|
35
59
|
throw new Error("File saving aborted");
|
|
36
60
|
}
|
|
37
61
|
const filePath = await validatePath(joinWorkingDir(userPath, primaryDir), allowedDirectory, { requireExistence: false, abortSignal });
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
validateFileNotReadOnly(filePath, projectConfig, primaryDir);
|
|
41
|
-
}
|
|
42
|
-
catch (error) {
|
|
43
|
-
if (error.code !== "ENOENT") {
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
const stat = await fs.stat(filePath);
|
|
49
|
-
if (stat.isDirectory()) {
|
|
50
|
-
throw new Error(`Cannot save file - path is a directory: ${filePath}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
if (error instanceof Error &&
|
|
55
|
-
error.message.includes("is a directory")) {
|
|
56
|
-
throw error;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
62
|
+
await checkFileNotReadOnly(filePath, projectConfig, primaryDir);
|
|
63
|
+
await ensurePathIsFile(filePath);
|
|
59
64
|
if (abortSignal?.aborted) {
|
|
60
65
|
throw new Error("File saving aborted before writing");
|
|
61
66
|
}
|
|
@@ -19,18 +19,6 @@ declare const inputSchema: z.ZodObject<{
|
|
|
19
19
|
headers: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | null, unknown>, z.ZodNullable<z.ZodCoercedBoolean<unknown>>>>;
|
|
20
20
|
}, z.core.$strip>;
|
|
21
21
|
type WebFetchInputSchema = z.infer<typeof inputSchema>;
|
|
22
|
-
/**
|
|
23
|
-
* Fetch result interface
|
|
24
|
-
*/
|
|
25
|
-
export interface FetchResult {
|
|
26
|
-
content: string;
|
|
27
|
-
contentType: string;
|
|
28
|
-
sourceUrl: string;
|
|
29
|
-
tokenCount: number;
|
|
30
|
-
success: boolean;
|
|
31
|
-
provider: "jina" | "local" | "direct";
|
|
32
|
-
headers?: Record<string, string>;
|
|
33
|
-
}
|
|
34
22
|
/**
|
|
35
23
|
* Execute web fetch
|
|
36
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-fetch.d.ts","sourceRoot":"","sources":["../../source/tools/web-fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,YAAY;;CAExB,CAAC;AAQF;;GAEG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;iBAkBf,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"web-fetch.d.ts","sourceRoot":"","sources":["../../source/tools/web-fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,YAAY;;CAExB,CAAC;AAQF;;GAEG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;iBAkBf,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AA6bvD;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,gBAAgB,EAAE,oBAAoB,GACrC,OAAO,CAAC,MAAM,CAAC,CAiEjB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;qBAQV,mBAAmB;qBAIzB,mBAAmB,oBACV,oBAAoB,GACrC,OAAO,CAAC,MAAM,CAAC;EAIrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC"}
|
package/dist/tools/web-fetch.js
CHANGED
|
@@ -304,12 +304,29 @@ async function fetchUrl(url, options) {
|
|
|
304
304
|
const { useJina = false, timeout = DEFAULT_TIMEOUT, verbose = false, headers: includeHeaders = false, abortSignal, } = options;
|
|
305
305
|
let redirectCount = 0;
|
|
306
306
|
let currentUrl = url;
|
|
307
|
-
while (redirectCount
|
|
307
|
+
while (redirectCount < MAX_REDIRECTS) {
|
|
308
308
|
const { signal, cleanup } = createTimeoutSignal(timeout, abortSignal);
|
|
309
309
|
try {
|
|
310
|
+
// Standard browser headers to avoid 403 errors on bot-protected sites
|
|
311
|
+
const requestHeaders = {
|
|
312
|
+
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
|
313
|
+
// biome-ignore lint/style/useNamingConvention: HTTP header name must match specification
|
|
314
|
+
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
|
|
315
|
+
"Accept-Language": "en-US,en;q=0.9",
|
|
316
|
+
"Accept-Encoding": "gzip, deflate, br",
|
|
317
|
+
// biome-ignore lint/style/useNamingConvention: HTTP header name must match specification
|
|
318
|
+
Connection: "keep-alive",
|
|
319
|
+
"Upgrade-Insecure-Requests": "1",
|
|
320
|
+
"Sec-Fetch-Dest": "document",
|
|
321
|
+
"Sec-Fetch-Mode": "navigate",
|
|
322
|
+
"Sec-Fetch-Site": "none",
|
|
323
|
+
"Sec-Fetch-User": "?1",
|
|
324
|
+
"Cache-Control": "max-age=0",
|
|
325
|
+
};
|
|
310
326
|
const response = await fetch(currentUrl, {
|
|
311
327
|
signal,
|
|
312
328
|
redirect: "manual",
|
|
329
|
+
headers: requestHeaders,
|
|
313
330
|
});
|
|
314
331
|
// Handle redirects
|
|
315
332
|
if (response.status >= 300 && response.status < 400) {
|
|
@@ -16,24 +16,6 @@ declare const inputSchema: z.ZodObject<{
|
|
|
16
16
|
}>>;
|
|
17
17
|
}, z.core.$strip>;
|
|
18
18
|
type WebSearchInputSchema = z.infer<typeof inputSchema>;
|
|
19
|
-
/**
|
|
20
|
-
* Search result interface
|
|
21
|
-
*/
|
|
22
|
-
export interface SearchResult {
|
|
23
|
-
title: string;
|
|
24
|
-
url: string;
|
|
25
|
-
snippet: string;
|
|
26
|
-
publishedDate?: string;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Search response interface
|
|
30
|
-
*/
|
|
31
|
-
export interface SearchResponse {
|
|
32
|
-
results: SearchResult[];
|
|
33
|
-
provider: string;
|
|
34
|
-
query: string;
|
|
35
|
-
totalResults?: number;
|
|
36
|
-
}
|
|
37
19
|
/**
|
|
38
20
|
* Execute web search
|
|
39
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../source/tools/web-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAQF;;GAEG;AACH,QAAA,MAAM,WAAW;;;;;;;;iBAkBf,CAAC;AAEH,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../source/tools/web-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAQF;;GAEG;AACH,QAAA,MAAM,WAAW;;;;;;;;iBAkBf,CAAC;AAEH,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AA+MxD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,EAC7B,gBAAgB,EAAE,oBAAoB,GACrC,OAAO,CAAC,MAAM,CAAC,CAwEjB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;uBAQT,oBAAoB;qBAI5B,oBAAoB,oBACX,oBAAoB,GACrC,OAAO,CAAC,MAAM,CAAC;EAIrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC"}
|
|
@@ -7,10 +7,11 @@ export declare class DirectoryCache {
|
|
|
7
7
|
clear(): void;
|
|
8
8
|
}
|
|
9
9
|
export declare const directoryCache: DirectoryCache;
|
|
10
|
-
|
|
10
|
+
interface DirentWithPath extends Dirent {
|
|
11
11
|
parentPath: string;
|
|
12
12
|
}
|
|
13
13
|
export declare function getDirectoryEntries(dirs: string[]): Promise<DirentWithPath[]>;
|
|
14
14
|
export declare function isPathWithinAllowedDirs(requestedPath: string, allowedDirs: string[]): Promise<boolean>;
|
|
15
15
|
export declare function extractPathPrefix(text: string, forceExtract?: boolean): string | null;
|
|
16
|
+
export {};
|
|
16
17
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/tui/autocomplete/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKtC,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,GAAG,CAAQ;IAEb,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAQhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAIzC,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAGnD,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/tui/autocomplete/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKtC,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,GAAG,CAAQ;IAEb,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAQhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAIzC,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAGnD,UAAU,cAAe,SAAQ,MAAM;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,cAAc,EAAE,CAAC,CA4B3B;AA8BD,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,OAAO,CAAC,CAWlB;AAmCD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,YAAY,UAAQ,GACnB,MAAM,GAAG,IAAI,CAuCf"}
|
|
@@ -83,6 +83,27 @@ export async function isPathWithinAllowedDirs(requestedPath, allowedDirs) {
|
|
|
83
83
|
}
|
|
84
84
|
return false;
|
|
85
85
|
}
|
|
86
|
+
function hasPathIndicator(pathPrefix) {
|
|
87
|
+
return (pathPrefix.includes("/") ||
|
|
88
|
+
pathPrefix.endsWith("/") ||
|
|
89
|
+
pathPrefix.startsWith(".") ||
|
|
90
|
+
pathPrefix.startsWith("~/"));
|
|
91
|
+
}
|
|
92
|
+
function isPartialPath(pathPrefix) {
|
|
93
|
+
return (!pathPrefix.includes("/") &&
|
|
94
|
+
!pathPrefix.includes(".") &&
|
|
95
|
+
!pathPrefix.startsWith("./") &&
|
|
96
|
+
!pathPrefix.startsWith("../") &&
|
|
97
|
+
!pathPrefix.startsWith("~/") &&
|
|
98
|
+
pathPrefix.length > 3);
|
|
99
|
+
}
|
|
100
|
+
function shouldReturnEmptyForForceExtract(pathPrefix, text) {
|
|
101
|
+
return (!pathPrefix.includes("/") &&
|
|
102
|
+
!pathPrefix.endsWith("/") &&
|
|
103
|
+
!pathPrefix.startsWith(".") &&
|
|
104
|
+
!pathPrefix.startsWith("~/") &&
|
|
105
|
+
(text === "" || text.endsWith(" ")));
|
|
106
|
+
}
|
|
86
107
|
export function extractPathPrefix(text, forceExtract = false) {
|
|
87
108
|
// Match paths - more conservative approach to avoid matching already completed paths
|
|
88
109
|
// This regex captures:
|
|
@@ -97,40 +118,21 @@ export function extractPathPrefix(text, forceExtract = false) {
|
|
|
97
118
|
const pathPrefix = matches[1] || "";
|
|
98
119
|
// For forced extraction (Tab key), always return something
|
|
99
120
|
if (forceExtract) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (!pathPrefix.includes("/") &&
|
|
103
|
-
!pathPrefix.endsWith("/") &&
|
|
104
|
-
!pathPrefix.startsWith(".") &&
|
|
105
|
-
!pathPrefix.startsWith("~/")) {
|
|
106
|
-
// Only return empty string if we're at the beginning or after space
|
|
107
|
-
// This prevents completing "source" as empty string
|
|
108
|
-
if (text === "" || text.endsWith(" ")) {
|
|
109
|
-
return "";
|
|
110
|
-
}
|
|
121
|
+
if (shouldReturnEmptyForForceExtract(pathPrefix, text)) {
|
|
122
|
+
return "";
|
|
111
123
|
}
|
|
112
124
|
return pathPrefix;
|
|
113
125
|
}
|
|
114
126
|
// For natural triggers, be more conservative:
|
|
115
127
|
// Only trigger if we have a clear path indicator
|
|
116
|
-
|
|
117
|
-
pathPrefix.endsWith("/") ||
|
|
118
|
-
pathPrefix.startsWith(".") ||
|
|
119
|
-
pathPrefix.startsWith("~/");
|
|
120
|
-
if (!hasPathIndicator) {
|
|
128
|
+
if (!hasPathIndicator(pathPrefix)) {
|
|
121
129
|
return null;
|
|
122
130
|
}
|
|
123
131
|
// Additional check: don't trigger if the path looks like it's already completed
|
|
124
132
|
// (i.e., doesn't end with a partial filename)
|
|
125
133
|
// Only apply this check for paths that don't have clear path indicators
|
|
126
134
|
// and look like single directory names (no path separators)
|
|
127
|
-
if (
|
|
128
|
-
!pathPrefix.includes(".") &&
|
|
129
|
-
!pathPrefix.startsWith("./") &&
|
|
130
|
-
!pathPrefix.startsWith("../") &&
|
|
131
|
-
!pathPrefix.startsWith("~/") &&
|
|
132
|
-
pathPrefix.length > 3) {
|
|
133
|
-
// This might be a completed directory name, not a partial path
|
|
135
|
+
if (isPartialPath(pathPrefix)) {
|
|
134
136
|
return null;
|
|
135
137
|
}
|
|
136
138
|
return pathPrefix;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AutocompleteProvider } from "../autocomplete.ts";
|
|
2
2
|
import type { Component } from "../tui.ts";
|
|
3
3
|
import type { SelectListTheme } from "./select-list.ts";
|
|
4
|
-
|
|
4
|
+
interface EditorTheme {
|
|
5
5
|
borderColor: (str: string) => string;
|
|
6
6
|
selectList?: SelectListTheme;
|
|
7
7
|
}
|
|
@@ -121,4 +121,5 @@ export declare class Editor implements Component {
|
|
|
121
121
|
private isModifiedEnter;
|
|
122
122
|
getCursorPosition(): [number, number] | null;
|
|
123
123
|
}
|
|
124
|
+
export {};
|
|
124
125
|
//# sourceMappingURL=editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../source/tui/components/editor.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAuK3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../source/tui/components/editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ type Color = "black" | "red" | "green" | "yellow" | "blue" | "magenta" | "cyan"
|
|
|
5
5
|
* Theme functions for markdown elements.
|
|
6
6
|
* Each function takes text and returns styled text with ANSI codes.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
interface MarkdownTheme {
|
|
9
9
|
heading: (text: string) => string;
|
|
10
10
|
paragraph: (text: string) => string;
|
|
11
11
|
link: (text: string) => string;
|
|
@@ -25,7 +25,7 @@ export interface MarkdownTheme {
|
|
|
25
25
|
/**
|
|
26
26
|
* Options for configuring Markdown component
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
interface MarkdownOptions {
|
|
29
29
|
/** Background color */
|
|
30
30
|
bgColor?: Color;
|
|
31
31
|
/** Custom background RGB color */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../source/tui/components/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAM/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,KAAK,KAAK,GACN,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,SAAS,GACT,QAAQ,CAAC;AAEb;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../source/tui/components/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Component } from "../tui.ts";
|
|
2
|
-
|
|
2
|
+
interface WelcomeOptions {
|
|
3
3
|
type?: "default" | "simple";
|
|
4
4
|
}
|
|
5
5
|
export declare class Welcome implements Component {
|
|
@@ -10,4 +10,5 @@ export declare class Welcome implements Component {
|
|
|
10
10
|
private renderDefault;
|
|
11
11
|
private getLogo;
|
|
12
12
|
}
|
|
13
|
+
export {};
|
|
13
14
|
//# sourceMappingURL=welcome.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../../source/tui/components/welcome.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,
|
|
1
|
+
{"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../../source/tui/components/welcome.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC7B;AAED,qBAAa,OAAQ,YAAW,SAAS;IACvC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,GAAE,cAAmB;IAIxC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAQ/B,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,OAAO;CAUhB"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { Terminal } from "./terminal.ts";
|
|
2
|
-
|
|
2
|
+
interface EditorLaunchOptions {
|
|
3
3
|
initialContent?: string;
|
|
4
4
|
postfix?: string;
|
|
5
5
|
terminal: Terminal;
|
|
6
6
|
signal?: AbortSignal;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface EditorLaunchResult {
|
|
9
9
|
content: string;
|
|
10
10
|
aborted: boolean;
|
|
11
11
|
}
|
|
12
12
|
export declare function launchEditor(options: EditorLaunchOptions): Promise<EditorLaunchResult>;
|
|
13
|
+
export {};
|
|
13
14
|
//# sourceMappingURL=editor-launcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-launcher.d.ts","sourceRoot":"","sources":["../../source/tui/editor-launcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,
|
|
1
|
+
{"version":3,"file":"editor-launcher.d.ts","sourceRoot":"","sources":["../../source/tui/editor-launcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,UAAU,mBAAmB;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CA0C7B"}
|
package/dist/tui/index.d.ts
CHANGED
|
@@ -14,7 +14,6 @@ export { Spacer } from "./components/spacer.ts";
|
|
|
14
14
|
export { TableComponent } from "./components/table.ts";
|
|
15
15
|
export { Text } from "./components/text.ts";
|
|
16
16
|
export { UserMessageComponent } from "./components/user-message.ts";
|
|
17
|
-
export type { EditorLaunchOptions, EditorLaunchResult, } from "./editor-launcher.ts";
|
|
18
17
|
export { launchEditor } from "./editor-launcher.ts";
|
|
19
18
|
export { ProcessTerminal, type ProcessTerminalOptions } from "./terminal.ts";
|
|
20
19
|
export { Container, TUI } from "./tui.ts";
|
package/dist/tui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/tui/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAEvG,YAAY,EACV,gBAAgB,EAChB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/tui/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAEvG,YAAY,EACV,gBAAgB,EAChB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/tui/tui.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export declare class Container implements Component {
|
|
|
38
38
|
children: Component[];
|
|
39
39
|
addChild(component: Component): void;
|
|
40
40
|
removeChild(component: Component): void;
|
|
41
|
+
insertChildBefore(beforeComponent: Component, newComponent: Component): void;
|
|
41
42
|
clear(): void;
|
|
42
43
|
render(width: number): string[];
|
|
43
44
|
}
|
package/dist/tui/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../source/tui/tui.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEhC;;OAEG;IACH,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE9C;;;OAGG;IACH,mBAAmB,CAAC,IAAI,OAAO,CAAC;CACjC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB;;GAEG;AACH,qBAAa,SAAU,YAAW,SAAS;IACzC,QAAQ,EAAE,SAAS,EAAE,CAAM;IAE3B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIpC,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAOvC,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAGhC;AAED;;;;;;;;;;GAUG;AAGH,qBAAa,GAAI,SAAQ,SAAS;IAChC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IAE1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,sEAAsE;IAC/D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;gBAEnB,QAAQ,EAAE,QAAQ;IAK9B;;;;OAIG;IACH,mBAAmB,IAAI,IAAI;IAI3B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAI3C;;;OAGG;IACH,WAAW,IAAI,QAAQ;IAIvB,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;IAKZ,aAAa,IAAI,IAAI;IAarB,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,WAAW;IAyFnB,OAAO,CAAC,gBAAgB;IAiCxB,cAAc,IAAI,IAAI;IAWtB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,QAAQ;IAoFhB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK7B;;OAEG;IACH,SAAS,IAAI,IAAI;IAKjB;;OAEG;IACH,aAAa,IAAI,OAAO;CAGzB"}
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../source/tui/tui.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEhC;;OAEG;IACH,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE9C;;;OAGG;IACH,mBAAmB,CAAC,IAAI,OAAO,CAAC;CACjC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB;;GAEG;AACH,qBAAa,SAAU,YAAW,SAAS;IACzC,QAAQ,EAAE,SAAS,EAAE,CAAM;IAE3B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIpC,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAOvC,iBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,GAAG,IAAI;IAS5E,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAGhC;AAED;;;;;;;;;;GAUG;AAGH,qBAAa,GAAI,SAAQ,SAAS;IAChC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IAE1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,sEAAsE;IAC/D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;gBAEnB,QAAQ,EAAE,QAAQ;IAK9B;;;;OAIG;IACH,mBAAmB,IAAI,IAAI;IAI3B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAI3C;;;OAGG;IACH,WAAW,IAAI,QAAQ;IAIvB,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;IAKZ,aAAa,IAAI,IAAI;IAarB,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,WAAW;IAyFnB,OAAO,CAAC,gBAAgB;IAiCxB,cAAc,IAAI,IAAI;IAWtB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,QAAQ;IAoFhB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK7B;;OAEG;IACH,SAAS,IAAI,IAAI;IAKjB;;OAEG;IACH,aAAa,IAAI,OAAO;CAGzB"}
|
package/dist/tui/tui.js
CHANGED
|
@@ -20,6 +20,15 @@ export class Container {
|
|
|
20
20
|
this.children.splice(index, 1);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
insertChildBefore(beforeComponent, newComponent) {
|
|
24
|
+
const index = this.children.indexOf(beforeComponent);
|
|
25
|
+
if (index !== -1) {
|
|
26
|
+
this.children.splice(index, 0, newComponent);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.children.push(newComponent);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
23
32
|
clear() {
|
|
24
33
|
this.children = [];
|
|
25
34
|
}
|
package/dist/tui/utils.d.ts
CHANGED
|
@@ -7,11 +7,7 @@
|
|
|
7
7
|
* - Tabs (replaced with 3 spaces for consistent width)
|
|
8
8
|
*/
|
|
9
9
|
export declare function visibleWidth(str: string): number;
|
|
10
|
-
|
|
11
|
-
* Truncate text to fit within a maximum visible width, preserving ANSI codes.
|
|
12
|
-
* Adds ellipsis if truncation occurs.
|
|
13
|
-
*/
|
|
14
|
-
export declare function truncateToWidth(text: string, maxWidth: number, ellipsis?: string): string;
|
|
10
|
+
export declare function truncateToWidth(text: string, maxWidth: number, ellipsis?: string, pad?: boolean): string;
|
|
15
11
|
/**
|
|
16
12
|
* Apply background color to a line, padding to full width.
|
|
17
13
|
*
|
package/dist/tui/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../source/tui/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../source/tui/utils.ts"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAwOD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAQ,EAChB,GAAG,UAAQ,GACV,MAAM,CAuER;AAwHD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAC7B,MAAM,CASR"}
|