@aria-cli/tools 1.0.2 → 1.0.3
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/.aria-build-stamp.json +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/definitions/code-intelligence.d.ts +9 -0
- package/dist/definitions/code-intelligence.d.ts.map +1 -0
- package/dist/definitions/code-intelligence.js +471 -0
- package/dist/definitions/code-intelligence.js.map +1 -0
- package/dist/definitions/core.d.ts +3 -0
- package/dist/definitions/core.d.ts.map +1 -1
- package/dist/definitions/core.js +13 -1
- package/dist/definitions/core.js.map +1 -1
- package/dist/definitions/filesystem.d.ts +3 -2
- package/dist/definitions/filesystem.d.ts.map +1 -1
- package/dist/definitions/filesystem.js +4 -38
- package/dist/definitions/filesystem.js.map +1 -1
- package/dist/definitions/frg.d.ts +4 -0
- package/dist/definitions/frg.d.ts.map +1 -0
- package/dist/definitions/frg.js +64 -0
- package/dist/definitions/frg.js.map +1 -0
- package/dist/definitions/index.d.ts +3 -0
- package/dist/definitions/index.d.ts.map +1 -1
- package/dist/definitions/index.js +3 -0
- package/dist/definitions/index.js.map +1 -1
- package/dist/definitions/search.d.ts +10 -0
- package/dist/definitions/search.d.ts.map +1 -0
- package/dist/definitions/search.js +61 -0
- package/dist/definitions/search.js.map +1 -0
- package/dist/executors/apply-patch.d.ts.map +1 -1
- package/dist/executors/apply-patch.js +18 -0
- package/dist/executors/apply-patch.js.map +1 -1
- package/dist/executors/code-intelligence.d.ts +139 -0
- package/dist/executors/code-intelligence.d.ts.map +1 -0
- package/dist/executors/code-intelligence.js +883 -0
- package/dist/executors/code-intelligence.js.map +1 -0
- package/dist/executors/filesystem.d.ts.map +1 -1
- package/dist/executors/filesystem.js +14 -8
- package/dist/executors/filesystem.js.map +1 -1
- package/dist/executors/frg-freshness.d.ts +94 -0
- package/dist/executors/frg-freshness.d.ts.map +1 -0
- package/dist/executors/frg-freshness.js +577 -0
- package/dist/executors/frg-freshness.js.map +1 -0
- package/dist/executors/frg.d.ts +28 -0
- package/dist/executors/frg.d.ts.map +1 -0
- package/dist/executors/frg.js +299 -0
- package/dist/executors/frg.js.map +1 -0
- package/dist/executors/index.d.ts +6 -0
- package/dist/executors/index.d.ts.map +1 -1
- package/dist/executors/index.js +5 -0
- package/dist/executors/index.js.map +1 -1
- package/dist/executors/lsp-client.d.ts +39 -0
- package/dist/executors/lsp-client.d.ts.map +1 -0
- package/dist/executors/lsp-client.js +297 -0
- package/dist/executors/lsp-client.js.map +1 -0
- package/dist/executors/restart.d.ts +4 -9
- package/dist/executors/restart.d.ts.map +1 -1
- package/dist/executors/restart.js +20 -51
- package/dist/executors/restart.js.map +1 -1
- package/dist/executors/search-freshness.d.ts +51 -0
- package/dist/executors/search-freshness.d.ts.map +1 -0
- package/dist/executors/search-freshness.js +196 -0
- package/dist/executors/search-freshness.js.map +1 -0
- package/dist/executors/search.d.ts +12 -0
- package/dist/executors/search.d.ts.map +1 -0
- package/dist/executors/search.js +67 -0
- package/dist/executors/search.js.map +1 -0
- package/dist/headless-control-contract.d.ts +4 -0
- package/dist/headless-control-contract.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/network-runtime/local-control-contract.d.ts +2 -0
- package/dist/network-runtime/local-control-contract.d.ts.map +1 -1
- package/dist/network-runtime/local-control-contract.js +2 -0
- package/dist/network-runtime/local-control-contract.js.map +1 -1
- package/dist-cjs/.tsbuildinfo +1 -1
- package/dist-cjs/definitions/code-intelligence.d.ts +8 -0
- package/dist-cjs/definitions/code-intelligence.js +474 -0
- package/dist-cjs/definitions/code-intelligence.js.map +1 -0
- package/dist-cjs/definitions/core.d.ts +3 -0
- package/dist-cjs/definitions/core.js +17 -2
- package/dist-cjs/definitions/core.js.map +1 -1
- package/dist-cjs/definitions/filesystem.d.ts +3 -2
- package/dist-cjs/definitions/filesystem.js +3 -37
- package/dist-cjs/definitions/filesystem.js.map +1 -1
- package/dist-cjs/definitions/frg.d.ts +3 -0
- package/dist-cjs/definitions/frg.js +67 -0
- package/dist-cjs/definitions/frg.js.map +1 -0
- package/dist-cjs/definitions/index.d.ts +3 -0
- package/dist-cjs/definitions/index.js +7 -1
- package/dist-cjs/definitions/index.js.map +1 -1
- package/dist-cjs/definitions/search.d.ts +9 -0
- package/dist-cjs/definitions/search.js +64 -0
- package/dist-cjs/definitions/search.js.map +1 -0
- package/dist-cjs/executors/apply-patch.js +18 -0
- package/dist-cjs/executors/apply-patch.js.map +1 -1
- package/dist-cjs/executors/code-intelligence.d.ts +138 -0
- package/dist-cjs/executors/code-intelligence.js +926 -0
- package/dist-cjs/executors/code-intelligence.js.map +1 -0
- package/dist-cjs/executors/filesystem.js +17 -8
- package/dist-cjs/executors/filesystem.js.map +1 -1
- package/dist-cjs/executors/frg-freshness.d.ts +93 -0
- package/dist-cjs/executors/frg-freshness.js +628 -0
- package/dist-cjs/executors/frg-freshness.js.map +1 -0
- package/dist-cjs/executors/frg.d.ts +27 -0
- package/dist-cjs/executors/frg.js +335 -0
- package/dist-cjs/executors/frg.js.map +1 -0
- package/dist-cjs/executors/index.d.ts +6 -0
- package/dist-cjs/executors/index.js +34 -2
- package/dist-cjs/executors/index.js.map +1 -1
- package/dist-cjs/executors/lsp-client.d.ts +38 -0
- package/dist-cjs/executors/lsp-client.js +311 -0
- package/dist-cjs/executors/lsp-client.js.map +1 -0
- package/dist-cjs/executors/restart.d.ts +4 -9
- package/dist-cjs/executors/restart.js +19 -50
- package/dist-cjs/executors/restart.js.map +1 -1
- package/dist-cjs/executors/search-freshness.d.ts +50 -0
- package/dist-cjs/executors/search-freshness.js +235 -0
- package/dist-cjs/executors/search-freshness.js.map +1 -0
- package/dist-cjs/executors/search.d.ts +11 -0
- package/dist-cjs/executors/search.js +103 -0
- package/dist-cjs/executors/search.js.map +1 -0
- package/dist-cjs/headless-control-contract.d.ts +15 -11
- package/dist-cjs/index.d.ts +2 -2
- package/dist-cjs/index.js +22 -2
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/network-runtime/local-control-contract.d.ts +2 -0
- package/dist-cjs/network-runtime/local-control-contract.js +2 -0
- package/dist-cjs/network-runtime/local-control-contract.js.map +1 -1
- package/package.json +9 -5
- package/src/definitions/code-intelligence.ts +526 -0
- package/src/definitions/core.ts +13 -1
- package/src/definitions/filesystem.ts +3 -39
- package/src/definitions/frg.ts +67 -0
- package/src/definitions/index.ts +3 -0
- package/src/definitions/search.ts +67 -0
- package/src/executors/apply-patch.ts +20 -0
- package/src/executors/code-intelligence.ts +1179 -0
- package/src/executors/filesystem.ts +15 -8
- package/src/executors/frg-freshness.ts +743 -0
- package/src/executors/frg.ts +394 -0
- package/src/executors/index.ts +58 -0
- package/src/executors/lsp-client.ts +355 -0
- package/src/executors/restart.ts +21 -56
- package/src/executors/search-freshness.ts +249 -0
- package/src/executors/search.ts +89 -0
- package/src/index.ts +25 -0
- package/src/network-runtime/local-control-contract.ts +2 -0
- package/tests/definitions/tool-inventory.test.ts +17 -6
- package/tests/executors/frg-freshness.test.ts +136 -0
- package/tests/executors/frg-merge.test.ts +70 -0
- package/tests/executors/frg-session-content.test.ts +40 -0
- package/tests/executors/frg.test.ts +56 -0
- package/tests/integration/headless-control-contract.integration.test.ts +2 -0
- package/tests/loading-tier.test.ts +6 -6
- package/tests/test-lane-manifest.ts +4 -0
- package/tsconfig.cjs.json +9 -1
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ToolContext, ToolResult } from "../types.js";
|
|
2
|
+
export interface FrgInput {
|
|
3
|
+
command: "index" | "search" | "update" | "status" | "replace" | "init" | "watch" | "man" | "completions" | "upgrade";
|
|
4
|
+
pattern?: string;
|
|
5
|
+
replacement?: string;
|
|
6
|
+
path?: string;
|
|
7
|
+
noIndex?: boolean;
|
|
8
|
+
literal?: boolean;
|
|
9
|
+
caseInsensitive?: boolean;
|
|
10
|
+
smartCase?: boolean;
|
|
11
|
+
filesOnly?: boolean;
|
|
12
|
+
count?: boolean;
|
|
13
|
+
maxCount?: number;
|
|
14
|
+
quiet?: boolean;
|
|
15
|
+
context?: number;
|
|
16
|
+
json?: boolean;
|
|
17
|
+
glob?: string;
|
|
18
|
+
fileType?: string;
|
|
19
|
+
follow?: boolean;
|
|
20
|
+
extraPatterns?: string[];
|
|
21
|
+
maxFilesize?: number;
|
|
22
|
+
force?: boolean;
|
|
23
|
+
write?: boolean;
|
|
24
|
+
hook?: boolean;
|
|
25
|
+
shell?: "bash" | "elvish" | "fish" | "powershell" | "zsh";
|
|
26
|
+
}
|
|
27
|
+
export declare function executeFrg(input: unknown, ctx: ToolContext): Promise<ToolResult>;
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.executeFrg = executeFrg;
|
|
37
|
+
const fsSync = __importStar(require("node:fs"));
|
|
38
|
+
const nodePath = __importStar(require("node:path"));
|
|
39
|
+
const fastripgrep_1 = require("@aria-cli/fastripgrep");
|
|
40
|
+
const utils_js_1 = require("./utils.js");
|
|
41
|
+
const shell_js_1 = require("./shell.js");
|
|
42
|
+
const frg_freshness_js_1 = require("./frg-freshness.js");
|
|
43
|
+
function resolveSearchRoot(inputPath, ctx) {
|
|
44
|
+
const requested = inputPath ?? ".";
|
|
45
|
+
return nodePath.isAbsolute(requested)
|
|
46
|
+
? nodePath.resolve(requested)
|
|
47
|
+
: nodePath.resolve(ctx.workingDir, requested);
|
|
48
|
+
}
|
|
49
|
+
function assertAllowedPath(resolvedPath, ctx) {
|
|
50
|
+
let realBase = nodePath.resolve(ctx.workingDir);
|
|
51
|
+
try {
|
|
52
|
+
realBase = fsSync.realpathSync(ctx.workingDir);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// ignore
|
|
56
|
+
}
|
|
57
|
+
let candidate = resolvedPath;
|
|
58
|
+
try {
|
|
59
|
+
candidate = fsSync.realpathSync(resolvedPath);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
candidate = nodePath.resolve(resolvedPath);
|
|
63
|
+
}
|
|
64
|
+
if ((0, utils_js_1.isPathWithinBase)(candidate, realBase)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const home = process.env.HOME;
|
|
68
|
+
if (home) {
|
|
69
|
+
try {
|
|
70
|
+
const realHome = fsSync.realpathSync(home);
|
|
71
|
+
if ((0, utils_js_1.isPathWithinBase)(candidate, realHome)) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// ignore
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
throw new Error("Path traversal not allowed: resolved path is outside working directory and home directory");
|
|
80
|
+
}
|
|
81
|
+
function toNativeInput(input, root) {
|
|
82
|
+
return {
|
|
83
|
+
command: input.command,
|
|
84
|
+
pattern: input.pattern,
|
|
85
|
+
replacement: input.replacement,
|
|
86
|
+
path: root,
|
|
87
|
+
noIndex: input.noIndex,
|
|
88
|
+
literal: input.literal,
|
|
89
|
+
caseInsensitive: input.caseInsensitive,
|
|
90
|
+
smartCase: input.smartCase,
|
|
91
|
+
filesOnly: input.filesOnly,
|
|
92
|
+
count: input.count,
|
|
93
|
+
maxCount: input.maxCount,
|
|
94
|
+
quiet: input.quiet,
|
|
95
|
+
context: input.context,
|
|
96
|
+
json: input.json,
|
|
97
|
+
glob: input.glob,
|
|
98
|
+
fileType: input.fileType,
|
|
99
|
+
follow: input.follow,
|
|
100
|
+
extraPatterns: input.extraPatterns,
|
|
101
|
+
maxFilesize: input.maxFilesize,
|
|
102
|
+
force: input.force,
|
|
103
|
+
write: input.write,
|
|
104
|
+
hook: input.hook,
|
|
105
|
+
shell: input.shell,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function getNativeSessionOverlay(root) {
|
|
109
|
+
const sessionWrites = [];
|
|
110
|
+
const sessionDeletes = [];
|
|
111
|
+
for (const mutation of (0, frg_freshness_js_1.getPendingFrgMutations)(root)) {
|
|
112
|
+
if (mutation.operation === "delete") {
|
|
113
|
+
sessionDeletes.push(nodePath.resolve(mutation.path));
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
// Read content from disk if not cached. This closes the gap where
|
|
117
|
+
// reconcileGitDirtyMutations detects git-dirty files but sets
|
|
118
|
+
// content=undefined (no cache). Without this read, the session overlay
|
|
119
|
+
// would skip these mutations entirely — making agent-written files
|
|
120
|
+
// invisible until the 750ms background flush completes.
|
|
121
|
+
let content = mutation.content;
|
|
122
|
+
if (typeof content !== "string") {
|
|
123
|
+
try {
|
|
124
|
+
const resolved = nodePath.resolve(mutation.path);
|
|
125
|
+
const buf = fsSync.readFileSync(resolved);
|
|
126
|
+
// Skip binary files
|
|
127
|
+
if (!buf.subarray(0, Math.min(buf.length, 8192)).includes(0)) {
|
|
128
|
+
content = buf.toString("utf8");
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// File unreadable (deleted, permission, etc.) — skip
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (typeof content === "string") {
|
|
136
|
+
sessionWrites.push({
|
|
137
|
+
path: nodePath.resolve(mutation.path),
|
|
138
|
+
content,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return { sessionWrites, sessionDeletes };
|
|
143
|
+
}
|
|
144
|
+
async function executeFrgWatch(_input, ctx, root) {
|
|
145
|
+
const resolvedWorkingDir = nodePath.resolve(ctx.workingDir);
|
|
146
|
+
const repoRoot = resolvedWorkingDir.includes(`${nodePath.sep}packages${nodePath.sep}`)
|
|
147
|
+
? (resolvedWorkingDir.split(`${nodePath.sep}packages${nodePath.sep}`)[0] ?? process.cwd())
|
|
148
|
+
: process.cwd();
|
|
149
|
+
const binaryPath = nodePath.join(repoRoot, "vendor", "fastripgrep", "target", "release", process.platform === "win32" ? "frg.exe" : "frg");
|
|
150
|
+
if (!fsSync.existsSync(binaryPath)) {
|
|
151
|
+
return (0, utils_js_1.fail)(`frg watch failed: binary not found at ${binaryPath}. Build @aria-cli/fastripgrep first.`);
|
|
152
|
+
}
|
|
153
|
+
const spawnResult = await (0, shell_js_1.executeSpawn)({
|
|
154
|
+
program: binaryPath,
|
|
155
|
+
args: ["watch", root],
|
|
156
|
+
cwd: root,
|
|
157
|
+
}, ctx);
|
|
158
|
+
if (!spawnResult.success) {
|
|
159
|
+
return spawnResult;
|
|
160
|
+
}
|
|
161
|
+
const data = (spawnResult.data ?? {});
|
|
162
|
+
return (0, utils_js_1.success)(`Started frg watch process for ${root}`, {
|
|
163
|
+
command: "watch",
|
|
164
|
+
path: root,
|
|
165
|
+
watched: true,
|
|
166
|
+
pid: data.pid,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
function maybeReindexOnHeadChange(root, currentOutput) {
|
|
170
|
+
if (currentOutput.command !== "status") {
|
|
171
|
+
return currentOutput;
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
const indexedTree = currentOutput.status?.tree_hash ?? null;
|
|
175
|
+
const indexedHead = currentOutput.status?.commit_hash ?? null;
|
|
176
|
+
const freshness = (0, frg_freshness_js_1.getFrgFreshnessSnapshot)(root, currentOutput.status);
|
|
177
|
+
if (freshness.headTree && indexedTree && freshness.headTree !== indexedTree) {
|
|
178
|
+
if (freshness.sessionPendingCount === 0 &&
|
|
179
|
+
freshness.dirtyTrackedCount === 0 &&
|
|
180
|
+
freshness.dirtyUntrackedCount === 0) {
|
|
181
|
+
const updated = (0, fastripgrep_1.frg)({ command: "update", path: root });
|
|
182
|
+
return {
|
|
183
|
+
...updated,
|
|
184
|
+
content: `HEAD tree changed from indexed ${indexedTree} to ${freshness.headTree}; triggered incremental update`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
...currentOutput,
|
|
189
|
+
content: `HEAD tree differs from indexed tree (${indexedTree} -> ${freshness.headTree}); local dirty state deferred update`,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
if (indexedHead && freshness.headCommit && indexedHead !== freshness.headCommit) {
|
|
193
|
+
return {
|
|
194
|
+
...currentOutput,
|
|
195
|
+
content: `HEAD commit differs from indexed commit (${indexedHead} -> ${freshness.headCommit})`,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
// ignore and keep status output stable
|
|
201
|
+
}
|
|
202
|
+
return currentOutput;
|
|
203
|
+
}
|
|
204
|
+
function enrichStatusOutput(root, output) {
|
|
205
|
+
if (output.command !== "status") {
|
|
206
|
+
return output;
|
|
207
|
+
}
|
|
208
|
+
const freshness = (0, frg_freshness_js_1.getFrgFreshnessSnapshot)(root, output.status);
|
|
209
|
+
return {
|
|
210
|
+
...output,
|
|
211
|
+
status: output.status
|
|
212
|
+
? {
|
|
213
|
+
...output.status,
|
|
214
|
+
head_commit: freshness.headCommit,
|
|
215
|
+
head_tree: freshness.headTree,
|
|
216
|
+
tree_match: freshness.headTree && output.status.tree_hash
|
|
217
|
+
? freshness.headTree === output.status.tree_hash
|
|
218
|
+
: undefined,
|
|
219
|
+
dirty_tracked_count: freshness.dirtyTrackedCount,
|
|
220
|
+
dirty_untracked_count: freshness.dirtyUntrackedCount,
|
|
221
|
+
session_pending_count: freshness.sessionPendingCount,
|
|
222
|
+
session_pending_bytes: freshness.sessionPendingBytes,
|
|
223
|
+
background_flush_scheduled: freshness.flush.scheduled,
|
|
224
|
+
flush_in_flight: freshness.flush.inFlight,
|
|
225
|
+
last_flush_at: freshness.flush.lastFlushAt,
|
|
226
|
+
last_flush_error: freshness.flush.lastError,
|
|
227
|
+
freshness_state: freshness.freshnessState,
|
|
228
|
+
}
|
|
229
|
+
: output.status,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
function messageFor(output, input) {
|
|
233
|
+
if (output.command === "search") {
|
|
234
|
+
if (output.mode === "quiet") {
|
|
235
|
+
return output.matched
|
|
236
|
+
? `Match found for ${input.pattern}`
|
|
237
|
+
: `No matches found for ${input.pattern}`;
|
|
238
|
+
}
|
|
239
|
+
if (output.mode === "files") {
|
|
240
|
+
return `Found ${(output.files ?? []).length} files for ${input.pattern}`;
|
|
241
|
+
}
|
|
242
|
+
if (output.mode === "counts") {
|
|
243
|
+
return `Counted matches in ${(output.counts ?? []).length} files for ${input.pattern}`;
|
|
244
|
+
}
|
|
245
|
+
return `Found ${(output.matches ?? []).length} matches for ${input.pattern}`;
|
|
246
|
+
}
|
|
247
|
+
if (output.command === "replace") {
|
|
248
|
+
return input.write
|
|
249
|
+
? `Applied ${output.replacements ?? 0} replacements in ${output.files_changed ?? 0} files`
|
|
250
|
+
: `Previewed ${output.replacements ?? 0} replacements in ${output.files_changed ?? 0} files`;
|
|
251
|
+
}
|
|
252
|
+
if (output.command === "init") {
|
|
253
|
+
return output.hook_installed
|
|
254
|
+
? `Initialized frg for ${output.path} and installed git hook`
|
|
255
|
+
: `Initialized frg for ${output.path}`;
|
|
256
|
+
}
|
|
257
|
+
if (output.command === "completions") {
|
|
258
|
+
return `Generated ${output.shell ?? input.shell ?? "shell"} completions for frg`;
|
|
259
|
+
}
|
|
260
|
+
if (output.command === "man") {
|
|
261
|
+
return "Generated frg man page content";
|
|
262
|
+
}
|
|
263
|
+
if (output.command === "upgrade") {
|
|
264
|
+
return output.content ?? "Provided frg upgrade metadata";
|
|
265
|
+
}
|
|
266
|
+
return `frg ${output.command} completed for ${output.path}`;
|
|
267
|
+
}
|
|
268
|
+
async function executeFrg(input, ctx) {
|
|
269
|
+
try {
|
|
270
|
+
const args = input;
|
|
271
|
+
const root = resolveSearchRoot(args.path, ctx);
|
|
272
|
+
assertAllowedPath(root, ctx);
|
|
273
|
+
if (args.command === "watch") {
|
|
274
|
+
return executeFrgWatch(args, ctx, root);
|
|
275
|
+
}
|
|
276
|
+
(0, frg_freshness_js_1.ensureFrgRepoStateLoaded)(root);
|
|
277
|
+
(0, frg_freshness_js_1.reconcileGitDirtyMutations)(root);
|
|
278
|
+
if (args.command === "search") {
|
|
279
|
+
(0, frg_freshness_js_1.maybeBuildFrgIndexForRepo)(root);
|
|
280
|
+
// Detect HEAD tree change (e.g., after a commit or branch switch).
|
|
281
|
+
// Without this, the index stays on the old tree until `frg status` is
|
|
282
|
+
// explicitly called. This is the same gap that aria-search had —
|
|
283
|
+
// the index was "ready" because .frg/ exists, but stale because
|
|
284
|
+
// the tree changed. Run incremental update to pick up the new tree.
|
|
285
|
+
try {
|
|
286
|
+
const statusOutput = (0, fastripgrep_1.frg)({ command: "status", path: root });
|
|
287
|
+
if (statusOutput.status?.tree_hash && statusOutput.status?.commit_hash) {
|
|
288
|
+
const snapshot = (0, frg_freshness_js_1.getFrgFreshnessSnapshot)(root, statusOutput.status);
|
|
289
|
+
if (snapshot.headTree &&
|
|
290
|
+
statusOutput.status.tree_hash !== snapshot.headTree &&
|
|
291
|
+
snapshot.sessionPendingCount === 0 &&
|
|
292
|
+
snapshot.dirtyTrackedCount === 0 &&
|
|
293
|
+
snapshot.dirtyUntrackedCount === 0) {
|
|
294
|
+
// Clean working tree but HEAD moved — incremental update
|
|
295
|
+
(0, fastripgrep_1.frg)({ command: "update", path: root });
|
|
296
|
+
(0, frg_freshness_js_1.clearPendingFrgMutations)(root);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
// Best effort — search will still work with session overlay
|
|
302
|
+
}
|
|
303
|
+
const pending = (0, frg_freshness_js_1.getPendingFrgMutations)(root);
|
|
304
|
+
if (pending.length > 0) {
|
|
305
|
+
if (!args.noIndex) {
|
|
306
|
+
if ((0, frg_freshness_js_1.shouldForceSynchronousFrgFlush)(root)) {
|
|
307
|
+
(0, frg_freshness_js_1.flushPendingFrgMutations)(root);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
(0, frg_freshness_js_1.scheduleBackgroundFrgFlush)(root);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
const nativeInput = toNativeInput(args, root);
|
|
316
|
+
if (args.command === "search") {
|
|
317
|
+
const sessionOverlay = getNativeSessionOverlay(root);
|
|
318
|
+
nativeInput.sessionWrites = sessionOverlay.sessionWrites;
|
|
319
|
+
nativeInput.sessionDeletes = sessionOverlay.sessionDeletes;
|
|
320
|
+
}
|
|
321
|
+
let output = (0, fastripgrep_1.frg)(nativeInput);
|
|
322
|
+
if (args.command === "status") {
|
|
323
|
+
output = maybeReindexOnHeadChange(root, output);
|
|
324
|
+
output = enrichStatusOutput(root, output);
|
|
325
|
+
if (output.content?.includes("triggered incremental update")) {
|
|
326
|
+
(0, frg_freshness_js_1.clearPendingFrgMutations)(root);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return (0, utils_js_1.success)(messageFor(output, args), output);
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
return (0, utils_js_1.fail)(`frg failed: ${(0, utils_js_1.getErrorMessage)(error)}`);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=frg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frg.js","sourceRoot":"","sources":["../../src/executors/frg.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { executeReadFile, executeWriteFile, executeEditFile, executeLs, executeGlob, executeGrep, } from "./filesystem.js";
|
|
7
7
|
export type { ReadFileInput, WriteFileInput, EditFileInput, ListDirInput, ListDirEntry, ListDirOutput, LsInput, LsEntry, GlobInput, GrepInput, GrepMatch, } from "./filesystem.js";
|
|
8
|
+
export { executeFrg } from "./frg.js";
|
|
9
|
+
export { recordFrgMutation, getPendingFrgMutations, getPendingFrgMutationBytes, clearPendingFrgMutations, flushPendingFrgMutations, maybeBuildFrgIndexForRepo, ensureFrgRepoStateLoaded, reconcileGitDirtyMutations, getGitDirtyStatus, getFrgFlushStatus, getFrgFreshnessSnapshot, scheduleBackgroundFrgFlush, shouldForceSynchronousFrgFlush, DEFAULT_BACKGROUND_FRG_FLUSH_DELAY_MS, BACKGROUND_FRG_MAX_FLUSH_DELAY_MS, MAX_PENDING_MUTATIONS_BEFORE_SYNC_FLUSH, MAX_PENDING_MUTATION_BYTES_BEFORE_SYNC_FLUSH, MAX_CACHED_MUTATION_CONTENT_BYTES, } from "./frg-freshness.js";
|
|
10
|
+
export type { FrgInput } from "./frg.js";
|
|
11
|
+
export type { FrgMutationOperation, FrgMutationRecord, FrgGitDirtyStatus, FrgFlushStatus, FrgFreshnessSnapshot, } from "./frg-freshness.js";
|
|
8
12
|
export { executeApplyPatch } from "./apply-patch.js";
|
|
9
13
|
export type { ApplyPatchInput } from "./apply-patch.js";
|
|
10
14
|
export { executeBash, executeExec, executeSpawn, executeKill, executeListProcesses, executeWaitProcess, executeWriteStdin, sanitizeGitEnv, sanitizeEnv, } from "./shell.js";
|
|
@@ -35,4 +39,6 @@ export { executeRestart } from "./restart.js";
|
|
|
35
39
|
export type { RestartInput } from "./restart.js";
|
|
36
40
|
export { executeDeploy } from "./deploy.js";
|
|
37
41
|
export type { DeployInput, DeployOutput } from "./deploy.js";
|
|
42
|
+
export { executeRg, executeUg, executeProbe, executeSg, executeCbm, executeLsp, executeSerena, executeFff, } from "./code-intelligence.js";
|
|
43
|
+
export type { RgInput, UgInput, ProbeInput, SgInput, CbmInput, LspInput, SerenaInput, FffInput, RgMatch, } from "./code-intelligence.js";
|
|
38
44
|
export { success, fail, getErrorMessage } from "./utils.js";
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* Executor functions that implement actual tool functionality.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
9
|
-
exports.getErrorMessage = exports.fail = exports.success = exports.executeDeploy = exports.executeRestart = exports.executeSelfDiagnose = exports.executeSessionHistory = exports.dedupSearchResults = exports.SOURCE_PRIORITY = exports.fetchJson = exports.settleWithDeadline = exports.getOSContext = exports.searchWeb = exports.searchSkillRegistries = exports.searchLocalSkills = exports.searchMemoria = exports.executeUseSkill = void 0;
|
|
8
|
+
exports.PTYTimeoutError = exports.PTYSession = exports.executeBrowse = exports.executeWebFetch = exports.executeWebSearch = exports.getSelfContext = exports.getSessionTranscript = exports.getConversationContext = exports.executeReflect = exports.executeDiscover = exports.executeForget = exports.executeRecall = exports.executeRemember = exports.SHELL_BLOCKED_PATTERNS = exports.classifyCommand = exports.sanitizeEnv = exports.sanitizeGitEnv = exports.executeWriteStdin = exports.executeWaitProcess = exports.executeListProcesses = exports.executeKill = exports.executeSpawn = exports.executeExec = exports.executeBash = exports.executeApplyPatch = exports.MAX_CACHED_MUTATION_CONTENT_BYTES = exports.MAX_PENDING_MUTATION_BYTES_BEFORE_SYNC_FLUSH = exports.MAX_PENDING_MUTATIONS_BEFORE_SYNC_FLUSH = exports.BACKGROUND_FRG_MAX_FLUSH_DELAY_MS = exports.DEFAULT_BACKGROUND_FRG_FLUSH_DELAY_MS = exports.shouldForceSynchronousFrgFlush = exports.scheduleBackgroundFrgFlush = exports.getFrgFreshnessSnapshot = exports.getFrgFlushStatus = exports.getGitDirtyStatus = exports.reconcileGitDirtyMutations = exports.ensureFrgRepoStateLoaded = exports.maybeBuildFrgIndexForRepo = exports.flushPendingFrgMutations = exports.clearPendingFrgMutations = exports.getPendingFrgMutationBytes = exports.getPendingFrgMutations = exports.recordFrgMutation = exports.executeFrg = exports.executeGrep = exports.executeGlob = exports.executeLs = exports.executeEditFile = exports.executeWriteFile = exports.executeReadFile = void 0;
|
|
9
|
+
exports.getErrorMessage = exports.fail = exports.success = exports.executeFff = exports.executeSerena = exports.executeLsp = exports.executeCbm = exports.executeSg = exports.executeProbe = exports.executeUg = exports.executeRg = exports.executeDeploy = exports.executeRestart = exports.executeSelfDiagnose = exports.executeSessionHistory = exports.dedupSearchResults = exports.SOURCE_PRIORITY = exports.fetchJson = exports.settleWithDeadline = exports.getOSContext = exports.searchWeb = exports.searchSkillRegistries = exports.searchLocalSkills = exports.searchMemoria = exports.executeUseSkill = exports.executeCreateSkill = exports.executeCreateTool = exports.executeLearnLegacy = exports.executeLearnSkill = exports.executeLearnTool = exports.executeSearchKnowledge = exports.resetAskUserCounter = exports.executeQuestList = exports.executeQuestUpdate = exports.executeAskUser = exports.SpawnedProcessRegistry = exports.executeRetireArion = exports.executeWakeArion = exports.executeRestArion = exports.executeHatchArion = exports.PTYSessionStore = exports.runInPTY = exports.createPTYSession = exports.PTYError = void 0;
|
|
10
10
|
// Filesystem executors
|
|
11
11
|
var filesystem_js_1 = require("./filesystem.js");
|
|
12
12
|
Object.defineProperty(exports, "executeReadFile", { enumerable: true, get: function () { return filesystem_js_1.executeReadFile; } });
|
|
@@ -15,6 +15,28 @@ Object.defineProperty(exports, "executeEditFile", { enumerable: true, get: funct
|
|
|
15
15
|
Object.defineProperty(exports, "executeLs", { enumerable: true, get: function () { return filesystem_js_1.executeLs; } });
|
|
16
16
|
Object.defineProperty(exports, "executeGlob", { enumerable: true, get: function () { return filesystem_js_1.executeGlob; } });
|
|
17
17
|
Object.defineProperty(exports, "executeGrep", { enumerable: true, get: function () { return filesystem_js_1.executeGrep; } });
|
|
18
|
+
// fastripgrep executors
|
|
19
|
+
var frg_js_1 = require("./frg.js");
|
|
20
|
+
Object.defineProperty(exports, "executeFrg", { enumerable: true, get: function () { return frg_js_1.executeFrg; } });
|
|
21
|
+
var frg_freshness_js_1 = require("./frg-freshness.js");
|
|
22
|
+
Object.defineProperty(exports, "recordFrgMutation", { enumerable: true, get: function () { return frg_freshness_js_1.recordFrgMutation; } });
|
|
23
|
+
Object.defineProperty(exports, "getPendingFrgMutations", { enumerable: true, get: function () { return frg_freshness_js_1.getPendingFrgMutations; } });
|
|
24
|
+
Object.defineProperty(exports, "getPendingFrgMutationBytes", { enumerable: true, get: function () { return frg_freshness_js_1.getPendingFrgMutationBytes; } });
|
|
25
|
+
Object.defineProperty(exports, "clearPendingFrgMutations", { enumerable: true, get: function () { return frg_freshness_js_1.clearPendingFrgMutations; } });
|
|
26
|
+
Object.defineProperty(exports, "flushPendingFrgMutations", { enumerable: true, get: function () { return frg_freshness_js_1.flushPendingFrgMutations; } });
|
|
27
|
+
Object.defineProperty(exports, "maybeBuildFrgIndexForRepo", { enumerable: true, get: function () { return frg_freshness_js_1.maybeBuildFrgIndexForRepo; } });
|
|
28
|
+
Object.defineProperty(exports, "ensureFrgRepoStateLoaded", { enumerable: true, get: function () { return frg_freshness_js_1.ensureFrgRepoStateLoaded; } });
|
|
29
|
+
Object.defineProperty(exports, "reconcileGitDirtyMutations", { enumerable: true, get: function () { return frg_freshness_js_1.reconcileGitDirtyMutations; } });
|
|
30
|
+
Object.defineProperty(exports, "getGitDirtyStatus", { enumerable: true, get: function () { return frg_freshness_js_1.getGitDirtyStatus; } });
|
|
31
|
+
Object.defineProperty(exports, "getFrgFlushStatus", { enumerable: true, get: function () { return frg_freshness_js_1.getFrgFlushStatus; } });
|
|
32
|
+
Object.defineProperty(exports, "getFrgFreshnessSnapshot", { enumerable: true, get: function () { return frg_freshness_js_1.getFrgFreshnessSnapshot; } });
|
|
33
|
+
Object.defineProperty(exports, "scheduleBackgroundFrgFlush", { enumerable: true, get: function () { return frg_freshness_js_1.scheduleBackgroundFrgFlush; } });
|
|
34
|
+
Object.defineProperty(exports, "shouldForceSynchronousFrgFlush", { enumerable: true, get: function () { return frg_freshness_js_1.shouldForceSynchronousFrgFlush; } });
|
|
35
|
+
Object.defineProperty(exports, "DEFAULT_BACKGROUND_FRG_FLUSH_DELAY_MS", { enumerable: true, get: function () { return frg_freshness_js_1.DEFAULT_BACKGROUND_FRG_FLUSH_DELAY_MS; } });
|
|
36
|
+
Object.defineProperty(exports, "BACKGROUND_FRG_MAX_FLUSH_DELAY_MS", { enumerable: true, get: function () { return frg_freshness_js_1.BACKGROUND_FRG_MAX_FLUSH_DELAY_MS; } });
|
|
37
|
+
Object.defineProperty(exports, "MAX_PENDING_MUTATIONS_BEFORE_SYNC_FLUSH", { enumerable: true, get: function () { return frg_freshness_js_1.MAX_PENDING_MUTATIONS_BEFORE_SYNC_FLUSH; } });
|
|
38
|
+
Object.defineProperty(exports, "MAX_PENDING_MUTATION_BYTES_BEFORE_SYNC_FLUSH", { enumerable: true, get: function () { return frg_freshness_js_1.MAX_PENDING_MUTATION_BYTES_BEFORE_SYNC_FLUSH; } });
|
|
39
|
+
Object.defineProperty(exports, "MAX_CACHED_MUTATION_CONTENT_BYTES", { enumerable: true, get: function () { return frg_freshness_js_1.MAX_CACHED_MUTATION_CONTENT_BYTES; } });
|
|
18
40
|
// Apply Patch executor
|
|
19
41
|
var apply_patch_js_1 = require("./apply-patch.js");
|
|
20
42
|
Object.defineProperty(exports, "executeApplyPatch", { enumerable: true, get: function () { return apply_patch_js_1.executeApplyPatch; } });
|
|
@@ -104,6 +126,16 @@ Object.defineProperty(exports, "executeRestart", { enumerable: true, get: functi
|
|
|
104
126
|
// Deploy executor
|
|
105
127
|
var deploy_js_1 = require("./deploy.js");
|
|
106
128
|
Object.defineProperty(exports, "executeDeploy", { enumerable: true, get: function () { return deploy_js_1.executeDeploy; } });
|
|
129
|
+
// Code Intelligence executors
|
|
130
|
+
var code_intelligence_js_1 = require("./code-intelligence.js");
|
|
131
|
+
Object.defineProperty(exports, "executeRg", { enumerable: true, get: function () { return code_intelligence_js_1.executeRg; } });
|
|
132
|
+
Object.defineProperty(exports, "executeUg", { enumerable: true, get: function () { return code_intelligence_js_1.executeUg; } });
|
|
133
|
+
Object.defineProperty(exports, "executeProbe", { enumerable: true, get: function () { return code_intelligence_js_1.executeProbe; } });
|
|
134
|
+
Object.defineProperty(exports, "executeSg", { enumerable: true, get: function () { return code_intelligence_js_1.executeSg; } });
|
|
135
|
+
Object.defineProperty(exports, "executeCbm", { enumerable: true, get: function () { return code_intelligence_js_1.executeCbm; } });
|
|
136
|
+
Object.defineProperty(exports, "executeLsp", { enumerable: true, get: function () { return code_intelligence_js_1.executeLsp; } });
|
|
137
|
+
Object.defineProperty(exports, "executeSerena", { enumerable: true, get: function () { return code_intelligence_js_1.executeSerena; } });
|
|
138
|
+
Object.defineProperty(exports, "executeFff", { enumerable: true, get: function () { return code_intelligence_js_1.executeFff; } });
|
|
107
139
|
// Shared executor utilities
|
|
108
140
|
var utils_js_1 = require("./utils.js");
|
|
109
141
|
Object.defineProperty(exports, "success", { enumerable: true, get: function () { return utils_js_1.success; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executors/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,uBAAuB;AACvB,iDAOyB;AANvB,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAChB,gHAAA,eAAe,OAAA;AACf,0GAAA,SAAS,OAAA;AACT,4GAAA,WAAW,OAAA;AACX,4GAAA,WAAW,OAAA;AAkBb,uBAAuB;AACvB,mDAAqD;AAA5C,mHAAA,iBAAiB,OAAA;AAK1B,kBAAkB;AAClB,uCAUoB;AATlB,uGAAA,WAAW,OAAA;AACX,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AACZ,uGAAA,WAAW,OAAA;AACX,gHAAA,oBAAoB,OAAA;AACpB,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AACd,uGAAA,WAAW,OAAA;AAEb,qDAAgG;AAAvF,kHAAA,eAAe,OAAA;AAAE,yHAAA,gBAAgB,OAA0B;AAoBpE,mBAAmB;AACnB,yCASqB;AARnB,4GAAA,eAAe,OAAA;AACf,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,mHAAA,sBAAsB,OAAA;AACtB,iHAAA,oBAAoB,OAAA;AACpB,2GAAA,cAAc,OAAA;AAkBhB,gBAAgB;AAChB,mCAA4E;AAAnE,0GAAA,gBAAgB,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,uGAAA,aAAa,OAAA;AAYzD,gBAAgB;AAChB,mCAA6F;AAApF,oGAAA,UAAU,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAK1E,oBAAoB;AACpB,+DAAyD;AAAhD,uHAAA,eAAe,OAAA;AAExB,kBAAkB;AAClB,uCAKoB;AAJlB,6GAAA,iBAAiB,OAAA;AACjB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,8GAAA,kBAAkB,OAAA;AAYpB,mBAAmB;AACnB,6DAA+D;AAAtD,6HAAA,sBAAsB,OAAA;AAQ/B,iBAAiB;AACjB,qCAKmB;AAJjB,yGAAA,cAAc,OAAA;AACd,6GAAA,kBAAkB,OAAA;AAClB,2GAAA,gBAAgB,OAAA;AAChB,8GAAA,mBAAmB,OAAA;AAGrB,qCAAqC;AACrC,uDAgB4B;AAf1B,0HAAA,sBAAsB,OAAA;AACtB,oHAAA,gBAAgB,OAAA;AAChB,qHAAA,iBAAiB,OAAA;AACjB,sHAAA,kBAAkB,OAAA;AAClB,qHAAA,iBAAiB,OAAA;AACjB,sHAAA,kBAAkB,OAAA;AAClB,mHAAA,eAAe,OAAA;AACf,qEAAqE;AACrE,iHAAA,aAAa,OAAA;AACb,qHAAA,iBAAiB,OAAA;AACjB,yHAAA,qBAAqB,OAAA;AACrB,6GAAA,SAAS,OAAA;AACT,gHAAA,YAAY,OAAA;AACZ,sHAAA,kBAAkB,OAAA;AAClB,6GAAA,SAAS,OAAA;AAyBX,qDAAwE;AAA/D,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAE5C,4BAA4B;AAC5B,2DAA6D;AAApD,2HAAA,qBAAqB,OAAA;AAY9B,yBAAyB;AACzB,uDAAyD;AAAhD,uHAAA,mBAAmB,OAAA;AAG5B,mBAAmB;AACnB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAGvB,kBAAkB;AAClB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAGtB,4BAA4B;AAC5B,uCAA4D;AAAnD,mGAAA,OAAO,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,2GAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executors/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native LSP Client — uses vscode-jsonrpc for proper message framing.
|
|
3
|
+
*
|
|
4
|
+
* Same approach as Claude Code: createMessageConnection over stdio.
|
|
5
|
+
* Same configuration as Claude Code's LSP plugins.
|
|
6
|
+
* Supports: TypeScript, Python, Go, Rust, C/C++, Swift, Java, Kotlin, Lua, PHP, Ruby, C#.
|
|
7
|
+
*/
|
|
8
|
+
export interface LspServerConfig {
|
|
9
|
+
command: string;
|
|
10
|
+
args: string[];
|
|
11
|
+
extensionToLanguage: Record<string, string>;
|
|
12
|
+
startupTimeout: number;
|
|
13
|
+
}
|
|
14
|
+
export declare const LSP_SERVERS: Record<string, LspServerConfig>;
|
|
15
|
+
export declare function getServerForFile(filePath: string): string | undefined;
|
|
16
|
+
export declare function getLanguageId(filePath: string): string | undefined;
|
|
17
|
+
export declare class LspServer {
|
|
18
|
+
private process;
|
|
19
|
+
private connection;
|
|
20
|
+
private initialized;
|
|
21
|
+
private openFiles;
|
|
22
|
+
private diagnosticsReceived;
|
|
23
|
+
readonly serverName: string;
|
|
24
|
+
readonly config: LspServerConfig;
|
|
25
|
+
private rootUri;
|
|
26
|
+
constructor(serverName: string, rootPath: string);
|
|
27
|
+
start(): Promise<void>;
|
|
28
|
+
stop(): Promise<void>;
|
|
29
|
+
openFile(filePath: string): Promise<void>;
|
|
30
|
+
definition(filePath: string, line: number, character: number): Promise<unknown>;
|
|
31
|
+
references(filePath: string, line: number, character: number): Promise<unknown>;
|
|
32
|
+
hover(filePath: string, line: number, character: number): Promise<unknown>;
|
|
33
|
+
documentSymbols(filePath: string): Promise<unknown>;
|
|
34
|
+
rename(filePath: string, line: number, character: number, newName: string): Promise<unknown>;
|
|
35
|
+
private ensureReady;
|
|
36
|
+
}
|
|
37
|
+
export declare function getOrCreateServer(serverName: string, rootPath: string): LspServer;
|
|
38
|
+
export declare function shutdownAll(): Promise<void>;
|