@heyhuynhgiabuu/pi-pretty 0.6.3 → 0.6.5
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/CHANGELOG.md +27 -0
- package/dist/autocomplete.d.ts +10 -0
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete.js +64 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +225 -0
- package/dist/config.js.map +1 -0
- package/dist/fff-helpers.d.ts +25 -0
- package/dist/fff-helpers.d.ts.map +1 -0
- package/dist/fff-helpers.js +83 -0
- package/dist/fff-helpers.js.map +1 -0
- package/dist/fff.d.ts +37 -0
- package/dist/fff.d.ts.map +1 -0
- package/dist/fff.js +135 -0
- package/dist/fff.js.map +1 -0
- package/dist/helpers.d.ts +21 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +133 -0
- package/dist/helpers.js.map +1 -0
- package/dist/image.d.ts +24 -0
- package/dist/image.d.ts.map +1 -0
- package/dist/image.js +144 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +223 -0
- package/dist/index.js.map +1 -0
- package/dist/multi-grep-fallback.d.ts +30 -0
- package/dist/multi-grep-fallback.d.ts.map +1 -0
- package/dist/multi-grep-fallback.js +205 -0
- package/dist/multi-grep-fallback.js.map +1 -0
- package/dist/render.d.ts +25 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +366 -0
- package/dist/render.js.map +1 -0
- package/dist/tools/bash.d.ts +6 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +101 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/find.d.ts +6 -0
- package/dist/tools/find.d.ts.map +1 -0
- package/dist/tools/find.js +108 -0
- package/dist/tools/find.js.map +1 -0
- package/dist/tools/grep.d.ts +6 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +121 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/ls.d.ts +6 -0
- package/dist/tools/ls.d.ts.map +1 -0
- package/dist/tools/ls.js +63 -0
- package/dist/tools/ls.js.map +1 -0
- package/dist/tools/metrics.d.ts +10 -0
- package/dist/tools/metrics.d.ts.map +1 -0
- package/dist/tools/metrics.js +34 -0
- package/dist/tools/metrics.js.map +1 -0
- package/dist/tools/multi-grep.d.ts +7 -0
- package/dist/tools/multi-grep.d.ts.map +1 -0
- package/dist/tools/multi-grep.js +197 -0
- package/dist/tools/multi-grep.js.map +1 -0
- package/dist/tools/read.d.ts +6 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +125 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/types.d.ts +168 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +7 -1
- package/src/index.ts +1 -14
- package/biome.json +0 -22
- package/bun.lock +0 -598
- package/media/bash-and-read.png +0 -0
- package/media/icons-and-grep.png +0 -0
- package/media/inline-image.png +0 -0
- package/pi-pretty.example.json +0 -6
- package/release-notes/v0.3.2.md +0 -34
- package/release-notes/v0.3.3.md +0 -48
- package/release-notes/v0.4.0.md +0 -58
- package/release-notes/v0.4.1.md +0 -28
- package/release-notes/v0.4.2.md +0 -36
- package/release-notes/v0.4.4.md +0 -28
- package/release-notes/v0.5.3.md +0 -29
- package/test/bash-rendering.test.ts +0 -269
- package/test/fff-integration.test.ts +0 -800
- package/test/image-rendering.test.ts +0 -153
- package/tsconfig.json +0 -19
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* pi-pretty: read tool -- file reading with syntax highlighting and inline image support. */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.registerReadTool = registerReadTool;
|
|
5
|
+
const config_js_1 = require("../config.js");
|
|
6
|
+
const helpers_js_1 = require("../helpers.js");
|
|
7
|
+
const metrics_js_1 = require("./metrics.js");
|
|
8
|
+
const render_js_1 = require("../render.js");
|
|
9
|
+
// Simple terminal image support check
|
|
10
|
+
function isImageTerminal() {
|
|
11
|
+
const term = (process.env.TERM_PROGRAM ?? process.env.TERM ?? "").toLowerCase();
|
|
12
|
+
const proto = (process.env.PRETTY_IMAGE_PROTOCOL ?? "").toLowerCase();
|
|
13
|
+
if (proto === "kitty" || proto === "iterm2")
|
|
14
|
+
return true;
|
|
15
|
+
if (proto === "none")
|
|
16
|
+
return false;
|
|
17
|
+
return ["ghostty", "kitty", "iterm.app", "wezterm", "mintty"].some((t) => term.includes(t)) || process.env.LC_TERMINAL === "iTerm2";
|
|
18
|
+
}
|
|
19
|
+
function registerReadTool(pi, cwd, _fffService, sdkTool, TextComp) {
|
|
20
|
+
const TC = TextComp ?? (() => {
|
|
21
|
+
const { Text } = require("@earendil-works/pi-tui");
|
|
22
|
+
return Text;
|
|
23
|
+
})();
|
|
24
|
+
const home = process.env.HOME ?? "";
|
|
25
|
+
pi.registerTool({
|
|
26
|
+
name: "read",
|
|
27
|
+
label: "Read",
|
|
28
|
+
description: sdkTool.description ?? "Read file contents",
|
|
29
|
+
parameters: sdkTool.parameters,
|
|
30
|
+
renderShell: "self",
|
|
31
|
+
execute: (0, metrics_js_1.wrapExecuteWithMetrics)(async (tid, params, sig, _upd, ctx) => {
|
|
32
|
+
const p = params;
|
|
33
|
+
const result = await sdkTool.execute(tid, p, sig, undefined, ctx);
|
|
34
|
+
const imageBlock = result.content?.find((c) => c.type === "image");
|
|
35
|
+
if (imageBlock) {
|
|
36
|
+
result.details = { _type: "readImage", filePath: String(p.path ?? ""), data: imageBlock.data, mimeType: imageBlock.mimeType ?? "image/png" };
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
const tc = (0, helpers_js_1.normalizeLineEndings)(getText(result));
|
|
40
|
+
result.details = { _type: "readFile", filePath: String(p.path ?? ""), content: tc, offset: typeof p.offset === "number" ? p.offset : 0, lineCount: tc ? tc.split("\n").length : 0 };
|
|
41
|
+
return result;
|
|
42
|
+
}),
|
|
43
|
+
renderCall(args, theme, ctx) {
|
|
44
|
+
(0, config_js_1.resolveBaseBackground)(theme);
|
|
45
|
+
const text = ctx.lastComponent ?? new TC("", 0, 0);
|
|
46
|
+
text.setText("");
|
|
47
|
+
return text;
|
|
48
|
+
},
|
|
49
|
+
renderResult(result, _opt, theme, ctx) {
|
|
50
|
+
(0, config_js_1.resolveBaseBackground)(theme);
|
|
51
|
+
const text = ctx.lastComponent ?? new TC("", 0, 0);
|
|
52
|
+
if (ctx.isError) {
|
|
53
|
+
text.setText((0, render_js_1.renderToolError)(getText(result) || "Error", theme));
|
|
54
|
+
return text;
|
|
55
|
+
}
|
|
56
|
+
const d = result.details;
|
|
57
|
+
// Image rendering
|
|
58
|
+
if (d?._type === "readImage") {
|
|
59
|
+
if (ctx.showImages && isImageTerminal()) {
|
|
60
|
+
try {
|
|
61
|
+
const T = require("@earendil-works/pi-tui").Text;
|
|
62
|
+
const img = new T("", 0, 0);
|
|
63
|
+
if (d.mimeType.startsWith("image/svg")) {
|
|
64
|
+
img.setText(d.data);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const pngData = require("@earendil-works/pi-coding-agent").convertToPng?.(d.data) ?? d.data;
|
|
68
|
+
img.setText(`\x1b_Ga=T,f=100,m=${d.mimeType === "image/png" ? "1" : "0"};${pngData}\x1b\\\\`);
|
|
69
|
+
}
|
|
70
|
+
return img;
|
|
71
|
+
}
|
|
72
|
+
catch { /* fall through */ }
|
|
73
|
+
}
|
|
74
|
+
const fc = result.content?.[0];
|
|
75
|
+
text.setText((0, render_js_1.fillToolBackground)(` ${theme.fg("dim", fc && "text" in fc ? String(fc.text).slice(0, 80) : `[image: ${d.filePath}]`)}`));
|
|
76
|
+
return text;
|
|
77
|
+
}
|
|
78
|
+
// File content — line-numbered display
|
|
79
|
+
if (d?._type === "readFile" && d.content) {
|
|
80
|
+
const tw = (0, config_js_1.termWidth)();
|
|
81
|
+
const lines = d.content.split("\n");
|
|
82
|
+
const total = lines.length;
|
|
83
|
+
const maxShow = ctx.expanded ? lines.length : Math.min(lines.length, config_js_1.MAX_PREVIEW_LINES);
|
|
84
|
+
const show = lines.slice(0, maxShow);
|
|
85
|
+
const nw = Math.max(3, String(total).length);
|
|
86
|
+
const gw = nw + 3;
|
|
87
|
+
const cw = Math.max(1, tw - gw);
|
|
88
|
+
const p2 = (0, helpers_js_1.shortPath)(cwd, home, String(d.filePath ?? ""));
|
|
89
|
+
const off2 = typeof d.offset === "number" ? `:${d.offset}` : "";
|
|
90
|
+
const header = `${theme.fg("toolTitle", theme.bold("read"))} ${theme.fg("accent", p2)}${theme.fg("dim", off2)}`;
|
|
91
|
+
const out = ["", ` ${header}`];
|
|
92
|
+
out.push(` ${config_js_1.FG_RULE}${"─".repeat(tw - 2)}${config_js_1.RST}`);
|
|
93
|
+
for (let i = 0; i < show.length; i++) {
|
|
94
|
+
const ln = (d.offset || 0) + i + 1;
|
|
95
|
+
const code = show[i] ?? "";
|
|
96
|
+
const display = code.length > cw ? code.slice(0, cw) + `${config_js_1.FG_DIM}›${config_js_1.RST}` : code;
|
|
97
|
+
const lineNo = String(ln);
|
|
98
|
+
out.push(` ${config_js_1.FG_LNUM}${" ".repeat(Math.max(0, nw - lineNo.length))}${lineNo}${config_js_1.RST} ${config_js_1.FG_RULE}│${config_js_1.RST} ${display}${config_js_1.RST}`);
|
|
99
|
+
}
|
|
100
|
+
if (total > maxShow) {
|
|
101
|
+
out.push(` ${config_js_1.FG_DIM} … ${total - maxShow} more lines (${total} total)${config_js_1.RST}`);
|
|
102
|
+
}
|
|
103
|
+
out.push("");
|
|
104
|
+
const rendered = out.join("\n");
|
|
105
|
+
text.setText((0, render_js_1.fillToolBackground)(rendered));
|
|
106
|
+
ctx.state._rt = rendered;
|
|
107
|
+
// Async syntax highlighting via Shiki
|
|
108
|
+
(0, render_js_1.renderFileContent)(d.content, d.filePath, d.offset || 0, maxShow, tw).then(hl => {
|
|
109
|
+
const padded = hl.split("\n").map(l => ` ${l}`).join("\n");
|
|
110
|
+
const rendered = `\n ${header}\n${padded}\n`;
|
|
111
|
+
text.setText((0, render_js_1.fillToolBackground)(rendered));
|
|
112
|
+
ctx.state._rt = rendered;
|
|
113
|
+
}).catch(() => { });
|
|
114
|
+
return text;
|
|
115
|
+
}
|
|
116
|
+
const fc = result.content?.[0];
|
|
117
|
+
text.setText((0, render_js_1.fillToolBackground)(` ${theme.fg("dim", fc && "text" in fc ? String(fc.text).slice(0, 120) : "done")}`));
|
|
118
|
+
return text;
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function getText(result) {
|
|
123
|
+
return (result.content ?? []).filter((c) => c.type === "text").map((c) => c.text).join("\n") ?? "";
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-pretty shared types.
|
|
3
|
+
*/
|
|
4
|
+
import type { TextContent, ImageContent } from "@earendil-works/pi-ai";
|
|
5
|
+
import type { AgentToolResult } from "@earendil-works/pi-coding-agent";
|
|
6
|
+
export type { FileFinder, FileItem, GrepResult, SearchResult, GrepMatch, GrepCursor } from "@ff-labs/fff-node";
|
|
7
|
+
export type ToolContent = TextContent | ImageContent;
|
|
8
|
+
export type { TextContent, ImageContent };
|
|
9
|
+
export interface ThemeLike {
|
|
10
|
+
fg: (key: string, text: string) => string;
|
|
11
|
+
bold: (text: string) => string;
|
|
12
|
+
getBgAnsi?: (key: string) => string;
|
|
13
|
+
}
|
|
14
|
+
export interface RenderCtxLike {
|
|
15
|
+
lastComponent?: ComponentLike;
|
|
16
|
+
isError?: boolean;
|
|
17
|
+
state: Record<string, string | undefined>;
|
|
18
|
+
expanded?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface TextLike {
|
|
21
|
+
setText(v: string): void;
|
|
22
|
+
getText?(): string;
|
|
23
|
+
}
|
|
24
|
+
/** Minimal Component interface matching pi-tui's Component. */
|
|
25
|
+
export interface ComponentLike {
|
|
26
|
+
setText(v: string): void;
|
|
27
|
+
render(width: number): string[];
|
|
28
|
+
invalidate?(): void;
|
|
29
|
+
}
|
|
30
|
+
export type ReadDetails = {
|
|
31
|
+
_type: "readImage";
|
|
32
|
+
filePath: string;
|
|
33
|
+
data: string;
|
|
34
|
+
mimeType: string;
|
|
35
|
+
} | {
|
|
36
|
+
_type: "readFile";
|
|
37
|
+
filePath: string;
|
|
38
|
+
content: string;
|
|
39
|
+
offset: number;
|
|
40
|
+
lineCount: number;
|
|
41
|
+
};
|
|
42
|
+
export interface BashDetails extends Record<string, unknown> {
|
|
43
|
+
_type: "bashResult";
|
|
44
|
+
text: string;
|
|
45
|
+
exitCode: number | null;
|
|
46
|
+
command: string;
|
|
47
|
+
}
|
|
48
|
+
export interface LsDetails extends Record<string, unknown> {
|
|
49
|
+
_type: "lsResult";
|
|
50
|
+
text: string;
|
|
51
|
+
path: string;
|
|
52
|
+
entryCount: number;
|
|
53
|
+
}
|
|
54
|
+
export interface FindDetails extends Record<string, unknown> {
|
|
55
|
+
_type: "findResult";
|
|
56
|
+
text: string;
|
|
57
|
+
pattern: string;
|
|
58
|
+
matchCount: number;
|
|
59
|
+
}
|
|
60
|
+
export interface GrepDetails extends Record<string, unknown> {
|
|
61
|
+
_type: "grepResult";
|
|
62
|
+
text: string;
|
|
63
|
+
pattern: string;
|
|
64
|
+
matchCount: number;
|
|
65
|
+
}
|
|
66
|
+
export type AnyDetails = ReadDetails | BashDetails | LsDetails | FindDetails | GrepDetails;
|
|
67
|
+
export interface ReadInput {
|
|
68
|
+
path: string;
|
|
69
|
+
offset?: number;
|
|
70
|
+
limit?: number;
|
|
71
|
+
}
|
|
72
|
+
export interface BashInput {
|
|
73
|
+
command: string;
|
|
74
|
+
timeout?: number;
|
|
75
|
+
}
|
|
76
|
+
export interface LsInput {
|
|
77
|
+
path?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface FindInput {
|
|
80
|
+
pattern: string;
|
|
81
|
+
path?: string;
|
|
82
|
+
limit?: number;
|
|
83
|
+
}
|
|
84
|
+
export interface GrepInput {
|
|
85
|
+
pattern: string;
|
|
86
|
+
path?: string;
|
|
87
|
+
glob?: string;
|
|
88
|
+
context?: number;
|
|
89
|
+
limit?: number;
|
|
90
|
+
literal?: boolean;
|
|
91
|
+
ignoreCase?: boolean;
|
|
92
|
+
}
|
|
93
|
+
export interface MultiGrepInput {
|
|
94
|
+
patterns: string[];
|
|
95
|
+
path?: string;
|
|
96
|
+
constraints?: string;
|
|
97
|
+
context?: number;
|
|
98
|
+
limit?: number;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Minimal structural type for an SDK-produced tool definition.
|
|
102
|
+
* Accepts both the real SDK's ToolDefinition<> return type and test mocks.
|
|
103
|
+
*/
|
|
104
|
+
export interface SdkToolDef {
|
|
105
|
+
name?: string;
|
|
106
|
+
description?: string;
|
|
107
|
+
label?: string;
|
|
108
|
+
parameters?: unknown;
|
|
109
|
+
execute: (...args: any[]) => Promise<AgentToolResult<any>>;
|
|
110
|
+
}
|
|
111
|
+
export interface SdkTools {
|
|
112
|
+
createReadTool?: (cwd: string) => SdkToolDef;
|
|
113
|
+
createBashTool?: (cwd: string) => SdkToolDef;
|
|
114
|
+
createLsTool?: (cwd: string) => SdkToolDef;
|
|
115
|
+
createFindTool?: (cwd: string) => SdkToolDef;
|
|
116
|
+
createGrepTool?: (cwd: string) => SdkToolDef;
|
|
117
|
+
getAgentDir?: () => string;
|
|
118
|
+
}
|
|
119
|
+
export interface MultiGrepFallbackParams {
|
|
120
|
+
cwd: string;
|
|
121
|
+
patterns: string[];
|
|
122
|
+
path?: string;
|
|
123
|
+
constraints?: string;
|
|
124
|
+
context?: number;
|
|
125
|
+
limit: number;
|
|
126
|
+
ignoreCase: boolean;
|
|
127
|
+
signal?: AbortSignal;
|
|
128
|
+
}
|
|
129
|
+
export interface MultiGrepFallbackResult {
|
|
130
|
+
text: string;
|
|
131
|
+
matchCount: number;
|
|
132
|
+
limitReached: boolean;
|
|
133
|
+
}
|
|
134
|
+
export type MultiGrepFallback = (params: MultiGrepFallbackParams) => Promise<MultiGrepFallbackResult>;
|
|
135
|
+
/** Minimal FFF service shape for tools that only need fileSearch. */
|
|
136
|
+
export interface FffServiceLike {
|
|
137
|
+
readonly isAvailable: boolean;
|
|
138
|
+
readonly partialIndex: boolean;
|
|
139
|
+
getFinder(): import("@ff-labs/fff-node").FileFinder | null;
|
|
140
|
+
}
|
|
141
|
+
/** Full FFF service for grep tools that also need cursor store. */
|
|
142
|
+
export interface FffServiceWithCursor extends FffServiceLike {
|
|
143
|
+
getCursorStore(): CursorStore;
|
|
144
|
+
}
|
|
145
|
+
/** FFF lifecycle interface (used by session lifecycle code). */
|
|
146
|
+
export interface FffService extends FffServiceWithCursor {
|
|
147
|
+
ensureFinder(cwd: string): Promise<void>;
|
|
148
|
+
destroy(): void;
|
|
149
|
+
isModuleLoaded(): boolean;
|
|
150
|
+
tryLoadModule(): Promise<boolean>;
|
|
151
|
+
}
|
|
152
|
+
export interface CursorStore {
|
|
153
|
+
store(cursor: unknown): string;
|
|
154
|
+
get(id: string): unknown | undefined;
|
|
155
|
+
}
|
|
156
|
+
export interface ConstraintParseResult {
|
|
157
|
+
ok: boolean;
|
|
158
|
+
globs: string[];
|
|
159
|
+
tokens: string[];
|
|
160
|
+
error?: string;
|
|
161
|
+
}
|
|
162
|
+
export interface PiPrettyDeps {
|
|
163
|
+
sdk?: SdkTools;
|
|
164
|
+
TextComponent?: new (text?: string, x?: number, y?: number) => ComponentLike;
|
|
165
|
+
fffModule?: typeof import("@ff-labs/fff-node");
|
|
166
|
+
multiGrepRipgrepFallback?: MultiGrepFallback;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heyhuynhgiabuu/pi-pretty",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
|
+
"files": [
|
|
5
|
+
"dist/",
|
|
6
|
+
"CHANGELOG.md",
|
|
7
|
+
"src/"
|
|
8
|
+
],
|
|
9
|
+
"main": "dist/index.js",
|
|
4
10
|
"description": "Pretty terminal output for pi — syntax-highlighted file reads, colored bash output, tree-view directory listings, and more.",
|
|
5
11
|
"author": "huynhgiabuu",
|
|
6
12
|
"license": "MIT",
|
package/src/index.ts
CHANGED
|
@@ -94,23 +94,10 @@ export default function piPrettyExtension(pi: ExtensionAPI, deps?: PiPrettyDeps)
|
|
|
94
94
|
|
|
95
95
|
const agentDir = getAgentDir ? getAgentDir() : getDefaultAgentDir();
|
|
96
96
|
|
|
97
|
-
let fffService: FffService | null =
|
|
97
|
+
let fffService: FffService | null = new FffService(undefined, agentDir);
|
|
98
98
|
|
|
99
99
|
if (deps?.fffModule) {
|
|
100
100
|
fffService = new FffService(deps.fffModule, agentDir);
|
|
101
|
-
} else if (!deps) {
|
|
102
|
-
// Production: try to load FFF module
|
|
103
|
-
try {
|
|
104
|
-
const fffMod = require("@ff-labs/fff-node");
|
|
105
|
-
fffService = new FffService(fffMod, agentDir);
|
|
106
|
-
} catch {
|
|
107
|
-
// Dynamic import fallback (ESM-only package)
|
|
108
|
-
import("@ff-labs/fff-node").then((mod) => {
|
|
109
|
-
if (!fffService) {
|
|
110
|
-
fffService = new FffService(mod, agentDir);
|
|
111
|
-
}
|
|
112
|
-
}).catch(() => {});
|
|
113
|
-
}
|
|
114
101
|
}
|
|
115
102
|
|
|
116
103
|
// Ripgrep fallback for multi_grep
|
package/biome.json
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
|
|
3
|
-
"assist": {
|
|
4
|
-
"enabled": true,
|
|
5
|
-
"actions": {
|
|
6
|
-
"source": {
|
|
7
|
-
"organizeImports": "on"
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
"linter": {
|
|
12
|
-
"enabled": true,
|
|
13
|
-
"rules": {
|
|
14
|
-
"recommended": true
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"formatter": {
|
|
18
|
-
"enabled": true,
|
|
19
|
-
"indentStyle": "tab",
|
|
20
|
-
"lineWidth": 120
|
|
21
|
-
}
|
|
22
|
-
}
|