@mesadev/sdk 0.47.2 → 0.48.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/README.md +21 -25
- package/dist/api/access-token.d.ts +24 -41
- package/dist/api/access-token.d.ts.map +1 -1
- package/dist/api/access-token.js +119 -71
- package/dist/api/access-token.js.map +1 -1
- package/dist/api/client.d.ts +2 -2
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +3 -3
- package/dist/api/client.js.map +1 -1
- package/dist/api/index.d.ts +0 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +0 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/{signing-key.d.ts → private-key.d.ts} +1 -1
- package/dist/api/{signing-key.d.ts.map → private-key.d.ts.map} +1 -1
- package/dist/api/{signing-key.js → private-key.js} +1 -1
- package/dist/api/{signing-key.js.map → private-key.js.map} +1 -1
- package/dist/api/repo-tag-filter.d.ts +1 -1
- package/dist/api/repo-tag-filter.d.ts.map +1 -1
- package/dist/api/repo-tag-filter.js +3 -1
- package/dist/api/repo-tag-filter.js.map +1 -1
- package/dist/api/resources.d.ts +25 -66
- package/dist/api/resources.d.ts.map +1 -1
- package/dist/api/resources.js +24 -41
- package/dist/api/resources.js.map +1 -1
- package/dist/fs/index.d.ts +1 -1
- package/dist/fs/index.d.ts.map +1 -1
- package/dist/fs/index.js +1 -1
- package/dist/fs/index.js.map +1 -1
- package/dist/fs/layout.d.ts +7 -25
- package/dist/fs/layout.d.ts.map +1 -1
- package/dist/fs/layout.js +2 -40
- package/dist/fs/layout.js.map +1 -1
- package/dist/fs/mesa-file-system.d.ts +37 -36
- package/dist/fs/mesa-file-system.d.ts.map +1 -1
- package/dist/fs/mesa-file-system.js +66 -30
- package/dist/fs/mesa-file-system.js.map +1 -1
- package/dist/fs/native-loader.d.ts +3 -4
- package/dist/fs/native-loader.d.ts.map +1 -1
- package/dist/fs/native-loader.js.map +1 -1
- package/dist/fs/search-rg.d.ts +132 -0
- package/dist/fs/search-rg.d.ts.map +1 -0
- package/dist/fs/search-rg.js +451 -0
- package/dist/fs/search-rg.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/errors.d.ts +5 -2
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +10 -4
- package/dist/lib/errors.js.map +1 -1
- package/dist/mesa.d.ts +29 -97
- package/dist/mesa.d.ts.map +1 -1
- package/dist/mesa.js +75 -153
- package/dist/mesa.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/schemas.d.ts +20 -20
- package/dist/webhooks/schemas.d.ts.map +1 -1
- package/dist/webhooks/schemas.js +8 -1
- package/dist/webhooks/schemas.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Bash, type BashOptions, type BufferEncoding, type CpOptions, type FileContent, type FsStat, type IFileSystem, type MkdirOptions, type RmOptions } from 'just-bash';
|
|
2
2
|
import type { NativeMesaFileSystemWatcher } from './native-loader.js';
|
|
3
|
-
import type
|
|
3
|
+
import { type BranchedRevision, type Layout, type RevisionIdentifier } from './layout.js';
|
|
4
4
|
export interface ChangeResult {
|
|
5
5
|
/** Reverse-hex-encoded change ID of the now-active change (JJ format, lowercase letters `k`–`z`). */
|
|
6
6
|
changeOid: string;
|
|
@@ -146,7 +146,14 @@ export interface LogRecord {
|
|
|
146
146
|
/** Event fields from the tracing span. */
|
|
147
147
|
fields: Record<string, unknown>;
|
|
148
148
|
}
|
|
149
|
-
export type MesaBashOptions =
|
|
149
|
+
export type MesaBashOptions = {
|
|
150
|
+
/**
|
|
151
|
+
* Answer `rg` with a repository search next to the storage instead of
|
|
152
|
+
* walking the mount. Commands the search cannot answer exactly fall through
|
|
153
|
+
* to the built-in `rg`, so this changes performance rather than results.
|
|
154
|
+
*/
|
|
155
|
+
serverSideSearch?: boolean;
|
|
156
|
+
} & Pick<BashOptions, 'env' | 'cwd' | 'executionLimits' | 'fetch' | 'network' | 'python' | 'javascript' | 'commands' | 'customCommands' | 'logger'>;
|
|
150
157
|
export type { BranchedRevision, MountRevisionProperties, RevisionIdentifier } from './layout.js';
|
|
151
158
|
type RepoConfigBase = {
|
|
152
159
|
name: string;
|
|
@@ -172,20 +179,8 @@ export type RepoConfig = RepoConfigBase & ({
|
|
|
172
179
|
export interface MesaFileSystemConfigBase {
|
|
173
180
|
org: string;
|
|
174
181
|
repos: RepoConfig[];
|
|
175
|
-
/**
|
|
176
|
-
layout
|
|
177
|
-
/**
|
|
178
|
-
* Which repos from the org show up in the mount.
|
|
179
|
-
*
|
|
180
|
-
* - `'all'` (or omitted) — mount every repo the API key can see.
|
|
181
|
-
* - `string[]` — mount only the listed repos. Scoping to a
|
|
182
|
-
* known-small set avoids the full-org enumeration on `readdir('/')`
|
|
183
|
-
* — useful for agents that only care about a few repos in a large org.
|
|
184
|
-
*
|
|
185
|
-
* Per-repo `rev` overrides in `repos` for names outside the mount list
|
|
186
|
-
* are accepted but silently unused — same as the TOML config.
|
|
187
|
-
*/
|
|
188
|
-
mountedRepos?: string[] | 'all';
|
|
182
|
+
/** Layout mounted as the complete namespace. */
|
|
183
|
+
layout: Layout;
|
|
189
184
|
cache?: {
|
|
190
185
|
diskCache?: {
|
|
191
186
|
path: string;
|
|
@@ -196,22 +191,10 @@ export interface MesaFileSystemConfigBase {
|
|
|
196
191
|
/** Telemetry and logging configuration. */
|
|
197
192
|
telemetry?: TelemetryConfig;
|
|
198
193
|
}
|
|
199
|
-
/**
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
* Provide it as `credential`. The legacy `apiKey` field is still accepted as a
|
|
204
|
-
* deprecated alias; supply exactly one. When both are present, `credential` wins.
|
|
205
|
-
*/
|
|
206
|
-
export type MesaFileSystemConfig = MesaFileSystemConfigBase & ({
|
|
207
|
-
credential: string;
|
|
208
|
-
/** @deprecated Use `credential`. */
|
|
209
|
-
apiKey?: string;
|
|
210
|
-
} | {
|
|
211
|
-
/** @deprecated Use `credential`. */
|
|
212
|
-
apiKey: string;
|
|
213
|
-
credential?: string;
|
|
214
|
-
});
|
|
194
|
+
/** Bearer access token used for all storage operations. */
|
|
195
|
+
export type MesaFileSystemConfig = MesaFileSystemConfigBase & {
|
|
196
|
+
accessToken: string;
|
|
197
|
+
};
|
|
215
198
|
export declare class MesaFileSystemSubscription {
|
|
216
199
|
private readonly native;
|
|
217
200
|
private closed;
|
|
@@ -224,10 +207,16 @@ export declare class MesaFileSystemSubscription {
|
|
|
224
207
|
*
|
|
225
208
|
* Uses native Rust code via NAPI to provide a high-performance filesystem
|
|
226
209
|
* backed by Mesa's cloud storage. The native addon is loaded lazily on the
|
|
227
|
-
* first call to `MesaFileSystem.
|
|
210
|
+
* first call to `MesaFileSystem.createAsync()`.
|
|
228
211
|
*/
|
|
229
212
|
export declare class MesaFileSystem implements IFileSystem {
|
|
230
213
|
private native;
|
|
214
|
+
/**
|
|
215
|
+
* What a server-side search needs, kept from the mount config. Absent when
|
|
216
|
+
* the mount was opened without an API base URL, which is the only case that
|
|
217
|
+
* cannot reach the search endpoint.
|
|
218
|
+
*/
|
|
219
|
+
private readonly search;
|
|
231
220
|
private constructor();
|
|
232
221
|
/**
|
|
233
222
|
* Validate a serialized layout document against the core mount schema's
|
|
@@ -236,10 +225,22 @@ export declare class MesaFileSystem implements IFileSystem {
|
|
|
236
225
|
* resolved here — a nonexistent repository only fails at mount time.
|
|
237
226
|
*/
|
|
238
227
|
static validateLayout(layoutJson: string): void;
|
|
239
|
-
|
|
240
|
-
|
|
228
|
+
/**
|
|
229
|
+
* @internal Open a filesystem from an already-minted access token.
|
|
230
|
+
*
|
|
231
|
+
* Not part of the public surface: `index.ts` exports this class as a type
|
|
232
|
+
* only. Callers go through `mesa.fs({ layout, authors }).mount()`, which
|
|
233
|
+
* derives the token's scopes from the layout and mints it for the mount.
|
|
234
|
+
* This path instead takes a token minted elsewhere, so its scopes and TTL
|
|
235
|
+
* are the caller's to get right. Neither path can refresh: when the token
|
|
236
|
+
* expires the mount fails closed, and resuming means signing a new token
|
|
237
|
+
* and opening a new filesystem.
|
|
238
|
+
*
|
|
239
|
+
* Rejects with {@link MissingAccessTokenError} when `accessToken` is empty and
|
|
240
|
+
* {@link InvalidOptionsError} when it is a private key rather than an access
|
|
241
|
+
* token.
|
|
242
|
+
*/
|
|
241
243
|
static createAsync(config: MesaFileSystemConfig): Promise<MesaFileSystem>;
|
|
242
|
-
private static nativeCreateArgs;
|
|
243
244
|
readFile(path: string, options?: {
|
|
244
245
|
encoding?: BufferEncoding | null;
|
|
245
246
|
} | BufferEncoding): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesa-file-system.d.ts","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,WAAW,EAChB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"mesa-file-system.d.ts","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { Bash, } from 'just-bash';
|
|
2
2
|
import { looksLikePrivateKey } from '../api/credentials.js';
|
|
3
|
-
import { InvalidOptionsError,
|
|
3
|
+
import { InvalidOptionsError, MissingAccessTokenError } from '../lib/errors.js';
|
|
4
4
|
import { loadNativeAddon } from './native-loader.js';
|
|
5
|
+
import {} from './layout.js';
|
|
6
|
+
import { createSearchRg } from './search-rg.js';
|
|
7
|
+
/** Single-quote a word so the fallback interpreter sees it unchanged. */
|
|
8
|
+
function shellQuote(word) {
|
|
9
|
+
return `'${word.replaceAll("'", `'\\''`)}'`;
|
|
10
|
+
}
|
|
5
11
|
let nativeModule = null;
|
|
6
12
|
/** Preserve the exclusive `at` | `branchedFrom` union when crossing to napi. */
|
|
7
13
|
function toNativeRepoConfig(repo) {
|
|
@@ -80,12 +86,19 @@ export class MesaFileSystemSubscription {
|
|
|
80
86
|
*
|
|
81
87
|
* Uses native Rust code via NAPI to provide a high-performance filesystem
|
|
82
88
|
* backed by Mesa's cloud storage. The native addon is loaded lazily on the
|
|
83
|
-
* first call to `MesaFileSystem.
|
|
89
|
+
* first call to `MesaFileSystem.createAsync()`.
|
|
84
90
|
*/
|
|
85
91
|
export class MesaFileSystem {
|
|
86
92
|
native;
|
|
87
|
-
|
|
93
|
+
/**
|
|
94
|
+
* What a server-side search needs, kept from the mount config. Absent when
|
|
95
|
+
* the mount was opened without an API base URL, which is the only case that
|
|
96
|
+
* cannot reach the search endpoint.
|
|
97
|
+
*/
|
|
98
|
+
search;
|
|
99
|
+
constructor(nativeInstance, search) {
|
|
88
100
|
this.native = nativeInstance;
|
|
101
|
+
this.search = search;
|
|
89
102
|
}
|
|
90
103
|
/**
|
|
91
104
|
* Validate a serialized layout document against the core mount schema's
|
|
@@ -97,41 +110,48 @@ export class MesaFileSystem {
|
|
|
97
110
|
nativeModule ??= loadNativeAddon();
|
|
98
111
|
nativeModule.validateLayout(layoutJson);
|
|
99
112
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
113
|
+
/**
|
|
114
|
+
* @internal Open a filesystem from an already-minted access token.
|
|
115
|
+
*
|
|
116
|
+
* Not part of the public surface: `index.ts` exports this class as a type
|
|
117
|
+
* only. Callers go through `mesa.fs({ layout, authors }).mount()`, which
|
|
118
|
+
* derives the token's scopes from the layout and mints it for the mount.
|
|
119
|
+
* This path instead takes a token minted elsewhere, so its scopes and TTL
|
|
120
|
+
* are the caller's to get right. Neither path can refresh: when the token
|
|
121
|
+
* expires the mount fails closed, and resuming means signing a new token
|
|
122
|
+
* and opening a new filesystem.
|
|
123
|
+
*
|
|
124
|
+
* Rejects with {@link MissingAccessTokenError} when `accessToken` is empty and
|
|
125
|
+
* {@link InvalidOptionsError} when it is a private key rather than an access
|
|
126
|
+
* token.
|
|
127
|
+
*/
|
|
107
128
|
static async createAsync(config) {
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (onLog)
|
|
112
|
-
nativeInstance.setLogCallback(onLog, napiConfig.telemetry?.logLevel);
|
|
113
|
-
return new MesaFileSystem(nativeInstance);
|
|
114
|
-
}
|
|
115
|
-
static nativeCreateArgs(config) {
|
|
116
|
-
const credential = config.credential ?? config.apiKey;
|
|
117
|
-
if (!credential) {
|
|
118
|
-
throw new MissingCredentialError();
|
|
129
|
+
const accessToken = config.accessToken;
|
|
130
|
+
if (!accessToken) {
|
|
131
|
+
throw new MissingAccessTokenError();
|
|
119
132
|
}
|
|
120
|
-
if (looksLikePrivateKey(
|
|
121
|
-
throw new InvalidOptionsError('MesaFileSystem requires an
|
|
133
|
+
if (looksLikePrivateKey(accessToken)) {
|
|
134
|
+
throw new InvalidOptionsError('MesaFileSystem requires an access token, not a private key.');
|
|
122
135
|
}
|
|
123
136
|
const { onLog, ...telemetryRest } = config.telemetry ?? {};
|
|
124
|
-
const {
|
|
137
|
+
const { accessToken: _accessToken, ...rest } = config;
|
|
125
138
|
const napiConfig = {
|
|
126
139
|
...rest,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
apiKey: credential,
|
|
130
|
-
layout: config.layout?.toString(),
|
|
140
|
+
accessToken,
|
|
141
|
+
layout: JSON.stringify(config.layout),
|
|
131
142
|
telemetry: Object.keys(telemetryRest).length > 0 ? telemetryRest : undefined,
|
|
132
143
|
repos: config.repos.map(toNativeRepoConfig),
|
|
133
144
|
};
|
|
134
|
-
|
|
145
|
+
nativeModule ??= loadNativeAddon();
|
|
146
|
+
const nativeInstance = await nativeModule.MesaFileSystem.createAsync(napiConfig);
|
|
147
|
+
// Registered after construction rather than passed into it: the native
|
|
148
|
+
// factory's future must be Send, and a JS function is bound to its thread.
|
|
149
|
+
if (onLog)
|
|
150
|
+
nativeInstance.setLogCallback(onLog, napiConfig.telemetry?.logLevel);
|
|
151
|
+
const search = config.apiBaseUrl
|
|
152
|
+
? { apiBaseUrl: config.apiBaseUrl, org: config.org, accessToken, layout: config.layout }
|
|
153
|
+
: undefined;
|
|
154
|
+
return new MesaFileSystem(nativeInstance, search);
|
|
135
155
|
}
|
|
136
156
|
async readFile(path, options) {
|
|
137
157
|
const encoding = getEncoding(options);
|
|
@@ -276,7 +296,23 @@ export class MesaFileSystem {
|
|
|
276
296
|
},
|
|
277
297
|
};
|
|
278
298
|
bash(options) {
|
|
279
|
-
|
|
299
|
+
const { serverSideSearch, ...bashOptions } = options ?? {};
|
|
300
|
+
const base = { ...bashOptions, cwd: options?.cwd ?? '/', fs: this };
|
|
301
|
+
if (!serverSideSearch || !this.search) {
|
|
302
|
+
return new Bash(base);
|
|
303
|
+
}
|
|
304
|
+
// The built-in `rg` is not exported, so the fallback runs the original
|
|
305
|
+
// command line through a second interpreter that has no override. Built
|
|
306
|
+
// once, on the first command that needs it.
|
|
307
|
+
let builtIn;
|
|
308
|
+
const fallback = async (args, ctx) => {
|
|
309
|
+
builtIn ??= new Bash({ ...bashOptions, cwd: ctx.cwd, fs: this, customCommands: undefined });
|
|
310
|
+
return builtIn.exec(['rg', ...args].map(shellQuote).join(' '));
|
|
311
|
+
};
|
|
312
|
+
return new Bash({
|
|
313
|
+
...base,
|
|
314
|
+
customCommands: [...(bashOptions.customCommands ?? []), createSearchRg({ ...this.search }, fallback)],
|
|
315
|
+
});
|
|
280
316
|
}
|
|
281
317
|
}
|
|
282
318
|
//# sourceMappingURL=mesa-file-system.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesa-file-system.js","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,
|
|
1
|
+
{"version":3,"file":"mesa-file-system.js","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,10 +44,9 @@ export type NativeRepoConfig = NativeRepoConfigBase & ({
|
|
|
44
44
|
});
|
|
45
45
|
export interface NativeConfig {
|
|
46
46
|
org: string;
|
|
47
|
-
|
|
47
|
+
accessToken: string;
|
|
48
48
|
repos: NativeRepoConfig[];
|
|
49
|
-
layout
|
|
50
|
-
mountedRepos?: string[] | 'all';
|
|
49
|
+
layout: string;
|
|
51
50
|
cache?: {
|
|
52
51
|
diskCache?: {
|
|
53
52
|
path: string;
|
|
@@ -129,8 +128,8 @@ export interface NativeMesaFileSystem {
|
|
|
129
128
|
listBookmarks(repo: string): Promise<string[]>;
|
|
130
129
|
}
|
|
131
130
|
export interface NativeModule {
|
|
131
|
+
/** Constructor-less: the addon exposes only the async factory. */
|
|
132
132
|
MesaFileSystem: {
|
|
133
|
-
new (config: NativeConfig, onLog?: ((record: NativeLogRecord) => void) | undefined | null): NativeMesaFileSystem;
|
|
134
133
|
createAsync(config: NativeConfig): Promise<NativeMesaFileSystem>;
|
|
135
134
|
};
|
|
136
135
|
validateLayout: (layoutJson: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-loader.d.ts","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"AAIA,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvH,UAAU,6BAA6B;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,GAAG;IAC9D,EAAE,CAAC,EAAE,6BAA6B,CAAC;CACpC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GACjD,CACI;IAAE,EAAE,CAAC,EAAE,wBAAwB,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,GAC3E;IAAE,EAAE,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,CACrE,CAAC;AAEJ,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,
|
|
1
|
+
{"version":3,"file":"native-loader.d.ts","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-loader.js","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"native-loader.js","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AA8InD,SAAS,6BAA6B,CAAC,KAAc;IACnD,OAAO,IAAI,KAAK,CACd,2CAA2C;QACzC,8EAA8E;QAC9E,cAAc,mBAAmB,GAAG,EACtC,EAAE,KAAK,EAAE,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,KAAK,IAAI,OAAO,GAAY,KAAK,EAAE,OAAO,YAAY,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACrF,MAAM,IAAI,GAAI,OAAiC,CAAC,IAAI,CAAC;QACrD,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,iBAAiB,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,OAAoB;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAiB,CAAC;AAC1C,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAoB;IACpD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,mBAAmB,CAAiB,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `rg` that searches next to the storage instead of walking the mount.
|
|
3
|
+
*
|
|
4
|
+
* just-bash's built-in `rg` reads the filesystem, which over a Mesa mount costs
|
|
5
|
+
* a round trip per directory. This one translates the same command line into a
|
|
6
|
+
* single repository search and formats the response the way ripgrep would.
|
|
7
|
+
*
|
|
8
|
+
* A path may span several repositories, because a layout can nest one mount
|
|
9
|
+
* inside another. Each becomes its own search, issued in parallel, with the
|
|
10
|
+
* parent excluding the subtrees its children shadow so no file is counted
|
|
11
|
+
* twice or attributed to the wrong repository.
|
|
12
|
+
*
|
|
13
|
+
* It only replaces the built-in when it can answer exactly what was asked. A
|
|
14
|
+
* flag it does not implement, or a path outside every mount, defers to the
|
|
15
|
+
* built-in, so the worst case is the behaviour that exists today rather than a
|
|
16
|
+
* wrong answer.
|
|
17
|
+
*/
|
|
18
|
+
import type { Command, CommandContext, ExecResult } from 'just-bash';
|
|
19
|
+
import type { Layout } from './layout.js';
|
|
20
|
+
/** One repository as it appears in the mount namespace. */
|
|
21
|
+
type Mount = {
|
|
22
|
+
/** Absolute path in the mount where this repository's root sits. */
|
|
23
|
+
path: string;
|
|
24
|
+
repo: string;
|
|
25
|
+
bookmark?: string;
|
|
26
|
+
changeId?: string;
|
|
27
|
+
};
|
|
28
|
+
/** One repository's share of a search. */
|
|
29
|
+
type SearchLeg = {
|
|
30
|
+
mount: Mount;
|
|
31
|
+
/** Repo-relative directory to search under. */
|
|
32
|
+
pathPrefix: string;
|
|
33
|
+
/** Subtrees this repository owns but a nested mount covers. */
|
|
34
|
+
excludes: string[];
|
|
35
|
+
};
|
|
36
|
+
/** What the server needs to answer one search, across every repository it spans. */
|
|
37
|
+
type SearchQuery = {
|
|
38
|
+
legs: SearchLeg[];
|
|
39
|
+
/**
|
|
40
|
+
* The search path as the caller typed it, and its absolute form.
|
|
41
|
+
*
|
|
42
|
+
* ripgrep reports each file the way the caller named its directory: a
|
|
43
|
+
* relative argument yields relative output, an absolute one absolute, and no
|
|
44
|
+
* argument at all yields paths relative to the working directory. Results
|
|
45
|
+
* come back repo-relative, so both are needed to put them back.
|
|
46
|
+
*/
|
|
47
|
+
target: {
|
|
48
|
+
typed: string;
|
|
49
|
+
absolute: string;
|
|
50
|
+
};
|
|
51
|
+
pattern: string;
|
|
52
|
+
mode: 'lines' | 'count' | 'files';
|
|
53
|
+
caseMode?: 'sensitive' | 'insensitive' | 'smart';
|
|
54
|
+
literal: boolean;
|
|
55
|
+
word: boolean;
|
|
56
|
+
hidden: boolean;
|
|
57
|
+
globs: string[];
|
|
58
|
+
};
|
|
59
|
+
/** Why a command line could not be served, phrased for the reader of a log. */
|
|
60
|
+
type Unservable = {
|
|
61
|
+
unservable: string;
|
|
62
|
+
};
|
|
63
|
+
export type ServerSearchConfig = {
|
|
64
|
+
/** Versioned API root, e.g. `https://api.mesa.dev/v1`. */
|
|
65
|
+
apiBaseUrl: string;
|
|
66
|
+
org: string;
|
|
67
|
+
accessToken: string;
|
|
68
|
+
layout: Layout;
|
|
69
|
+
fetch?: typeof globalThis.fetch;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Flatten a layout into the repository roots it presents, longest path first.
|
|
73
|
+
*
|
|
74
|
+
* A single declaration mounts at its key; an array mounts each element in a
|
|
75
|
+
* child directory named by its alias. Nested declarations shadow the parent at
|
|
76
|
+
* their own path, which is why the list is ordered longest-first: the deepest
|
|
77
|
+
* mount containing a path is the one that owns it.
|
|
78
|
+
*/
|
|
79
|
+
export declare function mountsFromLayout(layout: Layout): Mount[];
|
|
80
|
+
/**
|
|
81
|
+
* Translate a ripgrep command line into one search.
|
|
82
|
+
*
|
|
83
|
+
* The supported set is deliberately small. Anything else defers rather than
|
|
84
|
+
* approximating, because a flag that silently does nothing changes the answer.
|
|
85
|
+
*/
|
|
86
|
+
export declare function planSearch(args: string[], cwd: string, mounts: Mount[]): SearchQuery | Unservable;
|
|
87
|
+
/**
|
|
88
|
+
* Whether ripgrep would have walked past this file without opening it.
|
|
89
|
+
*
|
|
90
|
+
* ripgrep skips dot-prefixed entries during traversal, but searches a path the
|
|
91
|
+
* caller named explicitly even when it is hidden. Only the part below the
|
|
92
|
+
* named directory is examined, so `rg foo .agents` still searches `.agents`.
|
|
93
|
+
*
|
|
94
|
+
* The search endpoint does not apply this rule — hiding dotfiles is a
|
|
95
|
+
* convention of the command-line tool, not of the repository — so `rg` applies
|
|
96
|
+
* it here instead.
|
|
97
|
+
*/
|
|
98
|
+
export declare function isHidden(suffix: string): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Translate one `.gitignore` line into repository-root-relative exclude globs.
|
|
101
|
+
*
|
|
102
|
+
* `dir` is the directory holding the ignore file, so a nested file's rules
|
|
103
|
+
* stay scoped to its own subtree. A bare name matches at any depth below that
|
|
104
|
+
* directory and may name either a file or a directory, so it yields both forms.
|
|
105
|
+
*
|
|
106
|
+
* Returns nothing for blanks and comments, and `null` for a negation, which
|
|
107
|
+
* the exclude parameter cannot express: the server prefixes every exclude with
|
|
108
|
+
* `!` already, so a re-inclusion would arrive as a double negation.
|
|
109
|
+
*/
|
|
110
|
+
export declare function gitignoreLineToGlobs(line: string, dir: string): string[] | null;
|
|
111
|
+
/**
|
|
112
|
+
* Every ignore rule in a subtree, as exclude globs, or `null` when one of them
|
|
113
|
+
* cannot be expressed and the caller should fall back.
|
|
114
|
+
*
|
|
115
|
+
* The ignore files are read through the search endpoint rather than the mount:
|
|
116
|
+
* one request returns the contents of every `.gitignore` under the path, where
|
|
117
|
+
* walking the tree for them would cost the round trips this command exists to
|
|
118
|
+
* avoid.
|
|
119
|
+
*/
|
|
120
|
+
export declare function gitignoreExcludes(files: {
|
|
121
|
+
path: string;
|
|
122
|
+
lines: string[];
|
|
123
|
+
}[]): string[] | null;
|
|
124
|
+
/**
|
|
125
|
+
* Build the `rg` replacement.
|
|
126
|
+
*
|
|
127
|
+
* `fallback` runs the original command line through the built-in, and is called
|
|
128
|
+
* whenever this command cannot answer precisely.
|
|
129
|
+
*/
|
|
130
|
+
export declare function createSearchRg(config: ServerSearchConfig, fallback: (args: string[], ctx: CommandContext) => Promise<ExecResult>): Command;
|
|
131
|
+
export {};
|
|
132
|
+
//# sourceMappingURL=search-rg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-rg.d.ts","sourceRoot":"","sources":["../../src/fs/search-rg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,aAAa,CAAC;AAEhD,2DAA2D;AAC3D,KAAK,KAAK,GAAG;IACX,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,0CAA0C;AAC1C,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,KAAK,CAAC;IACb,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,oFAAoF;AACpF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB;;;;;;;OAOG;IACH,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,OAAO,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAWF,+EAA+E;AAC/E,KAAK,UAAU,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAuBxD;AAiDD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,GAAG,UAAU,CA4FjG;AAsFD;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAe/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAW7F;AAiED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,UAAU,CAAC,GACrE,OAAO,CAkDT"}
|