@functional-systems/srcx 0.1.0-dev.24 → 0.1.0-dev.26

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 CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ - Separate file selection from embedding eligibility. Exclude credential and
6
+ crypto payloads, virtual environments, caches and logs; keep lockfiles, generated
7
+ code, snapshots, tabular data and legal/author files available lexically without
8
+ embedding them. Fix case-sensitive minified-asset exclusions. Add pinned
9
+ `--file-policy` JSON rules for registration and local previews, explicit inventory
10
+ reasons and evaluation corpus exclusions for `eval/**`.
11
+
12
+ - Exclude image assets, including text SVG and portable pixel maps, before
13
+ indexing or embedding. Match image extensions case-insensitively, preserve
14
+ exclusion metadata, and keep inline SVG in source files searchable. Include
15
+ the source policy change in preset identity.
16
+
17
+ - Fix Shell indexing crashes on Bash comparisons such as `[[ "$value" == 1 ]]`
18
+ by bundling a runtime-compatible, checksum-pinned Bash grammar with its license.
19
+ Include the grammar in preset identity and installed-package validation.
20
+
5
21
  - Bundle the srcx-search agent skill in npm and add `skills install`, `update`,
6
22
  `remove` and `status` for Codex and Claude Code, with user/project scopes,
7
23
  explicit setup and preservation of customized or unowned files. Removing an
package/DESIGN.md CHANGED
@@ -612,21 +612,49 @@ must include stored-only source round-trip and mixed record kinds.
612
612
  ## 8. File policy, chunking, and embedding reuse
613
613
 
614
614
  Every Git tree entry must be accounted for. Include source, tests, documents,
615
- configuration, build definitions, and unknown readable text by default. Maintain
616
- explicit versioned rules for binaries, generated output, and vendored dependencies;
617
- do not treat working-tree ignore rules as a complete policy. Lockfiles are included
618
- unless an explicit generated/size rule excludes them.
615
+ configuration, build definitions, and unknown readable text by default, subject to
616
+ the versioned file-purpose policy. The preset pins `filePolicy: { version: 1, rules }`
617
+ and its ordered repository-relative path rules. File selection and embedding
618
+ eligibility are separate: source/lexical retrieval can remain available without a
619
+ vector. Do not treat working-tree ignore rules as a complete policy.
620
+
621
+ Credential filenames/directories, key/certificate payloads, image/binary assets
622
+ and PEM private-key headers are hard exclusions, including for tracked files.
623
+ Credential template suffixes (`.example`, `.sample`, `.template`) remain eligible.
624
+ This is a targeted policy, not comprehensive secret detection. Dependencies,
625
+ virtual environments, build/cache outputs, minified assets/maps and logs are
626
+ excluded by default. Lockfiles, legal/author files, tabular/JSONL data, snapshots,
627
+ and generated code (common suffixes or explicit generated/do-not-edit comments in the first 8 KiB) are
628
+ lexical-only by default. Tests, ordinary docs, manifests and build/CI config remain
629
+ eligible. Embedded license headers are not removed from source chunks.
630
+
631
+ `--file-policy` accepts JSON on registration and local path dry runs. Last matching
632
+ rule wins (`exclude`, `lexical`, `semantic`); rules use case-sensitive relative
633
+ paths, `*`, `?` and whole-segment `**`. Rules can override default purpose decisions,
634
+ but never hard content/path/size/encoding exclusions. The resolved policy is stored
635
+ in the preset, not reread from a mutable checkout on import. `.gitattributes` is
636
+ not interpreted. Inventory `retrieval`/`policyReason` and chunk skip reasons expose
637
+ the decision. Changing rules changes configHash and cannot reuse a prior baseline.
638
+
639
+ Evaluation labels require explicit exclusion independently of product defaults.
640
+ Both checkout source evaluation harnesses pin `eval/source-corpus-policy.json`
641
+ (excluding `eval/**`) and fingerprint it. New runs use new artifact roots; retained
642
+ results and their old corpus/runtime identities remain historical evidence.
619
643
 
620
644
  | Special entry | Initial handling |
621
645
  | --- | --- |
622
646
  | Submodule | Record gitlink OID/path; no recursive import |
623
647
  | LFS pointer | Record metadata; no payload download or pointer indexing |
648
+ | Image asset | Exclude known image extensions case-insensitively before chunking or embedding, including text SVG and portable pixel maps; retain inventory reason `image-extension` |
624
649
  | Symlink | Record target bytes; never follow or index as source |
625
650
  | Oversized file | Exclude with actual bytes and configured limit |
626
651
  | Invalid UTF-8 content/path | Record a diagnostic and lossless path identity; do not decode lossily |
627
652
  | Empty text file | File record, zero chunks |
628
653
  | Unsupported language or parse failure | Include bounded fallback chunks and distinguish the reason |
629
654
 
655
+ Inline SVG markup in actual source files (for example, TSX components) remains
656
+ source. The image exclusion policy participates in the immutable preset identity.
657
+
630
658
  Preserve raw UTF-8 bytes, BOM, CRLF, case, Unicode, and final newlines. Byte ranges
631
659
  are authoritative `[startByte, endByte)`; display lines are one-based/inclusive.
632
660
  JavaScript UTF-16 offsets must be converted explicitly. Preserve unusual Git paths
@@ -664,8 +692,8 @@ is not an unconditional one-function-per-chunk rule.
664
692
 
665
693
  ### Initial boundary and size rules
666
694
 
667
- The implementation adds Python/Go/Rust/C/C++/Shell using the existing pinned WASM
668
- grammars and SQL using a bundled, checksum-pinned grammar (see
695
+ The implementation adds Python/Go/Rust/C/C++ using the existing pinned WASM
696
+ grammars and Shell/SQL using bundled, checksum-pinned grammars (see
669
697
  `runtime/grammars/README.md`).
670
698
  Python splits top-level declarations and class bodies, keeps decorators with their
671
699
  function/class, and records nested class scopes. Go keeps functions/methods,
@@ -762,7 +790,7 @@ structural fragments, rather than build a complex value classifier.
762
790
  | Documentation, explanatory comments/docstrings | Embed; keep attached explanations with their code where practical |
763
791
  | Meaningful type/configuration declarations | Embed initially, then evaluate |
764
792
  | Imports-only or whitespace/punctuation-only fragments | Skip with a recorded reason |
765
- | Repeated license headers and mechanical listings | Candidates for explicit, versioned skip rules after evaluation |
793
+ | Lexical-only file categories or rules | Keep exact source/chunks, omit embedding inputs and record the file policy reason; embedded license comments in authored code are not stripped |
766
794
  | Parser fallback | Do not exclude solely because parsing failed; apply content policy |
767
795
 
768
796
  Skipped chunks remain in inventory and source coverage. Retain lexical search text
package/README.md CHANGED
@@ -142,9 +142,60 @@ Each artifact contains `build.json` (inventory, configuration, counts, hashes,
142
142
  change/deletion plan) and `records.jsonl` (exact file records and retrieval chunks).
143
143
  Artifacts contain source code; keep them with the same access policy as the repo.
144
144
  Every tree entry is accounted for, including explicit exclusions for symlinks,
145
- submodules, LFS pointers, dependencies/build output, binary/invalid UTF-8 data,
145
+ submodules, LFS pointers, dependencies/build output, image assets (including SVG), binary/invalid UTF-8 data,
146
146
  invalid UTF-8 paths, and files above 1 MiB. Excluded paths are preserved losslessly
147
147
  in `pathBase64`.
148
+ Image extensions are matched case-insensitively and excluded before chunking or
149
+ embedding, even when their payload is readable text. Source files containing
150
+ inline images, such as a TSX component with SVG markup, remain included.
151
+
152
+ File selection and embedding eligibility are separate:
153
+
154
+ | Default treatment | Examples |
155
+ | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
156
+ | Exclude source and chunks | Credential files (`.env`, `.env.*`, `.npmrc`, `.netrc`, `.aws/`, `.ssh/`), key/certificate payloads, images, binaries, installed dependencies (`.venv/`, `node_modules/`, `vendor/`, `third_party/`), build/cache output, logs, minified assets and source maps |
157
+ | Keep source and lexical chunks; skip embeddings | Lockfiles, license/author files, CSV/TSV/JSONL data, snapshots, generated code identified by common suffixes or an explicit generated/do-not-edit comment in the first 8 KiB |
158
+ | Keep source, lexical chunks and eligible embeddings | Authored code, tests, documentation, package manifests, CI/build configuration and other readable text |
159
+
160
+ `.env.example`, `.env.sample`, `.env.template` and equivalent suffixes remain
161
+ included as templates. Private-key PEM headers also exclude files with unrelated
162
+ extensions. These are targeted exclusions, **not a general secret scanner**;
163
+ review the dry-run inventory before uploading. `.gitignore` does not remove
164
+ already tracked Git objects, and `.gitattributes` is not interpreted for selection.
165
+
166
+ Use `--file-policy policy.json` with `repo add` or `import --dry-run --path` to
167
+ adjust the scope explicitly. The JSON contents are pinned in the repository
168
+ preset; subsequent connected imports use that preset, not the local policy file.
169
+
170
+ ```json
171
+ {
172
+ "version": 1,
173
+ "rules": [
174
+ { "pattern": "eval/**", "action": "exclude" },
175
+ { "pattern": "third_party/special/**", "action": "lexical" },
176
+ { "pattern": "generated/api.pb.go", "action": "semantic" }
177
+ ]
178
+ }
179
+ ```
180
+
181
+ Patterns match case-sensitive, repository-relative paths. `*` and `?` stay within
182
+ one path segment; `**` must occupy a whole segment and matches any depth. Rules
183
+ run in order; the last match wins. `semantic` permits embeddings when enabled but
184
+ still skips structural/import-only chunks. Rules override dependency/generated/
185
+ data defaults, but cannot override credential, crypto, image, binary, private-key
186
+ content, size, encoding, symlink or LFS exclusions. `retrieval` and `policyReason`
187
+ in dry-run coverage explain each included file's policy; chunk records retain
188
+ `embeddingSkipReason`. A changed policy selects a distinct Collection/configuration.
189
+
190
+ ```sh
191
+ srcx import --path . --ref develop --dry-run --embedding text-embedding-3-small --file-policy policy.json --output /tmp/srcx-preview
192
+ srcx repo add --path . --embedding text-embedding-3-small --file-policy policy.json
193
+ ```
194
+
195
+ Evaluation labels need an explicit corpus boundary. The checkout evaluation
196
+ harnesses use [this policy](eval/source-corpus-policy.json) to exclude `eval/**`;
197
+ labels stored elsewhere require additional exclusions before a new evaluation.
198
+ General-purpose imports do not discard all evaluation or test directories.
148
199
 
149
200
  Java, TypeScript/TSX, JavaScript/JSX, Python, Go, Rust, C/C++, Shell and SQL use
150
201
  pinned Tree-sitter WASM grammars.
@@ -161,8 +212,8 @@ pinned Tree-sitter WASM grammars.
161
212
 
162
213
  `.h` files use the C grammar deterministically; C++ headers should use a listed
163
214
  C++ extension for syntax chunking. Shell does not infer extensionless scripts from
164
- shebangs or claim Zsh/Fish/PowerShell support. SQL uses the bundled
165
- [grammar artifact](runtime/grammars/README.md); dialect-specific syntax unsupported
215
+ shebangs or claim Zsh/Fish/PowerShell support. Shell and SQL use bundled
216
+ [grammar artifacts](runtime/grammars/README.md); SQL dialect-specific syntax unsupported
166
217
  by that grammar falls back to text. SQL strings and supported dollar-quoted bodies
167
218
  are parsed as part of their containing statement, not split at each semicolon.
168
219
  Rust macros/`cfg` and C/C++ preprocessor conditions are not expanded or evaluated;
@@ -340,6 +391,16 @@ For practical search → read → change-planning examples, see the
340
391
  It follows three maintenance investigations through related source and tests,
341
392
  including the limitations of previews and optional reranking.
342
393
 
394
+ The [agent workflow diagnostic](https://github.com/lambdadb/srcx/blob/develop/eval/AGENT-WORKFLOW-PILOT.md)
395
+ compares fresh agent sessions with Git/local tools and optional or explicitly
396
+ invoked srcx. It found no established efficiency advantage on the small public
397
+ corpora and records the remaining workflow hypotheses.
398
+
399
+ The [semantic agent follow-up](https://github.com/lambdadb/srcx/blob/develop/eval/SEMANTIC-AGENT-RESULTS.md)
400
+ compares local, lexical-first and semantic-first investigations on Requests. It
401
+ finds no established agent efficiency gain and records an unresolved candidate
402
+ retrieval discrepancy and excessive embedding of a generated SVG asset.
403
+
343
404
  ## Query language and agent use
344
405
 
345
406
  Queries can use any language; the CLI does not translate them. For lexical search,
package/VALIDATION.md CHANGED
@@ -1,5 +1,99 @@
1
1
  # Validation record
2
2
 
3
+ ## File selection and embedding policy
4
+
5
+ Offline validation on Node 24.15.0 passed 128 tests and seven installed-package
6
+ checks, plus typecheck, version and formatting checks. Synthetic tracked files
7
+ verify credential/crypto/image exclusions, case-insensitive minified assets,
8
+ virtual environments, dependency/cache paths and logs. Lockfiles, generated code,
9
+ snapshots and data retain source and lexical chunks without managed inputs.
10
+ Ordinary source, tests, manifests, templates and configurable Sphinx documentation
11
+ remain eligible. Ordered path overrides, configuration identity, baseline rejection,
12
+ unchanged-file reuse, managed publication and CLI override rejection are covered.
13
+ The CLI evaluator's actual offline prepare test includes an in-tree answer fixture
14
+ and verifies it is absent from the prepared corpus.
15
+
16
+ Fresh offline inventories reused the audited source commits:
17
+
18
+ | Repository | Result |
19
+ | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
20
+ | Requests `611c6162cbc4ac2020a2f91c7cfa4f3abf9bbb60` | Excludes 12 certificate/key payload files. Estimated managed input decreases from the image-only build's 179,548 to 159,849 tokens; legal/author files stay lexical-only and docs/conf.py stays eligible. |
21
+ | srcx `e83134b44a11d78a79c5941c0e1f907383f238b3` | Explicit `eval/**` exclusion removes 45 evaluation files: total chunk tokens decrease from 316,889 to 202,835. This is a corpus boundary, not a claim that earlier answers used leaked labels. |
22
+ | lambdadb-cli `513af6e4d262edd380013c86d51a20aad16274d7` | Retains all 38 files and 200 chunks; package-lock.json (22,076 chunk tokens), LICENSE and JSONL examples have no managed input. The retained baseline was lexical-only, so this is not a measured embedding-cost reduction. |
23
+
24
+ All excluded paths have zero file/chunk records and all lexical-only files have
25
+ zero embedding inputs in these rebuilt artifacts. No service writes, provider calls
26
+ or agent sessions were performed. Existing remote Collections and historical
27
+ results are unchanged. The pinned policy selects a new configuration; no legacy
28
+ preset compatibility or migration layer was added. Generated detection is limited
29
+ to explicit markers/suffixes, `.gitattributes` is not interpreted, and credential
30
+ rules are not a general secret scanner. Additional evaluation-label locations must
31
+ be added to the explicit evaluation policy before running a different suite.
32
+
33
+ ## Image exclusion
34
+
35
+ Image assets are excluded by case-insensitive extension before source records,
36
+ chunking or embedding, including SVG and text pixel maps. Source and installed
37
+ CLI checks cover image exclusion for lexical and managed presets; TSX containing
38
+ inline SVG still produces managed chunks. The regression fails against the
39
+ archived pre-fix runtime. All 125 tests, six installed-package checks, typecheck,
40
+ version and formatting checks passed on Node 24.15.0.
41
+
42
+ A credential-free rebuild of the same Requests commit used in the semantic pilot
43
+ excluded the logo SVG: managed input fell from 806,268 to 179,548 estimated tokens
44
+ (77.7%), and managed chunks from 1,864 to 1,081. No remote import, agent rerun or
45
+ retrieval improvement was measured. Previous results and their runtime are retained.
46
+
47
+ ## Semantic agent investigation
48
+
49
+ [The semantic follow-up](eval/SEMANTIC-AGENT-RESULTS.md) covers twelve fresh sessions
50
+ on four frozen Requests questions, with the same local checkout in all conditions.
51
+ All answers covered the required facts under assistant source review. Mean times
52
+ were 69.9 seconds for local tools, 68.6 for lexical-first and 68.0 for semantic-first;
53
+ these single-run differences do not establish an efficiency gain. Semantic used
54
+ more total model input than both other conditions. All srcx sessions used one
55
+ search followed by local reads.
56
+
57
+ All 35 task previews and five separate diagnostic previews matched pinned source
58
+ and immutable version metadata; twelve checkouts and 26 runtime/harness fingerprints
59
+ passed verification. Payload validation does not establish nearest-neighbor recall:
60
+ one unfiltered semantic query returned SVG chunks, while a Python-filtered query
61
+ returned relevant methods with higher scores. The report preserves this unresolved
62
+ retrieval discrepancy separately from the original agent comparison. No product
63
+ search policy, embedding model or ranking default changed.
64
+
65
+ ## Agent workflow diagnostic
66
+
67
+ [The agent workflow record](eval/AGENT-WORKFLOW-PILOT.md) covers eight fresh Codex
68
+ sessions on three frozen questions against pinned public srcx/lambdadb-cli source.
69
+ Optional srcx access was unused in all three paired development environments.
70
+ A separate explicit-invocation confirmation used three searches and seven reads
71
+ without cloning. Both it and the Git/local baseline answered correctly under
72
+ assistant source review; srcx took 94.2 seconds versus 65.8, with more total model
73
+ input but less uncached input. No token-cost, latency or accuracy win is claimed.
74
+ Six successful reads and ten search previews matched pinned source/version data.
75
+ The report separates preparation cost, guided invocation, evolving environment
76
+ conditions and the audited wrapper reservation defect from product correctness.
77
+
78
+ ## Bash grammar runtime compatibility
79
+
80
+ Preparing the agent workflow pilot exposed a real import failure in the public
81
+ `lambdadb-cli` repository at `513af6e4d262edd380013c86d51a20aad16274d7`:
82
+ `scripts/test-homebrew.sh` aborted local materialization with
83
+ `TypeError: resolved is not a function`. A minimal `[[ "$value" == 1 ]]`
84
+ comparison reproduces it with the previous Bash grammar/runtime combination.
85
+ The replacement grammar is bundled with its license and pinned checksum in
86
+ `CHUNKER.shellGrammar`; other language runtimes remain unchanged.
87
+
88
+ The regression fixture fails before the replacement and passes afterward,
89
+ preserving complete source-byte coverage and syntax spans. The same fixture is
90
+ included in installed-package import checks. On Node 24.15.0, all 124 tests,
91
+ six installed-package tests, formatting/version checks and typecheck passed.
92
+ The two public pilot corpora also passed local materialization after the fix:
93
+ 139 files/928 chunks for srcx and 38 files/200 chunks for lambdadb-cli, with no
94
+ embeddings. These checks establish indexing/packaging correctness, not an agent
95
+ accuracy or efficiency improvement.
96
+
3
97
  ## Agent skill installation
4
98
 
5
99
  The npm artifact includes `skills/srcx-search/SKILL.md`. The `skills` command
package/dist/build.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { resolveCommit, type Identity } from "./git.js";
2
2
  import { CHUNKER } from "./chunk.js";
3
3
  import { type Doc } from "./common.js";
4
+ import { type FilePolicy } from "./file-policy.js";
4
5
  export declare const ANALYZERS: readonly ["english", "japanese", "korean", "standard"];
5
6
  export type Analyzer = (typeof ANALYZERS)[number];
6
7
  export declare function normalizeAnalyzers(value: unknown): Analyzer[];
@@ -33,6 +34,7 @@ export type Preset = {
33
34
  /** Internal evaluation override; the CLI keeps its original enrichment. */
34
35
  enrichment?: "path-only-v1";
35
36
  maxFileBytes: number;
37
+ filePolicy: FilePolicy;
36
38
  embedding: {
37
39
  model: string;
38
40
  dimensions: number;
@@ -46,7 +48,7 @@ export declare const PRESET: Preset;
46
48
  /** Embedding variants share the same chunking behavior. */
47
49
  export declare const MANAGED_PRESET: Preset;
48
50
  export declare const MANAGED_LARGE_PRESET: Preset;
49
- export declare function presetFor(embedding?: string, analyzers?: readonly string[]): Preset;
51
+ export declare function presetFor(embedding?: string, analyzers?: readonly string[], filePolicy?: unknown): Preset;
50
52
  export declare function supportedPreset(preset: unknown): preset is Preset;
51
53
  export declare function indexConfigs(preset?: Preset): {
52
54
  searchText: {
@@ -114,6 +116,8 @@ export type InventoryItem = {
114
116
  bytes: number;
115
117
  status: "included" | "excluded";
116
118
  reason?: string;
119
+ retrieval?: "lexical" | "semantic";
120
+ policyReason?: string;
117
121
  targetBase64?: string;
118
122
  fileId?: string;
119
123
  chunkIds?: string[];
package/dist/build.js CHANGED
@@ -5,6 +5,7 @@ import { join, resolve } from "node:path";
5
5
  import { Blobs, inventory, resolveCommit } from "./git.js";
6
6
  import { chunk, CHUNKER, tokens } from "./chunk.js";
7
7
  import { atomic, canonical, hash, invariant, lineAt, json, utf8, optionalJson, } from "./common.js";
8
+ import { FILE_POLICY, normalizeFilePolicy, hardExclusion, privateKeyContent, fileDecision, } from "./file-policy.js";
8
9
  export const ANALYZERS = ["english", "japanese", "korean", "standard"];
9
10
  export function normalizeAnalyzers(value) {
10
11
  invariant(Array.isArray(value) &&
@@ -26,6 +27,7 @@ export const PRESET = {
26
27
  chunker: CHUNKER,
27
28
  mode: "syntax",
28
29
  maxFileBytes: 1024 * 1024,
30
+ filePolicy: FILE_POLICY,
29
31
  embedding: null,
30
32
  };
31
33
  /** Embedding variants share the same chunking behavior. */
@@ -48,7 +50,7 @@ export const MANAGED_LARGE_PRESET = {
48
50
  dimensions: 3072,
49
51
  },
50
52
  };
51
- export function presetFor(embedding = "none", analyzers = PRESET.analyzers) {
53
+ export function presetFor(embedding = "none", analyzers = PRESET.analyzers, filePolicy = FILE_POLICY) {
52
54
  invariant(["none", "text-embedding-3-small", "text-embedding-3-large"].includes(embedding), "Embedding must be none, text-embedding-3-small or text-embedding-3-large.");
53
55
  const base = embedding === "none"
54
56
  ? PRESET
@@ -56,16 +58,20 @@ export function presetFor(embedding = "none", analyzers = PRESET.analyzers) {
56
58
  ? MANAGED_LARGE_PRESET
57
59
  : MANAGED_PRESET;
58
60
  const normalized = normalizeAnalyzers(analyzers);
59
- return hash(normalized) === hash(base.analyzers)
60
- ? base
61
- : { ...base, analyzers: normalized };
61
+ const configured = {
62
+ ...base,
63
+ analyzers: normalized,
64
+ filePolicy: normalizeFilePolicy(filePolicy),
65
+ };
66
+ return hash(configured) === hash(base) ? base : configured;
62
67
  }
63
68
  export function supportedPreset(preset) {
64
69
  if (!preset || typeof preset !== "object" || Array.isArray(preset))
65
70
  return false;
66
71
  try {
67
72
  const analyzers = normalizeAnalyzers(preset.analyzers);
68
- return [PRESET, MANAGED_PRESET, MANAGED_LARGE_PRESET].some((base) => hash({ ...base, analyzers }) === hash(preset));
73
+ const filePolicy = normalizeFilePolicy(preset.filePolicy);
74
+ return [PRESET, MANAGED_PRESET, MANAGED_LARGE_PRESET].some((base) => hash({ ...base, analyzers, filePolicy }) === hash(preset));
69
75
  }
70
76
  catch {
71
77
  return false;
@@ -123,18 +129,10 @@ export async function loadBuild(directory) {
123
129
  b.directory = resolve(directory);
124
130
  return b;
125
131
  }
126
- function exclude(path) {
127
- if (/(^|\/)(node_modules|vendor|vendored|dist|build|target|coverage|\.git|\.next)(\/|$)/.test(path))
128
- return "dependency-or-build-output";
129
- if (/\.(png|jpe?g|gif|ico|pdf|zip|gz|jar|class|woff2?|mp[34]|exe|dll|so|dylib|wasm)$/i.test(path))
130
- return "binary-extension";
131
- if (/\.(min\.(js|css)|map)$/.test(path))
132
- return "generated-output";
133
- return undefined;
134
- }
135
132
  export async function materialize(args) {
136
133
  const preset = args.preset ?? PRESET, configHash = hash(preset), prev = args.previous;
137
- invariant(hash(preset.analyzers) === hash(normalizeAnalyzers(preset.analyzers)) &&
134
+ invariant(hash(preset.filePolicy) === hash(normalizeFilePolicy(preset.filePolicy)) &&
135
+ hash(preset.analyzers) === hash(normalizeAnalyzers(preset.analyzers)) &&
138
136
  hash(preset.chunker) === hash(CHUNKER) &&
139
137
  ["syntax", "window"].includes(preset.mode) &&
140
138
  (preset.enrichment === undefined ||
@@ -194,7 +192,9 @@ export async function materialize(args) {
194
192
  item.targetBase64 = (await blobs.read(e)).toString("base64");
195
193
  continue;
196
194
  }
197
- const reason = exclude(e.path);
195
+ const pathDecision = fileDecision(e.path, preset.filePolicy);
196
+ const reason = hardExclusion(e.path) ??
197
+ (pathDecision.action === "exclude" ? pathDecision.reason : undefined);
198
198
  if (reason) {
199
199
  item.reason = reason;
200
200
  continue;
@@ -224,6 +224,11 @@ export async function materialize(args) {
224
224
  item.reason = "lfs-pointer";
225
225
  continue;
226
226
  }
227
+ if (privateKeyContent(source)) {
228
+ item.reason = "private-key-content";
229
+ continue;
230
+ }
231
+ const decision = fileDecision(e.path, preset.filePolicy, source);
227
232
  const parsed = await chunk(source, e.path, preset.mode, preset.enrichment);
228
233
  const contentHash = hash(data);
229
234
  const fileId = `f-${hash([e.pathBase64, contentHash])}`;
@@ -247,6 +252,8 @@ export async function materialize(args) {
247
252
  }
248
253
  Object.assign(item, {
249
254
  status: "included",
255
+ retrieval: decision.action,
256
+ policyReason: decision.reason,
250
257
  contentHash,
251
258
  fileId,
252
259
  chunkIds: [],
@@ -273,7 +280,8 @@ export async function materialize(args) {
273
280
  ? "structural-only"
274
281
  : "embedding-disabled",
275
282
  };
276
- const eligible = !["imports", "structural"].includes(span.chunkKind);
283
+ const eligible = decision.action === "semantic" &&
284
+ !["imports", "structural"].includes(span.chunkKind);
277
285
  if (preset.embedding && eligible) {
278
286
  const inputHash = hash([preset.embedding, span.searchText]);
279
287
  if (preset.embedding.managed) {
@@ -309,9 +317,11 @@ export async function materialize(args) {
309
317
  }
310
318
  else {
311
319
  doc.embeddingSkipReason = preset.embedding
312
- ? span.chunkKind === "imports"
313
- ? "imports-only"
314
- : "structural-only"
320
+ ? decision.action === "lexical"
321
+ ? decision.reason
322
+ : span.chunkKind === "imports"
323
+ ? "imports-only"
324
+ : "structural-only"
315
325
  : "embedding-disabled";
316
326
  item.skipped++;
317
327
  }
@@ -402,7 +412,10 @@ export async function validateBuild(b) {
402
412
  /^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(b.commitOid) &&
403
413
  b.buildId ===
404
414
  hash([b.repoKey, b.commitOid, b.configHash, "srcx-builder-v1"]), "Build commit identity mismatch; rebuild from the intended Git commit.");
405
- invariant(hash(b.preset.analyzers) === hash(normalizeAnalyzers(b.preset.analyzers)) &&
415
+ invariant(hash(b.preset.filePolicy) ===
416
+ hash(normalizeFilePolicy(b.preset.filePolicy)) &&
417
+ hash(b.preset.analyzers) ===
418
+ hash(normalizeAnalyzers(b.preset.analyzers)) &&
406
419
  hash(b.preset) === b.configHash &&
407
420
  hash(b.inventory) === b.inventoryHash, "Build metadata hash mismatch.");
408
421
  const seen = new Set();
@@ -411,6 +424,7 @@ export async function validateBuild(b) {
411
424
  const expectedFile = new Map(b.inventory
412
425
  .filter((e) => e.status === "included")
413
426
  .map((e) => [e.fileId, e]));
427
+ let activeDecision;
414
428
  const completedFiles = new Set();
415
429
  const finish = () => {
416
430
  if (activeFile) {
@@ -435,6 +449,12 @@ export async function validateBuild(b) {
435
449
  end = 0;
436
450
  count = 0;
437
451
  const entry = expectedFile.get(doc.id);
452
+ activeDecision = fileDecision(doc.path, b.preset.filePolicy, doc.sourceText);
453
+ invariant(!hardExclusion(doc.path) &&
454
+ !privateKeyContent(doc.sourceText) &&
455
+ activeDecision.action !== "exclude" &&
456
+ entry?.retrieval === activeDecision.action &&
457
+ entry?.policyReason === activeDecision.reason, "File policy or inventory decision mismatch.");
438
458
  const raw = Buffer.from(doc.sourceText);
439
459
  invariant(entry &&
440
460
  hash(raw) === doc.contentHash &&
@@ -470,7 +490,8 @@ export async function validateBuild(b) {
470
490
  doc.tokenCount === tokens(doc.searchText) &&
471
491
  Number(doc.tokenCount) <= CHUNKER.maxTokens, "Invalid chunk source/position/token binding.");
472
492
  if (b.preset.embedding?.managed) {
473
- const eligible = !["imports", "structural"].includes(String(doc.chunkKind));
493
+ const eligible = activeDecision.action === "semantic" &&
494
+ !["imports", "structural"].includes(String(doc.chunkKind));
474
495
  invariant(eligible
475
496
  ? doc.embeddingStatus === "managed" &&
476
497
  doc.embeddingText === doc.searchText &&
@@ -481,12 +502,16 @@ export async function validateBuild(b) {
481
502
  doc.embeddingText === undefined &&
482
503
  doc.embeddingInputHash === undefined &&
483
504
  doc.embeddingSkipReason ===
484
- (doc.chunkKind === "imports"
485
- ? "imports-only"
486
- : "structural-only"), "Invalid managed embedding input or eligibility.");
505
+ (activeDecision.action === "lexical"
506
+ ? activeDecision.reason
507
+ : doc.chunkKind === "imports"
508
+ ? "imports-only"
509
+ : "structural-only"), "Invalid managed embedding input or eligibility.");
487
510
  }
488
511
  else if (doc.embeddingStatus === "embedded")
489
512
  invariant(b.preset.embedding &&
513
+ activeDecision.action === "semantic" &&
514
+ !["imports", "structural"].includes(String(doc.chunkKind)) &&
490
515
  Array.isArray(doc.embedding) &&
491
516
  doc.embedding.length === b.preset.embedding.dimensions &&
492
517
  doc.embedding.every(Number.isFinite), "Invalid embedded chunk.");
package/dist/build.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}