@functional-systems/srcx 0.1.0-dev.4 → 0.1.0-dev.40
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 +179 -0
- package/CONTRIBUTING.md +4 -0
- package/DESIGN.md +378 -58
- package/README.md +628 -35
- package/RELEASING.md +15 -3
- package/VALIDATION.md +1120 -16
- package/dist/artifact.d.ts +31 -0
- package/dist/artifact.js +237 -0
- package/dist/artifact.js.map +1 -0
- package/dist/build.d.ts +86 -3
- package/dist/build.js +233 -71
- package/dist/build.js.map +1 -1
- package/dist/chunk.d.ts +9 -3
- package/dist/chunk.js +341 -14
- package/dist/chunk.js.map +1 -1
- package/dist/cli.js +130 -21
- package/dist/cli.js.map +1 -1
- package/dist/file-policy.d.ts +20 -0
- package/dist/file-policy.js +103 -0
- package/dist/file-policy.js.map +1 -0
- package/dist/implementation.d.ts +11 -0
- package/dist/implementation.js +191 -0
- package/dist/implementation.js.map +1 -0
- package/dist/publish.d.ts +18 -0
- package/dist/publish.js +224 -46
- package/dist/publish.js.map +1 -1
- package/dist/releases.js +21 -3
- package/dist/releases.js.map +1 -1
- package/dist/remote.d.ts +1 -0
- package/dist/remote.js +50 -9
- package/dist/remote.js.map +1 -1
- package/dist/repository.d.ts +4 -1
- package/dist/repository.js +26 -11
- package/dist/repository.js.map +1 -1
- package/dist/rerank.d.ts +16 -0
- package/dist/rerank.js +87 -0
- package/dist/rerank.js.map +1 -0
- package/dist/search.d.ts +18 -3
- package/dist/search.js +143 -23
- package/dist/search.js.map +1 -1
- package/dist/skills.d.ts +24 -0
- package/dist/skills.js +155 -0
- package/dist/skills.js.map +1 -0
- package/package.json +17 -6
- package/runtime/grammars/README.md +50 -0
- package/runtime/grammars/tree-sitter-bash.LICENSE +21 -0
- package/runtime/grammars/tree-sitter-bash.wasm +0 -0
- package/runtime/grammars/tree-sitter-sql.LICENSE +21 -0
- package/runtime/grammars/tree-sitter-sql.wasm +0 -0
- package/runtime/grammars/tree-sitter-wasm.LICENSE +21 -0
- package/runtime/qwen.py +132 -0
- package/runtime/requirements.txt +34 -0
- package/skills/srcx-search/SKILL.md +103 -0
- package/src/artifact.ts +303 -0
- package/src/build.ts +313 -84
- package/src/chunk.ts +360 -12
- package/src/cli.ts +263 -23
- package/src/file-policy.ts +166 -0
- package/src/implementation.ts +253 -0
- package/src/publish.ts +321 -47
- package/src/releases.ts +36 -3
- package/src/remote.ts +70 -13
- package/src/repository.ts +40 -11
- package/src/rerank.ts +131 -0
- package/src/search.ts +229 -28
- package/src/skills.ts +205 -0
package/dist/cli.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
|
-
import { Command, InvalidArgumentError } from "commander";
|
|
3
|
+
import { Command, InvalidArgumentError, Option } from "commander";
|
|
4
4
|
import { mkdir } from "node:fs/promises";
|
|
5
5
|
import { join, resolve } from "node:path";
|
|
6
6
|
import { randomUUID } from "node:crypto";
|
|
7
7
|
import { configure, loadSettings, stateRoot } from "./settings.js";
|
|
8
|
-
import { identity } from "./git.js";
|
|
9
|
-
import { loadBuild, materialize, validateBuild } from "./build.js";
|
|
8
|
+
import { identity, resolveCommit } from "./git.js";
|
|
9
|
+
import { loadBuild, materialize, validateBuild, PRESET, presetFor, normalizeAnalyzers, ANALYZERS, } from "./build.js";
|
|
10
|
+
import { normalizeFilePolicy } from "./file-policy.js";
|
|
10
11
|
import { invariant, optionalJson } from "./common.js";
|
|
11
12
|
import { LambdaRemote } from "./remote.js";
|
|
12
13
|
import { attachment, destination, discover, register, selectRepository, } from "./repository.js";
|
|
13
|
-
import { exclusive, publish, published } from "./publish.js";
|
|
14
|
+
import { exclusive, lastBuildPath, publish, published, } from "./publish.js";
|
|
14
15
|
import { resolveVersion, syncTags } from "./releases.js";
|
|
15
|
-
import { directHandle, loadHandle, readHandle, search } from "./search.js";
|
|
16
|
+
import { directHandle, loadHandle, readHandle, search, lookup, } from "./search.js";
|
|
17
|
+
import { candidateLimit } from "./rerank.js";
|
|
18
|
+
import { manageSkill, SKILL_AGENTS, SKILL_SCOPES } from "./skills.js";
|
|
16
19
|
const cli = new Command()
|
|
17
20
|
.name("srcx")
|
|
18
21
|
.description("Version-aware code search on LambdaDB")
|
|
@@ -29,10 +32,27 @@ const integer = (value) => {
|
|
|
29
32
|
throw new InvalidArgumentError("Integer is too large.");
|
|
30
33
|
return n;
|
|
31
34
|
};
|
|
35
|
+
const analyzerOption = (description) => new Option("--analyzers <names>", description + ` (${ANALYZERS.join(", ")}; default: standard)`).argParser((value) => normalizeAnalyzers(value.split(",").map((name) => name.trim())));
|
|
36
|
+
const filePolicyOption = () => new Option("--file-policy <json>", "Path to file policy JSON; pinned at registration or local dry run").argParser((path) => normalizeFilePolicy(JSON.parse(readFileSync(path, "utf8"))));
|
|
32
37
|
async function connected() {
|
|
33
38
|
const settings = await loadSettings();
|
|
34
39
|
return { settings, remote: new LambdaRemote(settings) };
|
|
35
40
|
}
|
|
41
|
+
const skills = cli
|
|
42
|
+
.command("skills")
|
|
43
|
+
.description("Install and manage the bundled agent skill (no credentials required)");
|
|
44
|
+
for (const operation of ["install", "update", "remove", "status"]) {
|
|
45
|
+
skills
|
|
46
|
+
.command(operation)
|
|
47
|
+
.addOption(new Option("--agent <name>", "Agent to configure")
|
|
48
|
+
.choices(SKILL_AGENTS)
|
|
49
|
+
.makeOptionMandatory())
|
|
50
|
+
.addOption(new Option("--scope <scope>", "Installation scope")
|
|
51
|
+
.choices(SKILL_SCOPES)
|
|
52
|
+
.default("user"))
|
|
53
|
+
.option("--path <directory>", "Project directory (project scope only; default: current directory)")
|
|
54
|
+
.action(async (options) => output(await manageSkill(operation, options)));
|
|
55
|
+
}
|
|
36
56
|
cli
|
|
37
57
|
.command("configure")
|
|
38
58
|
.requiredOption("--endpoint <origin>")
|
|
@@ -63,6 +83,11 @@ repo
|
|
|
63
83
|
.option("--remote <name>")
|
|
64
84
|
.option("--description <text>")
|
|
65
85
|
.option("--tag <key=value>", "One optional Collection metadata tag")
|
|
86
|
+
.addOption(analyzerOption("Comma-separated text analyzers"))
|
|
87
|
+
.addOption(filePolicyOption())
|
|
88
|
+
.addOption(new Option("--embedding <model>", "Managed model (source text is sent to the provider on import)")
|
|
89
|
+
.choices(["none", "text-embedding-3-small", "text-embedding-3-large"])
|
|
90
|
+
.default("none"))
|
|
66
91
|
.action(async (o) => {
|
|
67
92
|
const { remote } = await connected();
|
|
68
93
|
let labels;
|
|
@@ -76,6 +101,7 @@ repo
|
|
|
76
101
|
remote: o.remote,
|
|
77
102
|
description: o.description,
|
|
78
103
|
labels,
|
|
104
|
+
preset: presetFor(o.embedding, o.analyzers, o.filePolicy),
|
|
79
105
|
}));
|
|
80
106
|
});
|
|
81
107
|
repo.command("list").action(async () => {
|
|
@@ -97,26 +123,52 @@ cli
|
|
|
97
123
|
.option("--repo <name>", "Registered remote repository")
|
|
98
124
|
.option("--ref <ref>", "Local branch, Git tag, or commit OID")
|
|
99
125
|
.option("--dry-run", "Only materialize and validate a local build")
|
|
126
|
+
.addOption(filePolicyOption())
|
|
127
|
+
.addOption(new Option("--embedding <model>", "Preset for --dry-run --path; connected imports use the repository preset").choices(["none", "text-embedding-3-small", "text-embedding-3-large"]))
|
|
128
|
+
.addOption(analyzerOption("Text analyzers for --dry-run --path; connected imports use the repository preset"))
|
|
100
129
|
.option("--output <directory>", "New artifact directory")
|
|
130
|
+
.addOption(new Option("--artifact-storage <storage>", "Experimental local artifact storage")
|
|
131
|
+
.choices(["jsonl", "segments"])
|
|
132
|
+
.default("jsonl"))
|
|
101
133
|
.option("--previous <directory>", "Previous build artifact for a dry-run diff")
|
|
102
134
|
.option("--artifact <directory>", "Import a previously previewed artifact")
|
|
103
135
|
.option("--resume", "Resume the same pending artifact after inspecting its journal")
|
|
104
136
|
.option("--timeout <seconds>", "Validation wait deadline", integer, 120)
|
|
105
|
-
.action(async (o) => {
|
|
137
|
+
.action(async (o, command) => {
|
|
138
|
+
invariant(!o.embedding || (o.dryRun && o.path), "--embedding is only accepted with --dry-run --path; connected imports use the repository preset.");
|
|
139
|
+
invariant(!o.analyzers || (o.dryRun && o.path), "--analyzers is only accepted with --dry-run --path; connected imports use the repository preset.");
|
|
140
|
+
invariant(!o.filePolicy || (o.dryRun && o.path), "--file-policy is only accepted with --dry-run --path; connected imports use the repository preset.");
|
|
106
141
|
invariant(!(o.path && o.repo), "Choose --path or --repo.");
|
|
107
142
|
invariant(!o.previous || o.dryRun, "--previous is only accepted with --dry-run.");
|
|
108
143
|
invariant(!o.resume || !o.dryRun, "--resume requires a connected import.");
|
|
109
144
|
invariant(!(o.artifact && (o.ref || o.path || o.output || o.previous)), "--artifact cannot be combined with --ref/--path/--output/--previous.");
|
|
110
|
-
|
|
145
|
+
invariant(!o.artifact || command.getOptionValueSource("artifactStorage") !== "cli", "--artifact-storage cannot be combined with --artifact; the artifact records its storage format.");
|
|
146
|
+
const buildLocal = async (source, previous, state, preset = PRESET) => {
|
|
111
147
|
invariant(o.ref, "--ref is required to build a commit.");
|
|
148
|
+
const commit = await resolveCommit(source.path, o.ref);
|
|
149
|
+
if (state) {
|
|
150
|
+
const last = await optionalJson(lastBuildPath(state, commit.branch));
|
|
151
|
+
if (last) {
|
|
152
|
+
try {
|
|
153
|
+
previous = await loadBuild(last.artifact);
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
if (error.code !== "ENOENT")
|
|
157
|
+
throw error;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
112
161
|
const parent = join(stateRoot(), "builds");
|
|
113
162
|
await mkdir(parent, { recursive: true, mode: 0o700 });
|
|
114
163
|
const path = o.output ? resolve(o.output) : join(parent, randomUUID());
|
|
115
164
|
return materialize({
|
|
116
165
|
identity: source,
|
|
117
166
|
ref: o.ref,
|
|
167
|
+
resolvedCommit: commit,
|
|
118
168
|
output: path,
|
|
119
169
|
previous,
|
|
170
|
+
storage: o.artifactStorage,
|
|
171
|
+
preset,
|
|
120
172
|
});
|
|
121
173
|
};
|
|
122
174
|
if (o.dryRun) {
|
|
@@ -127,18 +179,22 @@ cli
|
|
|
127
179
|
}
|
|
128
180
|
else {
|
|
129
181
|
let source;
|
|
182
|
+
let preset = presetFor(o.embedding, o.analyzers, o.filePolicy);
|
|
130
183
|
if (o.path)
|
|
131
184
|
source = await identity(o.path, o.remote);
|
|
132
185
|
else {
|
|
133
186
|
invariant(o.repo, "Use --path for a credential-free dry run.");
|
|
134
187
|
const { remote, settings } = await connected();
|
|
135
|
-
|
|
188
|
+
const selected = await selectRepository(remote, o.repo);
|
|
189
|
+
preset = selected.preset ?? PRESET;
|
|
190
|
+
source = await attachment(settings, selected);
|
|
136
191
|
}
|
|
137
|
-
b = await buildLocal(source, o.previous ? await loadBuild(o.previous) : undefined);
|
|
192
|
+
b = await buildLocal(source, o.previous ? await loadBuild(o.previous) : undefined, undefined, preset);
|
|
138
193
|
}
|
|
139
194
|
output({
|
|
140
195
|
status: "locally-validated",
|
|
141
196
|
artifact: b.directory,
|
|
197
|
+
artifactFormat: b.format,
|
|
142
198
|
commitOid: b.commitOid,
|
|
143
199
|
configHash: b.configHash,
|
|
144
200
|
counts: b.counts,
|
|
@@ -148,6 +204,8 @@ cli
|
|
|
148
204
|
path: e.path,
|
|
149
205
|
status: e.status,
|
|
150
206
|
reason: e.reason,
|
|
207
|
+
retrieval: e.retrieval,
|
|
208
|
+
policyReason: e.policyReason,
|
|
151
209
|
parseStatus: e.parseStatus,
|
|
152
210
|
})),
|
|
153
211
|
uploaded: false,
|
|
@@ -162,17 +220,27 @@ cli
|
|
|
162
220
|
// Pending attempts reconcile against the journal's immutable remote
|
|
163
221
|
// baseline; they do not need the previous build's local files.
|
|
164
222
|
const pending = await optionalJson(join(state, "pending.json"));
|
|
223
|
+
const b = o.artifact
|
|
224
|
+
? await loadBuild(o.artifact)
|
|
225
|
+
: await buildLocal(await attachment(settings, r), undefined, pending ? undefined : state, r.preset ?? PRESET);
|
|
165
226
|
let baseline;
|
|
166
|
-
|
|
167
|
-
|
|
227
|
+
// Tracked branches discover their own immutable baseline remotely.
|
|
228
|
+
// Manual SHA/tag imports retain the previous frozen workspace optimization.
|
|
229
|
+
if (!pending && !b.branchRef) {
|
|
230
|
+
const last = await optionalJson(lastBuildPath(state));
|
|
168
231
|
if (last) {
|
|
169
|
-
|
|
170
|
-
|
|
232
|
+
try {
|
|
233
|
+
baseline = {
|
|
234
|
+
version: last.version,
|
|
235
|
+
build: await loadBuild(last.artifact),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
if (error.code !== "ENOENT")
|
|
240
|
+
throw error;
|
|
241
|
+
}
|
|
171
242
|
}
|
|
172
243
|
}
|
|
173
|
-
const b = o.artifact
|
|
174
|
-
? await loadBuild(o.artifact)
|
|
175
|
-
: await buildLocal(await attachment(settings, r), baseline?.build);
|
|
176
244
|
return publish({
|
|
177
245
|
store,
|
|
178
246
|
binding: r,
|
|
@@ -195,7 +263,7 @@ cli
|
|
|
195
263
|
cli
|
|
196
264
|
.command("resolve")
|
|
197
265
|
.requiredOption("--repo <name>")
|
|
198
|
-
.requiredOption("--ref <commit-or-release>")
|
|
266
|
+
.requiredOption("--ref <commit-branch-or-release>")
|
|
199
267
|
.action(async (o) => {
|
|
200
268
|
const { remote } = await connected();
|
|
201
269
|
const r = await selectRepository(remote, o.repo);
|
|
@@ -204,29 +272,69 @@ cli
|
|
|
204
272
|
cli
|
|
205
273
|
.command("search")
|
|
206
274
|
.requiredOption("--repo <name>")
|
|
207
|
-
.requiredOption("--version <commit-or-release>")
|
|
208
|
-
.requiredOption("--query <text>")
|
|
275
|
+
.requiredOption("--version <commit-branch-or-release>")
|
|
276
|
+
.requiredOption("--query <text>", "Search text; use the target source language")
|
|
277
|
+
.addHelpText("after", "\nQuery language: any language is accepted; queries are not automatically translated.\n" +
|
|
278
|
+
"For English code/comments, prefer English terms and preserve identifiers, API names and error messages.\n" +
|
|
279
|
+
"For Korean documentation, use Korean queries with the korean analyzer.\n" +
|
|
280
|
+
"Agents can translate the search query while answering in the user's language.\n")
|
|
209
281
|
.option("--limit <count>", "Maximum hits", integer, 10)
|
|
282
|
+
.addOption(new Option("--mode <mode>", "Retrieval method; semantic/hybrid incur managed query embedding usage")
|
|
283
|
+
.choices(["lexical", "semantic", "hybrid"])
|
|
284
|
+
.default("lexical"))
|
|
285
|
+
.addOption(new Option("--rerank <model>", "Opt-in local reranker (requires separate Python/model setup)").choices(["qwen"]))
|
|
286
|
+
.option("--candidates <count>", "Rerank pool size (default: max(50, limit); max: 100)", integer)
|
|
210
287
|
.option("--path <path>", "Exact path filter")
|
|
211
|
-
.option("--language <name>")
|
|
288
|
+
.option("--language <name>", "Exact programming-language filter")
|
|
212
289
|
.action(async (o) => {
|
|
290
|
+
const started = performance.now();
|
|
291
|
+
candidateLimit(o.limit, o);
|
|
213
292
|
const { remote, settings } = await connected();
|
|
214
293
|
const r = await selectRepository(remote, o.repo), store = remote.store(r.collection), v = await resolveVersion(store, r, o.version);
|
|
215
294
|
output(await search(store, settings, r, v, o.query, o.limit, {
|
|
216
295
|
path: o.path,
|
|
217
296
|
language: o.language,
|
|
297
|
+
}, o.mode, {
|
|
298
|
+
rerank: o.rerank,
|
|
299
|
+
candidates: o.candidates,
|
|
300
|
+
onTiming: (timing) => process.stderr.write(JSON.stringify({
|
|
301
|
+
event: "rerank-timing",
|
|
302
|
+
...timing,
|
|
303
|
+
commandMs: performance.now() - started,
|
|
304
|
+
}) + "\n"),
|
|
305
|
+
}));
|
|
306
|
+
});
|
|
307
|
+
cli
|
|
308
|
+
.command("lookup")
|
|
309
|
+
.description("Find exact indexed symbol definitions and return their source chunks")
|
|
310
|
+
.requiredOption("--repo <name>")
|
|
311
|
+
.requiredOption("--version <commit-branch-or-release>")
|
|
312
|
+
.requiredOption("--symbol <name>", "Exact case-sensitive indexed symbol name")
|
|
313
|
+
.option("--path <path>", "Exact path filter for ambiguous names")
|
|
314
|
+
.option("--language <name>", "Exact programming-language filter")
|
|
315
|
+
.option("--limit <count>", "Maximum source chunks (1–20; results may be partial)", integer, 5)
|
|
316
|
+
.action(async (o) => {
|
|
317
|
+
invariant(o.limit >= 1 && o.limit <= 20, "Lookup limit must be between 1 and 20.");
|
|
318
|
+
const { remote, settings } = await connected();
|
|
319
|
+
const r = await selectRepository(remote, o.repo), store = remote.store(r.collection);
|
|
320
|
+
const v = await resolveVersion(store, r, o.version);
|
|
321
|
+
output(await lookup(store, settings, r, v, o.symbol, o.limit, {
|
|
322
|
+
path: o.path,
|
|
323
|
+
language: o.language,
|
|
218
324
|
}));
|
|
219
325
|
});
|
|
220
326
|
cli
|
|
221
327
|
.command("read")
|
|
222
328
|
.option("--result <id>")
|
|
223
329
|
.option("--repo <name>")
|
|
224
|
-
.option("--version <commit-or-release>")
|
|
330
|
+
.option("--version <commit-branch-or-release>")
|
|
225
331
|
.option("--path <path>")
|
|
226
332
|
.option("--lines <start:end>")
|
|
227
333
|
.option("--context <lines>", "Expand an evidence span", integer, 0)
|
|
228
334
|
.option("--full-file")
|
|
335
|
+
.option("--implementation", "Read a linked Python/TypeScript overload implementation")
|
|
229
336
|
.action(async (o) => {
|
|
337
|
+
invariant(!o.implementation || (o.result && !o.fullFile && !o.lines && !o.context), "--implementation requires --result and cannot be combined with range options.");
|
|
230
338
|
invariant(!(o.fullFile && (o.lines || o.context)), "--full-file cannot be combined with --lines or --context.");
|
|
231
339
|
invariant(!(o.result && (o.repo || o.version || o.path || o.lines)), "Use result mode or direct path mode.");
|
|
232
340
|
const { settings, remote } = await connected();
|
|
@@ -250,6 +358,7 @@ cli
|
|
|
250
358
|
context: o.context,
|
|
251
359
|
fullFile: o.fullFile || (!o.result && !o.lines),
|
|
252
360
|
lines,
|
|
361
|
+
implementation: o.implementation,
|
|
253
362
|
}));
|
|
254
363
|
});
|
|
255
364
|
cli
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type FileAction = "exclude" | "lexical" | "semantic";
|
|
2
|
+
export type FileRule = {
|
|
3
|
+
pattern: string;
|
|
4
|
+
action: FileAction;
|
|
5
|
+
};
|
|
6
|
+
export type FilePolicy = {
|
|
7
|
+
version: 1;
|
|
8
|
+
rules: FileRule[];
|
|
9
|
+
};
|
|
10
|
+
export declare const FILE_POLICY: FilePolicy;
|
|
11
|
+
export type FileDecision = {
|
|
12
|
+
action: FileAction;
|
|
13
|
+
reason: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function normalizeFilePolicy(value: unknown): FilePolicy;
|
|
16
|
+
/** These bodies cannot be re-enabled by repository rules. This is not a secret scanner. */
|
|
17
|
+
export declare function hardExclusion(path: string): string | undefined;
|
|
18
|
+
export declare function privateKeyContent(source: string): boolean;
|
|
19
|
+
/** Explicit rules override defaults, in order; the final matching rule wins. */
|
|
20
|
+
export declare function fileDecision(path: string, policy: FilePolicy, source?: string): FileDecision;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { invariant } from "./common.js";
|
|
2
|
+
export const FILE_POLICY = { version: 1, rules: [] };
|
|
3
|
+
/** Deliberately small glob syntax: repo-relative paths, *, ?, and whole-segment **. */
|
|
4
|
+
function glob(pattern) {
|
|
5
|
+
let expression = "^";
|
|
6
|
+
const parts = pattern.split("/");
|
|
7
|
+
for (const [index, part] of parts.entries()) {
|
|
8
|
+
if (part === "**")
|
|
9
|
+
expression += index === parts.length - 1 ? "[\\s\\S]*" : "(?:[^/]+/)*";
|
|
10
|
+
else {
|
|
11
|
+
for (const char of part)
|
|
12
|
+
expression +=
|
|
13
|
+
char === "*"
|
|
14
|
+
? "[^/]*"
|
|
15
|
+
: char === "?"
|
|
16
|
+
? "[^/]"
|
|
17
|
+
: char.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
18
|
+
if (index !== parts.length - 1)
|
|
19
|
+
expression += "/";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return new RegExp(expression + "$", "u");
|
|
23
|
+
}
|
|
24
|
+
export function normalizeFilePolicy(value) {
|
|
25
|
+
invariant(value !== null && typeof value === "object" && !Array.isArray(value), "File policy must be an object.");
|
|
26
|
+
const policy = value;
|
|
27
|
+
invariant(Object.keys(policy).sort().join(",") === "rules,version" &&
|
|
28
|
+
policy.version === 1 &&
|
|
29
|
+
Array.isArray(policy.rules) &&
|
|
30
|
+
policy.rules.length <= 100, "File policy requires version: 1 and at most 100 rules.");
|
|
31
|
+
const rules = policy.rules.map((rule) => {
|
|
32
|
+
invariant(rule &&
|
|
33
|
+
typeof rule === "object" &&
|
|
34
|
+
Object.keys(rule).sort().join(",") === "action,pattern" &&
|
|
35
|
+
["exclude", "lexical", "semantic"].includes(rule.action), "Each file rule requires pattern and action (exclude, lexical, semantic).");
|
|
36
|
+
invariant(typeof rule.pattern === "string" &&
|
|
37
|
+
rule.pattern.length > 0 &&
|
|
38
|
+
rule.pattern.length <= 512 &&
|
|
39
|
+
!/[\\\x00-\x1f\x7f\[\]{}!]/.test(rule.pattern) &&
|
|
40
|
+
rule.pattern
|
|
41
|
+
.split("/")
|
|
42
|
+
.every((part) => part &&
|
|
43
|
+
part !== "." &&
|
|
44
|
+
part !== ".." &&
|
|
45
|
+
(!part.includes("**") || part === "**")), "File policy patterns must be relative paths using only *, ?, and whole-segment ** wildcards.");
|
|
46
|
+
glob(rule.pattern);
|
|
47
|
+
return { pattern: rule.pattern, action: rule.action };
|
|
48
|
+
});
|
|
49
|
+
return { version: 1, rules };
|
|
50
|
+
}
|
|
51
|
+
/** These bodies cannot be re-enabled by repository rules. This is not a secret scanner. */
|
|
52
|
+
export function hardExclusion(path) {
|
|
53
|
+
const name = path.split("/").at(-1);
|
|
54
|
+
if ((/^\.env(?:\.|$)/i.test(name) &&
|
|
55
|
+
!/\.(example|sample|template)$/i.test(name)) ||
|
|
56
|
+
/^(\.npmrc|\.pypirc|\.netrc|_netrc|id_rsa|id_dsa|id_ecdsa|id_ed25519)$/i.test(name) ||
|
|
57
|
+
/(^|\/)\.(aws|ssh)(\/|$)/i.test(path))
|
|
58
|
+
return "credential-file";
|
|
59
|
+
if (/\.(pem|key|crt|cer|csr|der|p12|pfx|p7b|p7c|jks|keystore|srl)$/i.test(path))
|
|
60
|
+
return "crypto-material";
|
|
61
|
+
if (/\.(svgz?|png|apng|jpe?g|jfif|gif|webp|avif|bmp|dib|tiff?|ico|icns|heic|heif|jxl|psd|ai|eps|pnm|pbm|pgm|ppm|xbm|xpm)$/i.test(path))
|
|
62
|
+
return "image-extension";
|
|
63
|
+
if (/\.(pdf|zip|gz|bz2|xz|7z|tar|rar|jar|class|woff2?|ttf|otf|mp[34]|wav|ogg|mov|exe|dll|so|dylib|wasm|pyc|pyo|o|a|sqlite3?|db)$/i.test(path))
|
|
64
|
+
return "binary-extension";
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
export function privateKeyContent(source) {
|
|
68
|
+
return /(?:^|\r?\n)-----BEGIN (?:[A-Z0-9]+ )*PRIVATE KEY-----\r?\n/.test(source);
|
|
69
|
+
}
|
|
70
|
+
function excludedDirectory(path) {
|
|
71
|
+
// Under a Java source-set root, build/dist/target/coverage can be package
|
|
72
|
+
// names. Output directories above that root still exclude the whole tree.
|
|
73
|
+
const javaRoot = /(^|\/)src\/[^/]+\/java\//i.exec(path);
|
|
74
|
+
const outputPath = javaRoot && /\.java$/i.test(path) ? path.slice(0, javaRoot.index) : path;
|
|
75
|
+
return (/(^|\/)(node_modules|vendor|vendored|third_party|third-party|\.git|\.next|\.nuxt|\.venv|venv|__pycache__|\.cache|\.pytest_cache|\.mypy_cache|\.ruff_cache|\.tox|\.nox|\.srcx)(\/|$)/i.test(path) || /(^|\/)(dist|build|target|coverage)(\/|$)/i.test(outputPath));
|
|
76
|
+
}
|
|
77
|
+
/** Explicit rules override defaults, in order; the final matching rule wins. */
|
|
78
|
+
export function fileDecision(path, policy, source) {
|
|
79
|
+
let decision = { action: "semantic", reason: "source" };
|
|
80
|
+
if (excludedDirectory(path))
|
|
81
|
+
decision = { action: "exclude", reason: "dependency-or-build-output" };
|
|
82
|
+
else if (/\.(min\.(js|css)|map)$/i.test(path))
|
|
83
|
+
decision = { action: "exclude", reason: "generated-output" };
|
|
84
|
+
else if (/\.(log|log\.\d+)$/i.test(path))
|
|
85
|
+
decision = { action: "exclude", reason: "log-output" };
|
|
86
|
+
else if (/(^|\/)(package-lock\.json|npm-shrinkwrap\.json|pnpm-lock\.yaml|yarn\.lock|bun\.lockb?|go\.sum|[^/]+\.lock|packages\.lock\.json|Package\.resolved)$/i.test(path))
|
|
87
|
+
decision = { action: "lexical", reason: "lockfile" };
|
|
88
|
+
else if (/(^|\/)(licen[sc]e|copying|copyright|notice|authors|contributors)([.-][^/]*)?$/i.test(path))
|
|
89
|
+
decision = { action: "lexical", reason: "legal-or-attribution" };
|
|
90
|
+
else if (/\.(csv|tsv|jsonl|ndjson|snap)$/i.test(path) ||
|
|
91
|
+
/(^|\/)__snapshots__\//i.test(path))
|
|
92
|
+
decision = { action: "lexical", reason: "data-or-snapshot" };
|
|
93
|
+
else if (/\.(pb\.go|generated\.[^/]+|g\.[^/]+)$/i.test(path) ||
|
|
94
|
+
/_pb2(?:_grpc)?\.py$/i.test(path) ||
|
|
95
|
+
(source !== undefined &&
|
|
96
|
+
/(?:^|\n)[ \t]*(?:\/\/|#|\/\*|\*|<!--)[^\r\n]*(?:code generated[^\r\n]*do not edit|(?:auto[- ]?generated|generated by)[^\r\n]*do not edit|do not edit[^\r\n]*generated|@generated(?:[ \t]|$))/i.test(Buffer.from(source, "utf8").subarray(0, 8192).toString("utf8"))))
|
|
97
|
+
decision = { action: "lexical", reason: "generated-source" };
|
|
98
|
+
for (const rule of policy.rules)
|
|
99
|
+
if (glob(rule.pattern).test(path))
|
|
100
|
+
decision = { action: rule.action, reason: `file-rule:${rule.action}` };
|
|
101
|
+
return decision;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=file-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-policy.js","sourceRoot":"","sources":["../src/file-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type Implementation = {
|
|
2
|
+
status: "resolved" | "not-linked" | "unsupported" | "parse-error" | "too-large";
|
|
3
|
+
startLine?: number;
|
|
4
|
+
endLine?: number;
|
|
5
|
+
symbol?: string;
|
|
6
|
+
};
|
|
7
|
+
/** Follow only a contiguous, unambiguous overload group in the same AST container. */
|
|
8
|
+
export declare function implementationSpan(source: string, path: string, span: {
|
|
9
|
+
startByte: number;
|
|
10
|
+
endByte: number;
|
|
11
|
+
}): Promise<Implementation>;
|