ralph-research 0.1.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 (174) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/dist/adapters/extractor/command-extractor.d.ts +9 -0
  4. package/dist/adapters/extractor/command-extractor.js +93 -0
  5. package/dist/adapters/extractor/command-extractor.js.map +1 -0
  6. package/dist/adapters/extractor/llm-judge-extractor.d.ts +9 -0
  7. package/dist/adapters/extractor/llm-judge-extractor.js +12 -0
  8. package/dist/adapters/extractor/llm-judge-extractor.js.map +1 -0
  9. package/dist/adapters/fs/json-file-decision-store.d.ts +10 -0
  10. package/dist/adapters/fs/json-file-decision-store.js +53 -0
  11. package/dist/adapters/fs/json-file-decision-store.js.map +1 -0
  12. package/dist/adapters/fs/json-file-frontier-store.d.ts +8 -0
  13. package/dist/adapters/fs/json-file-frontier-store.js +29 -0
  14. package/dist/adapters/fs/json-file-frontier-store.js.map +1 -0
  15. package/dist/adapters/fs/json-file-run-store.d.ts +10 -0
  16. package/dist/adapters/fs/json-file-run-store.js +53 -0
  17. package/dist/adapters/fs/json-file-run-store.js.map +1 -0
  18. package/dist/adapters/fs/lockfile.d.ts +24 -0
  19. package/dist/adapters/fs/lockfile.js +110 -0
  20. package/dist/adapters/fs/lockfile.js.map +1 -0
  21. package/dist/adapters/fs/manifest-loader.d.ts +10 -0
  22. package/dist/adapters/fs/manifest-loader.js +43 -0
  23. package/dist/adapters/fs/manifest-loader.js.map +1 -0
  24. package/dist/adapters/git/git-client.d.ts +9 -0
  25. package/dist/adapters/git/git-client.js +23 -0
  26. package/dist/adapters/git/git-client.js.map +1 -0
  27. package/dist/adapters/index.d.ts +1 -0
  28. package/dist/adapters/index.js +3 -0
  29. package/dist/adapters/index.js.map +1 -0
  30. package/dist/adapters/judge/llm-judge-provider.d.ts +33 -0
  31. package/dist/adapters/judge/llm-judge-provider.js +90 -0
  32. package/dist/adapters/judge/llm-judge-provider.js.map +1 -0
  33. package/dist/adapters/proposer/command-proposer.d.ts +15 -0
  34. package/dist/adapters/proposer/command-proposer.js +29 -0
  35. package/dist/adapters/proposer/command-proposer.js.map +1 -0
  36. package/dist/app/context.d.ts +5 -0
  37. package/dist/app/context.js +7 -0
  38. package/dist/app/context.js.map +1 -0
  39. package/dist/app/services/manual-decision-service.d.ts +20 -0
  40. package/dist/app/services/manual-decision-service.js +143 -0
  41. package/dist/app/services/manual-decision-service.js.map +1 -0
  42. package/dist/app/services/project-state-service.d.ts +52 -0
  43. package/dist/app/services/project-state-service.js +92 -0
  44. package/dist/app/services/project-state-service.js.map +1 -0
  45. package/dist/app/services/run-cycle-service.d.ts +25 -0
  46. package/dist/app/services/run-cycle-service.js +69 -0
  47. package/dist/app/services/run-cycle-service.js.map +1 -0
  48. package/dist/cli/commands/accept.d.ts +10 -0
  49. package/dist/cli/commands/accept.js +54 -0
  50. package/dist/cli/commands/accept.js.map +1 -0
  51. package/dist/cli/commands/demo.d.ts +9 -0
  52. package/dist/cli/commands/demo.js +108 -0
  53. package/dist/cli/commands/demo.js.map +1 -0
  54. package/dist/cli/commands/frontier.d.ts +8 -0
  55. package/dist/cli/commands/frontier.js +48 -0
  56. package/dist/cli/commands/frontier.js.map +1 -0
  57. package/dist/cli/commands/init.d.ts +10 -0
  58. package/dist/cli/commands/init.js +123 -0
  59. package/dist/cli/commands/init.js.map +1 -0
  60. package/dist/cli/commands/inspect.d.ts +8 -0
  61. package/dist/cli/commands/inspect.js +55 -0
  62. package/dist/cli/commands/inspect.js.map +1 -0
  63. package/dist/cli/commands/reject.d.ts +10 -0
  64. package/dist/cli/commands/reject.js +54 -0
  65. package/dist/cli/commands/reject.js.map +1 -0
  66. package/dist/cli/commands/run.d.ts +13 -0
  67. package/dist/cli/commands/run.js +71 -0
  68. package/dist/cli/commands/run.js.map +1 -0
  69. package/dist/cli/commands/serve-mcp.d.ts +7 -0
  70. package/dist/cli/commands/serve-mcp.js +32 -0
  71. package/dist/cli/commands/serve-mcp.js.map +1 -0
  72. package/dist/cli/commands/status.d.ts +8 -0
  73. package/dist/cli/commands/status.js +53 -0
  74. package/dist/cli/commands/status.js.map +1 -0
  75. package/dist/cli/commands/validate.d.ts +11 -0
  76. package/dist/cli/commands/validate.js +56 -0
  77. package/dist/cli/commands/validate.js.map +1 -0
  78. package/dist/cli/main.d.ts +2 -0
  79. package/dist/cli/main.js +38 -0
  80. package/dist/cli/main.js.map +1 -0
  81. package/dist/core/engine/anchor-checker.d.ts +35 -0
  82. package/dist/core/engine/anchor-checker.js +84 -0
  83. package/dist/core/engine/anchor-checker.js.map +1 -0
  84. package/dist/core/engine/audit-sampler.d.ts +16 -0
  85. package/dist/core/engine/audit-sampler.js +25 -0
  86. package/dist/core/engine/audit-sampler.js.map +1 -0
  87. package/dist/core/engine/change-budget.d.ts +11 -0
  88. package/dist/core/engine/change-budget.js +10 -0
  89. package/dist/core/engine/change-budget.js.map +1 -0
  90. package/dist/core/engine/cycle-runner.d.ts +39 -0
  91. package/dist/core/engine/cycle-runner.js +652 -0
  92. package/dist/core/engine/cycle-runner.js.map +1 -0
  93. package/dist/core/engine/experiment-runner.d.ts +13 -0
  94. package/dist/core/engine/experiment-runner.js +24 -0
  95. package/dist/core/engine/experiment-runner.js.map +1 -0
  96. package/dist/core/engine/history-compactor.d.ts +15 -0
  97. package/dist/core/engine/history-compactor.js +76 -0
  98. package/dist/core/engine/history-compactor.js.map +1 -0
  99. package/dist/core/engine/judge-pack.d.ts +44 -0
  100. package/dist/core/engine/judge-pack.js +111 -0
  101. package/dist/core/engine/judge-pack.js.map +1 -0
  102. package/dist/core/engine/parallel-proposer.d.ts +21 -0
  103. package/dist/core/engine/parallel-proposer.js +58 -0
  104. package/dist/core/engine/parallel-proposer.js.map +1 -0
  105. package/dist/core/engine/scope-checker.d.ts +35 -0
  106. package/dist/core/engine/scope-checker.js +166 -0
  107. package/dist/core/engine/scope-checker.js.map +1 -0
  108. package/dist/core/engine/workspace-manager.d.ts +32 -0
  109. package/dist/core/engine/workspace-manager.js +145 -0
  110. package/dist/core/engine/workspace-manager.js.map +1 -0
  111. package/dist/core/index.d.ts +1 -0
  112. package/dist/core/index.js +3 -0
  113. package/dist/core/index.js.map +1 -0
  114. package/dist/core/manifest/defaults.d.ts +55 -0
  115. package/dist/core/manifest/defaults.js +56 -0
  116. package/dist/core/manifest/defaults.js.map +1 -0
  117. package/dist/core/manifest/schema.d.ts +647 -0
  118. package/dist/core/manifest/schema.js +254 -0
  119. package/dist/core/manifest/schema.js.map +1 -0
  120. package/dist/core/model/decision-record.d.ts +38 -0
  121. package/dist/core/model/decision-record.js +29 -0
  122. package/dist/core/model/decision-record.js.map +1 -0
  123. package/dist/core/model/frontier-entry.d.ts +24 -0
  124. package/dist/core/model/frontier-entry.js +15 -0
  125. package/dist/core/model/frontier-entry.js.map +1 -0
  126. package/dist/core/model/metric.d.ts +13 -0
  127. package/dist/core/model/metric.js +10 -0
  128. package/dist/core/model/metric.js.map +1 -0
  129. package/dist/core/model/run-record.d.ts +110 -0
  130. package/dist/core/model/run-record.js +104 -0
  131. package/dist/core/model/run-record.js.map +1 -0
  132. package/dist/core/ports/decision-store.d.ts +6 -0
  133. package/dist/core/ports/decision-store.js +2 -0
  134. package/dist/core/ports/decision-store.js.map +1 -0
  135. package/dist/core/ports/frontier-store.d.ts +5 -0
  136. package/dist/core/ports/frontier-store.js +2 -0
  137. package/dist/core/ports/frontier-store.js.map +1 -0
  138. package/dist/core/ports/run-store.d.ts +6 -0
  139. package/dist/core/ports/run-store.js +2 -0
  140. package/dist/core/ports/run-store.js.map +1 -0
  141. package/dist/core/state/constraint-engine.d.ts +18 -0
  142. package/dist/core/state/constraint-engine.js +42 -0
  143. package/dist/core/state/constraint-engine.js.map +1 -0
  144. package/dist/core/state/frontier-engine.d.ts +24 -0
  145. package/dist/core/state/frontier-engine.js +178 -0
  146. package/dist/core/state/frontier-engine.js.map +1 -0
  147. package/dist/core/state/ratchet-engine.d.ts +28 -0
  148. package/dist/core/state/ratchet-engine.js +177 -0
  149. package/dist/core/state/ratchet-engine.js.map +1 -0
  150. package/dist/core/state/run-state-machine.d.ts +17 -0
  151. package/dist/core/state/run-state-machine.js +94 -0
  152. package/dist/core/state/run-state-machine.js.map +1 -0
  153. package/dist/mcp/main.d.ts +1 -0
  154. package/dist/mcp/main.js +8 -0
  155. package/dist/mcp/main.js.map +1 -0
  156. package/dist/mcp/server.d.ts +6 -0
  157. package/dist/mcp/server.js +97 -0
  158. package/dist/mcp/server.js.map +1 -0
  159. package/dist/shared/fs-errors.d.ts +1 -0
  160. package/dist/shared/fs-errors.js +4 -0
  161. package/dist/shared/fs-errors.js.map +1 -0
  162. package/dist/shared/logger.d.ts +2 -0
  163. package/dist/shared/logger.js +5 -0
  164. package/dist/shared/logger.js.map +1 -0
  165. package/dist/shared/template-utils.d.ts +9 -0
  166. package/dist/shared/template-utils.js +50 -0
  167. package/dist/shared/template-utils.js.map +1 -0
  168. package/package.json +44 -0
  169. package/templates/writing/docs/draft.md +1 -0
  170. package/templates/writing/prompts/judge.md +15 -0
  171. package/templates/writing/ralph.yaml +63 -0
  172. package/templates/writing/scripts/experiment.mjs +6 -0
  173. package/templates/writing/scripts/metric.mjs +24 -0
  174. package/templates/writing/scripts/propose.mjs +13 -0
@@ -0,0 +1,254 @@
1
+ import { z } from "zod";
2
+ import { DEFAULT_ALLOWED_GLOBS, DEFAULT_COMMAND_TIMEOUT_SEC, DEFAULT_LOW_CONFIDENCE_THRESHOLD, DEFAULT_MANIFEST_FILENAME, DEFAULT_MAX_FILES_CHANGED, DEFAULT_MAX_LINE_DELTA, DEFAULT_MAX_PATCH_COUNT, DEFAULT_PROPOSER_HISTORY_MAX_RUNS, DEFAULT_PROPOSER_EXPLORATION_RATIO, DEFAULT_PROJECT_BASELINE_REF, DEFAULT_PROJECT_WORKSPACE, DEFAULT_SCHEMA_VERSION, DEFAULT_STAGNATION_AFTER_REJECTIONS, DEFAULT_STORAGE_ROOT, manifestDefaults, } from "./defaults.js";
3
+ const recordOfStringsSchema = z.record(z.string(), z.string()).default({});
4
+ export const commandSpecSchema = z.object({
5
+ command: z.string().min(1),
6
+ cwd: z.string().optional(),
7
+ env: recordOfStringsSchema,
8
+ timeoutSec: z.number().int().positive().default(DEFAULT_COMMAND_TIMEOUT_SEC),
9
+ });
10
+ export const scopeSchema = z.object({
11
+ allowedGlobs: z.array(z.string().min(1)).min(1).default(DEFAULT_ALLOWED_GLOBS),
12
+ maxFilesChanged: z.number().int().positive().default(DEFAULT_MAX_FILES_CHANGED),
13
+ maxLineDelta: z.number().int().positive().default(DEFAULT_MAX_LINE_DELTA),
14
+ });
15
+ export const projectSchema = z.object({
16
+ name: z.string().min(1),
17
+ artifact: z.enum(["code", "manuscript", "literature_review", "prompt", "generic"]),
18
+ baselineRef: z.string().min(1).default(DEFAULT_PROJECT_BASELINE_REF),
19
+ workspace: z.enum(["git", "copy"]).default(DEFAULT_PROJECT_WORKSPACE),
20
+ });
21
+ export const proposerHistorySchema = z.object({
22
+ enabled: z.boolean().default(false),
23
+ maxRuns: z.number().int().min(1).default(DEFAULT_PROPOSER_HISTORY_MAX_RUNS),
24
+ });
25
+ export const commandProposerSchema = z.object({
26
+ type: z.literal("command"),
27
+ ...commandSpecSchema.shape,
28
+ history: proposerHistorySchema.default(manifestDefaults.proposer.history),
29
+ });
30
+ export const operatorLlmProposerSchema = z.object({
31
+ type: z.literal("operator_llm"),
32
+ model: z.string().min(1),
33
+ prompt: z.string().min(1),
34
+ operators: z.array(z.string().min(1)).min(1),
35
+ explorationRatio: z.number().min(0).max(1).default(DEFAULT_PROPOSER_EXPLORATION_RATIO),
36
+ stagnationAfterRejections: z.number().int().min(1).default(DEFAULT_STAGNATION_AFTER_REJECTIONS),
37
+ maxPatchCount: z.number().int().min(1).default(DEFAULT_MAX_PATCH_COUNT),
38
+ history: proposerHistorySchema.default(manifestDefaults.proposer.history),
39
+ });
40
+ const leafProposerSchema = z.discriminatedUnion("type", [
41
+ commandProposerSchema,
42
+ operatorLlmProposerSchema,
43
+ ]);
44
+ export const parallelProposerSchema = z.object({
45
+ type: z.literal("parallel"),
46
+ strategies: z.array(leafProposerSchema).min(2),
47
+ pickBest: z.enum(["highest_metric", "judge_pairwise"]),
48
+ history: proposerHistorySchema.default(manifestDefaults.proposer.history),
49
+ });
50
+ export const proposerSchema = z.discriminatedUnion("type", [
51
+ commandProposerSchema,
52
+ operatorLlmProposerSchema,
53
+ parallelProposerSchema,
54
+ ]);
55
+ export const experimentSchema = z.object({
56
+ run: commandSpecSchema,
57
+ outputs: z
58
+ .array(z.object({
59
+ id: z.string().min(1),
60
+ path: z.string().min(1),
61
+ }))
62
+ .default([]),
63
+ });
64
+ export const judgePackSchema = z.object({
65
+ id: z.string().min(1),
66
+ mode: z.enum(["absolute", "pairwise"]),
67
+ blindPairwise: z.boolean().default(true),
68
+ orderRandomized: z.boolean().default(true),
69
+ repeats: z.number().int().min(1).default(manifestDefaults.judgePack.repeats),
70
+ aggregation: z.enum(["mean", "median", "majority_vote", "sign_test"]).default("majority_vote"),
71
+ judges: z
72
+ .array(z.object({
73
+ model: z.string().min(1),
74
+ weight: z.number().positive().default(1),
75
+ }))
76
+ .min(1),
77
+ lowConfidenceThreshold: z.number().min(0).max(1).default(DEFAULT_LOW_CONFIDENCE_THRESHOLD),
78
+ anchors: z
79
+ .object({
80
+ path: z.string().min(1),
81
+ minAgreementWithHuman: z.number().min(0).max(1).default(manifestDefaults.judgePack.anchors.minAgreementWithHuman),
82
+ })
83
+ .optional(),
84
+ audit: z
85
+ .object({
86
+ sampleRate: z.number().min(0).max(1).default(manifestDefaults.judgePack.audit.sampleRate),
87
+ freezeAutoAcceptIfAnchorFails: z.boolean().default(manifestDefaults.judgePack.audit.freezeAutoAcceptIfAnchorFails),
88
+ })
89
+ .default(manifestDefaults.judgePack.audit),
90
+ });
91
+ export const commandMetricExtractorSchema = z.object({
92
+ type: z.literal("command"),
93
+ ...commandSpecSchema.shape,
94
+ parser: z.enum(["json_path", "regex", "plain_number"]).default("json_path"),
95
+ valuePath: z.string().optional(),
96
+ pattern: z.string().optional(),
97
+ });
98
+ export const llmJudgeMetricExtractorSchema = z.object({
99
+ type: z.literal("llm_judge"),
100
+ judgePack: z.string().min(1),
101
+ prompt: z.string().min(1),
102
+ mode: z.enum(["absolute", "pairwise"]).default("pairwise"),
103
+ compareAgainst: z.enum(["frontier.best", "none"]).default("frontier.best"),
104
+ inputs: z.record(z.string(), z.string()).default({}),
105
+ outputKey: z.string().min(1).default("score"),
106
+ });
107
+ export const metricExtractorSchema = z.discriminatedUnion("type", [
108
+ commandMetricExtractorSchema,
109
+ llmJudgeMetricExtractorSchema,
110
+ ]);
111
+ const metricDefinitionBaseSchema = z.object({
112
+ id: z.string().min(1),
113
+ direction: z.enum(["maximize", "minimize"]),
114
+ });
115
+ export const numericMetricDefinitionSchema = metricDefinitionBaseSchema.extend({
116
+ kind: z.literal("numeric"),
117
+ extractor: commandMetricExtractorSchema,
118
+ });
119
+ export const llmScoreMetricDefinitionSchema = metricDefinitionBaseSchema.extend({
120
+ kind: z.literal("llm_score"),
121
+ extractor: llmJudgeMetricExtractorSchema,
122
+ });
123
+ export const metricDefinitionSchema = z.discriminatedUnion("kind", [
124
+ numericMetricDefinitionSchema,
125
+ llmScoreMetricDefinitionSchema,
126
+ ]);
127
+ export const constraintSchema = z.object({
128
+ metric: z.string().min(1),
129
+ op: z.enum([">=", ">", "<=", "<", "=="]),
130
+ value: z.number(),
131
+ });
132
+ const singleBestFrontierSchema = z.object({
133
+ strategy: z.literal("single_best"),
134
+ primaryMetric: z.string().min(1),
135
+ });
136
+ export const paretoObjectiveSchema = z.object({
137
+ metric: z.string().min(1),
138
+ epsilon: z.number().nonnegative().default(0),
139
+ });
140
+ const paretoFrontierSchema = z.object({
141
+ strategy: z.literal("pareto"),
142
+ objectives: z.array(paretoObjectiveSchema).min(2),
143
+ tieBreaker: z.enum(["hypervolume", "none"]).default("hypervolume"),
144
+ referencePoint: z.record(z.string(), z.number()).optional(),
145
+ });
146
+ export const frontierSchema = z.discriminatedUnion("strategy", [
147
+ singleBestFrontierSchema,
148
+ paretoFrontierSchema,
149
+ ]);
150
+ export const epsilonImproveRatchetSchema = z.object({
151
+ type: z.literal("epsilon_improve"),
152
+ metric: z.string().min(1).optional(),
153
+ epsilon: z.number().default(0),
154
+ });
155
+ export const approvalGateRatchetSchema = z.object({
156
+ type: z.literal("approval_gate"),
157
+ metric: z.string().min(1).optional(),
158
+ minConfidence: z.number().min(0).max(1).default(DEFAULT_LOW_CONFIDENCE_THRESHOLD),
159
+ graduation: z
160
+ .object({
161
+ consecutiveAccepts: z.number().int().min(1),
162
+ epsilon: z.number().default(0),
163
+ })
164
+ .optional(),
165
+ });
166
+ export const paretoDominanceRatchetSchema = z.object({
167
+ type: z.literal("pareto_dominance"),
168
+ });
169
+ export const ratchetSchema = z.discriminatedUnion("type", [
170
+ epsilonImproveRatchetSchema,
171
+ approvalGateRatchetSchema,
172
+ paretoDominanceRatchetSchema,
173
+ ]);
174
+ export const storageSchema = z.object({
175
+ root: z.string().min(1).default(DEFAULT_STORAGE_ROOT),
176
+ });
177
+ const manifestShapeSchema = z.object({
178
+ schemaVersion: z.literal(DEFAULT_SCHEMA_VERSION),
179
+ project: projectSchema,
180
+ scope: scopeSchema.default(manifestDefaults.scope),
181
+ proposer: proposerSchema,
182
+ experiment: experimentSchema,
183
+ judgePacks: z.array(judgePackSchema).default([]),
184
+ metrics: z.object({
185
+ catalog: z.array(metricDefinitionSchema).min(1),
186
+ }),
187
+ constraints: z.array(constraintSchema).default([]),
188
+ frontier: frontierSchema,
189
+ ratchet: ratchetSchema,
190
+ storage: storageSchema.default(manifestDefaults.storage),
191
+ });
192
+ export const RalphManifestSchema = manifestShapeSchema.superRefine((manifest, ctx) => {
193
+ const metricIds = new Set(manifest.metrics.catalog.map((metric) => metric.id));
194
+ const judgePackIds = new Set(manifest.judgePacks.map((pack) => pack.id));
195
+ if (manifest.frontier.strategy === "single_best" && !metricIds.has(manifest.frontier.primaryMetric)) {
196
+ ctx.addIssue({
197
+ code: z.ZodIssueCode.custom,
198
+ message: `frontier.primaryMetric references unknown metric "${manifest.frontier.primaryMetric}"`,
199
+ path: ["frontier", "primaryMetric"],
200
+ });
201
+ }
202
+ if (manifest.frontier.strategy === "pareto") {
203
+ for (const [index, objective] of manifest.frontier.objectives.entries()) {
204
+ if (!metricIds.has(objective.metric)) {
205
+ ctx.addIssue({
206
+ code: z.ZodIssueCode.custom,
207
+ message: `frontier objective references unknown metric "${objective.metric}"`,
208
+ path: ["frontier", "objectives", index, "metric"],
209
+ });
210
+ }
211
+ }
212
+ if (manifest.ratchet.type !== "pareto_dominance") {
213
+ ctx.addIssue({
214
+ code: z.ZodIssueCode.custom,
215
+ message: "frontier.strategy=pareto requires ratchet.type=pareto_dominance",
216
+ path: ["ratchet", "type"],
217
+ });
218
+ }
219
+ }
220
+ if (manifest.frontier.strategy === "single_best" && manifest.ratchet.type === "pareto_dominance") {
221
+ ctx.addIssue({
222
+ code: z.ZodIssueCode.custom,
223
+ message: "ratchet.type=pareto_dominance requires frontier.strategy=pareto",
224
+ path: ["frontier", "strategy"],
225
+ });
226
+ }
227
+ if ("metric" in manifest.ratchet && manifest.ratchet.metric && !metricIds.has(manifest.ratchet.metric)) {
228
+ ctx.addIssue({
229
+ code: z.ZodIssueCode.custom,
230
+ message: `ratchet.metric references unknown metric "${manifest.ratchet.metric}"`,
231
+ path: ["ratchet", "metric"],
232
+ });
233
+ }
234
+ for (const [index, constraint] of manifest.constraints.entries()) {
235
+ if (!metricIds.has(constraint.metric)) {
236
+ ctx.addIssue({
237
+ code: z.ZodIssueCode.custom,
238
+ message: `constraint references unknown metric "${constraint.metric}"`,
239
+ path: ["constraints", index, "metric"],
240
+ });
241
+ }
242
+ }
243
+ for (const [index, metric] of manifest.metrics.catalog.entries()) {
244
+ if (metric.extractor.type === "llm_judge" && !judgePackIds.has(metric.extractor.judgePack)) {
245
+ ctx.addIssue({
246
+ code: z.ZodIssueCode.custom,
247
+ message: `metric extractor references unknown judgePack "${metric.extractor.judgePack}"`,
248
+ path: ["metrics", "catalog", index, "extractor", "judgePack"],
249
+ });
250
+ }
251
+ }
252
+ });
253
+ export { DEFAULT_MANIFEST_FILENAME };
254
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/manifest/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { z } from "zod";
2
+ export declare const decisionOutcomeSchema: z.ZodEnum<{
3
+ accepted: "accepted";
4
+ rejected: "rejected";
5
+ needs_human: "needs_human";
6
+ }>;
7
+ export declare const decisionRecordSchema: z.ZodObject<{
8
+ decisionId: z.ZodString;
9
+ runId: z.ZodString;
10
+ outcome: z.ZodEnum<{
11
+ accepted: "accepted";
12
+ rejected: "rejected";
13
+ needs_human: "needs_human";
14
+ }>;
15
+ actorType: z.ZodEnum<{
16
+ system: "system";
17
+ human: "human";
18
+ }>;
19
+ actorId: z.ZodOptional<z.ZodString>;
20
+ policyType: z.ZodString;
21
+ metricId: z.ZodOptional<z.ZodString>;
22
+ delta: z.ZodOptional<z.ZodNumber>;
23
+ reason: z.ZodString;
24
+ createdAt: z.ZodString;
25
+ frontierChanged: z.ZodBoolean;
26
+ beforeFrontierIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
27
+ afterFrontierIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
28
+ commitSha: z.ZodOptional<z.ZodString>;
29
+ auditRequired: z.ZodDefault<z.ZodBoolean>;
30
+ graduation: z.ZodOptional<z.ZodObject<{
31
+ activatedPolicy: z.ZodLiteral<"epsilon_improve">;
32
+ consecutiveAccepts: z.ZodNumber;
33
+ epsilon: z.ZodNumber;
34
+ effectiveNextCycle: z.ZodDefault<z.ZodBoolean>;
35
+ reason: z.ZodString;
36
+ }, z.core.$strip>>;
37
+ }, z.core.$strip>;
38
+ export type DecisionRecord = z.infer<typeof decisionRecordSchema>;
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ export const decisionOutcomeSchema = z.enum(["accepted", "rejected", "needs_human"]);
3
+ export const decisionRecordSchema = z.object({
4
+ decisionId: z.string().min(1),
5
+ runId: z.string().min(1),
6
+ outcome: decisionOutcomeSchema,
7
+ actorType: z.enum(["system", "human"]),
8
+ actorId: z.string().min(1).optional(),
9
+ policyType: z.string().min(1),
10
+ metricId: z.string().min(1).optional(),
11
+ delta: z.number().optional(),
12
+ reason: z.string().min(1),
13
+ createdAt: z.string().datetime(),
14
+ frontierChanged: z.boolean(),
15
+ beforeFrontierIds: z.array(z.string().min(1)).default([]),
16
+ afterFrontierIds: z.array(z.string().min(1)).default([]),
17
+ commitSha: z.string().min(1).optional(),
18
+ auditRequired: z.boolean().default(false),
19
+ graduation: z
20
+ .object({
21
+ activatedPolicy: z.literal("epsilon_improve"),
22
+ consecutiveAccepts: z.number().int().min(1),
23
+ epsilon: z.number(),
24
+ effectiveNextCycle: z.boolean().default(true),
25
+ reason: z.string().min(1),
26
+ })
27
+ .optional(),
28
+ });
29
+ //# sourceMappingURL=decision-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-record.js","sourceRoot":"","sources":["../../../src/core/model/decision-record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,qBAAqB;IAC9B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAC7C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ export declare const frontierEntrySchema: z.ZodObject<{
3
+ frontierId: z.ZodString;
4
+ runId: z.ZodString;
5
+ candidateId: z.ZodString;
6
+ acceptedAt: z.ZodString;
7
+ commitSha: z.ZodOptional<z.ZodString>;
8
+ metrics: z.ZodRecord<z.ZodString, z.ZodObject<{
9
+ metricId: z.ZodString;
10
+ value: z.ZodNumber;
11
+ confidence: z.ZodOptional<z.ZodNumber>;
12
+ direction: z.ZodEnum<{
13
+ maximize: "maximize";
14
+ minimize: "minimize";
15
+ }>;
16
+ judgeTracePath: z.ZodOptional<z.ZodString>;
17
+ details: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
18
+ }, z.core.$strip>>;
19
+ artifacts: z.ZodArray<z.ZodObject<{
20
+ id: z.ZodString;
21
+ path: z.ZodString;
22
+ }, z.core.$strip>>;
23
+ }, z.core.$strip>;
24
+ export type FrontierEntry = z.infer<typeof frontierEntrySchema>;
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ import { metricResultSchema } from "./metric.js";
3
+ export const frontierEntrySchema = z.object({
4
+ frontierId: z.string().min(1),
5
+ runId: z.string().min(1),
6
+ candidateId: z.string().min(1),
7
+ acceptedAt: z.string().datetime(),
8
+ commitSha: z.string().min(1).optional(),
9
+ metrics: z.record(z.string(), metricResultSchema),
10
+ artifacts: z.array(z.object({
11
+ id: z.string().min(1),
12
+ path: z.string().min(1),
13
+ })),
14
+ });
15
+ //# sourceMappingURL=frontier-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontier-entry.js","sourceRoot":"","sources":["../../../src/core/model/frontier-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,KAAK,CAChB,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACxB,CAAC,CACH;CACF,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export declare const metricResultSchema: z.ZodObject<{
3
+ metricId: z.ZodString;
4
+ value: z.ZodNumber;
5
+ confidence: z.ZodOptional<z.ZodNumber>;
6
+ direction: z.ZodEnum<{
7
+ maximize: "maximize";
8
+ minimize: "minimize";
9
+ }>;
10
+ judgeTracePath: z.ZodOptional<z.ZodString>;
11
+ details: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
12
+ }, z.core.$strip>;
13
+ export type MetricResult = z.infer<typeof metricResultSchema>;
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export const metricResultSchema = z.object({
3
+ metricId: z.string().min(1),
4
+ value: z.number(),
5
+ confidence: z.number().min(0).max(1).optional(),
6
+ direction: z.enum(["maximize", "minimize"]),
7
+ judgeTracePath: z.string().min(1).optional(),
8
+ details: z.record(z.string(), z.unknown()).default({}),
9
+ });
10
+ //# sourceMappingURL=metric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric.js","sourceRoot":"","sources":["../../../src/core/model/metric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvD,CAAC,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { z } from "zod";
2
+ export declare const runPhaseSchema: z.ZodEnum<{
3
+ proposed: "proposed";
4
+ executed: "executed";
5
+ evaluated: "evaluated";
6
+ decision_written: "decision_written";
7
+ committed: "committed";
8
+ frontier_updated: "frontier_updated";
9
+ completed: "completed";
10
+ failed: "failed";
11
+ }>;
12
+ export declare const pendingActionSchema: z.ZodEnum<{
13
+ none: "none";
14
+ execute_experiment: "execute_experiment";
15
+ evaluate_metrics: "evaluate_metrics";
16
+ write_decision: "write_decision";
17
+ commit_candidate: "commit_candidate";
18
+ update_frontier: "update_frontier";
19
+ cleanup_workspace: "cleanup_workspace";
20
+ }>;
21
+ export declare const runStatusSchema: z.ZodEnum<{
22
+ accepted: "accepted";
23
+ rejected: "rejected";
24
+ needs_human: "needs_human";
25
+ evaluated: "evaluated";
26
+ failed: "failed";
27
+ running: "running";
28
+ }>;
29
+ export declare const runRecordSchema: z.ZodObject<{
30
+ runId: z.ZodString;
31
+ cycle: z.ZodNumber;
32
+ candidateId: z.ZodString;
33
+ status: z.ZodEnum<{
34
+ accepted: "accepted";
35
+ rejected: "rejected";
36
+ needs_human: "needs_human";
37
+ evaluated: "evaluated";
38
+ failed: "failed";
39
+ running: "running";
40
+ }>;
41
+ phase: z.ZodEnum<{
42
+ proposed: "proposed";
43
+ executed: "executed";
44
+ evaluated: "evaluated";
45
+ decision_written: "decision_written";
46
+ committed: "committed";
47
+ frontier_updated: "frontier_updated";
48
+ completed: "completed";
49
+ failed: "failed";
50
+ }>;
51
+ pendingAction: z.ZodDefault<z.ZodEnum<{
52
+ none: "none";
53
+ execute_experiment: "execute_experiment";
54
+ evaluate_metrics: "evaluate_metrics";
55
+ write_decision: "write_decision";
56
+ commit_candidate: "commit_candidate";
57
+ update_frontier: "update_frontier";
58
+ cleanup_workspace: "cleanup_workspace";
59
+ }>>;
60
+ startedAt: z.ZodString;
61
+ endedAt: z.ZodOptional<z.ZodString>;
62
+ manifestHash: z.ZodString;
63
+ workspaceRef: z.ZodString;
64
+ workspacePath: z.ZodOptional<z.ZodString>;
65
+ proposal: z.ZodObject<{
66
+ proposerType: z.ZodString;
67
+ summary: z.ZodString;
68
+ operators: z.ZodDefault<z.ZodArray<z.ZodString>>;
69
+ patchPath: z.ZodOptional<z.ZodString>;
70
+ diffLines: z.ZodOptional<z.ZodNumber>;
71
+ filesChanged: z.ZodOptional<z.ZodNumber>;
72
+ changedPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
73
+ withinBudget: z.ZodOptional<z.ZodBoolean>;
74
+ }, z.core.$strip>;
75
+ artifacts: z.ZodArray<z.ZodObject<{
76
+ id: z.ZodString;
77
+ path: z.ZodString;
78
+ }, z.core.$strip>>;
79
+ metrics: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
80
+ metricId: z.ZodString;
81
+ value: z.ZodNumber;
82
+ confidence: z.ZodOptional<z.ZodNumber>;
83
+ direction: z.ZodEnum<{
84
+ maximize: "maximize";
85
+ minimize: "minimize";
86
+ }>;
87
+ judgeTracePath: z.ZodOptional<z.ZodString>;
88
+ details: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
89
+ }, z.core.$strip>>>;
90
+ constraints: z.ZodDefault<z.ZodArray<z.ZodObject<{
91
+ metric: z.ZodString;
92
+ passed: z.ZodBoolean;
93
+ actual: z.ZodNumber;
94
+ expected: z.ZodNumber;
95
+ op: z.ZodString;
96
+ }, z.core.$strip>>>;
97
+ decisionId: z.ZodOptional<z.ZodString>;
98
+ logs: z.ZodDefault<z.ZodObject<{
99
+ proposeStdoutPath: z.ZodOptional<z.ZodString>;
100
+ runStdoutPath: z.ZodOptional<z.ZodString>;
101
+ }, z.core.$strip>>;
102
+ error: z.ZodOptional<z.ZodObject<{
103
+ message: z.ZodString;
104
+ stack: z.ZodOptional<z.ZodString>;
105
+ }, z.core.$strip>>;
106
+ }, z.core.$strip>;
107
+ export type RunRecord = z.infer<typeof runRecordSchema>;
108
+ export type RunPhase = z.infer<typeof runPhaseSchema>;
109
+ export type RunStatus = z.infer<typeof runStatusSchema>;
110
+ export type PendingAction = z.infer<typeof pendingActionSchema>;
@@ -0,0 +1,104 @@
1
+ import { z } from "zod";
2
+ import { metricResultSchema } from "./metric.js";
3
+ export const runPhaseSchema = z.enum([
4
+ "proposed",
5
+ "executed",
6
+ "evaluated",
7
+ "decision_written",
8
+ "committed",
9
+ "frontier_updated",
10
+ "completed",
11
+ "failed",
12
+ ]);
13
+ export const pendingActionSchema = z.enum([
14
+ "none",
15
+ "execute_experiment",
16
+ "evaluate_metrics",
17
+ "write_decision",
18
+ "commit_candidate",
19
+ "update_frontier",
20
+ "cleanup_workspace",
21
+ ]);
22
+ export const runStatusSchema = z.enum([
23
+ "running",
24
+ "evaluated",
25
+ "accepted",
26
+ "rejected",
27
+ "needs_human",
28
+ "failed",
29
+ ]);
30
+ export const runRecordSchema = z
31
+ .object({
32
+ runId: z.string().min(1),
33
+ cycle: z.number().int().nonnegative(),
34
+ candidateId: z.string().min(1),
35
+ status: runStatusSchema,
36
+ phase: runPhaseSchema,
37
+ pendingAction: pendingActionSchema.default("none"),
38
+ startedAt: z.string().datetime(),
39
+ endedAt: z.string().datetime().optional(),
40
+ manifestHash: z.string().min(1),
41
+ workspaceRef: z.string().min(1),
42
+ workspacePath: z.string().min(1).optional(),
43
+ proposal: z.object({
44
+ proposerType: z.string().min(1),
45
+ summary: z.string().min(1),
46
+ operators: z.array(z.string().min(1)).default([]),
47
+ patchPath: z.string().min(1).optional(),
48
+ diffLines: z.number().int().nonnegative().optional(),
49
+ filesChanged: z.number().int().nonnegative().optional(),
50
+ changedPaths: z.array(z.string().min(1)).optional(),
51
+ withinBudget: z.boolean().optional(),
52
+ }),
53
+ artifacts: z.array(z.object({
54
+ id: z.string().min(1),
55
+ path: z.string().min(1),
56
+ })),
57
+ metrics: z.record(z.string(), metricResultSchema).default({}),
58
+ constraints: z
59
+ .array(z.object({
60
+ metric: z.string().min(1),
61
+ passed: z.boolean(),
62
+ actual: z.number(),
63
+ expected: z.number(),
64
+ op: z.string().min(1),
65
+ }))
66
+ .default([]),
67
+ decisionId: z.string().min(1).optional(),
68
+ logs: z
69
+ .object({
70
+ proposeStdoutPath: z.string().min(1).optional(),
71
+ runStdoutPath: z.string().min(1).optional(),
72
+ })
73
+ .default({}),
74
+ error: z
75
+ .object({
76
+ message: z.string().min(1),
77
+ stack: z.string().min(1).optional(),
78
+ })
79
+ .optional(),
80
+ })
81
+ .superRefine((record, ctx) => {
82
+ if (record.phase === "completed" && !record.endedAt) {
83
+ ctx.addIssue({
84
+ code: z.ZodIssueCode.custom,
85
+ message: "completed runs must include endedAt",
86
+ path: ["endedAt"],
87
+ });
88
+ }
89
+ if (record.phase === "failed" && !record.error) {
90
+ ctx.addIssue({
91
+ code: z.ZodIssueCode.custom,
92
+ message: "failed runs must include error information",
93
+ path: ["error"],
94
+ });
95
+ }
96
+ if (record.phase === "decision_written" && !record.decisionId) {
97
+ ctx.addIssue({
98
+ code: z.ZodIssueCode.custom,
99
+ message: "decision_written runs must include a decisionId",
100
+ path: ["decisionId"],
101
+ });
102
+ }
103
+ });
104
+ //# sourceMappingURL=run-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-record.js","sourceRoot":"","sources":["../../../src/core/model/run-record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { DecisionRecord } from "../model/decision-record.js";
2
+ export interface DecisionStore {
3
+ put(record: DecisionRecord): Promise<void>;
4
+ get(decisionId: string): Promise<DecisionRecord | null>;
5
+ list(): Promise<DecisionRecord[]>;
6
+ }