@esbenwiberg/corpus-default 1.2.0 → 1.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"errors-actionability.d.ts","sourceRoot":"","sources":["../../src/probes/errors-actionability.ts"],"names":[],"mappings":";AA+BA,wBAuKG"}
1
+ {"version":3,"file":"errors-actionability.d.ts","sourceRoot":"","sources":["../../src/probes/errors-actionability.ts"],"names":[],"mappings":";AA+BA,wBA2RG"}
@@ -1,5 +1,5 @@
1
1
  import { defineProbe } from "@esbenwiberg/repofit/sdk";
2
- const PROBE_VERSION = "1.0.0";
2
+ const PROBE_VERSION = "2.0.0";
3
3
  const MAX_INPUT_CHARS = 6_000;
4
4
  const RUBRIC = {
5
5
  task: "Judge whether the toolchain configured in this repo would produce error messages that help a coding agent fix problems — not just say 'something broke'.",
@@ -28,26 +28,30 @@ export default defineProbe({
28
28
  version: PROBE_VERSION,
29
29
  dimensions: [{ id: "feedback", weight: 1 }],
30
30
  tier: "reasoned",
31
- evidence: ["node_package", "files", "judge"],
31
+ evidence: [
32
+ "node_package",
33
+ "python_project",
34
+ "dotnet_project",
35
+ "go_module",
36
+ "toolchain",
37
+ "files",
38
+ "judge",
39
+ ],
32
40
  rationale: `
33
41
  When an agent makes a change and a script fails, the error message is
34
42
  the only signal it has to act on. Tools that emit clear file:line
35
- diagnostics (Biome, TSC strict, Vitest) let the agent self-correct;
36
- tools run with --silent or homegrown shell scripts that just exit 1
37
- leave the agent guessing. This probe asks an LLM to judge the
38
- toolchain — which tools are configured, how they're scripted, and
39
- whether common feedback loops are present — for diagnostic quality.
43
+ diagnostics (Biome, TSC strict, Vitest, pytest, mypy, ruff, dotnet, go)
44
+ let the agent self-correct; tools run with --silent or homegrown shell
45
+ scripts that just exit 1 leave the agent guessing. This probe asks an LLM
46
+ to judge the toolchain — which tools are configured, how they're scripted,
47
+ and whether common feedback loops are present — for diagnostic quality.
40
48
  `,
41
49
  remediation: "Use tools that emit file:line:col diagnostics (TSC strict, Biome, ESLint, Vitest, Pytest, rustc). Remove `--silent` / `--quiet` / `2>/dev/null` from scripts. Avoid parallel runners that interleave output during failure investigation. Wire up the full feedback loop: typecheck, lint, test, build — each with a clear script name.",
42
50
  async detect(ev) {
43
- if (!ev.node_package.present) {
44
- return { kind: "na", reason: "no package.json" };
45
- }
46
- const scripts = ev.node_package.scripts;
47
- if (Object.keys(scripts).length === 0) {
48
- return { kind: "na", reason: "package.json has no scripts" };
51
+ if (!ev.toolchain.primary && !ev.node_package.present) {
52
+ return { kind: "na", reason: "no supported stack or package.json scripts" };
49
53
  }
50
- const interestingConfigs = [
54
+ const nodeConfigs = [
51
55
  "tsconfig.json",
52
56
  "biome.json",
53
57
  "biome.jsonc",
@@ -63,12 +67,51 @@ export default defineProbe({
63
67
  ".prettierrc",
64
68
  "prettier.config.js",
65
69
  ];
66
- const presentConfigs = interestingConfigs.filter((p) => ev.files.has(p));
67
- const lines = ["# package.json scripts", ""];
70
+ const presentNodeConfigs = nodeConfigs.filter((p) => ev.files.has(p));
71
+ const pythonConfigs = [
72
+ ev.python_project.pyproject?.path,
73
+ ...(ev.python_project.configFiles ?? []),
74
+ ].filter((p) => typeof p === "string" && p.length > 0);
75
+ const dotnetConfigs = [
76
+ ...ev.dotnet_project.solutions,
77
+ ...ev.dotnet_project.projects.map((p) => p.path),
78
+ ev.dotnet_project.centralPackageManagement?.path,
79
+ ].filter((p) => typeof p === "string" && p.length > 0);
80
+ const goConfigs = ev.go_module.modules.map((m) => m.path);
81
+ const lines = ["# supported stacks", ""];
82
+ lines.push(`primary: ${ev.toolchain.primary ?? "(none)"}`);
83
+ lines.push(`detected: ${ev.toolchain.stacks.length === 0 ? "(none)" : ev.toolchain.stacks.join(", ")}`);
84
+ lines.push("", "# resolved toolchain commands", "");
85
+ let commandCount = 0;
86
+ for (const [phase, cmd] of Object.entries(ev.toolchain.commands)) {
87
+ if (!cmd)
88
+ continue;
89
+ commandCount += 1;
90
+ lines.push(`${phase}: ${cmd.argv.join(" ")} (${cmd.source})`);
91
+ }
92
+ const scripts = ev.node_package.scripts;
93
+ const scriptEntries = Object.entries(scripts);
94
+ lines.push("", "# package.json scripts", "");
95
+ if (!ev.node_package.present) {
96
+ lines.push("(no package.json)");
97
+ }
98
+ else if (scriptEntries.length === 0) {
99
+ lines.push("(none detected)");
100
+ }
68
101
  for (const [name, body] of Object.entries(scripts)) {
102
+ commandCount += 1;
69
103
  lines.push(`${name}: ${shortString(body)}`);
70
104
  }
105
+ if (commandCount === 0) {
106
+ return { kind: "na", reason: "no toolchain commands configured" };
107
+ }
71
108
  lines.push("", "# tool configs present", "");
109
+ const presentConfigs = [
110
+ ...presentNodeConfigs,
111
+ ...pythonConfigs,
112
+ ...dotnetConfigs,
113
+ ...goConfigs,
114
+ ];
72
115
  lines.push(presentConfigs.length === 0 ? "(none detected)" : presentConfigs.join("\n"));
73
116
  const deps = Object.keys({
74
117
  ...(ev.node_package.dependencies ?? {}),
@@ -76,7 +119,11 @@ export default defineProbe({
76
119
  });
77
120
  const toolDeps = deps.filter((d) => /^(?:@biomejs|biome|eslint|prettier|typescript|vitest|jest|mocha|tsx|tsc|tap)\b/.test(d));
78
121
  lines.push("", "# tool-related dependencies", "");
79
- lines.push(toolDeps.length === 0 ? "(none detected)" : toolDeps.sort().join("\n"));
122
+ lines.push([
123
+ ...toolDeps.sort(),
124
+ ...(ev.python_project.pyproject?.toolHints ?? []),
125
+ ...(ev.python_project.requirementsToolHints ?? []),
126
+ ].join("\n") || "(none detected)");
80
127
  const input = lines.join("\n").slice(0, MAX_INPUT_CHARS);
81
128
  const result = await ev.judge.score({
82
129
  probeId: "errors.actionability",
@@ -95,16 +142,20 @@ export default defineProbe({
95
142
  score: { kind: "judge" },
96
143
  fixtures: [
97
144
  {
98
- name: "no-package-json",
99
- evidence: { node_package: { present: false } },
100
- expect: { reading: { kind: "na", reason: "no package.json" }, score: null },
145
+ name: "no-supported-stack",
146
+ evidence: { node_package: { present: false }, toolchain: { primary: null } },
147
+ expect: {
148
+ reading: { kind: "na", reason: "no supported stack or package.json scripts" },
149
+ score: null,
150
+ },
101
151
  },
102
152
  {
103
- name: "empty-scripts",
153
+ name: "empty-toolchain",
104
154
  evidence: {
105
155
  node_package: { present: true, scripts: {} },
156
+ toolchain: { stacks: ["node"], primary: "node", commands: {} },
106
157
  },
107
- expect: { reading: { kind: "na", reason: "package.json has no scripts" }, score: null },
158
+ expect: { reading: { kind: "na", reason: "no toolchain commands configured" }, score: null },
108
159
  },
109
160
  {
110
161
  name: "strong-toolchain",
@@ -114,6 +165,15 @@ export default defineProbe({
114
165
  scripts: { typecheck: "tsc --noEmit", lint: "biome check .", test: "vitest run" },
115
166
  devDependencies: { typescript: "^5", "@biomejs/biome": "^2", vitest: "^4" },
116
167
  },
168
+ toolchain: {
169
+ stacks: ["node"],
170
+ primary: "node",
171
+ commands: {
172
+ typecheck: { source: "node", argv: ["npm", "run", "typecheck", "--silent"] },
173
+ lint: { source: "node", argv: ["npm", "run", "lint", "--silent"] },
174
+ test: { source: "node", argv: ["npm", "test", "--silent"] },
175
+ },
176
+ },
117
177
  files: ["tsconfig.json", "biome.json", "vitest.config.ts"],
118
178
  judge: {
119
179
  score: 80,
@@ -141,6 +201,56 @@ export default defineProbe({
141
201
  score: 80,
142
202
  },
143
203
  },
204
+ {
205
+ name: "strong-python-toolchain",
206
+ evidence: {
207
+ python_project: {
208
+ present: true,
209
+ pyproject: {
210
+ path: "pyproject.toml",
211
+ hasBuildSystem: true,
212
+ tools: ["mypy", "pytest", "ruff"],
213
+ toolHints: ["mypy", "pytest", "ruff"],
214
+ },
215
+ configFiles: ["pytest.ini"],
216
+ },
217
+ toolchain: {
218
+ stacks: ["python"],
219
+ primary: "python",
220
+ commands: {
221
+ build: { source: "python", argv: ["python", "-m", "build"] },
222
+ typecheck: { source: "python", argv: ["mypy", "."] },
223
+ lint: { source: "python", argv: ["ruff", "check", "."] },
224
+ test: { source: "python", argv: ["pytest"] },
225
+ },
226
+ },
227
+ files: ["pyproject.toml", "pytest.ini"],
228
+ judge: {
229
+ score: 80,
230
+ perCriterion: {
231
+ "tool-clarity": 80,
232
+ "output-discipline": 80,
233
+ "feedback-loop-coverage": 80,
234
+ },
235
+ rationale: "Pytest, Ruff, mypy, and python -m build provide clear diagnostics.",
236
+ model: "fixture",
237
+ },
238
+ },
239
+ expect: {
240
+ reading: {
241
+ kind: "judge",
242
+ score: 80,
243
+ perCriterion: {
244
+ "tool-clarity": 80,
245
+ "output-discipline": 80,
246
+ "feedback-loop-coverage": 80,
247
+ },
248
+ rationale: "Pytest, Ruff, mypy, and python -m build provide clear diagnostics.",
249
+ model: "fixture",
250
+ },
251
+ score: 80,
252
+ },
253
+ },
144
254
  {
145
255
  name: "opaque-scripts",
146
256
  evidence: {
@@ -1 +1 @@
1
- {"version":3,"file":"errors-actionability.js","sourceRoot":"","sources":["../../src/probes/errors-actionability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors-actionability.js","sourceRoot":"","sources":["../../src/probes/errors-actionability.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests-agent-safe-command.d.ts","sourceRoot":"","sources":["../../src/probes/tests-agent-safe-command.ts"],"names":[],"mappings":";AAMA,wBAuFG"}
1
+ {"version":3,"file":"tests-agent-safe-command.d.ts","sourceRoot":"","sources":["../../src/probes/tests-agent-safe-command.ts"],"names":[],"mappings":";AAMA,wBAoKG"}
@@ -3,33 +3,53 @@ const AGENT_SAFE_TEST_SCRIPTS = ["test:agent", "test:unit", "test:smoke", "test:
3
3
  const E2E_TEST_HINT = /\b(playwright|cypress|testcafe|webdriver|selenium|detox|e2e)\b/i;
4
4
  export default defineProbe({
5
5
  id: "tests.agent-safe-command",
6
- version: "1.0.0",
6
+ version: "2.0.0",
7
7
  dimensions: [
8
8
  { id: "feedback", weight: 1 },
9
9
  { id: "latency", weight: 0.5 },
10
10
  ],
11
11
  tier: "static",
12
- evidence: ["node_package"],
12
+ evidence: ["node_package", "toolchain"],
13
13
  rationale: `
14
14
  Executed probes should not surprise a repo by running hundreds of browser
15
- tests. For Node projects, repofit prefers fast agent-safe scripts
16
- (test:agent, test:unit, test:smoke, test:fast) before npm test. If npm
17
- test looks like a full e2e suite, this probe asks the repo to expose a
15
+ tests. Repofit resolves one test command for the primary stack (Node,
16
+ Python, .NET, or Go). For Node projects it prefers fast agent-safe scripts
17
+ (test:agent, test:unit, test:smoke, test:fast) before npm test. If the
18
+ resolved command looks e2e-heavy, this probe asks the repo to expose a
18
19
  smaller verification command or configure toolchain.commands.test.
19
20
  `,
20
- remediation: "Add a fast verification script such as `test:agent`, `test:unit`, `test:smoke`, or `test:fast`, and keep full browser/e2e suites under `test:e2e` or an explicit CI-only command. Alternatively set `toolchain.commands.test` in `repofit.config.json` to the exact command repofit should run in executed mode.",
21
+ remediation: "Expose a fast verification command for the primary stack. Node: add `test:agent`, `test:unit`, `test:smoke`, or `test:fast`, and keep full browser/e2e suites under `test:e2e` or an explicit CI-only command. Python/.NET/Go: keep the default test command focused on the fast suite, or set `toolchain.commands.test` in `repofit.config.json` to the exact command repofit should run in executed mode.",
21
22
  async detect(ev) {
22
- if (!ev.node_package.present)
23
- return { kind: "na", reason: "no package.json" };
24
- const scripts = ev.node_package.scripts ?? {};
25
- const hasSafe = AGENT_SAFE_TEST_SCRIPTS.some((script) => hasScript(scripts, script));
26
- const test = scripts.test ?? "";
23
+ if (!ev.toolchain.primary)
24
+ return { kind: "na", reason: "no supported primary stack" };
27
25
  const items = [];
28
- if (!hasSafe && E2E_TEST_HINT.test(test)) {
26
+ const resolvedTest = ev.toolchain.commands.test;
27
+ if (!resolvedTest) {
29
28
  items.push({
30
- location: { path: "package.json#scripts.test" },
29
+ location: { path: "repofit.config.json#toolchain.commands.test" },
31
30
  severity: "warn",
32
- message: "npm test looks e2e-heavy; add test:agent/test:unit/test:smoke or configure toolchain.commands.test",
31
+ message: "no fast test command resolved for the primary stack",
32
+ });
33
+ return { kind: "inventory", items };
34
+ }
35
+ if (ev.toolchain.primary === "node") {
36
+ const scripts = ev.node_package.scripts ?? {};
37
+ const hasSafe = AGENT_SAFE_TEST_SCRIPTS.some((script) => hasScript(scripts, script));
38
+ const test = scripts.test ?? "";
39
+ if (!hasSafe && E2E_TEST_HINT.test(test)) {
40
+ items.push({
41
+ location: { path: "package.json#scripts.test" },
42
+ severity: "warn",
43
+ message: "npm test looks e2e-heavy; add test:agent/test:unit/test:smoke or configure toolchain.commands.test",
44
+ });
45
+ }
46
+ }
47
+ const argvText = resolvedTest.argv.join(" ");
48
+ if (resolvedTest.source !== "node" && E2E_TEST_HINT.test(argvText)) {
49
+ items.push({
50
+ location: { path: "repofit.config.json#toolchain.commands.test" },
51
+ severity: "warn",
52
+ message: "resolved test command looks e2e-heavy; configure toolchain.commands.test with a faster suite",
33
53
  });
34
54
  }
35
55
  return { kind: "inventory", items };
@@ -41,13 +61,52 @@ export default defineProbe({
41
61
  },
42
62
  fixtures: [
43
63
  {
44
- name: "no-package-json",
45
- evidence: { node_package: { present: false } },
46
- expect: { reading: { kind: "na", reason: "no package.json" }, score: null },
64
+ name: "no-supported-stack",
65
+ evidence: { toolchain: { primary: null } },
66
+ expect: { reading: { kind: "na", reason: "no supported primary stack" }, score: null },
67
+ },
68
+ {
69
+ name: "python-pytest-is-safe",
70
+ evidence: {
71
+ toolchain: {
72
+ stacks: ["python"],
73
+ primary: "python",
74
+ commands: { test: { source: "python", argv: ["pytest"] } },
75
+ },
76
+ },
77
+ expect: { reading: { kind: "inventory", items: [] }, score: 100 },
78
+ },
79
+ {
80
+ name: "primary-stack-without-test-command",
81
+ evidence: {
82
+ toolchain: {
83
+ stacks: ["python"],
84
+ primary: "python",
85
+ commands: { test: null },
86
+ },
87
+ },
88
+ expect: {
89
+ reading: {
90
+ kind: "inventory",
91
+ items: [
92
+ {
93
+ location: { path: "repofit.config.json#toolchain.commands.test" },
94
+ severity: "warn",
95
+ message: "no fast test command resolved for the primary stack",
96
+ },
97
+ ],
98
+ },
99
+ score: 70,
100
+ },
47
101
  },
48
102
  {
49
103
  name: "safe-test-script-present",
50
104
  evidence: {
105
+ toolchain: {
106
+ stacks: ["node"],
107
+ primary: "node",
108
+ commands: { test: { source: "node", argv: ["npm", "run", "test:agent", "--silent"] } },
109
+ },
51
110
  node_package: {
52
111
  present: true,
53
112
  scripts: { test: "playwright test", "test:agent": "vitest run" },
@@ -57,12 +116,26 @@ export default defineProbe({
57
116
  },
58
117
  {
59
118
  name: "normal-npm-test",
60
- evidence: { node_package: { present: true, scripts: { test: "vitest run" } } },
119
+ evidence: {
120
+ toolchain: {
121
+ stacks: ["node"],
122
+ primary: "node",
123
+ commands: { test: { source: "node", argv: ["npm", "test", "--silent"] } },
124
+ },
125
+ node_package: { present: true, scripts: { test: "vitest run" } },
126
+ },
61
127
  expect: { reading: { kind: "inventory", items: [] }, score: 100 },
62
128
  },
63
129
  {
64
130
  name: "e2e-only-npm-test",
65
- evidence: { node_package: { present: true, scripts: { test: "playwright test" } } },
131
+ evidence: {
132
+ toolchain: {
133
+ stacks: ["node"],
134
+ primary: "node",
135
+ commands: { test: { source: "node", argv: ["npm", "test", "--silent"] } },
136
+ },
137
+ node_package: { present: true, scripts: { test: "playwright test" } },
138
+ },
66
139
  expect: {
67
140
  reading: {
68
141
  kind: "inventory",
@@ -1 +1 @@
1
- {"version":3,"file":"tests-agent-safe-command.js","sourceRoot":"","sources":["../../src/probes/tests-agent-safe-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tests-agent-safe-command.js","sourceRoot":"","sources":["../../src/probes/tests-agent-safe-command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests-cover-public-surface.d.ts","sourceRoot":"","sources":["../../src/probes/tests-cover-public-surface.ts"],"names":[],"mappings":";AA4CA,wBA2JG"}
1
+ {"version":3,"file":"tests-cover-public-surface.d.ts","sourceRoot":"","sources":["../../src/probes/tests-cover-public-surface.ts"],"names":[],"mappings":";AAuGA,wBA8LG"}
@@ -1,20 +1,17 @@
1
1
  import { defineProbe } from "@esbenwiberg/repofit/sdk";
2
- const PROBE_VERSION = "1.0.0";
2
+ const PROBE_VERSION = "2.0.0";
3
3
  const MAX_SOURCE_FILES = 30;
4
4
  const MAX_TEST_FILES = 30;
5
5
  const MAX_INPUT_CHARS = 12_000;
6
- const TEST_FILE = /(?:\.test\.|\.spec\.|__tests__|^tests?\/)/i;
7
- const EXPORT_LINE = /^\s*export\s+(?:(?:async\s+)?function|class|const|let|var|interface|type|enum|default)\s+\w+/m;
8
- const EXPORT_NAMED_BRACE = /^\s*export\s*\{[^}]+\}/m;
9
- const IMPORT_LINE = /^\s*import\s.+?from\s+["'][^"']+["']/m;
10
- const SOURCE_FILE = /\.(?:ts|tsx|js|mjs|cjs)$/;
11
- const SKIP_DIRS = /(?:^|\/)(?:node_modules|dist|build|coverage|\.next|\.nuxt|out)\//;
6
+ const TEST_FILE = /(?:\.test\.|\.spec\.|__tests__|^tests?\/|(?:^|\/)test_[^/]+\.py$|(?:^|\/)[^/]+_test\.go$|(?:^|\/)[^/]+Tests?\.cs$)/i;
7
+ const SOURCE_FILE = /\.(?:ts|tsx|js|jsx|mjs|cjs|py|cs|go)$/i;
8
+ const SKIP_DIRS = /(?:^|\/)(?:node_modules|dist|build|coverage|\.next|\.nuxt|out|\.venv|venv|__pycache__|bin|obj)\//;
12
9
  const RUBRIC = {
13
- task: "Judge whether the test suite meaningfully covers this project's public surface — the named exports an agent would likely modify — based on what gets imported in tests.",
10
+ task: "Judge whether the test suite meaningfully covers this project's public surface — the exported/public functions, classes, types, and packages an agent would likely modify — based on what tests import or reference.",
14
11
  criteria: [
15
12
  {
16
13
  id: "surface-named",
17
- description: "Do the project's named exports (functions, classes, types from index/entry files) appear by name in test imports? Tests that only import and run main entry points without reference to specific exports score low; tests that import named symbols and exercise them score high.",
14
+ description: "Do the project's public symbols (JS/TS exports, Python top-level public defs/classes, Go exported identifiers, .NET public types/members) appear by name in test imports or references? Tests that only run main entry points without reference to specific public symbols score low.",
18
15
  },
19
16
  {
20
17
  id: "breadth",
@@ -34,6 +31,56 @@ function extract(text, pattern) {
34
31
  }
35
32
  return out;
36
33
  }
34
+ function extractPublicSurface(path, text) {
35
+ if (/\.(?:ts|tsx|js|jsx|mjs|cjs)$/i.test(path)) {
36
+ return [
37
+ ...extract(text, /^\s*export\s+(?:(?:async\s+)?function|class|const|let|var|interface|type|enum|default)\s+\w+/),
38
+ ...extract(text, /^\s*export\s*\{[^}]+\}/),
39
+ ];
40
+ }
41
+ if (/\.py$/i.test(path)) {
42
+ return [
43
+ ...extract(text, /^(?:async\s+)?def\s+[A-Za-z]\w*\s*\(/),
44
+ ...extract(text, /^class\s+[A-Za-z]\w*\b/),
45
+ ];
46
+ }
47
+ if (/\.go$/i.test(path)) {
48
+ return [
49
+ ...extract(text, /^func\s+(?:\([^)]*\)\s*)?[A-Z]\w*\s*\(/),
50
+ ...extract(text, /^type\s+[A-Z]\w*\b/),
51
+ ...extract(text, /^var\s+[A-Z]\w*\b/),
52
+ ...extract(text, /^const\s+[A-Z]\w*\b/),
53
+ ];
54
+ }
55
+ if (/\.cs$/i.test(path)) {
56
+ return [
57
+ ...extract(text, /^\s*public\s+(?:sealed\s+|abstract\s+|static\s+|partial\s+)*(?:class|record|interface|enum|struct)\s+\w+/),
58
+ ...extract(text, /^\s*public\s+(?:static\s+|virtual\s+|override\s+|async\s+)*[\w<>[\],.?]+\s+\w+\s*\(/),
59
+ ];
60
+ }
61
+ return [];
62
+ }
63
+ function extractTestReferences(path, text) {
64
+ if (/\.(?:ts|tsx|js|jsx|mjs|cjs)$/i.test(path)) {
65
+ return extract(text, /^\s*import\s.+?from\s+["'][^"']+["']/);
66
+ }
67
+ if (/\.py$/i.test(path)) {
68
+ return [
69
+ ...extract(text, /^\s*from\s+[A-Za-z_][\w.]*\s+import\s+.+/),
70
+ ...extract(text, /^\s*import\s+[A-Za-z_][\w.]*(?:\s+as\s+\w+)?/),
71
+ ];
72
+ }
73
+ if (/\.go$/i.test(path)) {
74
+ return [
75
+ ...extract(text, /^\s*import\s+(?:\w+\s+)?".+"/),
76
+ ...extract(text, /^\s*(?:\w+\s+)?".+"$/),
77
+ ];
78
+ }
79
+ if (/\.cs$/i.test(path)) {
80
+ return extract(text, /^\s*using\s+[\w.]+;/);
81
+ }
82
+ return [];
83
+ }
37
84
  export default defineProbe({
38
85
  id: "tests.cover-public-surface",
39
86
  version: PROBE_VERSION,
@@ -73,7 +120,7 @@ export default defineProbe({
73
120
  const text = await ev.files.readText(p);
74
121
  if (!text)
75
122
  continue;
76
- const lines = [...extract(text, EXPORT_LINE), ...extract(text, EXPORT_NAMED_BRACE)];
123
+ const lines = extractPublicSurface(p, text);
77
124
  for (const l of lines)
78
125
  exportLines.push(`${p}: ${l}`);
79
126
  }
@@ -83,7 +130,7 @@ export default defineProbe({
83
130
  const text = await ev.files.readText(p);
84
131
  if (!text)
85
132
  continue;
86
- const lines = extract(text, IMPORT_LINE);
133
+ const lines = extractTestReferences(p, text);
87
134
  for (const l of lines)
88
135
  importLines.push(`${p}: ${l}`);
89
136
  }
@@ -91,7 +138,7 @@ export default defineProbe({
91
138
  return { kind: "na", reason: "no exports or test imports could be extracted" };
92
139
  }
93
140
  const inputParts = [];
94
- inputParts.push(`# Project shape`, `${sourcePaths.length} source files, ${testPaths.length} test files`, `(showing exports from up to ${MAX_SOURCE_FILES} sources, imports from up to ${MAX_TEST_FILES} tests)`, "", "# Test file paths", testsToScan.join("\n"), "", "# Exports from source files", exportLines.join("\n"), "", "# Imports inside test files", importLines.join("\n"));
141
+ inputParts.push(`# Project shape`, `${sourcePaths.length} source files, ${testPaths.length} test files`, `(showing exports from up to ${MAX_SOURCE_FILES} sources, imports from up to ${MAX_TEST_FILES} tests)`, "", "# Test file paths", testsToScan.join("\n"), "", "# Public surface from source files", exportLines.join("\n"), "", "# Imports/references inside test files", importLines.join("\n"));
95
142
  const input = inputParts.join("\n").slice(0, MAX_INPUT_CHARS);
96
143
  const result = await ev.judge.score({
97
144
  probeId: "tests.cover-public-surface",
@@ -167,6 +214,40 @@ export default defineProbe({
167
214
  score: 80,
168
215
  },
169
216
  },
217
+ {
218
+ name: "python-public-surface",
219
+ evidence: {
220
+ size_stats: {
221
+ source: "git-ls-files",
222
+ totalBytes: 200,
223
+ totalFiles: 2,
224
+ files: [
225
+ { path: "src/demo/scoring.py", bytes: 100, lines: 10, depth: 2 },
226
+ { path: "tests/test_scoring.py", bytes: 100, lines: 10, depth: 1 },
227
+ ],
228
+ },
229
+ files: {
230
+ "src/demo/scoring.py": "def score(value: int) -> int:\n return value * 2\n",
231
+ "tests/test_scoring.py": "from demo.scoring import score\n\ndef test_score():\n assert score(2) == 4\n",
232
+ },
233
+ judge: {
234
+ score: 80,
235
+ perCriterion: { "surface-named": 80, breadth: 80, discoverability: 80 },
236
+ rationale: "Python public function imported by name from mirrored tests.",
237
+ model: "fixture",
238
+ },
239
+ },
240
+ expect: {
241
+ reading: {
242
+ kind: "judge",
243
+ score: 80,
244
+ perCriterion: { "surface-named": 80, breadth: 80, discoverability: 80 },
245
+ rationale: "Python public function imported by name from mirrored tests.",
246
+ model: "fixture",
247
+ },
248
+ score: 80,
249
+ },
250
+ },
170
251
  ],
171
252
  });
172
253
  //# sourceMappingURL=tests-cover-public-surface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tests-cover-public-surface.js","sourceRoot":"","sources":["../../src/probes/tests-cover-public-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tests-cover-public-surface.js","sourceRoot":"","sources":["../../src/probes/tests-cover-public-surface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests-deterministic.d.ts","sourceRoot":"","sources":["../../src/probes/tests-deterministic.ts"],"names":[],"mappings":";AAwCA,wBA8HG"}
1
+ {"version":3,"file":"tests-deterministic.d.ts","sourceRoot":"","sources":["../../src/probes/tests-deterministic.ts"],"names":[],"mappings":";AAsDA,wBA2KG"}
@@ -2,34 +2,40 @@ import { defineProbe } from "@esbenwiberg/repofit/sdk";
2
2
  const TEST_FILE = /(?:\.test\.|\.spec\.|__tests__|^tests?\/|^e2e\/)/i;
3
3
  const SOURCE_FILE = /\.(?:ts|tsx|js|jsx|mjs|cjs|py|cs|go|rs|java|kt)$/i;
4
4
  const SKIP_DIRS = /(?:^|\/)(?:node_modules|dist|build|coverage|\.next|\.nuxt|out|target|bin|obj)\//;
5
+ const WALL_CLOCK_TIME = [
6
+ /\bDate\.now\s*\(/,
7
+ /\bnew\s+Date\s*\(\s*\)/,
8
+ /\btime\.time\s*\(/,
9
+ /\bInstant\.now\s*\(/,
10
+ ];
5
11
  const FLAKE_PATTERNS = [
6
12
  {
7
- pattern: /\b(?:test|it|describe)\.only\s*\(/,
13
+ matches: (line) => /\b(?:test|it|describe)\.only\s*\(/.test(line),
8
14
  severity: "error",
9
15
  message: "commits a focused-only test",
10
16
  },
11
17
  {
12
- pattern: /\b(?:test|it|describe)\.skip\s*\(/,
18
+ matches: (line) => /\b(?:test|it|describe)\.skip\s*\(/.test(line),
13
19
  severity: "warn",
14
20
  message: "skips a test without an executable signal",
15
21
  },
16
22
  {
17
- pattern: /\bMath\.random\s*\(|\brandomUUID\s*\(|\brandint\s*\(|\brandom\.\w+\s*\(/,
23
+ matches: (line) => /\bMath\.random\s*\(|\brandomUUID\s*\(|\brandint\s*\(|\brandom\.\w+\s*\(/.test(line),
18
24
  severity: "warn",
19
25
  message: "uses randomness without an obvious seed",
20
26
  },
21
27
  {
22
- pattern: /\bDate\.now\s*\(|\bnew Date\s*\(|\btime\.time\s*\(|\bInstant\.now\s*\(/,
28
+ matches: (line) => WALL_CLOCK_TIME.some((pattern) => pattern.test(line)),
23
29
  severity: "warn",
24
30
  message: "depends on wall-clock time",
25
31
  },
26
32
  {
27
- pattern: /\bsetTimeout\s*\([^,]+,\s*(?:[1-9]\d{2,}|[1-9]\d{3,})|\bwaitForTimeout\s*\(/,
33
+ matches: (line) => /\bsetTimeout\s*\([^,]+,\s*(?:[1-9]\d{2,}|[1-9]\d{3,})|\bwaitForTimeout\s*\(/.test(line),
28
34
  severity: "warn",
29
35
  message: "uses fixed sleeps instead of waiting on a condition",
30
36
  },
31
37
  {
32
- pattern: /\bfetch\s*\(\s*["'`]https?:\/\/|\baxios\.\w+\s*\(\s*["'`]https?:\/\//,
38
+ matches: (line) => /\bfetch\s*\(\s*["'`]https?:\/\/|\baxios\.\w+\s*\(\s*["'`]https?:\/\//.test(line),
33
39
  severity: "warn",
34
40
  message: "calls an external network endpoint from a test",
35
41
  },
@@ -48,9 +54,10 @@ export default defineProbe({
48
54
  the last change broke behavior. This static probe avoids running large
49
55
  suites and instead flags common flake smells in test files: focused tests,
50
56
  skips, unseeded randomness, wall-clock time, fixed sleeps, and live
51
- external network calls.
57
+ external network calls. Fixed date literals are allowed; ambient clock
58
+ reads should be injected, frozen, or otherwise made explicit.
52
59
  `,
53
- remediation: "Remove focused tests before committing, turn skips into tracked TODOs, seed randomness, inject clocks, replace fixed sleeps with condition waits, and mock or record external network calls. Deterministic failures are the currency agents can spend.",
60
+ remediation: "Remove focused tests before committing, turn skips into tracked TODOs, seed randomness, inject or freeze clocks for ambient time, replace fixed sleeps with condition waits, and mock or record external network calls. Deterministic failures are the currency agents can spend.",
54
61
  async detect(ev) {
55
62
  const testPaths = ev.size_stats.files
56
63
  .map((f) => f.path)
@@ -67,8 +74,8 @@ export default defineProbe({
67
74
  const lines = text.split(/\n/);
68
75
  for (let i = 0; i < lines.length; i += 1) {
69
76
  const line = lines[i] ?? "";
70
- for (const { pattern, severity, message } of FLAKE_PATTERNS) {
71
- if (pattern.test(line)) {
77
+ for (const { matches, severity, message } of FLAKE_PATTERNS) {
78
+ if (matches(line)) {
72
79
  items.push({
73
80
  location: { path, range: { startLine: i + 1 } },
74
81
  severity,
@@ -150,6 +157,48 @@ export default defineProbe({
150
157
  score: 0,
151
158
  },
152
159
  },
160
+ {
161
+ name: "fixed-date-literals",
162
+ evidence: {
163
+ files: {
164
+ "src/date-range.test.ts": 'test("formats fixed fiscal dates", () => {\n expect(formatRange(new Date("2026-05-21T00:00:00.000Z"), new Date(2026, 4, 22))).toBe("May 21-22, 2026");\n});\n',
165
+ },
166
+ size_stats: {
167
+ source: "git-ls-files",
168
+ totalBytes: 190,
169
+ totalFiles: 1,
170
+ files: [{ path: "src/date-range.test.ts", bytes: 190, lines: 3, depth: 1 }],
171
+ },
172
+ },
173
+ expect: { reading: { kind: "inventory", items: [] }, score: 100 },
174
+ },
175
+ {
176
+ name: "ambient-date-constructor",
177
+ evidence: {
178
+ files: {
179
+ "src/cache.test.ts": 'test("marks entries as fresh", () => {\n expect(isFresh(new Date(), ttl)).toBe(true);\n});\n',
180
+ },
181
+ size_stats: {
182
+ source: "git-ls-files",
183
+ totalBytes: 100,
184
+ totalFiles: 1,
185
+ files: [{ path: "src/cache.test.ts", bytes: 100, lines: 3, depth: 1 }],
186
+ },
187
+ },
188
+ expect: {
189
+ reading: {
190
+ kind: "inventory",
191
+ items: [
192
+ {
193
+ location: { path: "src/cache.test.ts", range: { startLine: 2 } },
194
+ severity: "warn",
195
+ message: "depends on wall-clock time",
196
+ },
197
+ ],
198
+ },
199
+ score: 80,
200
+ },
201
+ },
153
202
  ],
154
203
  });
155
204
  //# sourceMappingURL=tests-deterministic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tests-deterministic.js","sourceRoot":"","sources":["../../src/probes/tests-deterministic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tests-deterministic.js","sourceRoot":"","sources":["../../src/probes/tests-deterministic.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esbenwiberg/corpus-default",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Default probe corpus for repofit.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -25,6 +25,6 @@
25
25
  "@types/node": "^22.19.18"
26
26
  },
27
27
  "dependencies": {
28
- "@esbenwiberg/repofit": "^1.2.0"
28
+ "@esbenwiberg/repofit": "^1.2.1"
29
29
  }
30
30
  }