corydora 0.3.2 → 1.0.3

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 (63) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +27 -4
  3. package/dist/commands/doctor.js +37 -1
  4. package/dist/commands/doctor.js.map +1 -1
  5. package/dist/commands/init.js +114 -14
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/run.d.ts +3 -0
  8. package/dist/commands/run.js +51 -20
  9. package/dist/commands/run.js.map +1 -1
  10. package/dist/commands/status.js +37 -6
  11. package/dist/commands/status.js.map +1 -1
  12. package/dist/config/files.js +23 -1
  13. package/dist/config/files.js.map +1 -1
  14. package/dist/config/schema.d.ts +0 -80
  15. package/dist/config/schema.js +162 -52
  16. package/dist/config/schema.js.map +1 -1
  17. package/dist/constants.d.ts +1 -0
  18. package/dist/constants.js +9 -0
  19. package/dist/constants.js.map +1 -1
  20. package/dist/filesystem/discovery.d.ts +2 -0
  21. package/dist/filesystem/discovery.js +2 -2
  22. package/dist/filesystem/discovery.js.map +1 -1
  23. package/dist/filesystem/gitignore.d.ts +3 -0
  24. package/dist/filesystem/gitignore.js +37 -7
  25. package/dist/filesystem/gitignore.js.map +1 -1
  26. package/dist/git/isolation.d.ts +1 -0
  27. package/dist/git/isolation.js +5 -4
  28. package/dist/git/isolation.js.map +1 -1
  29. package/dist/git/repository.d.ts +2 -1
  30. package/dist/git/repository.js +21 -11
  31. package/dist/git/repository.js.map +1 -1
  32. package/dist/index.js +17 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/providers/fake.js +16 -0
  35. package/dist/providers/fake.js.map +1 -1
  36. package/dist/providers/utils.js +24 -0
  37. package/dist/providers/utils.js.map +1 -1
  38. package/dist/queue/render.js +10 -3
  39. package/dist/queue/render.js.map +1 -1
  40. package/dist/queue/state.d.ts +53 -4
  41. package/dist/queue/state.js +301 -29
  42. package/dist/queue/state.js.map +1 -1
  43. package/dist/runtime/modes.d.ts +29 -0
  44. package/dist/runtime/modes.js +423 -0
  45. package/dist/runtime/modes.js.map +1 -0
  46. package/dist/runtime/prompts.d.ts +8 -3
  47. package/dist/runtime/prompts.js +58 -12
  48. package/dist/runtime/prompts.js.map +1 -1
  49. package/dist/runtime/routes.d.ts +28 -0
  50. package/dist/runtime/routes.js +87 -0
  51. package/dist/runtime/routes.js.map +1 -0
  52. package/dist/runtime/run-session.d.ts +3 -2
  53. package/dist/runtime/run-session.js +521 -206
  54. package/dist/runtime/run-session.js.map +1 -1
  55. package/dist/runtime/tooling.d.ts +2 -0
  56. package/dist/runtime/tooling.js +79 -0
  57. package/dist/runtime/tooling.js.map +1 -0
  58. package/dist/runtime/validation.d.ts +7 -0
  59. package/dist/runtime/validation.js +115 -0
  60. package/dist/runtime/validation.js.map +1 -0
  61. package/dist/types/domain.d.ts +139 -16
  62. package/package.json +4 -3
  63. package/schemas/corydora.schema.json +165 -4
@@ -0,0 +1,423 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { existsSync, readFileSync } from 'node:fs';
3
+ import { resolve } from 'node:path';
4
+ import { discoverCandidateFiles, filePriority, groupFilesForScheduling, } from '../filesystem/discovery.js';
5
+ import { createFileId, createSnapshotHash } from '../queue/state.js';
6
+ const MODE_PROMPTS = {
7
+ auto: 'Balance correctness, maintainability, and likely user impact. Prefer concrete, scoped work.',
8
+ churn: 'Prioritize recently touched, frequently modified, and large files. Prefer tasks that reduce churn and future edit cost.',
9
+ clean: 'Prioritize low-risk cleanup, consistency, and technical-debt reduction with behavior-preserving changes.',
10
+ refactor: 'Prioritize complexity hotspots, duplicated logic, and structural cleanup that reduces future work.',
11
+ performance: 'Prioritize render-heavy, I/O-heavy, and repeated-work hotspots with credible user-facing impact.',
12
+ linting: 'Prefer tool-backed correctness and style issues first. Fall back to AI only when tooling has no concrete findings.',
13
+ documentation: 'Prioritize docs, schema, README, CLI help, and public-entrypoint clarity. Focus on documentation-facing quality.',
14
+ };
15
+ function fileGroup(filePath) {
16
+ return Object.keys(groupFilesForScheduling([filePath]))[0] ?? '.';
17
+ }
18
+ function documentationPriority(filePath) {
19
+ if (filePath.startsWith('docs/')) {
20
+ return 1;
21
+ }
22
+ if (filePath.startsWith('schemas/')) {
23
+ return 0.9;
24
+ }
25
+ if (filePath.startsWith('README')) {
26
+ return 0.95;
27
+ }
28
+ if (filePath.includes('cli') || filePath.includes('config')) {
29
+ return 0.75;
30
+ }
31
+ return 0.1;
32
+ }
33
+ function loadGitTouchMetrics(workRoot) {
34
+ try {
35
+ const raw = execFileSync('git', ['log', '--format=commit %ct', '--name-only', '-n', '200', '--'], {
36
+ cwd: workRoot,
37
+ encoding: 'utf8',
38
+ });
39
+ const metrics = new Map();
40
+ let currentTimestamp;
41
+ for (const line of raw.split('\n')) {
42
+ if (line.startsWith('commit ')) {
43
+ currentTimestamp = line.slice('commit '.length).trim();
44
+ continue;
45
+ }
46
+ const filePath = line.trim();
47
+ if (!filePath) {
48
+ continue;
49
+ }
50
+ const existing = metrics.get(filePath) ?? { count: 0 };
51
+ const isoTimestamp = currentTimestamp && Number.isFinite(Number(currentTimestamp))
52
+ ? new Date(Number(currentTimestamp) * 1000).toISOString()
53
+ : existing.lastTouchedAt;
54
+ const nextTouchedAt = existing.lastTouchedAt && isoTimestamp
55
+ ? existing.lastTouchedAt > isoTimestamp
56
+ ? existing.lastTouchedAt
57
+ : isoTimestamp
58
+ : (existing.lastTouchedAt ?? isoTimestamp);
59
+ metrics.set(filePath, {
60
+ count: existing.count + 1,
61
+ ...(nextTouchedAt ? { lastTouchedAt: nextTouchedAt } : {}),
62
+ });
63
+ }
64
+ return metrics;
65
+ }
66
+ catch {
67
+ return new Map();
68
+ }
69
+ }
70
+ function loadDirtyFiles(workRoot) {
71
+ try {
72
+ const raw = execFileSync('git', ['status', '--porcelain'], {
73
+ cwd: workRoot,
74
+ encoding: 'utf8',
75
+ });
76
+ return new Set(raw
77
+ .split('\n')
78
+ .map((line) => line.trimEnd())
79
+ .filter(Boolean)
80
+ .map((line) => line.slice(3).trim())
81
+ .filter(Boolean));
82
+ }
83
+ catch {
84
+ return new Set();
85
+ }
86
+ }
87
+ function normalize(value, maxValue) {
88
+ if (maxValue <= 0) {
89
+ return 0;
90
+ }
91
+ return value / maxValue;
92
+ }
93
+ function performanceSignal(content) {
94
+ const matches = [
95
+ /\buseEffect\b/,
96
+ /\bfetch\b/,
97
+ /\bquery\b/i,
98
+ /\bfor\s*\(/,
99
+ /\bwhile\s*\(/,
100
+ /\bmap\(/,
101
+ /\bsetInterval\b/,
102
+ ].filter((pattern) => pattern.test(content)).length;
103
+ return Math.min(1, matches / 4);
104
+ }
105
+ function deferredTaskWeight(taskStore, filePath) {
106
+ const count = taskStore.tasks.filter((task) => task.file === filePath && ['deferred', 'blocked', 'manual'].includes(task.status)).length;
107
+ return Math.min(1, count / 3);
108
+ }
109
+ function buildScore(options) {
110
+ switch (options.mode) {
111
+ case 'churn':
112
+ return {
113
+ priority: options.priority,
114
+ gitTouches: options.touches,
115
+ recency: options.recency,
116
+ size: options.size,
117
+ currentDiff: options.currentDiff,
118
+ deferredTaskWeight: options.deferredWeight,
119
+ total: 0.45 * options.touches +
120
+ 0.25 * options.recency +
121
+ 0.2 * options.size +
122
+ 0.1 * options.currentDiff,
123
+ };
124
+ case 'clean':
125
+ return {
126
+ priority: options.priority,
127
+ gitTouches: options.touches,
128
+ recency: options.recency,
129
+ size: options.size,
130
+ currentDiff: options.currentDiff,
131
+ deferredTaskWeight: options.deferredWeight,
132
+ total: 0.35 * options.priority +
133
+ 0.25 * options.deferredWeight +
134
+ 0.2 * options.size +
135
+ 0.2 * options.recency,
136
+ };
137
+ case 'refactor':
138
+ return {
139
+ priority: options.priority,
140
+ gitTouches: options.touches,
141
+ recency: options.recency,
142
+ size: options.size,
143
+ currentDiff: options.currentDiff,
144
+ deferredTaskWeight: options.deferredWeight,
145
+ total: 0.3 * options.size +
146
+ 0.25 * options.touches +
147
+ 0.2 * options.priority +
148
+ 0.15 * options.deferredWeight +
149
+ 0.1 * options.currentDiff,
150
+ };
151
+ case 'performance':
152
+ return {
153
+ priority: options.priority,
154
+ gitTouches: options.touches,
155
+ recency: options.recency,
156
+ size: options.size,
157
+ currentDiff: options.currentDiff,
158
+ deferredTaskWeight: options.deferredWeight,
159
+ total: 0.3 * options.size +
160
+ 0.25 * options.touches +
161
+ 0.2 * options.performanceWeight +
162
+ 0.15 * options.recency +
163
+ 0.1 * options.currentDiff,
164
+ };
165
+ case 'linting':
166
+ return {
167
+ priority: options.priority,
168
+ gitTouches: options.touches,
169
+ recency: options.recency,
170
+ size: options.size,
171
+ currentDiff: options.currentDiff,
172
+ deferredTaskWeight: options.deferredWeight,
173
+ total: 0.35 * options.currentDiff +
174
+ 0.25 * options.priority +
175
+ 0.2 * options.touches +
176
+ 0.2 * options.recency,
177
+ };
178
+ case 'documentation':
179
+ return {
180
+ priority: options.documentationWeight,
181
+ gitTouches: options.touches,
182
+ recency: options.recency,
183
+ size: options.size,
184
+ currentDiff: options.currentDiff,
185
+ deferredTaskWeight: options.deferredWeight,
186
+ total: 0.5 * options.documentationWeight +
187
+ 0.2 * options.recency +
188
+ 0.15 * options.currentDiff +
189
+ 0.15 * options.touches,
190
+ };
191
+ case 'auto':
192
+ default:
193
+ return {
194
+ priority: options.priority,
195
+ gitTouches: options.touches,
196
+ recency: options.recency,
197
+ size: options.size,
198
+ currentDiff: options.currentDiff,
199
+ deferredTaskWeight: options.deferredWeight,
200
+ total: 0.3 * options.priority +
201
+ 0.25 * options.touches +
202
+ 0.15 * options.recency +
203
+ 0.15 * options.size +
204
+ 0.15 * options.deferredWeight,
205
+ };
206
+ }
207
+ }
208
+ function buildOutline(lines) {
209
+ const outlineLines = lines
210
+ .map((line, index) => ({ line, index: index + 1 }))
211
+ .filter(({ line }) => /^\s*(export\s+)?(async\s+)?function\b/.test(line) ||
212
+ /^\s*class\b/.test(line) ||
213
+ /^\s*(export\s+)?const\s+\w+\s*=/.test(line))
214
+ .slice(0, 10)
215
+ .map(({ line, index }) => `${index}: ${line.trim()}`);
216
+ return outlineLines.length > 0
217
+ ? outlineLines.join('\n')
218
+ : 'No obvious top-level symbols detected.';
219
+ }
220
+ function mergeWindows(windows) {
221
+ const ordered = [...windows].sort((left, right) => left.startLine - right.startLine);
222
+ const merged = [];
223
+ for (const window of ordered) {
224
+ const previous = merged.at(-1);
225
+ if (previous && window.startLine <= previous.endLine + 5) {
226
+ previous.endLine = Math.max(previous.endLine, window.endLine);
227
+ previous.reason = `${previous.reason}; ${window.reason}`;
228
+ continue;
229
+ }
230
+ merged.push({ ...window });
231
+ }
232
+ return merged.slice(0, 3);
233
+ }
234
+ function windowsFromDiff(workRoot, filePath, lineCount) {
235
+ try {
236
+ const raw = execFileSync('git', ['diff', '--unified=0', '--', filePath], {
237
+ cwd: workRoot,
238
+ encoding: 'utf8',
239
+ });
240
+ const windows = raw
241
+ .split('\n')
242
+ .filter((line) => line.startsWith('@@ '))
243
+ .map((line) => {
244
+ const match = /@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@/.exec(line);
245
+ const start = Number(match?.[1] ?? '1');
246
+ const span = Number(match?.[2] ?? '1');
247
+ return {
248
+ startLine: Math.max(1, start - 25),
249
+ endLine: Math.min(lineCount, start + Math.max(25, span + 25)),
250
+ reason: 'changed-hunk',
251
+ };
252
+ });
253
+ return mergeWindows(windows);
254
+ }
255
+ catch {
256
+ return [];
257
+ }
258
+ }
259
+ function windowsFromOutline(lines, lineCount) {
260
+ const anchorLines = lines
261
+ .map((line, index) => ({ line, index: index + 1 }))
262
+ .filter(({ line }) => /^\s*(export\s+)?(async\s+)?function\b/.test(line) ||
263
+ /^\s*class\b/.test(line) ||
264
+ /^\s*(export\s+)?const\s+\w+\s*=/.test(line))
265
+ .slice(0, 3)
266
+ .map(({ index }) => ({
267
+ startLine: Math.max(1, index - 20),
268
+ endLine: Math.min(lineCount, index + 40),
269
+ reason: 'outline-anchor',
270
+ }));
271
+ if (anchorLines.length > 0) {
272
+ return mergeWindows(anchorLines);
273
+ }
274
+ const fallbackStarts = [
275
+ 1,
276
+ Math.max(1, Math.floor(lineCount / 2) - 20),
277
+ Math.max(1, lineCount - 60),
278
+ ];
279
+ return mergeWindows(fallbackStarts.map((startLine, index) => ({
280
+ startLine,
281
+ endLine: Math.min(lineCount, startLine + 60),
282
+ reason: `fallback-window-${index + 1}`,
283
+ })));
284
+ }
285
+ function buildWindows(workRoot, filePath, lines) {
286
+ const lineCount = lines.length;
287
+ return windowsFromDiff(workRoot, filePath, lineCount).length > 0
288
+ ? windowsFromDiff(workRoot, filePath, lineCount)
289
+ : windowsFromOutline(lines, lineCount);
290
+ }
291
+ export function buildFileQueue(options) {
292
+ const files = discoverCandidateFiles(options.workRoot, {
293
+ includeExtensions: options.config.scan.includeExtensions,
294
+ excludeDirectories: options.config.scan.excludeDirectories,
295
+ });
296
+ const touchMetrics = loadGitTouchMetrics(options.workRoot);
297
+ const dirtyFiles = loadDirtyFiles(options.workRoot);
298
+ const maxTouches = Math.max(1, ...files.map((filePath) => touchMetrics.get(filePath)?.count ?? 0));
299
+ const newestTouch = Math.max(1, ...files.map((filePath) => new Date(touchMetrics.get(filePath)?.lastTouchedAt ?? 0).getTime()));
300
+ const maxLineCount = Math.max(1, ...files.map((filePath) => {
301
+ const content = readFileSync(resolve(options.workRoot, filePath), 'utf8');
302
+ return content.split('\n').length;
303
+ }));
304
+ const analyzeTokenBudget = options.config.runtime.stages.analyze.maxOutputTokens ?? options.config.runtime.maxOutputTokens;
305
+ return {
306
+ files: files.map((filePath) => {
307
+ const absolutePath = resolve(options.workRoot, filePath);
308
+ const content = readFileSync(absolutePath, 'utf8');
309
+ const lines = content.split('\n');
310
+ const lineCount = lines.length;
311
+ const estimatedTokens = Math.ceil(content.length / 4);
312
+ const windows = buildWindows(options.workRoot, filePath, lines);
313
+ const metric = touchMetrics.get(filePath);
314
+ const priority = 1 - filePriority(filePath) / 2;
315
+ const touches = normalize(metric?.count ?? 0, maxTouches);
316
+ const recency = normalize(Math.max(0, new Date(metric?.lastTouchedAt ?? 0).getTime()), newestTouch);
317
+ const size = normalize(Math.log(lineCount + 1), Math.log(maxLineCount + 1));
318
+ const currentDiff = dirtyFiles.has(filePath) ? 1 : 0;
319
+ const deferredWeight = deferredTaskWeight(options.taskStore, filePath);
320
+ const performanceWeight = performanceSignal(content);
321
+ const documentationWeight = documentationPriority(filePath);
322
+ const score = buildScore({
323
+ mode: options.mode,
324
+ priority,
325
+ touches,
326
+ recency,
327
+ size,
328
+ currentDiff,
329
+ deferredWeight,
330
+ performanceWeight,
331
+ documentationWeight,
332
+ });
333
+ const analysisStrategy = options.mode === 'linting'
334
+ ? 'tooling'
335
+ : estimatedTokens > Math.floor(analyzeTokenBudget * 0.75)
336
+ ? 'windowed'
337
+ : 'full';
338
+ return {
339
+ id: createFileId(filePath),
340
+ path: filePath,
341
+ group: fileGroup(filePath),
342
+ mode: options.mode,
343
+ status: 'queued',
344
+ createdAt: new Date().toISOString(),
345
+ updatedAt: new Date().toISOString(),
346
+ attemptCount: 0,
347
+ snapshotHash: createSnapshotHash(content),
348
+ lineCount,
349
+ estimatedTokens,
350
+ changedInWorktree: dirtyFiles.has(filePath),
351
+ gitTouchCount: metric?.count ?? 0,
352
+ lastTouchedAt: metric?.lastTouchedAt,
353
+ score,
354
+ analysisStrategy,
355
+ windows,
356
+ };
357
+ }),
358
+ };
359
+ }
360
+ export function prepareAnalysisMaterial(workRoot, file) {
361
+ const absolutePath = resolve(workRoot, file.path);
362
+ const content = existsSync(absolutePath) ? readFileSync(absolutePath, 'utf8') : '';
363
+ const lines = content.split('\n');
364
+ if (file.analysisStrategy === 'tooling') {
365
+ return {
366
+ strategy: 'tooling',
367
+ filePath: file.path,
368
+ estimatedTokens: file.estimatedTokens,
369
+ windows: [],
370
+ };
371
+ }
372
+ if (file.analysisStrategy === 'full') {
373
+ return {
374
+ strategy: 'full',
375
+ filePath: file.path,
376
+ estimatedTokens: file.estimatedTokens,
377
+ fullContent: content,
378
+ windows: [],
379
+ };
380
+ }
381
+ return {
382
+ strategy: 'windowed',
383
+ filePath: file.path,
384
+ estimatedTokens: file.estimatedTokens,
385
+ outline: buildOutline(lines),
386
+ windows: file.windows.map((window) => ({
387
+ ...window,
388
+ content: lines.slice(window.startLine - 1, window.endLine).join('\n'),
389
+ })),
390
+ };
391
+ }
392
+ export function modePrompt(mode) {
393
+ return MODE_PROMPTS[mode];
394
+ }
395
+ export function resolveSelectedAgents(options) {
396
+ const profile = options.config.modes.profiles[options.mode];
397
+ const requestedIds = options.overrideAgentIds && options.overrideAgentIds.length > 0
398
+ ? options.overrideAgentIds
399
+ : profile.agentIds && profile.agentIds.length > 0
400
+ ? profile.agentIds
401
+ : options.config.agents.selectedBuiltinAgents;
402
+ const enabledCategories = profile.categoryBias && profile.categoryBias.length > 0
403
+ ? new Set(profile.categoryBias.filter((category) => options.config.agents.enabledCategories.includes(category)))
404
+ : new Set(options.config.agents.enabledCategories);
405
+ const filtered = options.allAgents.filter((agent) => requestedIds.includes(agent.id) &&
406
+ agent.categories.some((category) => enabledCategories.has(category)) &&
407
+ agent.techLenses.some((lens) => options.projectFingerprint.techLenses.includes(lens)));
408
+ if (filtered.length > 0) {
409
+ return filtered;
410
+ }
411
+ return options.allAgents.filter((agent) => requestedIds.includes(agent.id) &&
412
+ agent.categories.some((category) => enabledCategories.has(category)));
413
+ }
414
+ export function canRunSecondFixWorker(filePaths) {
415
+ const groups = new Set(filePaths.map((filePath) => fileGroup(filePath)));
416
+ return groups.size === filePaths.length;
417
+ }
418
+ export function summarizeEvidence(evidence) {
419
+ return evidence
420
+ .map((item) => `${item.file}:${item.startLine}-${item.endLine} ${item.note}`)
421
+ .join('; ');
422
+ }
423
+ //# sourceMappingURL=modes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/runtime/modes.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,22 @@
1
1
  import type { AgentDefinition, FixResult, ProjectFingerprint, RuntimeAdapter, ScanResult, TaskRecord } from '../types/domain.js';
2
+ import type { AnalysisMaterial } from './modes.js';
2
3
  export declare function scanJsonSchemaExample(): string;
3
4
  export declare function fixJsonSchemaExample(adapter: RuntimeAdapter): string;
4
5
  export declare function buildScanPrompt(input: {
5
6
  filePath: string;
6
- fileContent: string;
7
+ material: AnalysisMaterial;
7
8
  fingerprint: ProjectFingerprint;
8
9
  agents: AgentDefinition[];
10
+ modePrompt: string;
9
11
  }): string;
10
12
  export declare function buildFixPrompt(input: {
11
13
  adapter: RuntimeAdapter;
12
14
  task: TaskRecord;
13
- fileContent: string;
14
- validateAfterFix: boolean;
15
+ fileContents: Array<{
16
+ path: string;
17
+ content: string;
18
+ }>;
19
+ modePrompt: string;
15
20
  }): string;
16
21
  export declare function summarizeScanResult(result: ScanResult): string;
17
22
  export declare function summarizeFixResult(result: FixResult): string;
@@ -4,18 +4,28 @@ function fencedFileBlock(filePath, content) {
4
4
  }
5
5
  export function scanJsonSchemaExample() {
6
6
  return JSON.stringify({
7
- fileSummary: 'Short factual summary of the file.',
7
+ fileSummary: 'Short factual summary of the file or analyzed windows.',
8
8
  tasks: [
9
9
  {
10
10
  category: 'bugs',
11
11
  title: 'Concrete small task title',
12
12
  file: 'src/example.ts',
13
+ targetFiles: ['src/example.ts'],
13
14
  rationale: 'Why this matters.',
14
15
  validation: 'How to verify the change.',
15
16
  severity: 'medium',
16
17
  effort: 'small',
17
18
  risk: 'low',
18
19
  sourceAgent: 'bug-investigator',
20
+ evidence: [
21
+ {
22
+ file: 'src/example.ts',
23
+ startLine: 10,
24
+ endLine: 16,
25
+ note: 'Null path is missing a guard.',
26
+ },
27
+ ],
28
+ confidence: 0.82,
19
29
  techLenses: ['typescript'],
20
30
  },
21
31
  ],
@@ -25,7 +35,7 @@ export function scanJsonSchemaExample() {
25
35
  export function fixJsonSchemaExample(adapter) {
26
36
  const base = {
27
37
  summary: 'Short summary of the applied change.',
28
- validationSummary: 'What validation ran.',
38
+ validationSummary: 'Host validation runs after the fix.',
29
39
  changedFiles: ['src/example.ts'],
30
40
  needsHumanReview: false,
31
41
  };
@@ -42,17 +52,48 @@ export function fixJsonSchemaExample(adapter) {
42
52
  }
43
53
  return JSON.stringify(base, null, 2);
44
54
  }
55
+ function renderAgentPrompts(agents) {
56
+ if (agents.length === 0) {
57
+ return 'No explicit agent prompts were selected. Use the file evidence and mode instructions only.';
58
+ }
59
+ return agents.map((agent) => `- ${agent.id}: ${agent.prompt}`).join('\n');
60
+ }
61
+ function renderAnalysisMaterial(material) {
62
+ if (material.strategy === 'full') {
63
+ return fencedFileBlock(material.filePath, material.fullContent ?? '');
64
+ }
65
+ if (material.strategy === 'tooling') {
66
+ return `TARGET_FILE: ${material.filePath}\n\nTooling-first mode is active. Use AI only if tool diagnostics are absent.`;
67
+ }
68
+ const sections = [
69
+ `TARGET_FILE: ${material.filePath}`,
70
+ '',
71
+ 'The file exceeded the full-context budget. Use the outline and windows below.',
72
+ '',
73
+ 'Outline:',
74
+ material.outline ?? 'No outline available.',
75
+ '',
76
+ ];
77
+ for (const window of material.windows) {
78
+ sections.push(`Window ${window.startLine}-${window.endLine} (${window.reason})`, '', fencedFileBlock(material.filePath, window.content), '');
79
+ }
80
+ return sections.join('\n');
81
+ }
45
82
  export function buildScanPrompt(input) {
46
83
  return [
47
84
  'You are Corydora, a code scrubbing agent.',
48
- 'Review exactly one file and produce only small, concrete, non-duplicative tasks.',
49
- 'Do not suggest broad rewrites unless risk is explicitly broad.',
85
+ input.modePrompt,
86
+ 'Review exactly one file target and produce only small, concrete, non-duplicative tasks.',
87
+ 'Prefer fixes that can be executed independently and validated automatically.',
50
88
  '',
51
89
  `Project frameworks: ${input.fingerprint.frameworks.join(', ') || 'unknown'}`,
52
90
  `Project tech lenses: ${input.fingerprint.techLenses.join(', ') || 'refactoring'}`,
53
- `Active agents: ${input.agents.map((agent) => `${agent.id} (${agent.description})`).join('; ')}`,
91
+ `Analysis strategy: ${input.material.strategy}`,
54
92
  '',
55
- fencedFileBlock(input.filePath, input.fileContent),
93
+ 'Selected agent prompts:',
94
+ renderAgentPrompts(input.agents),
95
+ '',
96
+ renderAnalysisMaterial(input.material),
56
97
  '',
57
98
  'Return JSON only matching this shape:',
58
99
  scanJsonSchemaExample(),
@@ -62,32 +103,37 @@ export function buildFixPrompt(input) {
62
103
  const instructions = input.adapter.executionMode === 'native-agent'
63
104
  ? [
64
105
  'Use available tools to edit the working tree directly.',
65
- 'Keep the change behavior-preserving and low/medium risk unless the task says otherwise.',
66
- input.validateAfterFix
67
- ? 'Run the narrowest sensible validation after the change.'
68
- : 'Validation can be deferred if no narrow command exists.',
106
+ 'Only touch the files in TARGET_FILES unless the task evidence makes an additional nearby edit necessary.',
107
+ 'Host validation runs after the fix. Do not run repo-wide formatting.',
69
108
  ]
70
109
  : [
71
110
  'Return a JSON object with full replacement file contents in `fileEdits`.',
72
- 'Only rewrite the target file unless the task explicitly requires more.',
111
+ 'Only rewrite the target files unless the task explicitly requires more.',
73
112
  'Do not return prose outside the JSON object.',
74
113
  ];
75
114
  return [
76
115
  'You are Corydora, executing one queued task.',
116
+ input.modePrompt,
77
117
  ...instructions,
78
118
  '',
79
119
  `TASK_ID: ${input.task.id}`,
80
120
  `TARGET_FILE: ${input.task.file}`,
121
+ `TARGET_FILES: ${input.task.handoff.targetFiles.join(', ')}`,
81
122
  `TASK_TITLE: ${input.task.title}`,
82
123
  `TASK_CATEGORY: ${input.task.category}`,
83
124
  `TASK_RISK: ${input.task.risk}`,
84
125
  `TASK_VALIDATION_HINT: ${input.task.validation}`,
126
+ `TASK_CONFIDENCE: ${input.task.handoff.confidence}`,
127
+ `TASK_SNAPSHOT_HASH: ${input.task.snapshotHash}`,
85
128
  '',
86
129
  'Rationale:',
87
130
  input.task.rationale,
88
131
  '',
132
+ 'Evidence:',
133
+ ...input.task.handoff.evidence.map((item) => `- ${item.file}:${item.startLine}-${item.endLine} ${item.note}`),
134
+ '',
89
135
  'Current file content:',
90
- fencedFileBlock(input.task.file, input.fileContent),
136
+ ...input.fileContents.map(({ path, content }) => fencedFileBlock(path, content)),
91
137
  '',
92
138
  'Return JSON only matching this shape:',
93
139
  fixJsonSchemaExample(input.adapter),
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/runtime/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/runtime/prompts.ts"],"names":[],"mappings":"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"}