dsh-lsp-actions 0.2.0
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 +79 -0
- package/LICENSE +201 -0
- package/README.es.md +177 -0
- package/README.hi.md +177 -0
- package/README.md +183 -0
- package/README.pt.md +177 -0
- package/README.zh-CN.md +181 -0
- package/cordis.patch.yml +17 -0
- package/lib/abort.d.ts +13 -0
- package/lib/abort.d.ts.map +1 -0
- package/lib/abort.js +31 -0
- package/lib/abort.js.map +1 -0
- package/lib/client.d.ts +173 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +926 -0
- package/lib/client.js.map +1 -0
- package/lib/connection.d.ts +103 -0
- package/lib/connection.d.ts.map +1 -0
- package/lib/connection.js +241 -0
- package/lib/connection.js.map +1 -0
- package/lib/edits.d.ts +17 -0
- package/lib/edits.d.ts.map +1 -0
- package/lib/edits.js +76 -0
- package/lib/edits.js.map +1 -0
- package/lib/extension.d.ts +9 -0
- package/lib/extension.d.ts.map +1 -0
- package/lib/extension.js +17 -0
- package/lib/extension.js.map +1 -0
- package/lib/extra-tools.d.ts +45 -0
- package/lib/extra-tools.d.ts.map +1 -0
- package/lib/extra-tools.js +406 -0
- package/lib/extra-tools.js.map +1 -0
- package/lib/framing.d.ts +33 -0
- package/lib/framing.d.ts.map +1 -0
- package/lib/framing.js +80 -0
- package/lib/framing.js.map +1 -0
- package/lib/host.d.ts +64 -0
- package/lib/host.d.ts.map +1 -0
- package/lib/host.js +152 -0
- package/lib/host.js.map +1 -0
- package/lib/index.d.ts +42 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +78 -0
- package/lib/index.js.map +1 -0
- package/lib/render.d.ts +364 -0
- package/lib/render.d.ts.map +1 -0
- package/lib/render.js +485 -0
- package/lib/render.js.map +1 -0
- package/lib/runner.d.ts +55 -0
- package/lib/runner.d.ts.map +1 -0
- package/lib/runner.js +149 -0
- package/lib/runner.js.map +1 -0
- package/lib/sandbox.d.ts +69 -0
- package/lib/sandbox.d.ts.map +1 -0
- package/lib/sandbox.js +98 -0
- package/lib/sandbox.js.map +1 -0
- package/lib/seam.d.ts +67 -0
- package/lib/seam.d.ts.map +1 -0
- package/lib/seam.js +62 -0
- package/lib/seam.js.map +1 -0
- package/lib/servers.d.ts +120 -0
- package/lib/servers.d.ts.map +1 -0
- package/lib/servers.js +216 -0
- package/lib/servers.js.map +1 -0
- package/lib/session-cwd.d.ts +15 -0
- package/lib/session-cwd.d.ts.map +1 -0
- package/lib/session-cwd.js +16 -0
- package/lib/session-cwd.js.map +1 -0
- package/lib/tools.d.ts +150 -0
- package/lib/tools.d.ts.map +1 -0
- package/lib/tools.js +543 -0
- package/lib/tools.js.map +1 -0
- package/lib/translate.d.ts +181 -0
- package/lib/translate.d.ts.map +1 -0
- package/lib/translate.js +715 -0
- package/lib/translate.js.map +1 -0
- package/lib/vocabulary.d.ts +167 -0
- package/lib/vocabulary.d.ts.map +1 -0
- package/lib/vocabulary.js +20 -0
- package/lib/vocabulary.js.map +1 -0
- package/package.json +95 -0
package/lib/servers.js
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server configuration and routing: the `servers` table schema, load-time validation and
|
|
3
|
+
* executable resolution, and the per-file routing that picks one server entry (glob patterns
|
|
4
|
+
* first, then the extension map) plus its language id.
|
|
5
|
+
* @module dsh-lsp-actions/servers
|
|
6
|
+
*/
|
|
7
|
+
import z from '@deepseek-ai/schemastery';
|
|
8
|
+
import { finalExtension } from "./extension.js";
|
|
9
|
+
/** Node's largest schedulable timer, the upper bound for every timeout-shaped config field. */
|
|
10
|
+
const MAX_TIMER_DELAY_MS = 2_147_483_647;
|
|
11
|
+
const DEFAULT_MAX_MESSAGE_BYTES = 16_000_000;
|
|
12
|
+
const DEFAULT_MAX_STDERR_BYTES = 1_000_000;
|
|
13
|
+
/** The default byte cap for any single source document a tool opens for a language server. */
|
|
14
|
+
export const DEFAULT_MAX_DOCUMENT_BYTES = 4_000_000;
|
|
15
|
+
const DEFAULT_KILL_GRACE_MS = 2_000;
|
|
16
|
+
const DEFAULT_SHUTDOWN_TIMEOUT_MS = 5_000;
|
|
17
|
+
const DEFAULT_DIAGNOSTICS_SETTLE_MS = 2_000;
|
|
18
|
+
const DEFAULT_DIAGNOSTICS_DEBOUNCE_MS = 250;
|
|
19
|
+
const DEFAULT_IDLE_TIMEOUT_MS = 0;
|
|
20
|
+
export const LspServerEntry = z.object({
|
|
21
|
+
command: z.string().required(),
|
|
22
|
+
extensionToLanguage: z.dict(String).required(),
|
|
23
|
+
fileGlobs: z.array(String).default([]),
|
|
24
|
+
args: z.array(String).default([]),
|
|
25
|
+
env: z.dict(String).default({}),
|
|
26
|
+
initializationOptions: z.any().default(null),
|
|
27
|
+
configuration: z.any().default(null),
|
|
28
|
+
formattingOptions: z.any().default(null),
|
|
29
|
+
maxMessageBytes: z.number().default(DEFAULT_MAX_MESSAGE_BYTES),
|
|
30
|
+
maxStderrBytes: z.number().default(DEFAULT_MAX_STDERR_BYTES),
|
|
31
|
+
killGraceMs: z.number().max(MAX_TIMER_DELAY_MS).default(DEFAULT_KILL_GRACE_MS),
|
|
32
|
+
shutdownTimeoutMs: z.number().max(MAX_TIMER_DELAY_MS).default(DEFAULT_SHUTDOWN_TIMEOUT_MS),
|
|
33
|
+
diagnosticsSettleMs: z.number().max(MAX_TIMER_DELAY_MS).default(DEFAULT_DIAGNOSTICS_SETTLE_MS),
|
|
34
|
+
diagnosticsDebounceMs: z.number().max(MAX_TIMER_DELAY_MS).default(DEFAULT_DIAGNOSTICS_DEBOUNCE_MS),
|
|
35
|
+
idleTimeoutMs: z.number().max(MAX_TIMER_DELAY_MS).default(DEFAULT_IDLE_TIMEOUT_MS),
|
|
36
|
+
});
|
|
37
|
+
export const Config = z.object({
|
|
38
|
+
servers: z.dict(LspServerEntry).default({}),
|
|
39
|
+
maxDiagnostics: z.number().default(200),
|
|
40
|
+
maxCompletionItems: z.number().default(20),
|
|
41
|
+
maxCodeActions: z.number().default(50),
|
|
42
|
+
maxSymbols: z.number().default(100),
|
|
43
|
+
maxSignatures: z.number().default(10),
|
|
44
|
+
maxInlayHints: z.number().default(200),
|
|
45
|
+
maxResultChars: z.number().default(16_000),
|
|
46
|
+
maxDocumentBytes: z.number().default(DEFAULT_MAX_DOCUMENT_BYTES),
|
|
47
|
+
timeoutMs: z.number().max(MAX_TIMER_DELAY_MS).default(60_000),
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Resolve every server entry's executable at load (fail loud on a missing command or an invalid
|
|
51
|
+
* bound) before any provider publishes. Mirrors the official `lsp-stdio` load contract.
|
|
52
|
+
* @param ctx - the plugin context (uses `ctx.subprocess.resolveExecutable`).
|
|
53
|
+
* @param servers - the schemastery-resolved servers table.
|
|
54
|
+
* @param signal - load cancellation.
|
|
55
|
+
* @returns the resolved servers in config order.
|
|
56
|
+
*/
|
|
57
|
+
export async function resolveServers(ctx, servers, signal) {
|
|
58
|
+
const resolved = [];
|
|
59
|
+
for (const [serverId, entry] of Object.entries(servers)) {
|
|
60
|
+
if (serverId.trim() === '')
|
|
61
|
+
throw new Error('lsp-actions: server ids must be non-empty strings');
|
|
62
|
+
validateServerEntry(serverId, entry);
|
|
63
|
+
for (const glob of entry.fileGlobs) {
|
|
64
|
+
globToRegExp(glob); // throws on a malformed pattern at load, not at routing time
|
|
65
|
+
}
|
|
66
|
+
const executable = await ctx.subprocess.resolveExecutable(entry.command, entry.env, signal);
|
|
67
|
+
resolved.push({ serverId, entry, executable });
|
|
68
|
+
}
|
|
69
|
+
return resolved;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Route one file to a server entry: entries with matching `fileGlobs` first, then entries whose
|
|
73
|
+
* `extensionToLanguage` maps the file's extension, both in config order. A glob route uses the
|
|
74
|
+
* file's own extension mapping when the entry maps it; the entry's first mapping is the fallback
|
|
75
|
+
* only for files whose extension the glob — not the map — selected.
|
|
76
|
+
* @param servers - the resolved servers.
|
|
77
|
+
* @param filePath - the source file path (absolute or workspace-relative).
|
|
78
|
+
* @returns the route, or undefined when no entry handles the file.
|
|
79
|
+
*/
|
|
80
|
+
export function routeFile(servers, filePath) {
|
|
81
|
+
const normalized = filePath.replaceAll('\\', '/');
|
|
82
|
+
const extension = finalExtension(filePath);
|
|
83
|
+
for (const server of servers) {
|
|
84
|
+
for (const glob of server.entry.fileGlobs) {
|
|
85
|
+
if (globToRegExp(glob).test(normalized)) {
|
|
86
|
+
const languageId = server.entry.extensionToLanguage[extension] ?? firstLanguageId(server);
|
|
87
|
+
return { server, languageId };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
for (const server of servers) {
|
|
92
|
+
const languageId = server.entry.extensionToLanguage[extension];
|
|
93
|
+
if (languageId !== undefined)
|
|
94
|
+
return { server, languageId };
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
/** The first extension mapping's language id, used when a glob route wins without an extension hit. */
|
|
99
|
+
export function firstLanguageId(server) {
|
|
100
|
+
const languageId = Object.values(server.entry.extensionToLanguage)[0];
|
|
101
|
+
if (languageId === undefined)
|
|
102
|
+
throw new Error(`lsp-actions: server "${server.serverId}" maps no extensions`);
|
|
103
|
+
return languageId;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Compile a path glob (`*`/`**`/`?`) to an anchored regular expression. `*` and `?` do not cross
|
|
107
|
+
* separators; `**` does. Matching runs against `/`-normalized paths.
|
|
108
|
+
* @param pattern - the glob pattern.
|
|
109
|
+
* @returns the compiled, anchored expression.
|
|
110
|
+
* @throws Error when the pattern is empty or contains unbalanced brackets.
|
|
111
|
+
*/
|
|
112
|
+
export function globToRegExp(pattern) {
|
|
113
|
+
let source = '^';
|
|
114
|
+
let i = 0;
|
|
115
|
+
const push = (text) => {
|
|
116
|
+
source += text.replace(/[.+^${}()|[\]\\]/g, '\\$&');
|
|
117
|
+
};
|
|
118
|
+
while (i < pattern.length) {
|
|
119
|
+
const char = pattern[i];
|
|
120
|
+
if (char === '*') {
|
|
121
|
+
if (pattern[i + 1] === '*') {
|
|
122
|
+
// A lone `**` spans path separators; `**/` also matches zero directories.
|
|
123
|
+
if (pattern[i + 2] === '/') {
|
|
124
|
+
source += '(?:[^/]+/)*';
|
|
125
|
+
i += 3;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
source += '.*';
|
|
129
|
+
i += 2;
|
|
130
|
+
}
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
source += '[^/]*';
|
|
134
|
+
i += 1;
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
if (char === '?') {
|
|
138
|
+
source += '[^/]';
|
|
139
|
+
i += 1;
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
if (char === '[') {
|
|
143
|
+
const close = pattern.indexOf(']', i + 1);
|
|
144
|
+
if (close < 0)
|
|
145
|
+
throw new Error(`lsp-actions: unbalanced "[" in fileGlob "${pattern}"`);
|
|
146
|
+
source += pattern.slice(i, close + 1);
|
|
147
|
+
i = close + 1;
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
push(char);
|
|
151
|
+
i += 1;
|
|
152
|
+
}
|
|
153
|
+
source += '$';
|
|
154
|
+
if (source === '^$')
|
|
155
|
+
throw new Error('lsp-actions: fileGlob patterns must be non-empty');
|
|
156
|
+
return new RegExp(source);
|
|
157
|
+
}
|
|
158
|
+
/** Reject config values that would fail later (nonpositive caps, invalid timers) at load. */
|
|
159
|
+
function validateServerEntry(serverId, entry) {
|
|
160
|
+
assertServerTimer(serverId, 'killGraceMs', entry.killGraceMs);
|
|
161
|
+
assertServerTimer(serverId, 'shutdownTimeoutMs', entry.shutdownTimeoutMs);
|
|
162
|
+
assertServerTimer(serverId, 'diagnosticsSettleMs', entry.diagnosticsSettleMs);
|
|
163
|
+
assertServerTimer(serverId, 'diagnosticsDebounceMs', entry.diagnosticsDebounceMs);
|
|
164
|
+
assertServerNonnegativeInteger(serverId, 'idleTimeoutMs', entry.idleTimeoutMs);
|
|
165
|
+
assertServerPositiveInteger(serverId, 'maxMessageBytes', entry.maxMessageBytes);
|
|
166
|
+
assertServerPositiveInteger(serverId, 'maxStderrBytes', entry.maxStderrBytes);
|
|
167
|
+
const extensions = Object.entries(entry.extensionToLanguage);
|
|
168
|
+
if (extensions.length === 0) {
|
|
169
|
+
throw new Error(`lsp-actions: servers.${serverId} must map at least one extension`);
|
|
170
|
+
}
|
|
171
|
+
for (const [extension, languageId] of extensions) {
|
|
172
|
+
const normalized = normalizeExtension(extension);
|
|
173
|
+
if (!/^\.[^./\\]+$/.test(normalized)) {
|
|
174
|
+
throw new Error(`lsp-actions: servers.${serverId} maps an invalid extension "${extension}"`);
|
|
175
|
+
}
|
|
176
|
+
if (languageId.trim() === '') {
|
|
177
|
+
throw new Error(`lsp-actions: servers.${serverId} maps extension "${extension}" to an empty language id`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/** Reject a timer value Node would clamp instead of scheduling as configured. */
|
|
182
|
+
export function assertTimer(name, value) {
|
|
183
|
+
if (!Number.isInteger(value) || value < 1 || value > MAX_TIMER_DELAY_MS) {
|
|
184
|
+
throw new Error(`lsp-actions: ${name} must be a positive integer no greater than ${MAX_TIMER_DELAY_MS}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/** Reject a nonpositive or non-integer config value at load. */
|
|
188
|
+
export function assertPositiveInteger(name, value) {
|
|
189
|
+
if (!Number.isInteger(value) || value < 1) {
|
|
190
|
+
throw new Error(`lsp-actions: ${name} must be a positive integer`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** Reject a timer value Node would clamp instead of scheduling as configured. */
|
|
194
|
+
function assertServerTimer(serverId, name, value) {
|
|
195
|
+
if (!Number.isInteger(value) || value < 1 || value > MAX_TIMER_DELAY_MS) {
|
|
196
|
+
throw new Error(`lsp-actions: servers.${serverId}.${name} must be a positive integer no greater than ${MAX_TIMER_DELAY_MS}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/** Reject a nonpositive or non-integer config value at load. */
|
|
200
|
+
function assertServerPositiveInteger(serverId, name, value) {
|
|
201
|
+
if (!Number.isInteger(value) || value < 1) {
|
|
202
|
+
throw new Error(`lsp-actions: servers.${serverId}.${name} must be a positive integer`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/** Reject a negative or non-integer config value at load (zero is a valid "disabled" value). */
|
|
206
|
+
function assertServerNonnegativeInteger(serverId, name, value) {
|
|
207
|
+
if (!Number.isInteger(value) || value < 0) {
|
|
208
|
+
throw new Error(`lsp-actions: servers.${serverId}.${name} must be a nonnegative integer`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/** Lowercase an extension and ensure it carries a leading dot. */
|
|
212
|
+
function normalizeExtension(extension) {
|
|
213
|
+
const lower = extension.toLowerCase();
|
|
214
|
+
return lower.startsWith('.') ? lower : `.${lower}`;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=servers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../src/servers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,+FAA+F;AAC/F,MAAM,kBAAkB,GAAG,aAAa,CAAA;AAExC,MAAM,yBAAyB,GAAG,UAAU,CAAA;AAC5C,MAAM,wBAAwB,GAAG,SAAS,CAAA;AAC1C,8FAA8F;AAC9F,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAA;AACnD,MAAM,qBAAqB,GAAG,KAAK,CAAA;AACnC,MAAM,2BAA2B,GAAG,KAAK,CAAA;AACzC,MAAM,6BAA6B,GAAG,KAAK,CAAA;AAC3C,MAAM,+BAA+B,GAAG,GAAG,CAAA;AAC3C,MAAM,uBAAuB,GAAG,CAAC,CAAA;AA4DjC,MAAM,CAAC,MAAM,cAAc,GAAsB,CAAC,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAC9C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,qBAAqB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,iBAAiB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAC9D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC9E,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAC1F,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IAC9F,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC;IAClG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;CACnF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAc,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACvC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACtC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC1C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAChE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CAC9D,CAAC,CAAA;AAwBF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAY,EACZ,OAA4C,EAC5C,MAAoB;IAEpB,MAAM,QAAQ,GAAqB,EAAE,CAAA;IACrC,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAChG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,CAAC,CAAA,CAAC,6DAA6D;QAClF,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC3F,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,OAAkC,EAAE,QAAgB;IAC5E,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC1C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;gBACzF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;IAC7D,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,IAAI,UAAU,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,QAAQ,sBAAsB,CAAC,CAAA;IAC5G,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,MAAM,GAAG,GAAG,CAAA;IAChB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,MAAM,IAAI,GAAG,CAAC,IAAY,EAAQ,EAAE;QAClC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,0EAA0E;gBAC1E,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBAC3B,MAAM,IAAI,aAAa,CAAA;oBACvB,CAAC,IAAI,CAAC,CAAA;gBACR,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,IAAI,CAAA;oBACd,CAAC,IAAI,CAAC,CAAA;gBACR,CAAC;gBACD,SAAQ;YACV,CAAC;YACD,MAAM,IAAI,OAAO,CAAA;YACjB,CAAC,IAAI,CAAC,CAAA;YACN,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,MAAM,CAAA;YAChB,CAAC,IAAI,CAAC,CAAA;YACN,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACzC,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,GAAG,CAAC,CAAA;YACtF,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YACrC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;YACb,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,CAAA;QACV,CAAC,IAAI,CAAC,CAAA;IACR,CAAC;IACD,MAAM,IAAI,GAAG,CAAA;IACb,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACxF,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED,6FAA6F;AAC7F,SAAS,mBAAmB,CAAC,QAAgB,EAAE,KAA0B;IACvE,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IAC7D,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACzE,iBAAiB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAC7E,iBAAiB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACjF,8BAA8B,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC9E,2BAA2B,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;IAC/E,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;IAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,kCAAkC,CAAC,CAAA;IACrF,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,UAAU,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,+BAA+B,SAAS,GAAG,CAAC,CAAA;QAC9F,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,oBAAoB,SAAS,2BAA2B,CAAC,CAAA;QAC3G,CAAC;IACH,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAa;IACrD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,kBAAkB,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,+CAA+C,kBAAkB,EAAE,CAAC,CAAA;IAC1G,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,KAAa;IAC/D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,6BAA6B,CAAC,CAAA;IACpE,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,SAAS,iBAAiB,CAAC,QAAgB,EAAE,IAAY,EAAE,KAAa;IACtE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,kBAAkB,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,IAAI,IAAI,+CAA+C,kBAAkB,EAAE,CAAC,CAAA;IAC9H,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,2BAA2B,CAAC,QAAgB,EAAE,IAAY,EAAE,KAAa;IAChF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,IAAI,IAAI,6BAA6B,CAAC,CAAA;IACxF,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,SAAS,8BAA8B,CAAC,QAAgB,EAAE,IAAY,EAAE,KAAa;IACnF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,IAAI,IAAI,gCAAgC,CAAC,CAAA;IAC3F,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;IACrC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAA;AACpD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derive the workspace root an LSP action call resolves against: the calling agent's per-session
|
|
3
|
+
* workspace (`exec.agent.session.header.cwd`), mirroring how the filesystem and navigation tools
|
|
4
|
+
* resolve paths. There is no fallback — a missing cwd fails the call, because a language server
|
|
5
|
+
* must be rooted in a real workspace.
|
|
6
|
+
* @module dsh-lsp-actions/session-cwd
|
|
7
|
+
*/
|
|
8
|
+
import type { ToolExecution } from '@deepseek-ai/dsh-tools';
|
|
9
|
+
/**
|
|
10
|
+
* The session workspace cwd for this call, or `undefined` when none applies.
|
|
11
|
+
* @param exec - the tool-execution context; only its optional `agent` is read.
|
|
12
|
+
* @returns the calling agent's session cwd, or undefined for a non-agent caller.
|
|
13
|
+
*/
|
|
14
|
+
export declare function sessionCwd(exec: ToolExecution): string | undefined;
|
|
15
|
+
//# sourceMappingURL=session-cwd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cwd.d.ts","sourceRoot":"","sources":["../src/session-cwd.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAElE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derive the workspace root an LSP action call resolves against: the calling agent's per-session
|
|
3
|
+
* workspace (`exec.agent.session.header.cwd`), mirroring how the filesystem and navigation tools
|
|
4
|
+
* resolve paths. There is no fallback — a missing cwd fails the call, because a language server
|
|
5
|
+
* must be rooted in a real workspace.
|
|
6
|
+
* @module dsh-lsp-actions/session-cwd
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The session workspace cwd for this call, or `undefined` when none applies.
|
|
10
|
+
* @param exec - the tool-execution context; only its optional `agent` is read.
|
|
11
|
+
* @returns the calling agent's session cwd, or undefined for a non-agent caller.
|
|
12
|
+
*/
|
|
13
|
+
export function sessionCwd(exec) {
|
|
14
|
+
return exec.agent?.session.header.cwd;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=session-cwd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cwd.js","sourceRoot":"","sources":["../src/session-cwd.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC5C,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAA;AACvC,CAAC"}
|
package/lib/tools.d.ts
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The three model-facing LSP action tools: `lsp_diagnostics` (read-only), `lsp_format` (writes
|
|
3
|
+
* through fs write-intent and sandbox policy), and `lsp_completion` (reference-only hints). All
|
|
4
|
+
* three declare `timeoutMs` for the official timeout policy to enforce and observe `exec.signal`
|
|
5
|
+
* throughout; results are capped and never cached.
|
|
6
|
+
* @module dsh-lsp-actions/tools
|
|
7
|
+
*/
|
|
8
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
9
|
+
import type { ToolExecution } from '@deepseek-ai/dsh-tools';
|
|
10
|
+
import type { HostWorkspace } from './host.ts';
|
|
11
|
+
import type { ActionRunner, RunnerRequest } from './runner.ts';
|
|
12
|
+
import { FormatSandboxController } from './sandbox.ts';
|
|
13
|
+
import type { ResolvedConfig } from './servers.ts';
|
|
14
|
+
import type { LspPosition, LspRange } from './vocabulary.ts';
|
|
15
|
+
/** The shared position schema, reused inside ranges and output projections. */
|
|
16
|
+
export declare const POSITION_SCHEMA: {
|
|
17
|
+
readonly type: "object";
|
|
18
|
+
readonly additionalProperties: false;
|
|
19
|
+
readonly properties: {
|
|
20
|
+
readonly line: {
|
|
21
|
+
readonly type: "integer";
|
|
22
|
+
readonly required: true;
|
|
23
|
+
};
|
|
24
|
+
readonly character: {
|
|
25
|
+
readonly type: "integer";
|
|
26
|
+
readonly required: true;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/** The shared output-side range schema. */
|
|
31
|
+
export declare const OUTPUT_RANGE_SCHEMA: {
|
|
32
|
+
readonly type: "object";
|
|
33
|
+
readonly additionalProperties: false;
|
|
34
|
+
readonly required: true;
|
|
35
|
+
readonly properties: {
|
|
36
|
+
readonly start: {
|
|
37
|
+
readonly required: true;
|
|
38
|
+
readonly type: "object";
|
|
39
|
+
readonly additionalProperties: false;
|
|
40
|
+
readonly properties: {
|
|
41
|
+
readonly line: {
|
|
42
|
+
readonly type: "integer";
|
|
43
|
+
readonly required: true;
|
|
44
|
+
};
|
|
45
|
+
readonly character: {
|
|
46
|
+
readonly type: "integer";
|
|
47
|
+
readonly required: true;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
readonly end: {
|
|
52
|
+
readonly required: true;
|
|
53
|
+
readonly type: "object";
|
|
54
|
+
readonly additionalProperties: false;
|
|
55
|
+
readonly properties: {
|
|
56
|
+
readonly line: {
|
|
57
|
+
readonly type: "integer";
|
|
58
|
+
readonly required: true;
|
|
59
|
+
};
|
|
60
|
+
readonly character: {
|
|
61
|
+
readonly type: "integer";
|
|
62
|
+
readonly required: true;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
/** The schema-typed raw argument shape of `lsp_format` (escalation fields included under a confining fs). */
|
|
69
|
+
export interface FormatToolArgs {
|
|
70
|
+
file_path: string;
|
|
71
|
+
range?: {
|
|
72
|
+
start: {
|
|
73
|
+
line: number;
|
|
74
|
+
character: number;
|
|
75
|
+
};
|
|
76
|
+
end: {
|
|
77
|
+
line: number;
|
|
78
|
+
character: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
sandbox_permissions?: string;
|
|
82
|
+
justification?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Register the `lsp_diagnostics` tool: read-only diagnostics for one file, count-capped in the
|
|
86
|
+
* canonical value and character-capped in the rendered text.
|
|
87
|
+
* @param ctx - the plugin context.
|
|
88
|
+
* @param runner - the seam-first action runner.
|
|
89
|
+
* @param config - the resolved plugin configuration.
|
|
90
|
+
*/
|
|
91
|
+
export declare function registerDiagnosticsTool(ctx: Context, runner: ActionRunner, config: ResolvedConfig): void;
|
|
92
|
+
/**
|
|
93
|
+
* Register the `lsp_format` tool: formatting through a language server, applied through the
|
|
94
|
+
* filesystem write-intent waterfall and the per-call sandbox policy. Read-only sandbox modes fail
|
|
95
|
+
* loud before any server round-trip; a stale on-disk file fails as a structured conflict.
|
|
96
|
+
* @param ctx - the plugin context.
|
|
97
|
+
* @param runner - the seam-first action runner.
|
|
98
|
+
* @param sandbox - the shared escalation controller.
|
|
99
|
+
* @param config - the resolved plugin configuration.
|
|
100
|
+
*/
|
|
101
|
+
export declare function registerFormatTool(ctx: Context, runner: ActionRunner, sandbox: FormatSandboxController, config: ResolvedConfig): void;
|
|
102
|
+
/**
|
|
103
|
+
* Register the `lsp_completion` tool: reference-only completion hints at a cursor position. The
|
|
104
|
+
* description and the rendered header both state that nothing is executed — applying a suggestion
|
|
105
|
+
* is the model's own write/edit decision.
|
|
106
|
+
* @param ctx - the plugin context.
|
|
107
|
+
* @param runner - the seam-first action runner.
|
|
108
|
+
* @param config - the resolved plugin configuration.
|
|
109
|
+
*/
|
|
110
|
+
export declare function registerCompletionTool(ctx: Context, runner: ActionRunner, config: ResolvedConfig): void;
|
|
111
|
+
/** The raw argument shape of `lsp_rename` (escalation fields included under a confining fs). */
|
|
112
|
+
export interface RenameToolArgs {
|
|
113
|
+
file_path: string;
|
|
114
|
+
line: number;
|
|
115
|
+
character: number;
|
|
116
|
+
new_name: string;
|
|
117
|
+
sandbox_permissions?: string;
|
|
118
|
+
justification?: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Register the `lsp_rename` tool: a server-verified symbol rename applied through the filesystem
|
|
122
|
+
* write-intent waterfall and the per-call sandbox policy, exactly like `lsp_format` but across
|
|
123
|
+
* every document the server edits. Read-only sandbox modes fail loud before any server
|
|
124
|
+
* round-trip; a stale on-disk file fails as a structured conflict.
|
|
125
|
+
* @param ctx - the plugin context.
|
|
126
|
+
* @param runner - the seam-first action runner.
|
|
127
|
+
* @param sandbox - the shared escalation controller.
|
|
128
|
+
* @param config - the resolved plugin configuration.
|
|
129
|
+
*/
|
|
130
|
+
export declare function registerRenameTool(ctx: Context, runner: ActionRunner, sandbox: FormatSandboxController, config: ResolvedConfig): void;
|
|
131
|
+
/**
|
|
132
|
+
* Validate a new symbol name: non-empty after trimming, no embedded newlines.
|
|
133
|
+
* @param newName - the caller-supplied name.
|
|
134
|
+
* @returns the trimmed name.
|
|
135
|
+
*/
|
|
136
|
+
export declare function parseNewName(newName: string): string;
|
|
137
|
+
/** The shared preparation every tool runs: workspace + contained, byte-capped source read. */
|
|
138
|
+
export declare function prepareRequest(ctx: Context, config: ResolvedConfig, filePath: string, workspaceRoot: string, exec: ToolExecution): Promise<RunnerRequest & {
|
|
139
|
+
source: NonNullable<RunnerRequest['source']>;
|
|
140
|
+
workspace: HostWorkspace;
|
|
141
|
+
}>;
|
|
142
|
+
/** Validate a non-blank file path. */
|
|
143
|
+
export declare function parseFilePath(filePath: string): string;
|
|
144
|
+
/** Validate one-based cursor coordinates and convert them to the zero-based wire position. */
|
|
145
|
+
export declare function parseCursor(line: number, character: number): LspPosition;
|
|
146
|
+
/** Validate an optional one-based range and convert it to the zero-based wire range. */
|
|
147
|
+
export declare function parseOptionalRange(range: FormatToolArgs['range']): LspRange | undefined;
|
|
148
|
+
/** The session workspace root, or a structured failure — a server needs a real workspace. */
|
|
149
|
+
export declare function requireWorkspace(exec: ToolExecution): string;
|
|
150
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|