@tangle-network/agent-eval 0.120.2 → 0.120.4

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 (172) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/analyst/index.d.ts +3111 -0
  3. package/dist/analyst/index.js +403 -0
  4. package/dist/analyst/index.js.map +1 -0
  5. package/dist/authenticity/index.d.ts +161 -0
  6. package/dist/authenticity/index.js +215 -0
  7. package/dist/authenticity/index.js.map +1 -0
  8. package/dist/belief-state/index.d.ts +1301 -0
  9. package/dist/belief-state/index.js +2152 -0
  10. package/dist/belief-state/index.js.map +1 -0
  11. package/dist/benchmarks/index.d.ts +974 -0
  12. package/dist/benchmarks/index.js +60 -0
  13. package/dist/benchmarks/index.js.map +1 -0
  14. package/dist/builder-eval/index.d.ts +695 -0
  15. package/dist/builder-eval/index.js +366 -0
  16. package/dist/builder-eval/index.js.map +1 -0
  17. package/dist/campaign/index.d.ts +7469 -0
  18. package/dist/campaign/index.js +272 -0
  19. package/dist/campaign/index.js.map +1 -0
  20. package/dist/chunk-3RF76KTD.js +84 -0
  21. package/dist/chunk-3RF76KTD.js.map +1 -0
  22. package/dist/chunk-3XH4Y2SS.js +750 -0
  23. package/dist/chunk-3XH4Y2SS.js.map +1 -0
  24. package/dist/chunk-3YYRZDON.js +45 -0
  25. package/dist/chunk-3YYRZDON.js.map +1 -0
  26. package/dist/chunk-5BYTIDZ7.js +550 -0
  27. package/dist/chunk-5BYTIDZ7.js.map +1 -0
  28. package/dist/chunk-5CVUPHJ4.js +2668 -0
  29. package/dist/chunk-5CVUPHJ4.js.map +1 -0
  30. package/dist/chunk-7QBFOJ3E.js +3920 -0
  31. package/dist/chunk-7QBFOJ3E.js.map +1 -0
  32. package/dist/chunk-ARU2PZFM.js +312 -0
  33. package/dist/chunk-ARU2PZFM.js.map +1 -0
  34. package/dist/chunk-BOD4O7OF.js +40 -0
  35. package/dist/chunk-BOD4O7OF.js.map +1 -0
  36. package/dist/chunk-CVJP5TMD.js +766 -0
  37. package/dist/chunk-CVJP5TMD.js.map +1 -0
  38. package/dist/chunk-DPZAEKA6.js +880 -0
  39. package/dist/chunk-DPZAEKA6.js.map +1 -0
  40. package/dist/chunk-DTJ6QUQB.js +131 -0
  41. package/dist/chunk-DTJ6QUQB.js.map +1 -0
  42. package/dist/chunk-GGE4NNQT.js +65 -0
  43. package/dist/chunk-GGE4NNQT.js.map +1 -0
  44. package/dist/chunk-H5UD2323.js +286 -0
  45. package/dist/chunk-H5UD2323.js.map +1 -0
  46. package/dist/chunk-HHWE3POT.js +94 -0
  47. package/dist/chunk-HHWE3POT.js.map +1 -0
  48. package/dist/chunk-HKUCJ437.js +787 -0
  49. package/dist/chunk-HKUCJ437.js.map +1 -0
  50. package/dist/chunk-JHCHEVET.js +274 -0
  51. package/dist/chunk-JHCHEVET.js.map +1 -0
  52. package/dist/chunk-K4DBDHLK.js +158 -0
  53. package/dist/chunk-K4DBDHLK.js.map +1 -0
  54. package/dist/chunk-K6N6XJJX.js +306 -0
  55. package/dist/chunk-K6N6XJJX.js.map +1 -0
  56. package/dist/chunk-MA6HLL3S.js +65 -0
  57. package/dist/chunk-MA6HLL3S.js.map +1 -0
  58. package/dist/chunk-MAZ26DC7.js +99 -0
  59. package/dist/chunk-MAZ26DC7.js.map +1 -0
  60. package/dist/chunk-MOXWMGPC.js +577 -0
  61. package/dist/chunk-MOXWMGPC.js.map +1 -0
  62. package/dist/chunk-NJC7U437.js +626 -0
  63. package/dist/chunk-NJC7U437.js.map +1 -0
  64. package/dist/chunk-NMN4WGSJ.js +1030 -0
  65. package/dist/chunk-NMN4WGSJ.js.map +1 -0
  66. package/dist/chunk-NPCTHQIO.js +91 -0
  67. package/dist/chunk-NPCTHQIO.js.map +1 -0
  68. package/dist/chunk-ONWEPEDO.js +57 -0
  69. package/dist/chunk-ONWEPEDO.js.map +1 -0
  70. package/dist/chunk-OYZAPX5G.js +1526 -0
  71. package/dist/chunk-OYZAPX5G.js.map +1 -0
  72. package/dist/chunk-PC4UYEBM.js +166 -0
  73. package/dist/chunk-PC4UYEBM.js.map +1 -0
  74. package/dist/chunk-PJQFMIOX.js +1182 -0
  75. package/dist/chunk-PJQFMIOX.js.map +1 -0
  76. package/dist/chunk-PXD6ZFNY.js +1107 -0
  77. package/dist/chunk-PXD6ZFNY.js.map +1 -0
  78. package/dist/chunk-PXE2VKMX.js +140 -0
  79. package/dist/chunk-PXE2VKMX.js.map +1 -0
  80. package/dist/chunk-PZ5AY32C.js +10 -0
  81. package/dist/chunk-PZ5AY32C.js.map +1 -0
  82. package/dist/chunk-QBRSJK47.js +622 -0
  83. package/dist/chunk-QBRSJK47.js.map +1 -0
  84. package/dist/chunk-S3UZOQ5Y.js +328 -0
  85. package/dist/chunk-S3UZOQ5Y.js.map +1 -0
  86. package/dist/chunk-SQQED7ZH.js +998 -0
  87. package/dist/chunk-SQQED7ZH.js.map +1 -0
  88. package/dist/chunk-SYV364BL.js +1266 -0
  89. package/dist/chunk-SYV364BL.js.map +1 -0
  90. package/dist/chunk-T4SQEITX.js +95 -0
  91. package/dist/chunk-T4SQEITX.js.map +1 -0
  92. package/dist/chunk-TT4KNT67.js +124 -0
  93. package/dist/chunk-TT4KNT67.js.map +1 -0
  94. package/dist/chunk-U5CHZ5M3.js +357 -0
  95. package/dist/chunk-U5CHZ5M3.js.map +1 -0
  96. package/dist/chunk-ULOKLHIQ.js +1937 -0
  97. package/dist/chunk-ULOKLHIQ.js.map +1 -0
  98. package/dist/chunk-VI2UW6B6.js +162 -0
  99. package/dist/chunk-VI2UW6B6.js.map +1 -0
  100. package/dist/chunk-VQMK5FMP.js +247 -0
  101. package/dist/chunk-VQMK5FMP.js.map +1 -0
  102. package/dist/chunk-VSMTAMNK.js +53 -0
  103. package/dist/chunk-VSMTAMNK.js.map +1 -0
  104. package/dist/chunk-VZSRQ272.js +149 -0
  105. package/dist/chunk-VZSRQ272.js.map +1 -0
  106. package/dist/chunk-WW2A73HW.js +159 -0
  107. package/dist/chunk-WW2A73HW.js.map +1 -0
  108. package/dist/chunk-X4UCIOTZ.js +136 -0
  109. package/dist/chunk-X4UCIOTZ.js.map +1 -0
  110. package/dist/chunk-XJYR7XFV.js +317 -0
  111. package/dist/chunk-XJYR7XFV.js.map +1 -0
  112. package/dist/chunk-ZET2UAYW.js +89 -0
  113. package/dist/chunk-ZET2UAYW.js.map +1 -0
  114. package/dist/chunk-ZMXDQ4K7.js +870 -0
  115. package/dist/chunk-ZMXDQ4K7.js.map +1 -0
  116. package/dist/chunk-ZTJPIIVI.js +7958 -0
  117. package/dist/chunk-ZTJPIIVI.js.map +1 -0
  118. package/dist/chunk-ZZUXHH3R.js +99 -0
  119. package/dist/chunk-ZZUXHH3R.js.map +1 -0
  120. package/dist/cli.d.ts +1 -0
  121. package/dist/cli.js +112 -0
  122. package/dist/cli.js.map +1 -0
  123. package/dist/contract/index.d.ts +4987 -0
  124. package/dist/contract/index.js +1654 -0
  125. package/dist/contract/index.js.map +1 -0
  126. package/dist/control.d.ts +1013 -0
  127. package/dist/control.js +34 -0
  128. package/dist/control.js.map +1 -0
  129. package/dist/fuzz.d.ts +759 -0
  130. package/dist/fuzz.js +714 -0
  131. package/dist/fuzz.js.map +1 -0
  132. package/dist/hosted/index.d.ts +730 -0
  133. package/dist/hosted/index.js +14 -0
  134. package/dist/hosted/index.js.map +1 -0
  135. package/dist/index.d.ts +16780 -0
  136. package/dist/index.js +12168 -0
  137. package/dist/index.js.map +1 -0
  138. package/dist/matrix/index.d.ts +155 -0
  139. package/dist/matrix/index.js +8 -0
  140. package/dist/matrix/index.js.map +1 -0
  141. package/dist/meta-eval/index.d.ts +1030 -0
  142. package/dist/meta-eval/index.js +417 -0
  143. package/dist/meta-eval/index.js.map +1 -0
  144. package/dist/multishot/index.d.ts +579 -0
  145. package/dist/multishot/index.js +589 -0
  146. package/dist/multishot/index.js.map +1 -0
  147. package/dist/openapi.json +992 -0
  148. package/dist/pipelines/index.d.ts +567 -0
  149. package/dist/pipelines/index.js +515 -0
  150. package/dist/pipelines/index.js.map +1 -0
  151. package/dist/reporting.d.ts +1277 -0
  152. package/dist/reporting.js +48 -0
  153. package/dist/reporting.js.map +1 -0
  154. package/dist/rl.d.ts +4092 -0
  155. package/dist/rl.js +1724 -0
  156. package/dist/rl.js.map +1 -0
  157. package/dist/run-campaign-75RTPVV5.js +14 -0
  158. package/dist/run-campaign-75RTPVV5.js.map +1 -0
  159. package/dist/storyboard/index.d.ts +279 -0
  160. package/dist/storyboard/index.js +767 -0
  161. package/dist/storyboard/index.js.map +1 -0
  162. package/dist/trace-attributes.d.ts +52 -0
  163. package/dist/trace-attributes.js +62 -0
  164. package/dist/trace-attributes.js.map +1 -0
  165. package/dist/traces.d.ts +2343 -0
  166. package/dist/traces.js +249 -0
  167. package/dist/traces.js.map +1 -0
  168. package/dist/wire/index.d.ts +1252 -0
  169. package/dist/wire/index.js +81 -0
  170. package/dist/wire/index.js.map +1 -0
  171. package/docs/eval-surface-map.md +1 -1
  172. package/package.json +1 -1
@@ -0,0 +1,272 @@
1
+ import {
2
+ DEFAULT_POLICY_EDIT_HISTORY_LIMITS,
3
+ FileSearchLedger,
4
+ FsLabeledScenarioStore,
5
+ LabeledScenarioStoreError,
6
+ Lineage,
7
+ ProfileMatrixError,
8
+ SEARCH_LEDGER_SCHEMA,
9
+ SkillPatchParseError,
10
+ WorktreeAdapterError,
11
+ aceProposer,
12
+ acquireSingleRunLock,
13
+ analyzeCrossSurfaceInteractions,
14
+ applySkillPatch,
15
+ assertPolicyEditAuthorContextBudget,
16
+ buildAnalystSurfaceDispatch,
17
+ callbackGovernor,
18
+ classifyUngroundedLiterals,
19
+ compareProposers,
20
+ compositeProposer,
21
+ discoverEvalFixtures,
22
+ extractFapoAttributionSignals,
23
+ failureModeRecallJudge,
24
+ fapoEscalationEntry,
25
+ fapoProposer,
26
+ fsLineageStore,
27
+ gepaParetoEntry,
28
+ gepaReflectionEntry,
29
+ gitWorktreeAdapter,
30
+ haloProposer,
31
+ heuristicGovernor,
32
+ isTransientTransportFailure,
33
+ lineageNodeId,
34
+ llmPolicyEditProposer,
35
+ loadEvalFixture,
36
+ loadEvalFixtureScenarios,
37
+ makePlaybackDispatch,
38
+ memLineageStore,
39
+ memoryCurationProposer,
40
+ neutralizationGate,
41
+ neutralizeText,
42
+ openSearchLedger,
43
+ parameterSweepProposer,
44
+ parseSkillPatchResponse,
45
+ patchEditCount,
46
+ planEvalFixtureRun,
47
+ policyEditProposer,
48
+ projectPolicyEditHistory,
49
+ renderScoreboardMarkdown,
50
+ resolveWorktreePath,
51
+ rolloutArgumentDiff,
52
+ runLineage,
53
+ runLineageLoop,
54
+ runProfileMatrix,
55
+ runSkillOpt,
56
+ scoreDiscrimination,
57
+ scoreUserStory,
58
+ scoreboardSummary,
59
+ selectDiscriminative,
60
+ selectPolicyEditAuthorRows,
61
+ sequentialDecide,
62
+ sequentialPairedGate,
63
+ skillOptEntry,
64
+ skillOptProposer,
65
+ traceAnalystProposer,
66
+ userStoryScoreboard,
67
+ validateSearchLedgerEvent,
68
+ verifyCodeSurface
69
+ } from "../chunk-ZTJPIIVI.js";
70
+ import {
71
+ assertCodeSurfaceIdentity,
72
+ buildEvidenceVector,
73
+ buildLoopProvenanceRecord,
74
+ campaignBreakdown,
75
+ campaignMeanComposite,
76
+ campaignMeasurementDigest,
77
+ codeSurfaceIdentityMaterial,
78
+ composeGate,
79
+ countSentenceEdits,
80
+ createReferenceEquivalenceJudge,
81
+ defaultProductionGate,
82
+ detectScale,
83
+ dimensionRegressions,
84
+ emitLoopProvenance,
85
+ evolutionaryProposer,
86
+ extractH2Sections,
87
+ gepaProposer,
88
+ heldOutGate,
89
+ heldoutSignificance,
90
+ isProposedCandidate,
91
+ labelTrustRank,
92
+ llmJudge,
93
+ loopProvenanceArgsFromResult,
94
+ loopProvenanceSpans,
95
+ openAutoPr,
96
+ pairHoldout,
97
+ paretoPolicy,
98
+ paretoSignificanceGate,
99
+ powerPreflight,
100
+ provenanceRecordPath,
101
+ provenanceSpansPath,
102
+ renderSurfaceDiff,
103
+ runEval,
104
+ runImprovementLoop,
105
+ runOptimization,
106
+ surfaceContentHash,
107
+ surfaceHash,
108
+ verifyLoopProvenanceRecord
109
+ } from "../chunk-7QBFOJ3E.js";
110
+ import {
111
+ SearchLedgerConflictError,
112
+ SearchLedgerError,
113
+ SearchLedgerIntegrityError,
114
+ assertCampaignDesign,
115
+ assertCampaignSplitIdentity,
116
+ campaignScenarioIdentity,
117
+ campaignSplitDigest,
118
+ campaignSplitDigestFromIdentities,
119
+ createRunCostLedger,
120
+ fsCampaignStorage,
121
+ inMemoryCampaignStorage,
122
+ planCampaignRun,
123
+ resolveRunDir,
124
+ runCampaign,
125
+ tangleTracesRoot
126
+ } from "../chunk-SYV364BL.js";
127
+ import "../chunk-3YYRZDON.js";
128
+ import {
129
+ POLICY_EDIT_CANDIDATE_RECORD_SCHEMA,
130
+ validatePolicyEditCandidateRecord
131
+ } from "../chunk-5CVUPHJ4.js";
132
+ import "../chunk-ARU2PZFM.js";
133
+ import "../chunk-NJC7U437.js";
134
+ import "../chunk-PJQFMIOX.js";
135
+ import "../chunk-ZMXDQ4K7.js";
136
+ import "../chunk-VI2UW6B6.js";
137
+ import "../chunk-WW2A73HW.js";
138
+ import "../chunk-GGE4NNQT.js";
139
+ import "../chunk-PXD6ZFNY.js";
140
+ import "../chunk-PC4UYEBM.js";
141
+ import "../chunk-S3UZOQ5Y.js";
142
+ import "../chunk-MA6HLL3S.js";
143
+ import "../chunk-XJYR7XFV.js";
144
+ import "../chunk-VSMTAMNK.js";
145
+ import "../chunk-ONWEPEDO.js";
146
+ import "../chunk-K4DBDHLK.js";
147
+ import "../chunk-PZ5AY32C.js";
148
+ export {
149
+ DEFAULT_POLICY_EDIT_HISTORY_LIMITS,
150
+ FileSearchLedger,
151
+ FsLabeledScenarioStore,
152
+ LabeledScenarioStoreError,
153
+ Lineage,
154
+ POLICY_EDIT_CANDIDATE_RECORD_SCHEMA,
155
+ ProfileMatrixError,
156
+ SEARCH_LEDGER_SCHEMA,
157
+ SearchLedgerConflictError,
158
+ SearchLedgerError,
159
+ SearchLedgerIntegrityError,
160
+ SkillPatchParseError,
161
+ WorktreeAdapterError,
162
+ aceProposer,
163
+ acquireSingleRunLock,
164
+ analyzeCrossSurfaceInteractions,
165
+ applySkillPatch,
166
+ assertCampaignDesign,
167
+ assertCampaignSplitIdentity,
168
+ assertCodeSurfaceIdentity,
169
+ assertPolicyEditAuthorContextBudget,
170
+ buildAnalystSurfaceDispatch,
171
+ buildEvidenceVector,
172
+ buildLoopProvenanceRecord,
173
+ callbackGovernor,
174
+ campaignBreakdown,
175
+ campaignMeanComposite,
176
+ campaignMeasurementDigest,
177
+ campaignScenarioIdentity,
178
+ campaignSplitDigest,
179
+ campaignSplitDigestFromIdentities,
180
+ classifyUngroundedLiterals,
181
+ codeSurfaceIdentityMaterial,
182
+ compareProposers,
183
+ composeGate,
184
+ compositeProposer,
185
+ countSentenceEdits,
186
+ createReferenceEquivalenceJudge,
187
+ createRunCostLedger,
188
+ defaultProductionGate,
189
+ detectScale,
190
+ dimensionRegressions,
191
+ discoverEvalFixtures,
192
+ emitLoopProvenance,
193
+ evolutionaryProposer,
194
+ extractFapoAttributionSignals,
195
+ extractH2Sections,
196
+ failureModeRecallJudge,
197
+ fapoEscalationEntry,
198
+ fapoProposer,
199
+ fsCampaignStorage,
200
+ fsLineageStore,
201
+ gepaParetoEntry,
202
+ gepaProposer,
203
+ gepaReflectionEntry,
204
+ gitWorktreeAdapter,
205
+ haloProposer,
206
+ heldOutGate,
207
+ heldoutSignificance,
208
+ heuristicGovernor,
209
+ inMemoryCampaignStorage,
210
+ isProposedCandidate,
211
+ isTransientTransportFailure,
212
+ labelTrustRank,
213
+ lineageNodeId,
214
+ llmJudge,
215
+ llmPolicyEditProposer,
216
+ loadEvalFixture,
217
+ loadEvalFixtureScenarios,
218
+ loopProvenanceArgsFromResult,
219
+ loopProvenanceSpans,
220
+ makePlaybackDispatch,
221
+ memLineageStore,
222
+ memoryCurationProposer,
223
+ neutralizationGate,
224
+ neutralizeText,
225
+ openAutoPr,
226
+ openSearchLedger,
227
+ pairHoldout,
228
+ parameterSweepProposer,
229
+ paretoPolicy,
230
+ paretoSignificanceGate,
231
+ parseSkillPatchResponse,
232
+ patchEditCount,
233
+ planCampaignRun,
234
+ planEvalFixtureRun,
235
+ policyEditProposer,
236
+ powerPreflight,
237
+ projectPolicyEditHistory,
238
+ provenanceRecordPath,
239
+ provenanceSpansPath,
240
+ renderScoreboardMarkdown,
241
+ renderSurfaceDiff,
242
+ resolveRunDir,
243
+ resolveWorktreePath,
244
+ rolloutArgumentDiff,
245
+ runCampaign,
246
+ runEval,
247
+ runImprovementLoop,
248
+ runLineage,
249
+ runLineageLoop,
250
+ runOptimization,
251
+ runProfileMatrix,
252
+ runSkillOpt,
253
+ scoreDiscrimination,
254
+ scoreUserStory,
255
+ scoreboardSummary,
256
+ selectDiscriminative,
257
+ selectPolicyEditAuthorRows,
258
+ sequentialDecide,
259
+ sequentialPairedGate,
260
+ skillOptEntry,
261
+ skillOptProposer,
262
+ surfaceContentHash,
263
+ surfaceHash,
264
+ tangleTracesRoot,
265
+ traceAnalystProposer,
266
+ userStoryScoreboard,
267
+ validatePolicyEditCandidateRecord,
268
+ validateSearchLedgerEvent,
269
+ verifyCodeSurface,
270
+ verifyLoopProvenanceRecord
271
+ };
272
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,84 @@
1
+ // src/meta-eval/outcome-store.ts
2
+ var InMemoryOutcomeStore = class {
3
+ items = [];
4
+ async append(outcome) {
5
+ this.items.push({ ...outcome });
6
+ }
7
+ async forRun(runId) {
8
+ return this.items.filter((o) => o.runId === runId).map((o) => ({ ...o }));
9
+ }
10
+ async list(filter = {}) {
11
+ return this.items.filter((o) => matches(o, filter)).map((o) => ({ ...o }));
12
+ }
13
+ };
14
+ var FileSystemOutcomeStore = class {
15
+ dir;
16
+ maxBytes;
17
+ memo;
18
+ loaded = false;
19
+ constructor(options) {
20
+ this.dir = options.dir;
21
+ this.maxBytes = options.maxBytes ?? 32 * 1024 * 1024;
22
+ }
23
+ async ensureDir() {
24
+ const fs = await import("fs/promises");
25
+ await fs.mkdir(this.dir, { recursive: true });
26
+ }
27
+ async append(outcome) {
28
+ await this.ensureDir();
29
+ const fs = await import("fs/promises");
30
+ const path = await import("path");
31
+ const active = path.join(this.dir, "outcomes.ndjson");
32
+ try {
33
+ const stat = await fs.stat(active);
34
+ if (stat.size >= this.maxBytes) {
35
+ await fs.rename(active, path.join(this.dir, `outcomes.${Date.now()}.ndjson`));
36
+ }
37
+ } catch {
38
+ }
39
+ await fs.appendFile(active, `${JSON.stringify(outcome)}
40
+ `, "utf8");
41
+ if (this.memo) await this.memo.append(outcome);
42
+ }
43
+ async load() {
44
+ if (this.loaded && this.memo) return this.memo;
45
+ const fs = await import("fs/promises");
46
+ const path = await import("path");
47
+ const memo = new InMemoryOutcomeStore();
48
+ try {
49
+ const entries = await fs.readdir(this.dir);
50
+ for (const file of entries) {
51
+ if (!file.endsWith(".ndjson")) continue;
52
+ const content = await fs.readFile(path.join(this.dir, file), "utf8");
53
+ for (const line of content.split("\n")) {
54
+ if (!line.trim()) continue;
55
+ await memo.append(JSON.parse(line));
56
+ }
57
+ }
58
+ } catch {
59
+ }
60
+ this.memo = memo;
61
+ this.loaded = true;
62
+ return memo;
63
+ }
64
+ async forRun(runId) {
65
+ return (await this.load()).forRun(runId);
66
+ }
67
+ async list(filter) {
68
+ return (await this.load()).list(filter);
69
+ }
70
+ };
71
+ function matches(o, f) {
72
+ if (f.runIds && !f.runIds.includes(o.runId)) return false;
73
+ if (f.since !== void 0 && o.capturedAt < f.since) return false;
74
+ if (f.until !== void 0 && o.capturedAt > f.until) return false;
75
+ if (f.source && o.source !== f.source) return false;
76
+ if (f.label && o.labels?.[f.label.key] !== f.label.value) return false;
77
+ return true;
78
+ }
79
+
80
+ export {
81
+ InMemoryOutcomeStore,
82
+ FileSystemOutcomeStore
83
+ };
84
+ //# sourceMappingURL=chunk-3RF76KTD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/meta-eval/outcome-store.ts"],"sourcesContent":["/**\n * OutcomeStore — deployment outcomes attached to Run IDs.\n *\n * Outcomes arrive asynchronously from production telemetry after the\n * eval run completed: user ratings, retention flags, conversion events,\n * revenue, support-ticket rate, anything a product team can measure.\n * The store is a peer to TraceStore — separate lifecycle, same runId\n * foreign key.\n *\n * The whole point of this module is to make the meta-eval correlation\n * question computable: `correlate(evalMetric, outcomeMetric) → r, ρ, n, CI`.\n */\n\nexport interface DeploymentOutcome {\n runId: string\n capturedAt: number\n /** Numeric outcomes keyed by name — retention_7d, csat, revenue_usd, etc. */\n metrics: Record<string, number>\n /** Dimensions for stratified analysis — cohort, region, user_segment. */\n labels?: Record<string, string>\n /** Free-form provenance (source system, pipeline version). */\n source?: string\n}\n\nexport interface OutcomeFilter {\n runIds?: string[]\n since?: number\n until?: number\n label?: { key: string; value: string }\n source?: string\n}\n\nexport interface OutcomeStore {\n append(outcome: DeploymentOutcome): Promise<void>\n /** All outcomes attached to this run (a single run can have many — multiple\n * capture windows over deployment time). */\n forRun(runId: string): Promise<DeploymentOutcome[]>\n list(filter?: OutcomeFilter): Promise<DeploymentOutcome[]>\n}\n\nexport class InMemoryOutcomeStore implements OutcomeStore {\n private items: DeploymentOutcome[] = []\n\n async append(outcome: DeploymentOutcome): Promise<void> {\n this.items.push({ ...outcome })\n }\n\n async forRun(runId: string): Promise<DeploymentOutcome[]> {\n return this.items.filter((o) => o.runId === runId).map((o) => ({ ...o }))\n }\n\n async list(filter: OutcomeFilter = {}): Promise<DeploymentOutcome[]> {\n return this.items.filter((o) => matches(o, filter)).map((o) => ({ ...o }))\n }\n}\n\nexport interface FileSystemOutcomeStoreOptions {\n dir: string\n maxBytes?: number\n}\n\nexport class FileSystemOutcomeStore implements OutcomeStore {\n private dir: string\n private maxBytes: number\n private memo?: InMemoryOutcomeStore\n private loaded = false\n\n constructor(options: FileSystemOutcomeStoreOptions) {\n this.dir = options.dir\n this.maxBytes = options.maxBytes ?? 32 * 1024 * 1024\n }\n\n private async ensureDir(): Promise<void> {\n const fs = await import('node:fs/promises')\n await fs.mkdir(this.dir, { recursive: true })\n }\n\n async append(outcome: DeploymentOutcome): Promise<void> {\n await this.ensureDir()\n const fs = await import('node:fs/promises')\n const path = await import('node:path')\n const active = path.join(this.dir, 'outcomes.ndjson')\n try {\n const stat = await fs.stat(active)\n if (stat.size >= this.maxBytes) {\n await fs.rename(active, path.join(this.dir, `outcomes.${Date.now()}.ndjson`))\n }\n } catch {\n /* first write */\n }\n await fs.appendFile(active, `${JSON.stringify(outcome)}\\n`, 'utf8')\n if (this.memo) await this.memo.append(outcome)\n }\n\n private async load(): Promise<InMemoryOutcomeStore> {\n if (this.loaded && this.memo) return this.memo\n const fs = await import('node:fs/promises')\n const path = await import('node:path')\n const memo = new InMemoryOutcomeStore()\n try {\n const entries = await fs.readdir(this.dir)\n for (const file of entries) {\n if (!file.endsWith('.ndjson')) continue\n const content = await fs.readFile(path.join(this.dir, file), 'utf8')\n for (const line of content.split('\\n')) {\n if (!line.trim()) continue\n await memo.append(JSON.parse(line))\n }\n }\n } catch {\n /* empty */\n }\n this.memo = memo\n this.loaded = true\n return memo\n }\n\n async forRun(runId: string): Promise<DeploymentOutcome[]> {\n return (await this.load()).forRun(runId)\n }\n\n async list(filter?: OutcomeFilter): Promise<DeploymentOutcome[]> {\n return (await this.load()).list(filter)\n }\n}\n\nfunction matches(o: DeploymentOutcome, f: OutcomeFilter): boolean {\n if (f.runIds && !f.runIds.includes(o.runId)) return false\n if (f.since !== undefined && o.capturedAt < f.since) return false\n if (f.until !== undefined && o.capturedAt > f.until) return false\n if (f.source && o.source !== f.source) return false\n if (f.label && o.labels?.[f.label.key] !== f.label.value) return false\n return true\n}\n"],"mappings":";AAwCO,IAAM,uBAAN,MAAmD;AAAA,EAChD,QAA6B,CAAC;AAAA,EAEtC,MAAM,OAAO,SAA2C;AACtD,SAAK,MAAM,KAAK,EAAE,GAAG,QAAQ,CAAC;AAAA,EAChC;AAAA,EAEA,MAAM,OAAO,OAA6C;AACxD,WAAO,KAAK,MAAM,OAAO,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;AAAA,EAC1E;AAAA,EAEA,MAAM,KAAK,SAAwB,CAAC,GAAiC;AACnE,WAAO,KAAK,MAAM,OAAO,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;AAAA,EAC3E;AACF;AAOO,IAAM,yBAAN,MAAqD;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EAEjB,YAAY,SAAwC;AAClD,SAAK,MAAM,QAAQ;AACnB,SAAK,WAAW,QAAQ,YAAY,KAAK,OAAO;AAAA,EAClD;AAAA,EAEA,MAAc,YAA2B;AACvC,UAAM,KAAK,MAAM,OAAO,aAAkB;AAC1C,UAAM,GAAG,MAAM,KAAK,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,EAC9C;AAAA,EAEA,MAAM,OAAO,SAA2C;AACtD,UAAM,KAAK,UAAU;AACrB,UAAM,KAAK,MAAM,OAAO,aAAkB;AAC1C,UAAM,OAAO,MAAM,OAAO,MAAW;AACrC,UAAM,SAAS,KAAK,KAAK,KAAK,KAAK,iBAAiB;AACpD,QAAI;AACF,YAAM,OAAO,MAAM,GAAG,KAAK,MAAM;AACjC,UAAI,KAAK,QAAQ,KAAK,UAAU;AAC9B,cAAM,GAAG,OAAO,QAAQ,KAAK,KAAK,KAAK,KAAK,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC;AAAA,MAC9E;AAAA,IACF,QAAQ;AAAA,IAER;AACA,UAAM,GAAG,WAAW,QAAQ,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,GAAM,MAAM;AAClE,QAAI,KAAK,KAAM,OAAM,KAAK,KAAK,OAAO,OAAO;AAAA,EAC/C;AAAA,EAEA,MAAc,OAAsC;AAClD,QAAI,KAAK,UAAU,KAAK,KAAM,QAAO,KAAK;AAC1C,UAAM,KAAK,MAAM,OAAO,aAAkB;AAC1C,UAAM,OAAO,MAAM,OAAO,MAAW;AACrC,UAAM,OAAO,IAAI,qBAAqB;AACtC,QAAI;AACF,YAAM,UAAU,MAAM,GAAG,QAAQ,KAAK,GAAG;AACzC,iBAAW,QAAQ,SAAS;AAC1B,YAAI,CAAC,KAAK,SAAS,SAAS,EAAG;AAC/B,cAAM,UAAU,MAAM,GAAG,SAAS,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,MAAM;AACnE,mBAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,cAAI,CAAC,KAAK,KAAK,EAAG;AAClB,gBAAM,KAAK,OAAO,KAAK,MAAM,IAAI,CAAC;AAAA,QACpC;AAAA,MACF;AAAA,IACF,QAAQ;AAAA,IAER;AACA,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,OAA6C;AACxD,YAAQ,MAAM,KAAK,KAAK,GAAG,OAAO,KAAK;AAAA,EACzC;AAAA,EAEA,MAAM,KAAK,QAAsD;AAC/D,YAAQ,MAAM,KAAK,KAAK,GAAG,KAAK,MAAM;AAAA,EACxC;AACF;AAEA,SAAS,QAAQ,GAAsB,GAA2B;AAChE,MAAI,EAAE,UAAU,CAAC,EAAE,OAAO,SAAS,EAAE,KAAK,EAAG,QAAO;AACpD,MAAI,EAAE,UAAU,UAAa,EAAE,aAAa,EAAE,MAAO,QAAO;AAC5D,MAAI,EAAE,UAAU,UAAa,EAAE,aAAa,EAAE,MAAO,QAAO;AAC5D,MAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAQ,QAAO;AAC9C,MAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,MAAO,QAAO;AACjE,SAAO;AACT;","names":[]}