opencode-autoresearch 3.5.0 → 3.7.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 (61) hide show
  1. package/.opencode-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +166 -0
  3. package/INSTALL.md +2 -2
  4. package/README.md +79 -39
  5. package/VERSION +1 -1
  6. package/dist/badge.d.ts +9 -0
  7. package/dist/badge.d.ts.map +1 -0
  8. package/dist/badge.js +86 -0
  9. package/dist/badge.js.map +1 -0
  10. package/dist/cli.js +638 -28
  11. package/dist/cli.js.map +1 -1
  12. package/dist/constants.d.ts +7 -1
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +7 -1
  15. package/dist/constants.js.map +1 -1
  16. package/dist/goal-init.d.ts +30 -0
  17. package/dist/goal-init.d.ts.map +1 -0
  18. package/dist/goal-init.js +109 -0
  19. package/dist/goal-init.js.map +1 -0
  20. package/dist/helpers.d.ts +30 -2
  21. package/dist/helpers.d.ts.map +1 -1
  22. package/dist/helpers.js +213 -7
  23. package/dist/helpers.js.map +1 -1
  24. package/dist/index.d.ts +10 -4
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +6 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/memory-manager.d.ts +24 -0
  29. package/dist/memory-manager.d.ts.map +1 -0
  30. package/dist/memory-manager.js +336 -0
  31. package/dist/memory-manager.js.map +1 -0
  32. package/dist/run-manager.d.ts +27 -2
  33. package/dist/run-manager.d.ts.map +1 -1
  34. package/dist/run-manager.js +210 -15
  35. package/dist/run-manager.js.map +1 -1
  36. package/dist/score-parser.d.ts +56 -0
  37. package/dist/score-parser.d.ts.map +1 -0
  38. package/dist/score-parser.js +109 -0
  39. package/dist/score-parser.js.map +1 -0
  40. package/dist/subagent-pool.d.ts +8 -0
  41. package/dist/subagent-pool.d.ts.map +1 -1
  42. package/dist/subagent-pool.js +67 -0
  43. package/dist/subagent-pool.js.map +1 -1
  44. package/dist/task-schema.d.ts +62 -0
  45. package/dist/task-schema.d.ts.map +1 -0
  46. package/dist/task-schema.js +95 -0
  47. package/dist/task-schema.js.map +1 -0
  48. package/dist/translators/cli.d.ts +5 -0
  49. package/dist/translators/cli.d.ts.map +1 -0
  50. package/dist/translators/cli.js +85 -0
  51. package/dist/translators/cli.js.map +1 -0
  52. package/dist/translators/hermes.d.ts +28 -0
  53. package/dist/translators/hermes.d.ts.map +1 -0
  54. package/dist/translators/hermes.js +102 -0
  55. package/dist/translators/hermes.js.map +1 -0
  56. package/dist/types.d.ts +104 -0
  57. package/dist/types.d.ts.map +1 -1
  58. package/docs/ARCHITECTURE.md +3 -0
  59. package/docs/RELEASE.md +15 -36
  60. package/hooks/verify-package.sh +5 -1
  61. package/package.json +6 -6
@@ -1,52 +1,107 @@
1
- import { utcNow, ensureParent, atomicWriteJson, readJsonFile, parseRunState, resolvePath, normalizeDirection, parseDurationSeconds, normalizeLabels, missingRequiredLabels, AutoresearchError, } from "./helpers.js";
2
- import { RESULTS_DEFAULT, STATE_DEFAULT } from "./constants.js";
3
- import { buildSubagentPoolPlan, buildContinuationPolicy } from "./subagent-pool.js";
1
+ import { utcNow, ensureParent, atomicWriteJson, readJsonFile, parseRunState, resolvePath, normalizeDirection, normalizeOperatingMode, normalizeScorerStatus, parseDurationSeconds, normalizeLabels, missingRequiredLabels, writeGoalDoc, AutoresearchError, } from "./helpers.js";
2
+ import { RESULTS_DEFAULT, STATE_DEFAULT, SCORE_HISTORY_DEFAULT, GOAL_DEFAULT } from "./constants.js";
3
+ import { buildSubagentPoolPlan, buildContinuationPolicy, buildDraftPoolPlan } from "./subagent-pool.js";
4
4
  import { writeFileSync, appendFileSync, existsSync, constants } from "fs";
5
5
  import { lstat, open } from "fs/promises";
6
6
  const MAX_RESULTS_BYTES = 10 * 1024 * 1024;
7
- export async function initializeRun(repo, resultsPathValue, statePathValue, config, freshStart) {
7
+ export async function initializeRun(repo, resultsPathValue, statePathValue, config, freshStart, goalPathValue) {
8
8
  const resultsPath = resolvePath(repo, resultsPathValue, RESULTS_DEFAULT);
9
9
  const statePath = resolvePath(repo, statePathValue, STATE_DEFAULT);
10
+ const goalPath = resolvePath(repo, goalPathValue, GOAL_DEFAULT);
10
11
  if (existsSync(statePath) && !freshStart) {
11
12
  throw new AutoresearchError(`${statePath} already exists. Use --fresh-start to archive.`);
12
13
  }
13
- const header = "timestamp\titeration\tdecision\tmetric_value\tverify_status\tguard_status\thypothesis\tchange_summary\tlabels\tnote\n";
14
+ const header = "timestamp\titeration\tdecision\tmetric_value\tinstrument_value\tverify_status\tguard_status\thypothesis\tchange_summary\tlabels\tnote\tid\tparent_id\tbranch\tstage\tagent\n";
14
15
  ensureParent(resultsPath);
15
16
  if (!existsSync(resultsPath)) {
16
17
  writeFileSync(resultsPath, header, "utf-8");
17
18
  }
18
19
  const state = makeStatePayload(config, resultsPath, statePath);
19
20
  atomicWriteJson(statePath, state);
21
+ writeGoalDoc(goalPath, {
22
+ goal: config.goal,
23
+ metric: config.outcome_metric ?? config.metric,
24
+ direction: config.outcome_direction ?? config.direction ?? "lower",
25
+ verify: config.verify ?? "",
26
+ guard: config.guard,
27
+ constraints: undefined,
28
+ file_map: config.scope || undefined,
29
+ stop_conditions: config.stop_condition,
30
+ });
20
31
  return state;
21
32
  }
22
- export async function appendIteration(repo, resultsPathValue, statePathValue, decision, metricValue, verifyStatus, guardStatus, hypothesis, changeSummary, labels, note, iteration) {
33
+ export async function appendIteration(repo, resultsPathValue, statePathValue, decision, metricValue, instrumentValue, verifyStatus, guardStatus, hypothesis, changeSummary, labels, note, iteration, scoreHistoryPathValue, scorerStatusOrScoreComponents, scoreComponentsValue, lineage) {
23
34
  const resultsPath = resolvePath(repo, resultsPathValue, RESULTS_DEFAULT);
24
35
  const statePath = resolvePath(repo, statePathValue, STATE_DEFAULT);
36
+ const scoreHistoryPath = resolvePath(repo, scoreHistoryPathValue, SCORE_HISTORY_DEFAULT);
25
37
  const state = parseRunState(readJsonFile(statePath));
26
38
  const currentIteration = iteration ?? state.stats.total_iterations + 1;
27
39
  const now = utcNow();
40
+ const scorerStatusValue = typeof scorerStatusOrScoreComponents === "string" ? scorerStatusOrScoreComponents : undefined;
41
+ const inferredLineage = lineage
42
+ ?? (isExperimentLineage(scorerStatusOrScoreComponents) ? scorerStatusOrScoreComponents : undefined)
43
+ ?? (isExperimentLineage(scoreComponentsValue) ? scoreComponentsValue : undefined);
44
+ const scoreComponents = typeof scorerStatusOrScoreComponents === "object" && !isExperimentLineage(scorerStatusOrScoreComponents)
45
+ ? scorerStatusOrScoreComponents
46
+ : isExperimentLineage(scoreComponentsValue) ? undefined : scoreComponentsValue;
47
+ const scorerStatus = normalizeScorerStatus(scorerStatusValue);
48
+ const effectiveDecision = scorerStatus === "scorer-broken" && (decision === "keep" || decision === "discard")
49
+ ? "needs_human"
50
+ : decision;
28
51
  const labelList = normalizeLabels(labels ?? []);
29
52
  const labelReqs = state.label_requirements ?? { keep: [], stop: [] };
30
53
  const requiredKeep = normalizeLabels(labelReqs.keep ?? []);
31
54
  const requiredStop = normalizeLabels(labelReqs.stop ?? []);
32
55
  const missingKeep = missingRequiredLabels(labelList, requiredKeep);
33
56
  const missingStop = missingRequiredLabels(labelList, requiredStop);
34
- if (decision === "keep" && missingKeep.length > 0) {
57
+ if (effectiveDecision === "keep" && missingKeep.length > 0) {
35
58
  throw new AutoresearchError(`Keep requires labels: ${missingKeep.join(", ")}`);
36
59
  }
60
+ const lineageId = inferredLineage?.id ?? `${state.run_id}-iter-${currentIteration}`;
61
+ const lineageParentId = inferredLineage?.parent_id ?? (currentIteration > 1 ? `${state.run_id}-iter-${currentIteration - 1}` : "");
62
+ const lineageBranch = inferredLineage?.branch ?? state.draft_pool?.best_branch_id ?? "main";
63
+ const lineageStage = inferredLineage?.stage ?? "experiment";
64
+ const lineageAgent = inferredLineage?.agent ?? "orchestrator";
37
65
  const resultRow = [
38
66
  now,
39
67
  String(currentIteration),
40
68
  decision,
41
69
  metricValue ?? "",
70
+ instrumentValue ?? "",
42
71
  verifyStatus,
43
72
  guardStatus,
44
73
  hypothesis ?? "",
45
74
  changeSummary,
46
75
  labelList.join(","),
47
76
  note ?? "",
77
+ lineageId,
78
+ lineageParentId,
79
+ lineageBranch,
80
+ lineageStage,
81
+ lineageAgent,
48
82
  ].join("\t") + "\n";
49
83
  appendFileSync(resultsPath, resultRow, "utf-8");
84
+ const scoreRecord = {
85
+ timestamp: now,
86
+ iteration: currentIteration,
87
+ run_id: state.run_id,
88
+ decision: effectiveDecision,
89
+ scorer_status: scorerStatus,
90
+ metric_value: metricValue ?? null,
91
+ metric_name: state.metric.name,
92
+ metric_direction: state.metric.direction,
93
+ verify_status: verifyStatus,
94
+ guard_status: guardStatus,
95
+ id: lineageId,
96
+ parent_id: lineageParentId,
97
+ branch: lineageBranch,
98
+ stage: lineageStage,
99
+ agent: lineageAgent,
100
+ };
101
+ if (scoreComponents != null) {
102
+ scoreRecord.score_components = scoreComponents;
103
+ }
104
+ await appendTextFileNoFollow(scoreHistoryPath, JSON.stringify(scoreRecord) + "\n", "score history file");
50
105
  const newState = {
51
106
  ...state,
52
107
  updated_at: now,
@@ -57,26 +112,28 @@ export async function appendIteration(repo, resultsPathValue, statePathValue, de
57
112
  },
58
113
  flags: {
59
114
  ...state.flags,
60
- stop_ready: decision === "keep" && missingStop.length === 0,
115
+ stop_ready: effectiveDecision === "keep" && missingStop.length === 0,
61
116
  },
62
117
  };
63
- if (decision === "keep") {
118
+ if (effectiveDecision === "keep") {
64
119
  newState.stats.kept = newState.stats.kept + 1;
65
120
  newState.stats.consecutive_discards = 0;
66
121
  }
67
- else if (decision === "discard") {
122
+ else if (effectiveDecision === "discard") {
68
123
  newState.stats.discarded = newState.stats.discarded + 1;
69
124
  newState.stats.consecutive_discards = newState.stats.consecutive_discards + 1;
70
125
  }
71
- else if (decision === "needs_human") {
126
+ else if (effectiveDecision === "needs_human") {
72
127
  newState.stats.needs_human = newState.stats.needs_human + 1;
73
128
  newState.flags.needs_human = true;
74
129
  newState.stats.consecutive_discards = 0;
75
130
  }
76
131
  newState.last_iteration = {
77
132
  iteration: currentIteration,
78
- decision,
133
+ decision: effectiveDecision,
134
+ scorer_status: scorerStatus,
79
135
  metric_value: metricValue,
136
+ instrument_value: instrumentValue,
80
137
  change_summary: changeSummary,
81
138
  labels: labelList,
82
139
  timestamp: now,
@@ -84,10 +141,66 @@ export async function appendIteration(repo, resultsPathValue, statePathValue, de
84
141
  stop_labels_satisfied: missingStop.length === 0,
85
142
  missing_keep_labels: missingKeep,
86
143
  missing_stop_labels: missingStop,
144
+ id: lineageId,
145
+ parent_id: lineageParentId,
146
+ branch: lineageBranch,
147
+ stage: lineageStage,
148
+ agent: lineageAgent,
87
149
  };
150
+ if (scoreComponents != null) {
151
+ newState.last_iteration.score_components = scoreComponents;
152
+ }
88
153
  atomicWriteJson(statePath, newState);
89
154
  return newState;
90
155
  }
156
+ function isExperimentLineage(value) {
157
+ if (value === null || typeof value !== "object" || Array.isArray(value))
158
+ return false;
159
+ return ["id", "parent_id", "branch", "stage", "agent"].some((key) => key in value);
160
+ }
161
+ async function appendTextFileNoFollow(filePath, content, description) {
162
+ ensureParent(filePath);
163
+ try {
164
+ const pathStats = await lstat(filePath);
165
+ if (pathStats.isSymbolicLink()) {
166
+ throw new AutoresearchError(`Refusing to append to symlinked ${description}; Refusing to write symlinked ${description}: ${filePath}`);
167
+ }
168
+ if (!pathStats.isFile()) {
169
+ throw new AutoresearchError(`Refusing to append to non-regular ${description}: ${filePath}`);
170
+ }
171
+ }
172
+ catch (err) {
173
+ if (err instanceof AutoresearchError)
174
+ throw err;
175
+ const code = err.code;
176
+ if (code !== "ENOENT")
177
+ throw err;
178
+ }
179
+ if (typeof constants.O_NOFOLLOW !== "number") {
180
+ throw new AutoresearchError(`Refusing to append to ${description} because this platform does not support O_NOFOLLOW: ${filePath}`);
181
+ }
182
+ let handle;
183
+ try {
184
+ handle = await open(filePath, constants.O_WRONLY | constants.O_CREAT | constants.O_APPEND | constants.O_NOFOLLOW, 0o600);
185
+ }
186
+ catch (err) {
187
+ const code = err.code;
188
+ if (code === "ELOOP") {
189
+ throw new AutoresearchError(`Refusing to write symlinked ${description}: ${filePath}`);
190
+ }
191
+ throw err;
192
+ }
193
+ try {
194
+ const stats = await handle.stat();
195
+ if (!stats.isFile()) {
196
+ throw new AutoresearchError(`Refusing to append to non-regular ${description}: ${filePath}`);
197
+ }
198
+ await handle.writeFile(content, "utf-8");
199
+ }
200
+ finally {
201
+ await handle.close();
202
+ }
203
+ }
91
204
  export function makeStatePayload(config, resultsPath, statePath) {
92
205
  const now = utcNow();
93
206
  const durationSeconds = parseDurationSeconds(config.duration);
@@ -100,24 +213,42 @@ export function makeStatePayload(config, resultsPath, statePath) {
100
213
  mode: config.mode,
101
214
  });
102
215
  const continuationPolicy = buildContinuationPolicy(config.mode);
216
+ const draftPool = (config.num_drafts ?? 1) > 1
217
+ ? buildDraftPoolPlan({
218
+ num_drafts: config.num_drafts ?? 1,
219
+ branch_selection_policy: config.branch_selection_policy ?? "best",
220
+ baseline_iteration: 0,
221
+ })
222
+ : undefined;
223
+ const runId = config.run_tag ?? `run-${Date.now().toString(36)}`;
103
224
  return {
104
225
  schema_version: 1,
105
- run_id: config.run_tag ?? `run-${Date.now().toString(36)}`,
226
+ run_id: runId,
106
227
  created_at: now,
107
228
  updated_at: now,
108
229
  status: "initialized",
109
230
  mode: config.mode,
231
+ operating_mode: normalizeOperatingMode(config.operating_mode),
110
232
  goal: config.goal,
111
233
  scope: config.scope ?? "current repository",
112
234
  metric: {
113
- name: config.metric,
114
- direction: normalizeDirection(config.direction),
235
+ name: config.outcome_metric ?? config.metric,
236
+ direction: normalizeDirection(config.outcome_direction ?? config.direction),
115
237
  baseline: config.baseline,
116
238
  best: config.baseline,
117
239
  latest: config.baseline,
118
240
  },
241
+ instrument_metric: config.instrument_metric ? {
242
+ name: config.instrument_metric,
243
+ direction: normalizeDirection(config.instrument_direction ?? config.direction),
244
+ baseline: config.baseline,
245
+ best: config.baseline,
246
+ latest: config.baseline,
247
+ } : undefined,
119
248
  verify: config.verify,
120
249
  guard: config.guard,
250
+ scorer: config.scorer,
251
+ max_no_progress: config.max_no_progress,
121
252
  iterations_cap: config.iterations,
122
253
  duration: config.duration,
123
254
  duration_seconds: durationSeconds ?? undefined,
@@ -147,6 +278,14 @@ export function makeStatePayload(config, resultsPath, statePath) {
147
278
  },
148
279
  subagent_pool: subagentPool,
149
280
  continuation_policy: continuationPolicy,
281
+ draft_pool: draftPool,
282
+ lineage: {
283
+ id: `exp-${runId}`,
284
+ parent_id: null,
285
+ branch: "main",
286
+ stage: "experiment",
287
+ agent: "orchestrator",
288
+ },
150
289
  };
151
290
  }
152
291
  export async function setStopRequested(repo, statePathValue) {
@@ -260,6 +399,10 @@ export async function buildSupervisorSnapshot(repo, resultsPathValue, statePathV
260
399
  decision = "stop";
261
400
  reason = "iteration_cap_reached";
262
401
  }
402
+ else if (state.max_no_progress != null && state.stats.consecutive_discards >= state.max_no_progress) {
403
+ decision = "stop";
404
+ reason = "no_progress";
405
+ }
263
406
  else if (state.status === "completed" || state.status === "stopped") {
264
407
  decision = "stop";
265
408
  reason = `state_${state.status}`;
@@ -270,14 +413,66 @@ export async function buildSupervisorSnapshot(repo, resultsPathValue, statePathV
270
413
  run_id: state.run_id,
271
414
  status: state.status,
272
415
  mode: state.mode,
416
+ operating_mode: state.operating_mode,
273
417
  goal: state.goal,
274
418
  metric: state.metric,
419
+ instrument_metric: state.instrument_metric,
275
420
  stats: state.stats,
276
421
  last_iteration: state.last_iteration,
277
422
  results_rows: resultsRows,
278
423
  artifact_paths: state.artifact_paths,
279
424
  flags: state.flags,
280
425
  label_requirements: state.label_requirements,
426
+ subagent_pool: state.subagent_pool,
427
+ continuation_policy: state.continuation_policy,
428
+ draft_pool: state.draft_pool,
429
+ };
430
+ }
431
+ export function parseResultRow(line) {
432
+ if (!line.trim())
433
+ return null;
434
+ const parts = line.split("\t");
435
+ if (parts.length < 11)
436
+ return null;
437
+ if (parts.length === 11) {
438
+ return {
439
+ timestamp: parts[0],
440
+ iteration: parseInt(parts[1], 10),
441
+ decision: parts[2],
442
+ metric_value: parts[3],
443
+ instrument_value: parts[4],
444
+ verify_status: parts[5],
445
+ guard_status: parts[6],
446
+ hypothesis: parts[7],
447
+ change_summary: parts[8],
448
+ labels: parts[9],
449
+ note: parts[10],
450
+ id: "",
451
+ parent_id: "",
452
+ branch: "main",
453
+ stage: "",
454
+ agent: "",
455
+ };
456
+ }
457
+ if (parts.length < 16)
458
+ return null;
459
+ return {
460
+ timestamp: parts[0],
461
+ iteration: parseInt(parts[1], 10),
462
+ decision: parts[2],
463
+ metric_value: parts[3],
464
+ instrument_value: parts[4],
465
+ verify_status: parts[5],
466
+ guard_status: parts[6],
467
+ hypothesis: parts[7],
468
+ change_summary: parts[8],
469
+ labels: parts[9],
470
+ note: parts[10],
471
+ id: parts[11],
472
+ parent_id: parts[12],
473
+ branch: parts[13],
474
+ stage: parts[14],
475
+ agent: parts[15],
281
476
  };
282
477
  }
283
478
  //# sourceMappingURL=run-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../src/run-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../src/run-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Represents the standardized score contract
3
+ */
4
+ export interface ScoreOutput {
5
+ /** The current score value (required) */
6
+ score: number;
7
+ /** The maximum possible score (required) */
8
+ max: number;
9
+ /** Optional component breakdown */
10
+ components?: Record<string, number>;
11
+ /** Optional diagnostic information */
12
+ diagnostics?: Record<string, unknown>;
13
+ /** Optional additional details */
14
+ details?: Record<string, unknown>;
15
+ }
16
+ /**
17
+ * Parses and validates score script output according to the standardized contract
18
+ * @param output - Raw string output from a score script
19
+ * @returns Parsed and validated ScoreOutput object
20
+ * @throws AutoresearchError if the output is invalid
21
+ */
22
+ export declare function parseScoreOutput(output: string): ScoreOutput;
23
+ /**
24
+ * A ranked component entry showing its name and net delta across a run.
25
+ */
26
+ export interface ComponentDelta {
27
+ /** Component name */
28
+ name: string;
29
+ /** Net change: last observed value minus first observed value */
30
+ delta: number;
31
+ }
32
+ /**
33
+ * Result of ranking components for a run.
34
+ */
35
+ export interface ComponentRanking {
36
+ /** Components with the most negative delta (largest decreases), sorted ascending by delta value (most negative first) */
37
+ top_negative: ComponentDelta[];
38
+ /** Components with the most positive delta (largest increases), sorted descending by delta value (most positive first) */
39
+ top_positive: ComponentDelta[];
40
+ }
41
+ /**
42
+ * Ranks score components across a sequence of score history records by their
43
+ * net change from first to last observed value.
44
+ *
45
+ * Records without a `score_components` field are skipped. The function returns
46
+ * the `topN` largest positive and negative deltas.
47
+ *
48
+ * @param records - Array of score history records, each optionally containing
49
+ * a `score_components` map.
50
+ * @param topN - Maximum number of entries in each ranking list (default: 5).
51
+ * @returns ComponentRanking with top_negative and top_positive lists.
52
+ */
53
+ export declare function rankComponents(records: Array<{
54
+ score_components?: Record<string, number>;
55
+ }>, topN?: number): ComponentRanking;
56
+ //# sourceMappingURL=score-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"score-parser.d.ts","sourceRoot":"","sources":["../src/score-parser.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAwE5D;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yHAAyH;IACzH,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,0HAA0H;IAC1H,YAAY,EAAE,cAAc,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,EAC7D,IAAI,GAAE,MAAU,GACf,gBAAgB,CA4BlB"}
@@ -0,0 +1,109 @@
1
+ import { AutoresearchError } from "./helpers.js";
2
+ /**
3
+ * Parses and validates score script output according to the standardized contract
4
+ * @param output - Raw string output from a score script
5
+ * @returns Parsed and validated ScoreOutput object
6
+ * @throws AutoresearchError if the output is invalid
7
+ */
8
+ export function parseScoreOutput(output) {
9
+ if (typeof output !== 'string') {
10
+ throw new AutoresearchError("Score output must be a non-empty string");
11
+ }
12
+ const trimmedOutput = output.trim();
13
+ if (!trimmedOutput) {
14
+ throw new AutoresearchError("Score output must be a non-empty string");
15
+ }
16
+ let parsed;
17
+ try {
18
+ parsed = JSON.parse(trimmedOutput);
19
+ }
20
+ catch (error) {
21
+ const message = error instanceof Error ? error.message : String(error);
22
+ throw new AutoresearchError(`Invalid JSON in score output: ${message}`);
23
+ }
24
+ // Validate that we have an object
25
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
26
+ throw new AutoresearchError("Score output must be a JSON object");
27
+ }
28
+ const obj = parsed;
29
+ // Validate required 'score' field
30
+ if (!('score' in obj) || typeof obj.score !== 'number' || !isFinite(obj.score)) {
31
+ throw new AutoresearchError("Score output must contain a numeric 'score' field");
32
+ }
33
+ // Validate required 'max' field
34
+ if (!('max' in obj) || typeof obj.max !== 'number' || !isFinite(obj.max) || obj.max <= 0) {
35
+ throw new AutoresearchError("Score output must contain a positive numeric 'max' field");
36
+ }
37
+ // Validate optional 'components' field if present
38
+ if ('components' in obj && obj.components !== undefined) {
39
+ if (obj.components === null || typeof obj.components !== 'object' || Array.isArray(obj.components)) {
40
+ throw new AutoresearchError("Score output 'components' field must be an object if present");
41
+ }
42
+ // Validate that all component values are numbers
43
+ const components = obj.components;
44
+ for (const [key, value] of Object.entries(components)) {
45
+ if (typeof value !== 'number' || !isFinite(value)) {
46
+ throw new AutoresearchError(`Score output components.${key} must be a number`);
47
+ }
48
+ }
49
+ }
50
+ // Validate optional 'diagnostics' field if present
51
+ if ('diagnostics' in obj && obj.diagnostics !== undefined) {
52
+ if (obj.diagnostics === null || typeof obj.diagnostics !== 'object' || Array.isArray(obj.diagnostics)) {
53
+ throw new AutoresearchError("Score output 'diagnostics' field must be an object if present");
54
+ }
55
+ }
56
+ // Validate optional 'details' field if present
57
+ if ('details' in obj && obj.details !== undefined) {
58
+ if (obj.details === null || typeof obj.details !== 'object' || Array.isArray(obj.details)) {
59
+ throw new AutoresearchError("Score output 'details' field must be an object if present");
60
+ }
61
+ }
62
+ // Return the validated object with proper typing
63
+ return {
64
+ score: obj.score,
65
+ max: obj.max,
66
+ components: obj.components,
67
+ diagnostics: obj.diagnostics,
68
+ details: obj.details
69
+ };
70
+ }
71
+ /**
72
+ * Ranks score components across a sequence of score history records by their
73
+ * net change from first to last observed value.
74
+ *
75
+ * Records without a `score_components` field are skipped. The function returns
76
+ * the `topN` largest positive and negative deltas.
77
+ *
78
+ * @param records - Array of score history records, each optionally containing
79
+ * a `score_components` map.
80
+ * @param topN - Maximum number of entries in each ranking list (default: 5).
81
+ * @returns ComponentRanking with top_negative and top_positive lists.
82
+ */
83
+ export function rankComponents(records, topN = 5) {
84
+ const first = {};
85
+ const last = {};
86
+ for (const rec of records) {
87
+ if (rec.score_components == null)
88
+ continue;
89
+ for (const [name, value] of Object.entries(rec.score_components)) {
90
+ if (!(name in first))
91
+ first[name] = value;
92
+ last[name] = value;
93
+ }
94
+ }
95
+ const deltas = Object.keys(first).map((name) => ({
96
+ name,
97
+ delta: (last[name] ?? first[name]) - first[name],
98
+ }));
99
+ const positive = deltas
100
+ .filter((d) => d.delta > 0)
101
+ .sort((a, b) => b.delta - a.delta)
102
+ .slice(0, topN);
103
+ const negative = deltas
104
+ .filter((d) => d.delta < 0)
105
+ .sort((a, b) => a.delta - b.delta)
106
+ .slice(0, topN);
107
+ return { top_negative: negative, top_positive: positive };
108
+ }
109
+ //# sourceMappingURL=score-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"score-parser.js","sourceRoot":"","sources":["../src/score-parser.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { DraftBranch, DraftPoolConfig } from "./types.js";
1
2
  export interface RoleTemplate {
2
3
  id: string;
3
4
  name: string;
@@ -10,4 +11,11 @@ export declare function buildSubagentPoolPlan(params: {
10
11
  mode: string;
11
12
  }): Record<string, unknown>;
12
13
  export declare function buildContinuationPolicy(mode: string): Record<string, unknown>;
14
+ export interface DraftPoolConfigInput {
15
+ num_drafts: number;
16
+ branch_selection_policy: "best" | "roulette" | "diverse";
17
+ baseline_iteration?: number;
18
+ }
19
+ export declare function buildDraftPoolPlan(input: DraftPoolConfigInput): DraftPoolConfig;
20
+ export declare function selectNextBranch(activeDrafts: DraftBranch[], policy: "best" | "roulette" | "diverse", direction: "lower" | "higher"): string | undefined;
13
21
  //# sourceMappingURL=subagent-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-pool.d.ts","sourceRoot":"","sources":["../src/subagent-pool.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAiDD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiD1B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW7E"}
1
+ {"version":3,"file":"subagent-pool.d.ts","sourceRoot":"","sources":["../src/subagent-pool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAW/D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAiDD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiD1B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW7E;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAUD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,CAwB/E;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,WAAW,EAAE,EAC3B,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,EACvC,SAAS,EAAE,OAAO,GAAG,QAAQ,GAC5B,MAAM,GAAG,SAAS,CAyCpB"}