@codeledger/selector 0.2.1 → 0.5.1

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 (74) hide show
  1. package/dist/bundle-invalidation.d.ts +33 -0
  2. package/dist/bundle-invalidation.d.ts.map +1 -0
  3. package/dist/bundle-invalidation.js +98 -0
  4. package/dist/bundle-invalidation.js.map +1 -0
  5. package/dist/bundle.d.ts.map +1 -1
  6. package/dist/bundle.js +16 -4
  7. package/dist/bundle.js.map +1 -1
  8. package/dist/candidates.d.ts +18 -0
  9. package/dist/candidates.d.ts.map +1 -1
  10. package/dist/candidates.js +76 -2
  11. package/dist/candidates.js.map +1 -1
  12. package/dist/confidence.d.ts +2 -2
  13. package/dist/confidence.d.ts.map +1 -1
  14. package/dist/confidence.js +118 -2
  15. package/dist/confidence.js.map +1 -1
  16. package/dist/conflict-zones.d.ts +18 -0
  17. package/dist/conflict-zones.d.ts.map +1 -0
  18. package/dist/conflict-zones.js +66 -0
  19. package/dist/conflict-zones.js.map +1 -0
  20. package/dist/debt-detection.d.ts +15 -0
  21. package/dist/debt-detection.d.ts.map +1 -0
  22. package/dist/debt-detection.js +80 -0
  23. package/dist/debt-detection.js.map +1 -0
  24. package/dist/index.d.ts +13 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +12 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/intent/drift.d.ts +31 -0
  29. package/dist/intent/drift.d.ts.map +1 -0
  30. package/dist/intent/drift.js +120 -0
  31. package/dist/intent/drift.js.map +1 -0
  32. package/dist/intent/hash.d.ts +19 -0
  33. package/dist/intent/hash.d.ts.map +1 -0
  34. package/dist/intent/hash.js +38 -0
  35. package/dist/intent/hash.js.map +1 -0
  36. package/dist/intent/index.d.ts +5 -0
  37. package/dist/intent/index.d.ts.map +1 -0
  38. package/dist/intent/index.js +4 -0
  39. package/dist/intent/index.js.map +1 -0
  40. package/dist/intent/normalize.d.ts +23 -0
  41. package/dist/intent/normalize.d.ts.map +1 -0
  42. package/dist/intent/normalize.js +35 -0
  43. package/dist/intent/normalize.js.map +1 -0
  44. package/dist/intent/types.d.ts +37 -0
  45. package/dist/intent/types.d.ts.map +1 -0
  46. package/dist/intent/types.js +2 -0
  47. package/dist/intent/types.js.map +1 -0
  48. package/dist/loop-detection.d.ts +28 -0
  49. package/dist/loop-detection.d.ts.map +1 -0
  50. package/dist/loop-detection.js +124 -0
  51. package/dist/loop-detection.js.map +1 -0
  52. package/dist/review-candidates.d.ts +23 -0
  53. package/dist/review-candidates.d.ts.map +1 -0
  54. package/dist/review-candidates.js +230 -0
  55. package/dist/review-candidates.js.map +1 -0
  56. package/dist/review-coverage.d.ts +33 -0
  57. package/dist/review-coverage.d.ts.map +1 -0
  58. package/dist/review-coverage.js +110 -0
  59. package/dist/review-coverage.js.map +1 -0
  60. package/dist/scope-contract.d.ts +26 -0
  61. package/dist/scope-contract.d.ts.map +1 -0
  62. package/dist/scope-contract.js +79 -0
  63. package/dist/scope-contract.js.map +1 -0
  64. package/dist/scorer.d.ts.map +1 -1
  65. package/dist/scorer.js +21 -2
  66. package/dist/scorer.js.map +1 -1
  67. package/dist/security-surface.d.ts +13 -0
  68. package/dist/security-surface.d.ts.map +1 -0
  69. package/dist/security-surface.js +45 -0
  70. package/dist/security-surface.js.map +1 -0
  71. package/dist/task-type.d.ts.map +1 -1
  72. package/dist/task-type.js +4 -2
  73. package/dist/task-type.js.map +1 -1
  74. package/package.json +3 -3
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Compute review coverage by comparing the review bundle's required files
3
+ * against the session's actual read data.
4
+ *
5
+ * Three metrics:
6
+ * 1. File Coverage — did the agent open the file at all?
7
+ * 2. Depth-Weighted Coverage — how much of each file was actually read?
8
+ * 3. Temporal Alignment — did reads happen BEFORE claims, or after?
9
+ */
10
+ export function computeReviewCoverage(requiredFiles, readDepths, readPaths, repoIndex, firstClaimTs) {
11
+ const requiredSet = new Set(requiredFiles);
12
+ const readPathSet = readPaths;
13
+ // Files actually read (intersection with required)
14
+ const filesRead = [];
15
+ const filesSkipped = [];
16
+ for (const rf of requiredFiles) {
17
+ if (readPathSet.has(rf)) {
18
+ filesRead.push(rf);
19
+ }
20
+ else {
21
+ filesSkipped.push(rf);
22
+ }
23
+ }
24
+ // File-level coverage
25
+ const fileCoverage = requiredFiles.length > 0
26
+ ? filesRead.length / requiredFiles.length
27
+ : 1.0;
28
+ // Build file depth entries for required files
29
+ const depthMap = new Map();
30
+ for (const d of readDepths) {
31
+ depthMap.set(d.path, d);
32
+ }
33
+ // Build FileReadDepth entries for all required files (including unread ones)
34
+ const fileDepths = [];
35
+ const repoFileMap = new Map();
36
+ for (const f of repoIndex.files) {
37
+ repoFileMap.set(f.path, f.lines);
38
+ }
39
+ for (const rf of requiredFiles) {
40
+ const depthInfo = depthMap.get(rf);
41
+ if (depthInfo) {
42
+ fileDepths.push({
43
+ path: depthInfo.path,
44
+ total_lines: depthInfo.total_lines,
45
+ lines_read: depthInfo.lines_read,
46
+ read_depth: depthInfo.read_depth,
47
+ first_read_at: depthInfo.first_read_at,
48
+ read_count: depthInfo.read_count,
49
+ });
50
+ }
51
+ else {
52
+ // Unread file
53
+ const totalLines = repoFileMap.get(rf) ?? 0;
54
+ fileDepths.push({
55
+ path: rf,
56
+ total_lines: totalLines,
57
+ lines_read: 0,
58
+ read_depth: 0,
59
+ first_read_at: '',
60
+ read_count: 0,
61
+ });
62
+ }
63
+ }
64
+ // Depth-weighted coverage: average read_depth across required files
65
+ let depthSum = 0;
66
+ for (const fd of fileDepths) {
67
+ depthSum += fd.read_depth;
68
+ }
69
+ const depthWeightedCoverage = requiredFiles.length > 0
70
+ ? depthSum / requiredFiles.length
71
+ : 1.0;
72
+ // Post-hoc reads: files first read AFTER the first claim timestamp
73
+ let postHocReads = [];
74
+ if (firstClaimTs) {
75
+ for (const fd of fileDepths) {
76
+ if (fd.read_count > 0 &&
77
+ fd.first_read_at &&
78
+ fd.first_read_at > firstClaimTs &&
79
+ requiredSet.has(fd.path)) {
80
+ postHocReads.push(fd.path);
81
+ }
82
+ }
83
+ postHocReads.sort();
84
+ }
85
+ return {
86
+ required_files: requiredFiles,
87
+ files_read: filesRead,
88
+ files_skipped: filesSkipped,
89
+ file_coverage: fileCoverage,
90
+ depth_weighted_coverage: depthWeightedCoverage,
91
+ file_depths: fileDepths,
92
+ post_hoc_reads: postHocReads,
93
+ analyzed_at: new Date().toISOString(),
94
+ };
95
+ }
96
+ /**
97
+ * Evaluate whether coverage meets a threshold.
98
+ * Returns true if both file coverage and depth coverage meet their thresholds.
99
+ */
100
+ export function meetsCoverageThreshold(report, fileCoverageThreshold, depthCoverageThreshold) {
101
+ return (report.file_coverage >= fileCoverageThreshold &&
102
+ report.depth_weighted_coverage >= depthCoverageThreshold);
103
+ }
104
+ /**
105
+ * Get files that were only shallowly read (below a depth threshold).
106
+ */
107
+ export function getShallowReads(report, shallowThreshold) {
108
+ return report.file_depths.filter((fd) => fd.read_count > 0 && fd.read_depth < shallowThreshold);
109
+ }
110
+ //# sourceMappingURL=review-coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-coverage.js","sourceRoot":"","sources":["../src/review-coverage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ContextBundle, DepGraph, ScopeContract } from '@codeledger/types';
2
+ /**
3
+ * Derive a deterministic scope contract from a bundle.
4
+ *
5
+ * The scope contract defines which files are "in scope" for an agent session:
6
+ * - bundle_files: files directly selected by the scoring algorithm
7
+ * - neighbor_files: direct dependency neighbors (imports + dependents) of bundle files
8
+ *
9
+ * Any file edit outside this contract is considered "scope drift."
10
+ */
11
+ export declare function deriveScopeContract(bundle: ContextBundle, depGraph: DepGraph, enforcement?: 'warn' | 'strict' | 'off'): ScopeContract;
12
+ /**
13
+ * Check whether a file path is within the scope contract.
14
+ * Returns true if the file is in-scope (either bundle file or neighbor).
15
+ */
16
+ export declare function isInScope(filePath: string, contract: ScopeContract): boolean;
17
+ /**
18
+ * Check a list of changed files against the scope contract.
19
+ * Returns files that are outside the contract.
20
+ */
21
+ export declare function detectScopeDrift(changedFiles: string[], contract: ScopeContract): string[];
22
+ /**
23
+ * Format the scope contract for inclusion in active-bundle.md.
24
+ */
25
+ export declare function renderScopeContractMarkdown(contract: ScopeContract): string;
26
+ //# sourceMappingURL=scope-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-contract.d.ts","sourceRoot":"","sources":["../src/scope-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEhF;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,MAAM,GAAG,QAAQ,GAAG,KAAc,GAC9C,aAAa,CAoBf;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAK5E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,aAAa,GACtB,MAAM,EAAE,CAGV;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAgC3E"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Derive a deterministic scope contract from a bundle.
3
+ *
4
+ * The scope contract defines which files are "in scope" for an agent session:
5
+ * - bundle_files: files directly selected by the scoring algorithm
6
+ * - neighbor_files: direct dependency neighbors (imports + dependents) of bundle files
7
+ *
8
+ * Any file edit outside this contract is considered "scope drift."
9
+ */
10
+ export function deriveScopeContract(bundle, depGraph, enforcement = 'warn') {
11
+ const bundlePaths = new Set(bundle.files.map((f) => f.path));
12
+ // Collect dependency neighbors (one hop) of bundle files
13
+ const neighborPaths = new Set();
14
+ for (const filePath of bundlePaths) {
15
+ const imports = depGraph.imports[filePath] ?? [];
16
+ const dependents = depGraph.dependents[filePath] ?? [];
17
+ for (const dep of [...imports, ...dependents]) {
18
+ if (!bundlePaths.has(dep)) {
19
+ neighborPaths.add(dep);
20
+ }
21
+ }
22
+ }
23
+ return {
24
+ bundle_files: [...bundlePaths],
25
+ neighbor_files: [...neighborPaths],
26
+ enforcement,
27
+ };
28
+ }
29
+ /**
30
+ * Check whether a file path is within the scope contract.
31
+ * Returns true if the file is in-scope (either bundle file or neighbor).
32
+ */
33
+ export function isInScope(filePath, contract) {
34
+ return (contract.bundle_files.includes(filePath)
35
+ || contract.neighbor_files.includes(filePath));
36
+ }
37
+ /**
38
+ * Check a list of changed files against the scope contract.
39
+ * Returns files that are outside the contract.
40
+ */
41
+ export function detectScopeDrift(changedFiles, contract) {
42
+ const scopeSet = new Set([...contract.bundle_files, ...contract.neighbor_files]);
43
+ return changedFiles.filter((f) => !scopeSet.has(f));
44
+ }
45
+ /**
46
+ * Format the scope contract for inclusion in active-bundle.md.
47
+ */
48
+ export function renderScopeContractMarkdown(contract) {
49
+ if (contract.enforcement === 'off')
50
+ return '';
51
+ const lines = [];
52
+ lines.push('## Scope Contract');
53
+ lines.push('');
54
+ lines.push(`*Enforcement: ${contract.enforcement}*`);
55
+ lines.push('');
56
+ lines.push(`Files in scope: ${contract.bundle_files.length} bundle + ${contract.neighbor_files.length} neighbors`);
57
+ lines.push('');
58
+ if (contract.enforcement === 'strict') {
59
+ lines.push('> **Strict mode:** Edits to files outside this scope will be flagged.');
60
+ lines.push('');
61
+ }
62
+ else {
63
+ lines.push('> **Warn mode:** Edits to files outside this scope generate a warning.');
64
+ lines.push('');
65
+ }
66
+ // List neighbor files (bundle files are already listed in the main section)
67
+ if (contract.neighbor_files.length > 0) {
68
+ lines.push('**Dependency neighbors (extended scope):**');
69
+ for (const f of contract.neighbor_files.slice(0, 20)) {
70
+ lines.push(`- \`${f}\``);
71
+ }
72
+ if (contract.neighbor_files.length > 20) {
73
+ lines.push(`- ... and ${contract.neighbor_files.length - 20} more`);
74
+ }
75
+ lines.push('');
76
+ }
77
+ return lines.join('\n');
78
+ }
79
+ //# sourceMappingURL=scope-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-contract.js","sourceRoot":"","sources":["../src/scope-contract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../src/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAkCD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC/B,YAAY,CAiHd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAoBzE;AAED,wBAAgB,SAAS,CACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,eAAe,GACvB,MAAM,CAaR;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,UAAU,EAAE,CAgBlE;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,eAAe,EACxB,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAChC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,UAAU,EAAE,CA0Cd"}
1
+ {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../src/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACX,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAkCD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC/B,YAAY,CA+Hd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAoBzE;AAED,wBAAgB,SAAS,CACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,eAAe,GACvB,MAAM,CAcR;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,UAAU,EAAE,CAiBlE;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,eAAe,EACxB,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAChC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,UAAU,EAAE,CA2Cd"}
package/dist/scorer.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { detectSecuritySurface } from './security-surface.js';
1
2
  /** Path/name patterns that indicate error infrastructure files */
2
3
  const ERROR_INFRA_PATTERNS = [
3
4
  'error', 'exception', 'validation', 'validator', 'schema',
@@ -86,7 +87,14 @@ export function computeFeatures(file, taskKeywords, repoIndex, ledgerStats, toke
86
87
  // TEST_RELEV: graduated test relevance based on test file richness.
87
88
  // Instead of binary 0/1, tests with more assertions, describe blocks, and
88
89
  // error handling patterns score higher — they're more valuable context.
90
+ //
91
+ // Two signals:
92
+ // 1. test_map presence: file has known test mappings (source↔test pairs)
93
+ // 2. Path-based detection: file IS a test file (.test., .spec., __tests__/)
94
+ // This catches test files that weren't discovered by test_map scanning.
89
95
  const testMappings = repoIndex.test_map.filter((m) => m.source_file === file.path || m.test_file === file.path);
96
+ const isTestFile = /[./](?:test|spec)\.[^/]+$/.test(pathLower) ||
97
+ pathLower.includes('__tests__/');
90
98
  let test_relevance = 0;
91
99
  if (testMappings.length > 0) {
92
100
  // Base score for having a test mapping
@@ -94,6 +102,10 @@ export function computeFeatures(file, taskKeywords, repoIndex, ledgerStats, toke
94
102
  // Bonus based on number of test mappings (more coverage = higher relevance)
95
103
  test_relevance += Math.min(0.5, testMappings.length * 0.25);
96
104
  }
105
+ else if (isTestFile) {
106
+ // Path-based fallback: file looks like a test file but has no test_map entry
107
+ test_relevance = 0.4;
108
+ }
97
109
  // SIZE_PEN: penalty for large files
98
110
  const size_penalty = Math.max(0, Math.min(1, file.lines / 1000));
99
111
  // SUCCESS_PRIOR / FAIL_PRIOR from ledger
@@ -103,6 +115,8 @@ export function computeFeatures(file, taskKeywords, repoIndex, ledgerStats, toke
103
115
  const error_infrastructure = detectErrorInfrastructure(file);
104
116
  // BRANCH_CHANGED: work-in-progress awareness — boost files on the current branch
105
117
  const branch_changed = branchChangedFiles?.has(file.path) ? 1.0 : 0;
118
+ // SECURITY_SURFACE: detect security-sensitive files (auth, crypto, validation, routes)
119
+ const security_surface = detectSecuritySurface(file);
106
120
  return {
107
121
  keyword,
108
122
  centrality,
@@ -114,6 +128,7 @@ export function computeFeatures(file, taskKeywords, repoIndex, ledgerStats, toke
114
128
  fail_prior,
115
129
  error_infrastructure,
116
130
  branch_changed,
131
+ security_surface,
117
132
  _hasContentMatch,
118
133
  };
119
134
  }
@@ -162,7 +177,8 @@ export function scoreFile(features, weights) {
162
177
  features.success_prior * weights.success_prior -
163
178
  features.fail_prior * weights.fail_prior +
164
179
  features.error_infrastructure * (weights.error_infrastructure ?? 0.08) +
165
- features.branch_changed * (weights.branch_changed ?? 0));
180
+ features.branch_changed * (weights.branch_changed ?? 0) +
181
+ (features.security_surface ?? 0) * (weights.security_surface ?? 0));
166
182
  }
167
183
  export function deriveReasons(features) {
168
184
  const reasons = [];
@@ -188,6 +204,8 @@ export function deriveReasons(features) {
188
204
  reasons.push('error_infrastructure');
189
205
  if (features.branch_changed > 0)
190
206
  reasons.push('branch_changed');
207
+ if ((features.security_surface ?? 0) > 0)
208
+ reasons.push('security_surface');
191
209
  return reasons;
192
210
  }
193
211
  export function scoreAllCandidates(candidates, taskKeywords, repoIndex, weights, ledgerStats, tokenWeights, fanoutFiles, branchChangedFiles, surfaceFiles) {
@@ -199,11 +217,12 @@ export function scoreAllCandidates(candidates, taskKeywords, repoIndex, weights,
199
217
  continue;
200
218
  const rawFeatures = computeFeatures(file, taskKeywords, repoIndex, ledgerStats, tokenWeights, branchChangedFiles);
201
219
  const gated = gateTemporalFeatures(rawFeatures);
202
- // Preserve _hasContentMatch and branch_changed through gating for reason derivation
220
+ // Preserve _hasContentMatch, branch_changed, and security_surface through gating for reason derivation
203
221
  const features = {
204
222
  ...gated,
205
223
  _hasContentMatch: rawFeatures._hasContentMatch,
206
224
  branch_changed: rawFeatures.branch_changed,
225
+ security_surface: rawFeatures.security_surface,
207
226
  };
208
227
  let score = scoreFile(features, weights);
209
228
  const reasons = deriveReasons(features);
@@ -1 +1 @@
1
- {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../src/scorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../src/scorer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { FileInfo } from '@codeledger/types';
2
+ /**
3
+ * Detect whether a file is security-sensitive based on naming patterns.
4
+ * Checks both directory segments and basename stems in the file path.
5
+ * Returns 1.0 for security-relevant files, 0 otherwise.
6
+ */
7
+ export declare function detectSecuritySurface(file: FileInfo): number;
8
+ /**
9
+ * Check whether the task description mentions security-related concerns.
10
+ * When true, the security_surface weight should be boosted.
11
+ */
12
+ export declare function isSecurityTask(taskKeywords: string[]): boolean;
13
+ //# sourceMappingURL=security-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-surface.d.ts","sourceRoot":"","sources":["../src/security-surface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAqBlD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAoB5D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAE9D"}
@@ -0,0 +1,45 @@
1
+ /** Filename/path patterns indicating security-sensitive files */
2
+ const SECURITY_PATH_PATTERNS = [
3
+ 'auth', 'login', 'logout', 'session', 'oauth', 'jwt', 'token',
4
+ 'crypt', 'hash', 'secret', 'password', 'credential',
5
+ 'validat', 'sanitiz', 'escap',
6
+ 'query', 'sql', 'database', 'migration',
7
+ 'route', 'controller', 'endpoint', 'middleware',
8
+ 'permission', 'rbac', 'acl', 'role',
9
+ 'csrf', 'cors', 'helmet', 'rate-limit',
10
+ ];
11
+ /** Task keywords that should boost security_surface weight */
12
+ const SECURITY_TASK_KEYWORDS = new Set([
13
+ 'security', 'secure', 'audit', 'vulnerability', 'vulnerabilities',
14
+ 'injection', 'xss', 'csrf', 'auth', 'authentication', 'authorization',
15
+ 'encrypt', 'decrypt', 'hash', 'password', 'credential', 'token',
16
+ 'sanitize', 'escape', 'validate', 'permission', 'privilege',
17
+ ]);
18
+ /**
19
+ * Detect whether a file is security-sensitive based on naming patterns.
20
+ * Checks both directory segments and basename stems in the file path.
21
+ * Returns 1.0 for security-relevant files, 0 otherwise.
22
+ */
23
+ export function detectSecuritySurface(file) {
24
+ const pathLower = file.path.toLowerCase();
25
+ const segments = pathLower.split('/');
26
+ // Extract all stems: directory names + basename stems (split on - and _)
27
+ const allStems = [];
28
+ for (const segment of segments) {
29
+ const clean = segment.replace(/\.\w+$/, '');
30
+ for (const stem of clean.split(/[-_]/)) {
31
+ if (stem.length > 0)
32
+ allStems.push(stem);
33
+ }
34
+ }
35
+ const isSecurityRelevant = allStems.some((stem) => SECURITY_PATH_PATTERNS.some((pat) => stem === pat || stem === pat + 's' || stem.startsWith(pat)));
36
+ return isSecurityRelevant ? 1.0 : 0;
37
+ }
38
+ /**
39
+ * Check whether the task description mentions security-related concerns.
40
+ * When true, the security_surface weight should be boosted.
41
+ */
42
+ export function isSecurityTask(taskKeywords) {
43
+ return taskKeywords.some((kw) => SECURITY_TASK_KEYWORDS.has(kw));
44
+ }
45
+ //# sourceMappingURL=security-surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-surface.js","sourceRoot":"","sources":["../src/security-surface.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,MAAM,sBAAsB,GAAG;IAC7B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAC7D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY;IACnD,SAAS,EAAE,SAAS,EAAE,OAAO;IAC7B,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW;IACvC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY;IAC/C,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IACnC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY;CACvC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB;IACjE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe;IACrE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO;IAC/D,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW;CAC5D,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEtC,yEAAyE;IACzE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAClC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAC3D,CACF,CAAC;IAEF,OAAO,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,YAAsB;IACnD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-type.d.ts","sourceRoot":"","sources":["../src/task-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,aAAa,GACb,UAAU,GACV,aAAa,GACb,QAAQ,GACR,SAAS,CAAC;AA8Bd;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAmCxD;AAoCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,eAAe,EAC5B,QAAQ,EAAE,QAAQ,GACjB,eAAe,CAYjB"}
1
+ {"version":3,"file":"task-type.d.ts","sourceRoot":"","sources":["../src/task-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,aAAa,GACb,UAAU,GACV,aAAa,GACb,QAAQ,GACR,SAAS,CAAC;AA+Bd;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAmCxD;AAqCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,eAAe,EAC5B,QAAQ,EAAE,QAAQ,GACjB,eAAe,CAYjB"}
package/dist/task-type.js CHANGED
@@ -15,6 +15,7 @@ const REFACTOR_PATTERNS = [
15
15
  const TEST_UPDATE_PATTERNS = [
16
16
  'test', 'tests', 'testing', 'spec', 'specs', 'coverage', 'assertion',
17
17
  'mock', 'stub', 'fixture', 'jest', 'vitest', 'mocha', 'e2e',
18
+ 'run', 'execute', 'validate', 'verify',
18
19
  ];
19
20
  const CONFIG_PATTERNS = [
20
21
  'config', 'configuration', 'settings', 'setup', 'env', 'environment',
@@ -84,9 +85,10 @@ const WEIGHT_ADJUSTMENTS = {
84
85
  size_penalty: 0.7,
85
86
  },
86
87
  test_update: {
87
- test_relevance: 1.5,
88
+ test_relevance: 2.5,
88
89
  keyword: 1.2,
89
- churn: 0.8,
90
+ centrality: 0.5,
91
+ churn: 0.5,
90
92
  },
91
93
  config: {
92
94
  keyword: 1.3,
@@ -1 +1 @@
1
- {"version":3,"file":"task-type.js","sourceRoot":"","sources":["../src/task-type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-type.js","sourceRoot":"","sources":["../src/task-type.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@codeledger/selector",
3
- "version": "0.2.1",
3
+ "version": "0.5.1",
4
4
  "type": "module",
5
5
  "description": "Deterministic context selection algorithm for CodeLedger",
6
- "license": "Apache-2.0",
6
+ "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "https://github.com/codeledgerECF/codeledger-blackbox.git",
@@ -24,7 +24,7 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@codeledger/types": "0.2.1"
27
+ "@codeledger/types": "0.5.1"
28
28
  },
29
29
  "devDependencies": {
30
30
  "typescript": "^5.4.0"