@codeledger/selector 0.2.1 → 0.5.0

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 (66) 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 +10 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +9 -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/scope-contract.d.ts +26 -0
  53. package/dist/scope-contract.d.ts.map +1 -0
  54. package/dist/scope-contract.js +79 -0
  55. package/dist/scope-contract.js.map +1 -0
  56. package/dist/scorer.d.ts.map +1 -1
  57. package/dist/scorer.js +21 -2
  58. package/dist/scorer.js.map +1 -1
  59. package/dist/security-surface.d.ts +13 -0
  60. package/dist/security-surface.d.ts.map +1 -0
  61. package/dist/security-surface.js +45 -0
  62. package/dist/security-surface.js.map +1 -0
  63. package/dist/task-type.d.ts.map +1 -1
  64. package/dist/task-type.js +4 -2
  65. package/dist/task-type.js.map +1 -1
  66. package/package.json +2 -2
@@ -0,0 +1,37 @@
1
+ import type { AddressedFile, BundleInvalidationReport } from '@codeledger/types';
2
+ /** Structured, normalized representation of the session's objective */
3
+ export interface TaskContractV1 {
4
+ version: 1;
5
+ objective: string;
6
+ deliverable: string | null;
7
+ scope_in: string[];
8
+ scope_out: string[];
9
+ constraints: string[];
10
+ acceptance_criteria: string[];
11
+ risk_flags: string[];
12
+ repo_paths_in_scope: string[];
13
+ timestamp: string;
14
+ }
15
+ export type DriftLevel = 'NONE' | 'MINOR' | 'MAJOR' | 'CRITICAL';
16
+ export interface DriftReason {
17
+ field: keyof Omit<TaskContractV1, 'version' | 'timestamp'>;
18
+ distance: number;
19
+ }
20
+ export interface DriftResult {
21
+ drift_score: number;
22
+ drift_level: DriftLevel;
23
+ reasons: DriftReason[];
24
+ }
25
+ /** Event record written to intent_drift.jsonl */
26
+ export interface IntentDriftEvent {
27
+ ts: string;
28
+ type: 'INTENT_DRIFT';
29
+ baseline_hash: string;
30
+ current_hash: string;
31
+ drift_score: number;
32
+ drift_level: DriftLevel;
33
+ reasons: DriftReason[];
34
+ recommended_action: 'NONE' | 'LOG_ONLY' | 'REFRESH_BUNDLE' | 'REQUIRE_ACK';
35
+ }
36
+ export type { AddressedFile, BundleInvalidationReport, };
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/intent/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAIjF,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAAC;CAC5E;AAGD,YAAY,EACV,aAAa,EACb,wBAAwB,GACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/intent/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import type { LoopDetectionConfig, LoopDetectionReport } from '@codeledger/types';
2
+ /** Default thresholds for loop detection */
3
+ export declare const DEFAULT_LOOP_THRESHOLDS: LoopDetectionConfig;
4
+ /** Entry in the session activity log — tracks tool usage for pattern detection */
5
+ export interface ActivityEntry {
6
+ type: 'test_run' | 'file_edit' | 'command';
7
+ target: string;
8
+ success: boolean;
9
+ /** Hash of failure output for duplicate detection */
10
+ output_hash?: string;
11
+ }
12
+ /**
13
+ * Analyze a session's activity log for stuck patterns.
14
+ *
15
+ * All detection is numeric and deterministic — pattern matching on
16
+ * activity sequences with configurable thresholds.
17
+ */
18
+ export declare function detectStuckPatterns(activities: ActivityEntry[], config?: LoopDetectionConfig): LoopDetectionReport;
19
+ /**
20
+ * Parse git log and diff output into activity entries for loop detection.
21
+ * This enables post-hoc analysis from git state without requiring
22
+ * real-time event ledger integration.
23
+ */
24
+ export declare function buildActivityLogFromGit(_commitLog: string[], fileEdits: Map<string, number>, testResults: Array<{
25
+ name: string;
26
+ pass: boolean;
27
+ }>): ActivityEntry[];
28
+ //# sourceMappingURL=loop-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-detection.d.ts","sourceRoot":"","sources":["../src/loop-detection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAgB,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEhG,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,EAAE,mBAIrC,CAAC;AAEF,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,aAAa,EAAE,EAC3B,MAAM,GAAE,mBAA6C,GACpD,mBAAmB,CAqDrB;AA8DD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,WAAW,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GAClD,aAAa,EAAE,CAoBjB"}
@@ -0,0 +1,124 @@
1
+ /** Default thresholds for loop detection */
2
+ export const DEFAULT_LOOP_THRESHOLDS = {
3
+ max_test_retries: 3,
4
+ max_file_edits: 5,
5
+ max_command_retries: 3,
6
+ };
7
+ /**
8
+ * Analyze a session's activity log for stuck patterns.
9
+ *
10
+ * All detection is numeric and deterministic — pattern matching on
11
+ * activity sequences with configurable thresholds.
12
+ */
13
+ export function detectStuckPatterns(activities, config = DEFAULT_LOOP_THRESHOLDS) {
14
+ const episodes = [];
15
+ // 1. Repeated test failures without progress
16
+ const testFailStreaks = detectRepeatedFailures(activities.filter((a) => a.type === 'test_run'), config.max_test_retries);
17
+ for (const streak of testFailStreaks) {
18
+ episodes.push({
19
+ type: 'repeated_test_failure',
20
+ target: streak.target,
21
+ count: streak.count,
22
+ message: `Test "${streak.target}" failed ${streak.count} consecutive times with no file changes between runs`,
23
+ });
24
+ }
25
+ // 2. Same file edited excessively
26
+ const fileEditCounts = new Map();
27
+ for (const a of activities) {
28
+ if (a.type === 'file_edit') {
29
+ fileEditCounts.set(a.target, (fileEditCounts.get(a.target) ?? 0) + 1);
30
+ }
31
+ }
32
+ for (const [file, count] of fileEditCounts) {
33
+ if (count > config.max_file_edits) {
34
+ episodes.push({
35
+ type: 'repeated_file_edit',
36
+ target: file,
37
+ count,
38
+ message: `File "${file}" was edited ${count} times (threshold: ${config.max_file_edits})`,
39
+ });
40
+ }
41
+ }
42
+ // 3. Same command fails repeatedly with identical output
43
+ const commandFailStreaks = detectRepeatedCommandFailures(activities.filter((a) => a.type === 'command'), config.max_command_retries);
44
+ for (const streak of commandFailStreaks) {
45
+ episodes.push({
46
+ type: 'repeated_command_failure',
47
+ target: streak.target,
48
+ count: streak.count,
49
+ message: `Command "${streak.target}" failed ${streak.count} times with identical output`,
50
+ });
51
+ }
52
+ return {
53
+ stuck_episodes: episodes,
54
+ total_episodes: episodes.length,
55
+ };
56
+ }
57
+ /**
58
+ * Find sequences of test failures with no intervening file changes.
59
+ * A file_edit activity between test runs resets the counter.
60
+ */
61
+ function detectRepeatedFailures(testActivities, threshold) {
62
+ const streaks = [];
63
+ const currentStreak = new Map();
64
+ for (const a of testActivities) {
65
+ if (!a.success) {
66
+ const count = (currentStreak.get(a.target) ?? 0) + 1;
67
+ currentStreak.set(a.target, count);
68
+ if (count >= threshold) {
69
+ // Only report once per target at the threshold
70
+ if (count === threshold) {
71
+ streaks.push({ target: a.target, count });
72
+ }
73
+ }
74
+ }
75
+ else {
76
+ // Test passed — reset streak for this target
77
+ currentStreak.delete(a.target);
78
+ }
79
+ }
80
+ return streaks;
81
+ }
82
+ /**
83
+ * Find commands that fail repeatedly with the same output hash.
84
+ */
85
+ function detectRepeatedCommandFailures(commandActivities, threshold) {
86
+ const streaks = [];
87
+ // Group by target + output_hash
88
+ const failCounts = new Map();
89
+ for (const a of commandActivities) {
90
+ if (!a.success && a.output_hash) {
91
+ const key = `${a.target}::${a.output_hash}`;
92
+ const count = (failCounts.get(key) ?? 0) + 1;
93
+ failCounts.set(key, count);
94
+ if (count === threshold) {
95
+ streaks.push({ target: a.target, count });
96
+ }
97
+ }
98
+ }
99
+ return streaks;
100
+ }
101
+ /**
102
+ * Parse git log and diff output into activity entries for loop detection.
103
+ * This enables post-hoc analysis from git state without requiring
104
+ * real-time event ledger integration.
105
+ */
106
+ export function buildActivityLogFromGit(_commitLog, fileEdits, testResults) {
107
+ const activities = [];
108
+ // Add file edits
109
+ for (const [file, count] of fileEdits) {
110
+ for (let i = 0; i < count; i++) {
111
+ activities.push({ type: 'file_edit', target: file, success: true });
112
+ }
113
+ }
114
+ // Add test results
115
+ for (const result of testResults) {
116
+ activities.push({
117
+ type: 'test_run',
118
+ target: result.name,
119
+ success: result.pass,
120
+ });
121
+ }
122
+ return activities;
123
+ }
124
+ //# sourceMappingURL=loop-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-detection.js","sourceRoot":"","sources":["../src/loop-detection.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,6 +1,6 @@
1
1
  {
2
2
  "name": "@codeledger/selector",
3
- "version": "0.2.1",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "Deterministic context selection algorithm for CodeLedger",
6
6
  "license": "Apache-2.0",
@@ -24,7 +24,7 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@codeledger/types": "0.2.1"
27
+ "@codeledger/types": "0.5.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "typescript": "^5.4.0"