@functional-systems/srcx 0.1.0-dev.32 → 0.1.0-dev.33

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,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ - Preserve Java source and test packages named `build`, `dist`, `target` or
6
+ `coverage` under `src/<source-set>/java/`, while still excluding output trees
7
+ above the source root and nested dependencies/caches. Advance the pinned source
8
+ policy to `source-v3`; new registrations/builds use a distinct configuration,
9
+ and presets from the earlier source policy are not accepted by this runtime.
10
+
5
11
  - Look up explicit generated Collection names directly instead of discovering
6
12
  every repository. Exact Collection names take precedence over aliases; only
7
13
  missing Collections fall back to discovery. Preserve descriptor, schema and
package/DESIGN.md CHANGED
@@ -628,6 +628,11 @@ and generated code (common suffixes or explicit generated/do-not-edit comments i
628
628
  lexical-only by default. Tests, ordinary docs, manifests and build/CI config remain
629
629
  eligible. Embedded license headers are not removed from source chunks.
630
630
 
631
+ For Java files in `src/<source-set>/java/`, package components named `build`,
632
+ `dist`, `target`, or `coverage` do not imply build output. Those directory names
633
+ still exclude trees above the source root; dependency/cache directories retain
634
+ their exclusions throughout. The source policy revision is part of preset identity.
635
+
631
636
  `--file-policy` accepts JSON on registration and local path dry runs. Last matching
632
637
  rule wins (`exclude`, `lexical`, `semantic`); rules use case-sensitive relative
633
638
  paths, `*`, `?` and whole-segment `**`. Rules can override default purpose decisions,
package/README.md CHANGED
@@ -163,6 +163,12 @@ extensions. These are targeted exclusions, **not a general secret scanner**;
163
163
  review the dry-run inventory before uploading. `.gitignore` does not remove
164
164
  already tracked Git objects, and `.gitattributes` is not interpreted for selection.
165
165
 
166
+ Java files under `src/<source-set>/java/` keep package directories named `build`,
167
+ `dist`, `target` or `coverage`. For example, `src/main/java/example/build/Builder.java`
168
+ is source, while `build/generated/src/main/java/example/Builder.java` is excluded.
169
+ Dependency and cache exclusions still apply inside source roots. Other ambiguous
170
+ layouts can use explicit file-policy rules below.
171
+
166
172
  Use `--file-policy policy.json` with `repo add` or `import --dry-run --path` to
167
173
  adjust the scope explicitly. The JSON contents are pinned in the repository
168
174
  preset; subsequent connected imports use that preset, not the local policy file.
package/dist/chunk.d.ts CHANGED
@@ -11,7 +11,7 @@ export declare const CHUNKER: {
11
11
  readonly maxTokens: 1500;
12
12
  readonly fallbackOverlap: 0.1;
13
13
  readonly enrichment: "path-scope-symbol-v1";
14
- readonly policy: "source-v2";
14
+ readonly policy: "source-v3";
15
15
  };
16
16
  export type Span = {
17
17
  startByte: number;
package/dist/chunk.js CHANGED
@@ -19,7 +19,7 @@ export const CHUNKER = {
19
19
  maxTokens: 1500,
20
20
  fallbackOverlap: 0.1,
21
21
  enrichment: "path-scope-symbol-v1",
22
- policy: "source-v2",
22
+ policy: "source-v3",
23
23
  };
24
24
  const languages = new Map();
25
25
  let initialized;
@@ -67,10 +67,17 @@ export function hardExclusion(path) {
67
67
  export function privateKeyContent(source) {
68
68
  return /(?:^|\r?\n)-----BEGIN (?:[A-Z0-9]+ )*PRIVATE KEY-----\r?\n/.test(source);
69
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
+ }
70
77
  /** Explicit rules override defaults, in order; the final matching rule wins. */
71
78
  export function fileDecision(path, policy, source) {
72
79
  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))
80
+ if (excludedDirectory(path))
74
81
  decision = { action: "exclude", reason: "dependency-or-build-output" };
75
82
  else if (/\.(min\.(js|css)|map)$/i.test(path))
76
83
  decision = { action: "exclude", reason: "generated-output" };
@@ -1 +1 @@
1
- {"version":3,"file":"file-policy.js","sourceRoot":"","sources":["../src/file-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-policy.js","sourceRoot":"","sources":["../src/file-policy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@functional-systems/srcx",
3
- "version": "0.1.0-dev.32",
3
+ "version": "0.1.0-dev.33",
4
4
  "private": false,
5
5
  "description": "Version-aware code search on LambdaDB",
6
6
  "type": "module",
@@ -66,5 +66,5 @@
66
66
  "url": "https://github.com/lambdadb/srcx/issues"
67
67
  },
68
68
  "license": "Apache-2.0",
69
- "gitHead": "88abc665f4f436c045d79870eeb7cf0eac8ac814"
69
+ "gitHead": "2afbf938ef0916da5aa4e5b7744a700128581a6b"
70
70
  }
package/src/chunk.ts CHANGED
@@ -21,7 +21,7 @@ export const CHUNKER = {
21
21
  maxTokens: 1500,
22
22
  fallbackOverlap: 0.1,
23
23
  enrichment: "path-scope-symbol-v1",
24
- policy: "source-v2",
24
+ policy: "source-v3",
25
25
  } as const;
26
26
  export type Span = {
27
27
  startByte: number;
@@ -107,6 +107,19 @@ export function privateKeyContent(source: string): boolean {
107
107
  );
108
108
  }
109
109
 
110
+ function excludedDirectory(path: string): boolean {
111
+ // Under a Java source-set root, build/dist/target/coverage can be package
112
+ // names. Output directories above that root still exclude the whole tree.
113
+ const javaRoot = /(^|\/)src\/[^/]+\/java\//i.exec(path);
114
+ const outputPath =
115
+ javaRoot && /\.java$/i.test(path) ? path.slice(0, javaRoot.index) : path;
116
+ return (
117
+ /(^|\/)(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(
118
+ path,
119
+ ) || /(^|\/)(dist|build|target|coverage)(\/|$)/i.test(outputPath)
120
+ );
121
+ }
122
+
110
123
  /** Explicit rules override defaults, in order; the final matching rule wins. */
111
124
  export function fileDecision(
112
125
  path: string,
@@ -114,11 +127,7 @@ export function fileDecision(
114
127
  source?: string,
115
128
  ): FileDecision {
116
129
  let decision: FileDecision = { action: "semantic", reason: "source" };
117
- if (
118
- /(^|\/)(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(
119
- path,
120
- )
121
- )
130
+ if (excludedDirectory(path))
122
131
  decision = { action: "exclude", reason: "dependency-or-build-output" };
123
132
  else if (/\.(min\.(js|css)|map)$/i.test(path))
124
133
  decision = { action: "exclude", reason: "generated-output" };