@functional-systems/srcx 0.1.0-dev.3 → 0.1.0-dev.30

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.
Files changed (60) hide show
  1. package/CHANGELOG.md +132 -1
  2. package/DESIGN.md +193 -58
  3. package/README.md +542 -38
  4. package/RELEASING.md +30 -9
  5. package/VALIDATION.md +834 -25
  6. package/dist/build.d.ts +81 -1
  7. package/dist/build.js +187 -37
  8. package/dist/build.js.map +1 -1
  9. package/dist/chunk.d.ts +9 -3
  10. package/dist/chunk.js +341 -14
  11. package/dist/chunk.js.map +1 -1
  12. package/dist/cli.js +103 -19
  13. package/dist/cli.js.map +1 -1
  14. package/dist/file-policy.d.ts +20 -0
  15. package/dist/file-policy.js +96 -0
  16. package/dist/file-policy.js.map +1 -0
  17. package/dist/implementation.d.ts +11 -0
  18. package/dist/implementation.js +191 -0
  19. package/dist/implementation.js.map +1 -0
  20. package/dist/publish.d.ts +18 -0
  21. package/dist/publish.js +158 -34
  22. package/dist/publish.js.map +1 -1
  23. package/dist/releases.js +21 -3
  24. package/dist/releases.js.map +1 -1
  25. package/dist/remote.js +38 -9
  26. package/dist/remote.js.map +1 -1
  27. package/dist/repository.d.ts +4 -1
  28. package/dist/repository.js +15 -11
  29. package/dist/repository.js.map +1 -1
  30. package/dist/rerank.d.ts +16 -0
  31. package/dist/rerank.js +87 -0
  32. package/dist/rerank.js.map +1 -0
  33. package/dist/search.d.ts +14 -4
  34. package/dist/search.js +119 -23
  35. package/dist/search.js.map +1 -1
  36. package/dist/skills.d.ts +24 -0
  37. package/dist/skills.js +155 -0
  38. package/dist/skills.js.map +1 -0
  39. package/package.json +16 -5
  40. package/runtime/grammars/README.md +50 -0
  41. package/runtime/grammars/tree-sitter-bash.LICENSE +21 -0
  42. package/runtime/grammars/tree-sitter-bash.wasm +0 -0
  43. package/runtime/grammars/tree-sitter-sql.LICENSE +21 -0
  44. package/runtime/grammars/tree-sitter-sql.wasm +0 -0
  45. package/runtime/grammars/tree-sitter-wasm.LICENSE +21 -0
  46. package/runtime/qwen.py +132 -0
  47. package/runtime/requirements.txt +34 -0
  48. package/skills/srcx-search/SKILL.md +85 -0
  49. package/src/build.ts +258 -47
  50. package/src/chunk.ts +360 -12
  51. package/src/cli.ts +212 -24
  52. package/src/file-policy.ts +157 -0
  53. package/src/implementation.ts +253 -0
  54. package/src/publish.ts +226 -34
  55. package/src/releases.ts +36 -3
  56. package/src/remote.ts +59 -13
  57. package/src/repository.ts +20 -11
  58. package/src/rerank.ts +131 -0
  59. package/src/search.ts +154 -28
  60. 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
16
  import { directHandle, loadHandle, readHandle, search } 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,47 @@ 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")
101
130
  .option("--previous <directory>", "Previous build artifact for a dry-run diff")
102
131
  .option("--artifact <directory>", "Import a previously previewed artifact")
103
132
  .option("--resume", "Resume the same pending artifact after inspecting its journal")
104
133
  .option("--timeout <seconds>", "Validation wait deadline", integer, 120)
105
134
  .action(async (o) => {
135
+ invariant(!o.embedding || (o.dryRun && o.path), "--embedding is only accepted with --dry-run --path; connected imports use the repository preset.");
136
+ invariant(!o.analyzers || (o.dryRun && o.path), "--analyzers is only accepted with --dry-run --path; connected imports use the repository preset.");
137
+ invariant(!o.filePolicy || (o.dryRun && o.path), "--file-policy is only accepted with --dry-run --path; connected imports use the repository preset.");
106
138
  invariant(!(o.path && o.repo), "Choose --path or --repo.");
107
139
  invariant(!o.previous || o.dryRun, "--previous is only accepted with --dry-run.");
108
140
  invariant(!o.resume || !o.dryRun, "--resume requires a connected import.");
109
141
  invariant(!(o.artifact && (o.ref || o.path || o.output || o.previous)), "--artifact cannot be combined with --ref/--path/--output/--previous.");
110
- const buildLocal = async (source, previous) => {
142
+ const buildLocal = async (source, previous, state, preset = PRESET) => {
111
143
  invariant(o.ref, "--ref is required to build a commit.");
144
+ const commit = await resolveCommit(source.path, o.ref);
145
+ if (state) {
146
+ const last = await optionalJson(lastBuildPath(state, commit.branch));
147
+ if (last) {
148
+ try {
149
+ previous = await loadBuild(last.artifact);
150
+ }
151
+ catch (error) {
152
+ if (error.code !== "ENOENT")
153
+ throw error;
154
+ }
155
+ }
156
+ }
112
157
  const parent = join(stateRoot(), "builds");
113
158
  await mkdir(parent, { recursive: true, mode: 0o700 });
114
159
  const path = o.output ? resolve(o.output) : join(parent, randomUUID());
115
160
  return materialize({
116
161
  identity: source,
117
162
  ref: o.ref,
163
+ resolvedCommit: commit,
118
164
  output: path,
119
165
  previous,
166
+ preset,
120
167
  });
121
168
  };
122
169
  if (o.dryRun) {
@@ -127,14 +174,17 @@ cli
127
174
  }
128
175
  else {
129
176
  let source;
177
+ let preset = presetFor(o.embedding, o.analyzers, o.filePolicy);
130
178
  if (o.path)
131
179
  source = await identity(o.path, o.remote);
132
180
  else {
133
181
  invariant(o.repo, "Use --path for a credential-free dry run.");
134
182
  const { remote, settings } = await connected();
135
- source = await attachment(settings, await selectRepository(remote, o.repo));
183
+ const selected = await selectRepository(remote, o.repo);
184
+ preset = selected.preset ?? PRESET;
185
+ source = await attachment(settings, selected);
136
186
  }
137
- b = await buildLocal(source, o.previous ? await loadBuild(o.previous) : undefined);
187
+ b = await buildLocal(source, o.previous ? await loadBuild(o.previous) : undefined, undefined, preset);
138
188
  }
139
189
  output({
140
190
  status: "locally-validated",
@@ -148,6 +198,8 @@ cli
148
198
  path: e.path,
149
199
  status: e.status,
150
200
  reason: e.reason,
201
+ retrieval: e.retrieval,
202
+ policyReason: e.policyReason,
151
203
  parseStatus: e.parseStatus,
152
204
  })),
153
205
  uploaded: false,
@@ -162,17 +214,27 @@ cli
162
214
  // Pending attempts reconcile against the journal's immutable remote
163
215
  // baseline; they do not need the previous build's local files.
164
216
  const pending = await optionalJson(join(state, "pending.json"));
217
+ const b = o.artifact
218
+ ? await loadBuild(o.artifact)
219
+ : await buildLocal(await attachment(settings, r), undefined, pending ? undefined : state, r.preset ?? PRESET);
165
220
  let baseline;
166
- if (!pending) {
167
- const last = await optionalJson(join(state, "last-build.json"));
221
+ // Tracked branches discover their own immutable baseline remotely.
222
+ // Manual SHA/tag imports retain the previous frozen workspace optimization.
223
+ if (!pending && !b.branchRef) {
224
+ const last = await optionalJson(lastBuildPath(state));
168
225
  if (last) {
169
- const b = await loadBuild(last.artifact);
170
- baseline = { version: last.version, build: b };
226
+ try {
227
+ baseline = {
228
+ version: last.version,
229
+ build: await loadBuild(last.artifact),
230
+ };
231
+ }
232
+ catch (error) {
233
+ if (error.code !== "ENOENT")
234
+ throw error;
235
+ }
171
236
  }
172
237
  }
173
- const b = o.artifact
174
- ? await loadBuild(o.artifact)
175
- : await buildLocal(await attachment(settings, r), baseline?.build);
176
238
  return publish({
177
239
  store,
178
240
  binding: r,
@@ -195,7 +257,7 @@ cli
195
257
  cli
196
258
  .command("resolve")
197
259
  .requiredOption("--repo <name>")
198
- .requiredOption("--ref <commit-or-release>")
260
+ .requiredOption("--ref <commit-branch-or-release>")
199
261
  .action(async (o) => {
200
262
  const { remote } = await connected();
201
263
  const r = await selectRepository(remote, o.repo);
@@ -204,29 +266,50 @@ cli
204
266
  cli
205
267
  .command("search")
206
268
  .requiredOption("--repo <name>")
207
- .requiredOption("--version <commit-or-release>")
208
- .requiredOption("--query <text>")
269
+ .requiredOption("--version <commit-branch-or-release>")
270
+ .requiredOption("--query <text>", "Search text; use the target source language")
271
+ .addHelpText("after", "\nQuery language: any language is accepted; queries are not automatically translated.\n" +
272
+ "For English code/comments, prefer English terms and preserve identifiers, API names and error messages.\n" +
273
+ "For Korean documentation, use Korean queries with the korean analyzer.\n" +
274
+ "Agents can translate the search query while answering in the user's language.\n")
209
275
  .option("--limit <count>", "Maximum hits", integer, 10)
276
+ .addOption(new Option("--mode <mode>", "Retrieval method; semantic/hybrid incur managed query embedding usage")
277
+ .choices(["lexical", "semantic", "hybrid"])
278
+ .default("lexical"))
279
+ .addOption(new Option("--rerank <model>", "Opt-in local reranker (requires separate Python/model setup)").choices(["qwen"]))
280
+ .option("--candidates <count>", "Rerank pool size (default: max(50, limit); max: 100)", integer)
210
281
  .option("--path <path>", "Exact path filter")
211
- .option("--language <name>")
282
+ .option("--language <name>", "Exact programming-language filter")
212
283
  .action(async (o) => {
284
+ const started = performance.now();
285
+ candidateLimit(o.limit, o);
213
286
  const { remote, settings } = await connected();
214
287
  const r = await selectRepository(remote, o.repo), store = remote.store(r.collection), v = await resolveVersion(store, r, o.version);
215
288
  output(await search(store, settings, r, v, o.query, o.limit, {
216
289
  path: o.path,
217
290
  language: o.language,
291
+ }, o.mode, {
292
+ rerank: o.rerank,
293
+ candidates: o.candidates,
294
+ onTiming: (timing) => process.stderr.write(JSON.stringify({
295
+ event: "rerank-timing",
296
+ ...timing,
297
+ commandMs: performance.now() - started,
298
+ }) + "\n"),
218
299
  }));
219
300
  });
220
301
  cli
221
302
  .command("read")
222
303
  .option("--result <id>")
223
304
  .option("--repo <name>")
224
- .option("--version <commit-or-release>")
305
+ .option("--version <commit-branch-or-release>")
225
306
  .option("--path <path>")
226
307
  .option("--lines <start:end>")
227
308
  .option("--context <lines>", "Expand an evidence span", integer, 0)
228
309
  .option("--full-file")
310
+ .option("--implementation", "Read a linked Python/TypeScript overload implementation")
229
311
  .action(async (o) => {
312
+ invariant(!o.implementation || (o.result && !o.fullFile && !o.lines && !o.context), "--implementation requires --result and cannot be combined with range options.");
230
313
  invariant(!(o.fullFile && (o.lines || o.context)), "--full-file cannot be combined with --lines or --context.");
231
314
  invariant(!(o.result && (o.repo || o.version || o.path || o.lines)), "Use result mode or direct path mode.");
232
315
  const { settings, remote } = await connected();
@@ -250,6 +333,7 @@ cli
250
333
  context: o.context,
251
334
  fullFile: o.fullFile || (!o.result && !o.lines),
252
335
  lines,
336
+ implementation: o.implementation,
253
337
  }));
254
338
  });
255
339
  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,96 @@
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
+ /** Explicit rules override defaults, in order; the final matching rule wins. */
71
+ export function fileDecision(path, policy, source) {
72
+ let decision = { action: "semantic", reason: "source" };
73
+ if (/(^|\/)(node_modules|vendor|vendored|third_party|third-party|dist|build|target|coverage|\.git|\.next|\.nuxt|\.venv|venv|__pycache__|\.cache|\.pytest_cache|\.mypy_cache|\.ruff_cache|\.tox|\.nox|\.srcx)(\/|$)/i.test(path))
74
+ decision = { action: "exclude", reason: "dependency-or-build-output" };
75
+ else if (/\.(min\.(js|css)|map)$/i.test(path))
76
+ decision = { action: "exclude", reason: "generated-output" };
77
+ else if (/\.(log|log\.\d+)$/i.test(path))
78
+ decision = { action: "exclude", reason: "log-output" };
79
+ 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))
80
+ decision = { action: "lexical", reason: "lockfile" };
81
+ else if (/(^|\/)(licen[sc]e|copying|copyright|notice|authors|contributors)([.-][^/]*)?$/i.test(path))
82
+ decision = { action: "lexical", reason: "legal-or-attribution" };
83
+ else if (/\.(csv|tsv|jsonl|ndjson|snap)$/i.test(path) ||
84
+ /(^|\/)__snapshots__\//i.test(path))
85
+ decision = { action: "lexical", reason: "data-or-snapshot" };
86
+ else if (/\.(pb\.go|generated\.[^/]+|g\.[^/]+)$/i.test(path) ||
87
+ /_pb2(?:_grpc)?\.py$/i.test(path) ||
88
+ (source !== undefined &&
89
+ /(?:^|\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"))))
90
+ decision = { action: "lexical", reason: "generated-source" };
91
+ for (const rule of policy.rules)
92
+ if (glob(rule.pattern).test(path))
93
+ decision = { action: rule.action, reason: `file-rule:${rule.action}` };
94
+ return decision;
95
+ }
96
+ //# 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>;