niceeval 0.16.3-canary.99 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/cli/bootstrap.cjs +7 -1
  2. package/dist/cli/bootstrap.cjs.map +1 -1
  3. package/dist/cli/project-configuration.cjs +8 -11
  4. package/dist/cli/project-configuration.cjs.map +1 -1
  5. package/dist/expect/index.cjs.map +1 -1
  6. package/dist/expect/index.d.cts +2 -1
  7. package/dist/expect/index.d.mts +2 -1
  8. package/dist/expect/index.d.ts +2 -1
  9. package/dist/experiment/host/cli/contribution.cjs +6 -11
  10. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  11. package/dist/experiment/host/cli/contribution.d.cts +0 -16
  12. package/dist/experiment/host/cli/contribution.d.mts +0 -16
  13. package/dist/experiment/host/cli/contribution.d.ts +0 -16
  14. package/dist/experiment/host/operations.cjs +3 -3
  15. package/dist/experiment/host/operations.cjs.map +1 -1
  16. package/dist/experiment/host/types.cjs.map +1 -1
  17. package/dist/experiment/host/types.d.cts +0 -4
  18. package/dist/experiment/host/types.d.mts +0 -4
  19. package/dist/experiment/host/types.d.ts +0 -4
  20. package/dist/fresh-import.cjs +2 -2
  21. package/dist/fresh-import.cjs.map +1 -1
  22. package/dist/fresh-import.d.cts +3 -3
  23. package/dist/fresh-import.d.mts +3 -3
  24. package/dist/fresh-import.d.ts +3 -3
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +2 -1
  27. package/dist/index.d.mts +2 -1
  28. package/dist/index.d.ts +2 -1
  29. package/dist/inspection/codec.cjs.map +1 -1
  30. package/dist/inspection/codec.d.cts +1 -1
  31. package/dist/inspection/codec.d.mts +1 -1
  32. package/dist/inspection/codec.d.ts +1 -1
  33. package/dist/inspection/facts.cjs +66 -9
  34. package/dist/inspection/facts.cjs.map +1 -1
  35. package/dist/inspection/facts.d.cts +4 -0
  36. package/dist/inspection/facts.d.mts +4 -0
  37. package/dist/inspection/facts.d.ts +4 -0
  38. package/dist/inspection/facts.js +4 -2
  39. package/dist/inspection/index.cjs +1 -3
  40. package/dist/inspection/index.cjs.map +1 -1
  41. package/dist/inspection/index.d.cts +1 -1
  42. package/dist/inspection/index.d.mts +1 -1
  43. package/dist/inspection/index.d.ts +1 -1
  44. package/dist/inspection/index.js +44 -48
  45. package/dist/inspection/limits.cjs +3 -1
  46. package/dist/inspection/limits.cjs.map +1 -1
  47. package/dist/inspection/limits.d.cts +2 -0
  48. package/dist/inspection/limits.d.mts +2 -0
  49. package/dist/inspection/limits.d.ts +2 -0
  50. package/dist/inspection/limits.js +6 -4
  51. package/dist/inspection/project-source.cjs +4 -1
  52. package/dist/inspection/project-source.cjs.map +1 -1
  53. package/dist/inspection/protocol.cjs +10 -18
  54. package/dist/inspection/protocol.cjs.map +1 -1
  55. package/dist/inspection/protocol.d.cts +111 -173
  56. package/dist/inspection/protocol.d.mts +111 -173
  57. package/dist/inspection/protocol.d.ts +111 -173
  58. package/dist/inspection/public.mjs +73 -109
  59. package/dist/inspection/results.cjs +12 -48
  60. package/dist/inspection/results.cjs.map +1 -1
  61. package/dist/inspection/results.d.cts +124 -122
  62. package/dist/inspection/results.d.mts +124 -122
  63. package/dist/inspection/results.d.ts +124 -122
  64. package/dist/inspection/results.js +16 -20
  65. package/dist/inspection/select.cjs +80 -117
  66. package/dist/inspection/select.cjs.map +1 -1
  67. package/dist/inspection/source.cjs +14 -15
  68. package/dist/inspection/source.cjs.map +1 -1
  69. package/dist/inspection/source.d.cts +6 -3
  70. package/dist/inspection/source.d.mts +6 -3
  71. package/dist/inspection/source.d.ts +6 -3
  72. package/dist/inspection/trace.cjs +1 -1
  73. package/dist/inspection/trace.cjs.map +1 -1
  74. package/dist/load-config.cjs +17 -11
  75. package/dist/load-config.cjs.map +1 -1
  76. package/dist/load-config.d.cts +3 -2
  77. package/dist/load-config.d.mts +3 -2
  78. package/dist/load-config.d.ts +3 -2
  79. package/dist/o11y/adapter-usage-projection.cjs +5 -1
  80. package/dist/o11y/adapter-usage-projection.cjs.map +1 -1
  81. package/dist/o11y/adapter-usage-projection.d.cts +109 -1
  82. package/dist/o11y/adapter-usage-projection.d.mts +109 -1
  83. package/dist/o11y/adapter-usage-projection.d.ts +109 -1
  84. package/dist/o11y/cache-read.cjs +113 -0
  85. package/dist/o11y/cache-read.cjs.map +1 -0
  86. package/dist/o11y/cache-read.d.cts +80 -0
  87. package/dist/o11y/cache-read.d.mts +80 -0
  88. package/dist/o11y/cache-read.d.ts +80 -0
  89. package/dist/o11y/cache-read.js +8 -0
  90. package/dist/o11y/cache-read.js.map +1 -0
  91. package/dist/o11y/eval-usage.cjs +22 -1
  92. package/dist/o11y/eval-usage.cjs.map +1 -1
  93. package/dist/o11y/eval-usage.d.cts +9 -1
  94. package/dist/o11y/eval-usage.d.mts +9 -1
  95. package/dist/o11y/eval-usage.d.ts +9 -1
  96. package/dist/record/host/sqlite-host.cjs +188 -53
  97. package/dist/record/host/sqlite-host.cjs.map +1 -1
  98. package/dist/record/host/sqlite-host.d.cts +37 -1
  99. package/dist/record/host/sqlite-host.d.mts +37 -1
  100. package/dist/record/host/sqlite-host.d.ts +37 -1
  101. package/dist/record/host/sqlite-host.js +16 -8
  102. package/dist/record/maintenance/runtime.cjs +3 -3
  103. package/dist/record/maintenance/runtime.cjs.map +1 -1
  104. package/dist/record/sqlite/admission-repository.cjs +18 -18
  105. package/dist/record/sqlite/admission-repository.cjs.map +1 -1
  106. package/dist/record/sqlite/case-repository.cjs +6 -6
  107. package/dist/record/sqlite/case-repository.cjs.map +1 -1
  108. package/dist/record/sqlite/coordination-repository.cjs +25 -25
  109. package/dist/record/sqlite/coordination-repository.cjs.map +1 -1
  110. package/dist/record/sqlite/current-schema.cjs +115 -111
  111. package/dist/record/sqlite/current-schema.cjs.map +1 -1
  112. package/dist/record/sqlite/current-schema.d.cts +3 -3
  113. package/dist/record/sqlite/current-schema.d.mts +3 -3
  114. package/dist/record/sqlite/current-schema.d.ts +3 -3
  115. package/dist/record/sqlite/database.cjs +56 -53
  116. package/dist/record/sqlite/database.cjs.map +1 -1
  117. package/dist/record/sqlite/index.cjs +3 -1
  118. package/dist/record/sqlite/index.cjs.map +1 -1
  119. package/dist/record/sqlite/index.d.cts +5 -2
  120. package/dist/record/sqlite/index.d.mts +5 -2
  121. package/dist/record/sqlite/index.d.ts +5 -2
  122. package/dist/record/sqlite/legacy-schema-018.cjs +443 -0
  123. package/dist/record/sqlite/legacy-schema-018.cjs.map +1 -0
  124. package/dist/record/sqlite/legacy-schema-018.d.cts +6 -0
  125. package/dist/record/sqlite/legacy-schema-018.d.mts +6 -0
  126. package/dist/record/sqlite/legacy-schema-018.d.ts +6 -0
  127. package/dist/record/sqlite/legacy-schema-018.js +6 -0
  128. package/dist/record/sqlite/legacy-schema-018.js.map +1 -0
  129. package/dist/record/sqlite/migration.cjs +105 -46
  130. package/dist/record/sqlite/migration.cjs.map +1 -1
  131. package/dist/record/sqlite/migration.d.cts +2 -1
  132. package/dist/record/sqlite/migration.d.mts +2 -1
  133. package/dist/record/sqlite/migration.d.ts +2 -1
  134. package/dist/record/sqlite/portable-capture.cjs +13 -13
  135. package/dist/record/sqlite/portable-capture.cjs.map +1 -1
  136. package/dist/record/sqlite/registry-repository.cjs +22 -22
  137. package/dist/record/sqlite/registry-repository.cjs.map +1 -1
  138. package/dist/record/sqlite/schema.cjs +10 -2
  139. package/dist/record/sqlite/schema.cjs.map +1 -1
  140. package/dist/record/sqlite/schema.d.cts +4 -1
  141. package/dist/record/sqlite/schema.d.mts +4 -1
  142. package/dist/record/sqlite/schema.d.ts +4 -1
  143. package/dist/record/sqlite/schema.js +20 -14
  144. package/dist/record/sqlite/storage-worker.cjs +1 -1
  145. package/dist/record/sqlite/storage-worker.cjs.map +1 -1
  146. package/dist/record/sqlite/storage.cjs +316 -232
  147. package/dist/record/sqlite/storage.cjs.map +1 -1
  148. package/dist/record/sqlite/storage.d.cts +10 -2
  149. package/dist/record/sqlite/storage.d.mts +10 -2
  150. package/dist/record/sqlite/storage.d.ts +10 -2
  151. package/dist/record/sqlite/storage.js +54 -50
  152. package/dist/record/sqlite/types.cjs +1 -1
  153. package/dist/record/sqlite/types.cjs.map +1 -1
  154. package/dist/record/sqlite/types.d.cts +13 -1
  155. package/dist/record/sqlite/types.d.mts +13 -1
  156. package/dist/record/sqlite/types.d.ts +13 -1
  157. package/dist/run/cli/contribution.cjs +17 -12
  158. package/dist/run/cli/contribution.cjs.map +1 -1
  159. package/dist/run/host/lifecycle-adapter.cjs +1 -1
  160. package/dist/run/host/lifecycle-adapter.cjs.map +1 -1
  161. package/dist/run/storage/owner-identity.cjs +78 -16
  162. package/dist/run/storage/owner-identity.cjs.map +1 -1
  163. package/dist/run/storage/owner-identity.d.cts +2 -1
  164. package/dist/run/storage/owner-identity.d.mts +2 -1
  165. package/dist/run/storage/owner-identity.d.ts +2 -1
  166. package/dist/run/storage/sqlite.cjs +55 -55
  167. package/dist/run/storage/sqlite.cjs.map +1 -1
  168. package/dist/runner/accept.cjs +12 -42
  169. package/dist/runner/accept.cjs.map +1 -1
  170. package/dist/runner/accept.d.cts +2 -3
  171. package/dist/runner/accept.d.mts +2 -3
  172. package/dist/runner/accept.d.ts +2 -3
  173. package/dist/runner/adapter-usage.cjs +2 -2
  174. package/dist/runner/adapter-usage.cjs.map +1 -1
  175. package/dist/runner/adoption.cjs +14 -26
  176. package/dist/runner/adoption.cjs.map +1 -1
  177. package/dist/runner/adoption.d.cts +5 -13
  178. package/dist/runner/adoption.d.mts +5 -13
  179. package/dist/runner/adoption.d.ts +5 -13
  180. package/dist/runner/adoption.js +2 -4
  181. package/dist/runner/record.cjs +24 -18
  182. package/dist/runner/record.cjs.map +1 -1
  183. package/dist/runner/rename-experiment.cjs +5 -7
  184. package/dist/runner/rename-experiment.cjs.map +1 -1
  185. package/dist/runner/reuse-plan.cjs +37 -18
  186. package/dist/runner/reuse-plan.cjs.map +1 -1
  187. package/dist/runner/reuse-plan.d.cts +4 -1
  188. package/dist/runner/reuse-plan.d.mts +4 -1
  189. package/dist/runner/reuse-plan.d.ts +4 -1
  190. package/dist/runner/setup-prefix-plan.cjs +17 -12
  191. package/dist/runner/setup-prefix-plan.cjs.map +1 -1
  192. package/dist/runner/setup-prefix-plan.d.cts +0 -2
  193. package/dist/runner/setup-prefix-plan.d.mts +0 -2
  194. package/dist/runner/setup-prefix-plan.d.ts +0 -2
  195. package/dist/runner/setup-prefix-plan.js +8 -12
  196. package/dist/sandbox/backend.cjs +10 -1
  197. package/dist/sandbox/backend.cjs.map +1 -1
  198. package/dist/sandbox/backend.d.cts +16 -8
  199. package/dist/sandbox/backend.d.mts +16 -8
  200. package/dist/sandbox/backend.d.ts +16 -8
  201. package/dist/sandbox/backend.js +28 -26
  202. package/dist/sandbox/docker.cjs +7 -1
  203. package/dist/sandbox/docker.cjs.map +1 -1
  204. package/dist/sandbox/e2b-cache-repository.cjs +13 -3
  205. package/dist/sandbox/e2b-cache-repository.cjs.map +1 -1
  206. package/dist/sandbox/e2b-cache-repository.d.cts +3 -0
  207. package/dist/sandbox/e2b-cache-repository.d.mts +3 -0
  208. package/dist/sandbox/e2b-cache-repository.d.ts +3 -0
  209. package/dist/sandbox/e2b-cache-repository.js +16 -12
  210. package/dist/sandbox/e2b.cjs +2 -2
  211. package/dist/sandbox/e2b.cjs.map +1 -1
  212. package/dist/sandbox/incus/materialize.cjs +1 -1
  213. package/dist/sandbox/incus/materialize.cjs.map +1 -1
  214. package/dist/show/contribution.cjs +3 -3
  215. package/dist/show/contribution.cjs.map +1 -1
  216. package/dist/show/model.cjs +14 -13
  217. package/dist/show/model.cjs.map +1 -1
  218. package/dist/show/model.d.cts +7 -7
  219. package/dist/show/model.d.mts +7 -7
  220. package/dist/show/model.d.ts +7 -7
  221. package/dist/show/render.cjs +14 -0
  222. package/dist/show/render.cjs.map +1 -1
  223. package/dist/user-database/storage-worker.cjs +13 -3
  224. package/dist/user-database/storage-worker.cjs.map +1 -1
  225. package/dist/view/app-dist/.vite/manifest.json +2 -2
  226. package/dist/view/app-dist/assets/{index-CmVoXbwG.js → index-B3ijZRph.js} +17 -17
  227. package/dist/view/app-dist/assets/{quality-cost-scatter-BuLISaH4.js → quality-cost-scatter-B--DfJ9s.js} +1 -1
  228. package/dist/view/app-dist/index.html +1 -1
  229. package/dist/view/application-runtime.cjs +8 -0
  230. package/dist/view/application-runtime.cjs.map +1 -0
  231. package/dist/view/application-runtime.d.cts +9 -0
  232. package/dist/view/application-runtime.d.mts +9 -0
  233. package/dist/view/application-runtime.d.ts +9 -0
  234. package/dist/view/application-runtime.js +6 -0
  235. package/dist/view/application-runtime.js.map +1 -0
  236. package/dist/view/cli/contribution.cjs +5 -2
  237. package/dist/view/cli/contribution.cjs.map +1 -1
  238. package/dist/view/cli/contribution.d.cts +2 -1
  239. package/dist/view/cli/contribution.d.mts +2 -1
  240. package/dist/view/cli/contribution.d.ts +2 -1
  241. package/dist/view/function-runtime.mjs +1019 -456
  242. package/dist/view/http-protocol.d.cts +1 -9
  243. package/dist/view/http-protocol.d.mts +1 -9
  244. package/dist/view/http-protocol.d.ts +1 -9
  245. package/dist/view/inspection-host.cjs +39 -30
  246. package/dist/view/inspection-host.cjs.map +1 -1
  247. package/dist/view/inspection-host.d.cts +7545 -2
  248. package/dist/view/inspection-host.d.mts +7545 -2
  249. package/dist/view/inspection-host.d.ts +7545 -2
  250. package/dist/view/server.cjs +8 -5
  251. package/dist/view/server.cjs.map +1 -1
  252. package/dist/view/server.d.cts +4 -2
  253. package/dist/view/server.d.mts +4 -2
  254. package/dist/view/server.d.ts +4 -2
  255. package/docs-site/zh/reference/cli.mdx +1 -2
  256. package/docs-site/zh/tutorials/control-run-cost.mdx +61 -0
  257. package/docs-site/zh/tutorials/niceeval-taste-application.mdx +21 -0
  258. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"accept.js","sourceRoot":"","sources":["accept.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Explicit acceptance is a Record v1 reference-only producer. It deliberately\n * has no dependency on the retired result graph: locator resolution, planning\n * and write-session publication all operate on one frozen Record v1 view.\n */\nimport { Effect } from \"effect\";\nimport type { SandboxPlanningServices } from \"../sandbox/plan.ts\";\nimport { type AdoptionProjectInput, type AdoptionProject, type CurrentAdoptionTarget, ExplicitAdoptionError, type ExplicitAdoptionOpenError, type ExplicitAdoptionReadError, type ExplicitAdoptionMember, type ExplicitAdoptionRunPlan, type ExplicitAdoptionRunReceipt, type ResolvedAdoptionAttempt, adoptionRecordRoot, adoptionStartedAt, buildExplicitAdoptionRunPlan, commitExplicitAdoptionRunPlans, createExplicitAdoptionInvocationId, loadAdoptionProject, prepareCurrentAdoptionTarget, prepareWholeRunAdoptionMembers, prepareExplicitAdoptionMember, resolveExplicitAttemptLocator, resolveExactAdoptionSourceRun, withAdoptionCommitScope, withAdoptionReader, } from \"./adoption.ts\";\nimport type { Config, DiscoveredEval, DiscoveredExperiment, } from \"./types.ts\";\nexport type AcceptFailureCode = \"malformed-locator\" | \"locator-not-found\" | \"accept-ineligible\" | \"duplicate-accept-member\" | \"planning-failed\" | \"batch-mismatch\";\n/** Compatibility adapter for the current CLI boundary only. */\nexport class AcceptError extends Error {\n readonly name = \"AcceptError\";\n constructor(readonly code: AcceptFailureCode, message: string) {\n super(message);\n }\n}\nexport interface AcceptLocatorOptions {\n readonly cwd: string;\n readonly locator: string;\n readonly recordRoot?: string;\n readonly config?: Config;\n readonly evals?: readonly DiscoveredEval[];\n readonly experiments?: readonly DiscoveredExperiment[];\n readonly planningServices?: SandboxPlanningServices;\n readonly now?: () => string | number;\n /** Durable accepted-action context; never copied into the source Attempt. */\n readonly operatorReason?: string;\n}\nexport interface AcceptLocatorsOptions extends Omit<AcceptLocatorOptions, \"locator\"> {\n readonly locators: readonly string[];\n}\nexport interface AcceptRunOptions extends Omit<AcceptLocatorsOptions, \"locators\"> {\n readonly runId: string;\n}\nexport interface AcceptedRunPreview {\n readonly sourceRunId: string;\n readonly members: readonly AcceptedAttemptPreview[];\n}\nexport interface AcceptedAttempt {\n readonly invocationId: string;\n readonly runId: string;\n readonly slotId: string;\n /** A reference has the source Attempt's exact locator; it never mints one. */\n readonly locator: string;\n readonly sourceLocator: string;\n readonly fingerprint: string;\n}\nexport interface AcceptedAttemptPreview {\n readonly locator: string;\n readonly sourceLocator: string;\n readonly experimentId: string;\n readonly evalId: string;\n readonly attempt: number;\n readonly fingerprint: string;\n}\nexport interface AcceptPreflight {\n readonly groups: readonly AcceptPreflightGroup[];\n}\n/** All native Record v1 failures before/while the formal publication runs. */\nexport type AcceptNativeError = ExplicitAdoptionOpenError;\ninterface AcceptPreflightGroup {\n readonly target: CurrentAdoptionTarget;\n readonly members: readonly ExplicitAdoptionMember[];\n readonly plan: ExplicitAdoptionRunPlan;\n}\ninterface AcceptSourceGroup {\n readonly experimentId: string;\n readonly sources: readonly ResolvedAdoptionAttempt[];\n}\n/** A locator batch publishes exactly the Slots the operator selected. */\nfunction selectedAcceptTarget(target: CurrentAdoptionTarget, members: readonly ExplicitAdoptionMember[]): CurrentAdoptionTarget {\n const selectedIds = new Set(members.map(({ target: slot }) => String(slot.slotId)));\n const slots = Object.freeze(target.slots.filter(({ slotId }) => selectedIds.has(String(slotId))));\n const expectedSlots = Object.freeze(target.expectedSlots.filter(({ slotId }) => selectedIds.has(String(slotId))));\n const byKey = new Map(slots.map((slot) => [`${slot.evalId}\\u0000${String(slot.attempt)}`, slot] as const));\n return Object.freeze({\n ...target,\n slots,\n expectedSlots,\n slotFor: (evalId: string, attempt: number) => byKey.get(`${evalId}\\u0000${String(attempt)}`),\n });\n}\nfunction explicitError(code: ExplicitAdoptionError[\"code\"], message: string): ExplicitAdoptionError {\n return new ExplicitAdoptionError(code, message);\n}\nfunction assertUniqueLocators(locators: readonly string[]): Effect.Effect<void, ExplicitAdoptionError> {\n return Effect.sync(() => {\n const seen = new Set<string>();\n for (const locator of locators) {\n if (seen.has(locator)) {\n return false;\n }\n seen.add(locator);\n }\n return locators.length > 0;\n }).pipe(Effect.flatMap((valid) => valid\n ? Effect.void\n : Effect.fail(explicitError(locators.length === 0\n ? \"adoption-target-invalid\"\n : \"adoption-batch-locator-duplicate\", locators.length === 0\n ? \"Explicit adoption requires at least one complete Attempt locator.\"\n : \"One explicit adoption locator was supplied more than once.\"))));\n}\nfunction groupAcceptSources(sources: readonly ResolvedAdoptionAttempt[]): readonly AcceptSourceGroup[] {\n const grouped = new Map<string, ResolvedAdoptionAttempt[]>();\n for (const source of sources) {\n const group = grouped.get(source.originExperimentId);\n if (group === undefined) {\n grouped.set(source.originExperimentId, [source]);\n }\n else {\n group.push(source);\n }\n }\n return Object.freeze([...grouped.entries()].map(([experimentId, group]) => Object.freeze({\n experimentId,\n sources: Object.freeze(group),\n })));\n}\n/**\n * Shared frozen-reader preflight used by both dry and formal flows. The caller\n * supplies either a reader or the one write-session view; this keeps all\n * locators, source facts and target planning in one immutable Record view.\n */\nfunction prepareAcceptPreflight(input: {\n readonly reader: Parameters<typeof resolveExplicitAttemptLocator>[0];\n readonly project: AdoptionProject;\n readonly locators: readonly string[];\n readonly startedAt: Parameters<typeof prepareCurrentAdoptionTarget>[0][\"startedAt\"];\n readonly operatorReason?: string;\n}): Effect.Effect<AcceptPreflight, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n yield* assertUniqueLocators(input.locators);\n const sources = yield* Effect.forEach(input.locators, (locator) => resolveExplicitAttemptLocator(input.reader, locator), { concurrency: 1 });\n const groups = yield* Effect.forEach(groupAcceptSources(sources), (sourceGroup) => Effect.gen(function* () {\n const target = yield* prepareCurrentAdoptionTarget({\n project: input.project,\n experimentId: sourceGroup.experimentId,\n startedAt: input.startedAt,\n });\n const members = yield* Effect.forEach(sourceGroup.sources, (source) => prepareExplicitAdoptionMember({\n reader: input.reader,\n target,\n source,\n evalId: source.originEvalId,\n attempt: source.originAttempt,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n }), { concurrency: 1 });\n const selectedTarget = selectedAcceptTarget(target, members);\n const plan = yield* buildExplicitAdoptionRunPlan({\n intent: \"accept\",\n target: selectedTarget,\n members,\n });\n return Object.freeze({\n target: selectedTarget,\n members: Object.freeze(members),\n plan,\n });\n }), \n // Physical planning can be costly; retain one complete target at a time.\n { concurrency: 1 });\n return Object.freeze({ groups: Object.freeze(groups) });\n });\n}\nfunction projectAcceptPreview(preflight: AcceptPreflight): readonly AcceptedAttemptPreview[] {\n return Object.freeze(preflight.groups.flatMap((group) => group.members.map((member) => Object.freeze({\n locator: member.locator,\n sourceLocator: member.locator,\n experimentId: group.target.experimentId,\n evalId: member.target.evalId,\n attempt: member.target.attempt,\n fingerprint: member.target.inputIdentity.value,\n }))));\n}\nfunction receiptsForAccept(input: {\n readonly invocationId: string;\n readonly locators: readonly string[];\n readonly preflight: AcceptPreflight;\n readonly receipts: readonly ExplicitAdoptionRunReceipt[];\n}): Effect.Effect<readonly AcceptedAttempt[], ExplicitAdoptionError> {\n return Effect.gen(function* () {\n if (input.receipts.length !== input.preflight.groups.length) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned a receipt for an unexpected target Run set.\"));\n }\n const receiptsByExperiment = new Map<string, ExplicitAdoptionRunReceipt>();\n for (const receipt of input.receipts) {\n if (receiptsByExperiment.has(receipt.experimentId)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned duplicate target-Experiment receipts.\"));\n }\n receiptsByExperiment.set(receipt.experimentId, receipt);\n }\n const byLocator = new Map<string, AcceptedAttempt>();\n for (const group of input.preflight.groups) {\n const receipt = receiptsByExperiment.get(group.target.experimentId);\n if (receipt === undefined || receipt.members.length !== group.members.length) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned incomplete Member receipts.\"));\n }\n const membersByLocator = new Map<string, ExplicitAdoptionRunReceipt[\"members\"][number]>();\n for (const memberReceipt of receipt.members) {\n if (membersByLocator.has(memberReceipt.locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned duplicate Member receipt locators.\"));\n }\n membersByLocator.set(memberReceipt.locator, memberReceipt);\n }\n for (const member of group.members) {\n const memberReceipt = membersByLocator.get(member.locator);\n if (memberReceipt === undefined ||\n memberReceipt.locator !== member.locator ||\n memberReceipt.slotId !== member.target.slotId ||\n memberReceipt.sourceRunId !== member.source.origin.runId ||\n memberReceipt.attemptId !== member.source.attempt.attemptId) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned a Member receipt with mismatched identity provenance.\"));\n }\n if (byLocator.has(member.locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication reused one locator across target Members.\"));\n }\n byLocator.set(member.locator, Object.freeze({\n invocationId: input.invocationId,\n runId: receipt.runId,\n slotId: memberReceipt.slotId,\n locator: member.locator,\n sourceLocator: member.locator,\n fingerprint: member.target.inputIdentity.value,\n }));\n }\n if (membersByLocator.size !== group.members.length) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned an unexpected Member receipt.\"));\n }\n }\n const ordered: AcceptedAttempt[] = [];\n for (const locator of input.locators) {\n const receipt = byLocator.get(locator);\n if (receipt === undefined) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit adoption did not publish a receipt for locator \"${locator}\".`));\n }\n ordered.push(receipt);\n }\n return Object.freeze(ordered);\n });\n}\nfunction projectInput(input: AcceptLocatorsOptions): AdoptionProjectInput {\n return {\n cwd: input.cwd,\n ...(input.config === undefined ? {} : { config: input.config }),\n ...(input.evals === undefined ? {} : { evals: input.evals }),\n ...(input.experiments === undefined ? {} : { experiments: input.experiments }),\n ...(input.planningServices === undefined\n ? {}\n : { planningServices: input.planningServices }),\n };\n}\nfunction prepareAcceptRunPreflight(input: {\n readonly reader: Parameters<typeof resolveExplicitAttemptLocator>[0];\n readonly project: AdoptionProject;\n readonly runId: string;\n readonly startedAt: Parameters<typeof prepareCurrentAdoptionTarget>[0][\"startedAt\"];\n readonly operatorReason?: string;\n}): Effect.Effect<AcceptPreflight, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const sourceRun = yield* resolveExactAdoptionSourceRun({\n reader: input.reader,\n sourceRunId: input.runId,\n }).pipe(Effect.mapError((cause) => cause.code === \"adoption-source-run-not-found\"\n ? explicitError(\"run-not-found\", cause.message)\n : cause));\n const target = yield* prepareCurrentAdoptionTarget({\n project: input.project,\n experimentId: sourceRun.experimentId,\n startedAt: input.startedAt,\n });\n const prepared = yield* prepareWholeRunAdoptionMembers({\n reader: input.reader,\n intent: \"accept\",\n sourceRun,\n target,\n operatorReason: input.operatorReason ?? `Accepted source Run ${input.runId}`,\n });\n const members = Object.freeze(prepared.members.map((entry) => entry.member));\n const plan = yield* buildExplicitAdoptionRunPlan({ intent: \"accept\", target, members });\n return Object.freeze({ groups: Object.freeze([Object.freeze({ target, members, plan })]) });\n });\n}\nfunction acceptRunProjectInput(input: AcceptRunOptions): AdoptionProjectInput {\n return projectInput({ ...input, locators: Object.freeze([]) });\n}\nexport function planAcceptRun(input: AcceptRunOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot(input);\n const startedAt = yield* adoptionStartedAt(input.now);\n const project = yield* loadAdoptionProject(acceptRunProjectInput(input));\n const preflight = yield* withAdoptionReader({\n root,\n use: (reader) => prepareAcceptRunPreflight({ reader, project, runId: input.runId, startedAt, ...(input.operatorReason === undefined ? {} : { operatorReason: input.operatorReason }) }),\n });\n return Object.freeze({ sourceRunId: input.runId, members: projectAcceptPreview(preflight) });\n });\n}\nexport function acceptRun(input: AcceptRunOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot(input);\n const startedAt = yield* adoptionStartedAt(input.now);\n const resolvedProjectInput = acceptRunProjectInput(input);\n const previewProject = yield* loadAdoptionProject(resolvedProjectInput);\n yield* withAdoptionReader({ root, use: (reader) => prepareAcceptRunPreflight({ reader, project: previewProject, runId: input.runId, startedAt, ...(input.operatorReason === undefined ? {} : { operatorReason: input.operatorReason }) }) });\n const invocationId = yield* createExplicitAdoptionInvocationId();\n return yield* withAdoptionCommitScope({\n root,\n use: (reader) => Effect.gen(function* () {\n const project = yield* loadAdoptionProject(resolvedProjectInput);\n const preflight = yield* prepareAcceptRunPreflight({ reader, project, runId: input.runId, startedAt, ...(input.operatorReason === undefined ? {} : { operatorReason: input.operatorReason }) });\n const receipts = yield* commitExplicitAdoptionRunPlans(reader, root, invocationId, preflight.groups.map((group) => group.plan));\n const locators = projectAcceptPreview(preflight).map((member) => member.locator);\n return yield* receiptsForAccept({ invocationId, locators, preflight, receipts });\n }),\n });\n });\n}\n/**\n * Effect-native, reader-only acceptance planning. It opens only the shared\n * reader lease and creates neither a writer lock nor a Run.\n */\nexport function planAcceptLocators(input: AcceptLocatorsOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot(input);\n const startedAt = yield* adoptionStartedAt(input.now);\n const project = yield* loadAdoptionProject(projectInput(input));\n const preflight = yield* withAdoptionReader({\n root,\n use: (reader) => prepareAcceptPreflight({\n reader,\n project,\n locators: input.locators,\n startedAt,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n }),\n });\n return projectAcceptPreview(preflight);\n });\n}\n/**\n * Effect-native formal acceptance. A reader preflight happens first; then one\n * scoped Host read session repeats the entire preflight and publishes\n * reference-only target Runs through createReferenceRun.\n */\nexport function acceptLocators(input: AcceptLocatorsOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot(input);\n const startedAt = yield* adoptionStartedAt(input.now);\n const resolvedProjectInput = projectInput(input);\n const previewProject = yield* loadAdoptionProject(resolvedProjectInput);\n yield* withAdoptionReader({\n root,\n use: (reader) => prepareAcceptPreflight({\n reader,\n project: previewProject,\n locators: input.locators,\n startedAt,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n }),\n });\n const invocationId = yield* createExplicitAdoptionInvocationId();\n return yield* withAdoptionCommitScope({\n root,\n use: (reader) => Effect.gen(function* () {\n // Discovery and target planning are deliberately refreshed while the\n // Host reader keeps SelectedAttemptRefs live for the reference write.\n const project = yield* loadAdoptionProject(resolvedProjectInput);\n const preflight = yield* prepareAcceptPreflight({\n reader,\n project,\n locators: input.locators,\n startedAt,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n });\n const receipts = yield* commitExplicitAdoptionRunPlans(reader, root, invocationId, preflight.groups.map((group) => group.plan));\n return yield* receiptsForAccept({\n invocationId,\n locators: input.locators,\n preflight,\n receipts,\n });\n }),\n });\n });\n}\n/** One-item native convenience without reconstructing a legacy result object. */\nexport function acceptLocator(input: AcceptLocatorOptions) {\n return acceptLocators({ ...input, locators: [input.locator] }).pipe(Effect.flatMap((receipts) => {\n const [receipt] = receipts;\n return receipt === undefined\n ? Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption published no receipt for its requested locator.\"))\n : Effect.succeed(receipt);\n }));\n}\n"]}
1
+ {"version":3,"file":"accept.js","sourceRoot":"","sources":["accept.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Explicit acceptance is a Record v1 reference-only producer. It deliberately\n * has no dependency on the retired result graph: locator resolution, planning\n * and write-session publication all operate on one frozen Record v1 view.\n */\nimport { Effect } from \"effect\";\nimport type { SandboxPlanningServices } from \"../sandbox/plan.ts\";\nimport { type AdoptionProjectInput, type AdoptionProject, type CurrentAdoptionTarget, ExplicitAdoptionError, type ExplicitAdoptionOpenError, type ExplicitAdoptionReadError, type ExplicitAdoptionMember, type ExplicitAdoptionRunPlan, type ExplicitAdoptionRunReceipt, type ResolvedAdoptionAttempt, adoptionRecordRoot, adoptionStartedAt, buildExplicitAdoptionRunPlan, commitExplicitAdoptionRunPlans, createExplicitAdoptionInvocationId, loadAdoptionProject, prepareCurrentAdoptionTarget, prepareWholeRunAdoptionMembers, prepareExplicitAdoptionMember, resolveExplicitAttemptLocator, resolveExactAdoptionSourceRun, withAdoptionReader, } from \"./adoption.ts\";\nimport type { Config, DiscoveredEval, DiscoveredExperiment, } from \"./types.ts\";\nexport type AcceptFailureCode = \"malformed-locator\" | \"locator-not-found\" | \"accept-ineligible\" | \"duplicate-accept-member\" | \"planning-failed\" | \"batch-mismatch\";\n/** Compatibility adapter for the current CLI boundary only. */\nexport class AcceptError extends Error {\n readonly name = \"AcceptError\";\n constructor(readonly code: AcceptFailureCode, message: string) {\n super(message);\n }\n}\nexport interface AcceptLocatorOptions {\n readonly cwd: string;\n readonly locator: string;\n readonly recordRoot?: string;\n readonly config?: Config;\n readonly evals?: readonly DiscoveredEval[];\n readonly experiments?: readonly DiscoveredExperiment[];\n readonly planningServices?: SandboxPlanningServices;\n readonly now?: () => string | number;\n /** Durable accepted-action context; never copied into the source Attempt. */\n readonly operatorReason?: string;\n}\nexport interface AcceptLocatorsOptions extends Omit<AcceptLocatorOptions, \"locator\"> {\n readonly locators: readonly string[];\n}\nexport interface AcceptRunOptions extends Omit<AcceptLocatorsOptions, \"locators\"> {\n readonly runId: string;\n}\nexport interface AcceptedRunPreview {\n readonly sourceRunId: string;\n readonly members: readonly AcceptedAttemptPreview[];\n}\nexport interface AcceptedAttempt {\n readonly invocationId: string;\n readonly runId: string;\n readonly slotId: string;\n /** A reference has the source Attempt's exact locator; it never mints one. */\n readonly locator: string;\n readonly sourceLocator: string;\n readonly fingerprint: string;\n}\nexport interface AcceptedAttemptPreview {\n readonly locator: string;\n readonly sourceLocator: string;\n readonly experimentId: string;\n readonly evalId: string;\n readonly attempt: number;\n readonly fingerprint: string;\n}\nexport interface AcceptPreflight {\n readonly groups: readonly AcceptPreflightGroup[];\n}\n/** All native Record v1 failures before/while the formal publication runs. */\nexport type AcceptNativeError = ExplicitAdoptionOpenError;\ninterface AcceptPreflightGroup {\n readonly target: CurrentAdoptionTarget;\n readonly members: readonly ExplicitAdoptionMember[];\n readonly plan: ExplicitAdoptionRunPlan;\n}\ninterface AcceptSourceGroup {\n readonly experimentId: string;\n readonly sources: readonly ResolvedAdoptionAttempt[];\n}\n/** A locator batch publishes exactly the Slots the operator selected. */\nfunction selectedAcceptTarget(target: CurrentAdoptionTarget, members: readonly ExplicitAdoptionMember[]): CurrentAdoptionTarget {\n const selectedIds = new Set(members.map(({ target: slot }) => String(slot.slotId)));\n const slots = Object.freeze(target.slots.filter(({ slotId }) => selectedIds.has(String(slotId))));\n const expectedSlots = Object.freeze(target.expectedSlots.filter(({ slotId }) => selectedIds.has(String(slotId))));\n const byKey = new Map(slots.map((slot) => [`${slot.evalId}\\u0000${String(slot.attempt)}`, slot] as const));\n return Object.freeze({\n ...target,\n slots,\n expectedSlots,\n slotFor: (evalId: string, attempt: number) => byKey.get(`${evalId}\\u0000${String(attempt)}`),\n });\n}\nfunction explicitError(code: ExplicitAdoptionError[\"code\"], message: string): ExplicitAdoptionError {\n return new ExplicitAdoptionError(code, message);\n}\nfunction assertUniqueLocators(locators: readonly string[]): Effect.Effect<void, ExplicitAdoptionError> {\n return Effect.sync(() => {\n const seen = new Set<string>();\n for (const locator of locators) {\n if (seen.has(locator)) {\n return false;\n }\n seen.add(locator);\n }\n return locators.length > 0;\n }).pipe(Effect.flatMap((valid) => valid\n ? Effect.void\n : Effect.fail(explicitError(locators.length === 0\n ? \"adoption-target-invalid\"\n : \"adoption-batch-locator-duplicate\", locators.length === 0\n ? \"Explicit adoption requires at least one complete Attempt locator.\"\n : \"One explicit adoption locator was supplied more than once.\"))));\n}\nfunction groupAcceptSources(sources: readonly ResolvedAdoptionAttempt[]): readonly AcceptSourceGroup[] {\n const grouped = new Map<string, ResolvedAdoptionAttempt[]>();\n for (const source of sources) {\n const group = grouped.get(source.originExperimentId);\n if (group === undefined) {\n grouped.set(source.originExperimentId, [source]);\n }\n else {\n group.push(source);\n }\n }\n return Object.freeze([...grouped.entries()].map(([experimentId, group]) => Object.freeze({\n experimentId,\n sources: Object.freeze(group),\n })));\n}\n/**\n * Shared frozen-reader preflight used by both dry and formal flows. The caller\n * supplies either a reader or the one write-session view; this keeps all\n * locators, source facts and target planning in one immutable Record view.\n */\nfunction prepareAcceptPreflight(input: {\n readonly reader: Parameters<typeof resolveExplicitAttemptLocator>[0];\n readonly project: AdoptionProject;\n readonly locators: readonly string[];\n readonly startedAt: Parameters<typeof prepareCurrentAdoptionTarget>[0][\"startedAt\"];\n readonly operatorReason?: string;\n}): Effect.Effect<AcceptPreflight, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n yield* assertUniqueLocators(input.locators);\n const sources = yield* Effect.forEach(input.locators, (locator) => resolveExplicitAttemptLocator(input.reader, locator), { concurrency: 1 });\n const groups = yield* Effect.forEach(groupAcceptSources(sources), (sourceGroup) => Effect.gen(function* () {\n const target = yield* prepareCurrentAdoptionTarget({\n project: input.project,\n experimentId: sourceGroup.experimentId,\n startedAt: input.startedAt,\n });\n const members = yield* Effect.forEach(sourceGroup.sources, (source) => prepareExplicitAdoptionMember({\n reader: input.reader,\n target,\n source,\n evalId: source.originEvalId,\n attempt: source.originAttempt,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n }), { concurrency: 1 });\n const selectedTarget = selectedAcceptTarget(target, members);\n const plan = yield* buildExplicitAdoptionRunPlan({\n intent: \"accept\",\n target: selectedTarget,\n members,\n });\n return Object.freeze({\n target: selectedTarget,\n members: Object.freeze(members),\n plan,\n });\n }), \n // Physical planning can be costly; retain one complete target at a time.\n { concurrency: 1 });\n return Object.freeze({ groups: Object.freeze(groups) });\n });\n}\nfunction projectAcceptPreview(preflight: AcceptPreflight): readonly AcceptedAttemptPreview[] {\n return Object.freeze(preflight.groups.flatMap((group) => group.members.map((member) => Object.freeze({\n locator: member.locator,\n sourceLocator: member.locator,\n experimentId: group.target.experimentId,\n evalId: member.target.evalId,\n attempt: member.target.attempt,\n fingerprint: member.target.inputIdentity.value,\n }))));\n}\nfunction receiptsForAccept(input: {\n readonly invocationId: string;\n readonly locators: readonly string[];\n readonly preflight: AcceptPreflight;\n readonly receipts: readonly ExplicitAdoptionRunReceipt[];\n}): Effect.Effect<readonly AcceptedAttempt[], ExplicitAdoptionError> {\n return Effect.gen(function* () {\n if (input.receipts.length !== input.preflight.groups.length) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned a receipt for an unexpected target Run set.\"));\n }\n const receiptsByExperiment = new Map<string, ExplicitAdoptionRunReceipt>();\n for (const receipt of input.receipts) {\n if (receiptsByExperiment.has(receipt.experimentId)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned duplicate target-Experiment receipts.\"));\n }\n receiptsByExperiment.set(receipt.experimentId, receipt);\n }\n const byLocator = new Map<string, AcceptedAttempt>();\n for (const group of input.preflight.groups) {\n const receipt = receiptsByExperiment.get(group.target.experimentId);\n if (receipt === undefined || receipt.members.length !== group.members.length) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned incomplete Member receipts.\"));\n }\n const membersByLocator = new Map<string, ExplicitAdoptionRunReceipt[\"members\"][number]>();\n for (const memberReceipt of receipt.members) {\n if (membersByLocator.has(memberReceipt.locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned duplicate Member receipt locators.\"));\n }\n membersByLocator.set(memberReceipt.locator, memberReceipt);\n }\n for (const member of group.members) {\n const memberReceipt = membersByLocator.get(member.locator);\n if (memberReceipt === undefined ||\n memberReceipt.locator !== member.locator ||\n memberReceipt.slotId !== member.target.slotId ||\n memberReceipt.sourceRunId !== member.source.origin.runId ||\n memberReceipt.attemptId !== member.source.attempt.attemptId) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned a Member receipt with mismatched identity provenance.\"));\n }\n if (byLocator.has(member.locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication reused one locator across target Members.\"));\n }\n byLocator.set(member.locator, Object.freeze({\n invocationId: input.invocationId,\n runId: receipt.runId,\n slotId: memberReceipt.slotId,\n locator: member.locator,\n sourceLocator: member.locator,\n fingerprint: member.target.inputIdentity.value,\n }));\n }\n if (membersByLocator.size !== group.members.length) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption publication returned an unexpected Member receipt.\"));\n }\n }\n const ordered: AcceptedAttempt[] = [];\n for (const locator of input.locators) {\n const receipt = byLocator.get(locator);\n if (receipt === undefined) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit adoption did not publish a receipt for locator \"${locator}\".`));\n }\n ordered.push(receipt);\n }\n return Object.freeze(ordered);\n });\n}\nfunction projectInput(input: AcceptLocatorsOptions): AdoptionProjectInput {\n return {\n cwd: input.cwd,\n ...(input.config === undefined ? {} : { config: input.config }),\n ...(input.evals === undefined ? {} : { evals: input.evals }),\n ...(input.experiments === undefined ? {} : { experiments: input.experiments }),\n ...(input.planningServices === undefined\n ? {}\n : { planningServices: input.planningServices }),\n };\n}\nfunction prepareAcceptRunPreflight(input: {\n readonly reader: Parameters<typeof resolveExplicitAttemptLocator>[0];\n readonly project: AdoptionProject;\n readonly runId: string;\n readonly startedAt: Parameters<typeof prepareCurrentAdoptionTarget>[0][\"startedAt\"];\n readonly operatorReason?: string;\n}): Effect.Effect<AcceptPreflight, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const sourceRun = yield* resolveExactAdoptionSourceRun({\n reader: input.reader,\n sourceRunId: input.runId,\n }).pipe(Effect.mapError((cause) => cause.code === \"adoption-source-run-not-found\"\n ? explicitError(\"run-not-found\", cause.message)\n : cause));\n const target = yield* prepareCurrentAdoptionTarget({\n project: input.project,\n experimentId: sourceRun.experimentId,\n startedAt: input.startedAt,\n });\n const prepared = yield* prepareWholeRunAdoptionMembers({\n reader: input.reader,\n intent: \"accept\",\n sourceRun,\n target,\n operatorReason: input.operatorReason ?? `Accepted source Run ${input.runId}`,\n });\n const members = Object.freeze(prepared.members.map((entry) => entry.member));\n const plan = yield* buildExplicitAdoptionRunPlan({ intent: \"accept\", target, members });\n return Object.freeze({ groups: Object.freeze([Object.freeze({ target, members, plan })]) });\n });\n}\nfunction acceptRunProjectInput(input: AcceptRunOptions): AdoptionProjectInput {\n return projectInput({ ...input, locators: Object.freeze([]) });\n}\nexport function planAcceptRun(input: AcceptRunOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot(input);\n const startedAt = yield* adoptionStartedAt(input.now);\n const project = yield* loadAdoptionProject(acceptRunProjectInput(input));\n const preflight = yield* withAdoptionReader({\n root,\n use: (reader) => prepareAcceptRunPreflight({ reader, project, runId: input.runId, startedAt, ...(input.operatorReason === undefined ? {} : { operatorReason: input.operatorReason }) }),\n });\n return Object.freeze({ sourceRunId: input.runId, members: projectAcceptPreview(preflight) });\n });\n}\nexport function acceptRun(input: AcceptRunOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot(input);\n const startedAt = yield* adoptionStartedAt(input.now);\n const resolvedProjectInput = acceptRunProjectInput(input);\n const project = yield* loadAdoptionProject(resolvedProjectInput);\n const preflight = yield* withAdoptionReader({ root, use: (reader) => prepareAcceptRunPreflight({ reader, project, runId: input.runId, startedAt, ...(input.operatorReason === undefined ? {} : { operatorReason: input.operatorReason }) }) });\n const invocationId = yield* createExplicitAdoptionInvocationId();\n const receipts = yield* commitExplicitAdoptionRunPlans(root, invocationId, preflight.groups.map((group) => group.plan));\n const locators = projectAcceptPreview(preflight).map((member) => member.locator);\n return yield* receiptsForAccept({ invocationId, locators, preflight, receipts });\n });\n}\n/**\n * Effect-native, reader-only acceptance planning. It opens only the shared\n * reader lease and creates neither a writer lock nor a Run.\n */\nexport function planAcceptLocators(input: AcceptLocatorsOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot(input);\n const startedAt = yield* adoptionStartedAt(input.now);\n const project = yield* loadAdoptionProject(projectInput(input));\n const preflight = yield* withAdoptionReader({\n root,\n use: (reader) => prepareAcceptPreflight({\n reader,\n project,\n locators: input.locators,\n startedAt,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n }),\n });\n return projectAcceptPreview(preflight);\n });\n}\n/**\n * Freeze the complete preflight in one read transaction, then publish detached\n * references after the reader closes.\n */\nexport function acceptLocators(input: AcceptLocatorsOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot(input);\n const startedAt = yield* adoptionStartedAt(input.now);\n const resolvedProjectInput = projectInput(input);\n const project = yield* loadAdoptionProject(resolvedProjectInput);\n const preflight = yield* withAdoptionReader({\n root,\n use: (reader) => prepareAcceptPreflight({\n reader,\n project,\n locators: input.locators,\n startedAt,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n }),\n });\n const invocationId = yield* createExplicitAdoptionInvocationId();\n const receipts = yield* commitExplicitAdoptionRunPlans(root, invocationId, preflight.groups.map((group) => group.plan));\n return yield* receiptsForAccept({ invocationId, locators: input.locators, preflight, receipts });\n });\n}\n/** One-item native convenience without reconstructing a legacy result object. */\nexport function acceptLocator(input: AcceptLocatorOptions) {\n return acceptLocators({ ...input, locators: [input.locator] }).pipe(Effect.flatMap((receipts) => {\n const [receipt] = receipts;\n return receipt === undefined\n ? Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit adoption published no receipt for its requested locator.\"))\n : Effect.succeed(receipt);\n }));\n}\n"]}
@@ -74,9 +74,8 @@ export declare function acceptRun(input: AcceptRunOptions): Effect.Effect<readon
74
74
  */
75
75
  export declare function planAcceptLocators(input: AcceptLocatorsOptions): Effect.Effect<readonly AcceptedAttemptPreview[], import("../record/platform/errors.cjs").RecordResourceLimitInvalid | import("../record/platform/errors.cjs").RecordRootInvalid | import("../record/platform/errors.cjs").RecordPathInvalid | import("../record/platform/errors.cjs").RecordPathTypeInvalid | import("../record/platform/errors.cjs").RecordPathAlreadyExists | import("../record/platform/errors.cjs").RecordResourceLimitExceeded | import("../record/platform/errors.cjs").RecordIoError | import("../record/platform/errors.cjs").RecordPermissionError | import("../record/platform/errors.cjs").RecordMaintenanceBusy | import("../record/index.cjs").RecordRootConstructionError | import("../coordination/record-leases.cjs").RecordCoordinationDeadlineInvalid | import("../coordination/record-leases.cjs").RecordCoordinationTimedOut | import("../coordination/record-leases.cjs").RecordCoordinationCanceled | import("../coordination/record-leases.cjs").RecordCoordinationStateInvalid | import("../record/sqlite/errors.cjs").SqliteRecordError | import("../record/reader/errors.cjs").RecordBootstrapInvalid | import("../record/reader/errors.cjs").RecordMigrationRequired | import("../record/reader/errors.cjs").RecordFormatUnsupported | import("../record/reader/errors.cjs").RecordReaderClosed | import("../record/reader/errors.cjs").RecordHandleInvalid | import("../record/index.cjs").RecordIntegrityFailure | import("../record/reader/errors.cjs").FamilyDefinitionRequired | ExplicitAdoptionError, import("../record/sqlite/project-state-database.cjs").ProjectStateDatabase>;
76
76
  /**
77
- * Effect-native formal acceptance. A reader preflight happens first; then one
78
- * scoped Host read session repeats the entire preflight and publishes
79
- * reference-only target Runs through createReferenceRun.
77
+ * Freeze the complete preflight in one read transaction, then publish detached
78
+ * references after the reader closes.
80
79
  */
81
80
  export declare function acceptLocators(input: AcceptLocatorsOptions): Effect.Effect<readonly AcceptedAttempt[], import("../record/platform/errors.cjs").RecordResourceLimitInvalid | import("../record/platform/errors.cjs").RecordRootInvalid | import("../record/platform/errors.cjs").RecordPathInvalid | import("../record/platform/errors.cjs").RecordPathTypeInvalid | import("../record/platform/errors.cjs").RecordPathAlreadyExists | import("../record/platform/errors.cjs").RecordResourceLimitExceeded | import("../record/platform/errors.cjs").RecordIoError | import("../record/platform/errors.cjs").RecordPermissionError | import("../record/platform/errors.cjs").RecordMaintenanceBusy | import("../record/index.cjs").RecordRootConstructionError | import("../coordination/record-leases.cjs").RecordCoordinationDeadlineInvalid | import("../coordination/record-leases.cjs").RecordCoordinationTimedOut | import("../coordination/record-leases.cjs").RecordCoordinationCanceled | import("../coordination/record-leases.cjs").RecordCoordinationStateInvalid | import("../record/sqlite/errors.cjs").SqliteRecordError | import("../record/reader/errors.cjs").RecordBootstrapInvalid | import("../record/reader/errors.cjs").RecordMigrationRequired | import("../record/reader/errors.cjs").RecordFormatUnsupported | import("../record/reader/errors.cjs").RecordReaderClosed | import("../record/reader/errors.cjs").RecordHandleInvalid | import("../record/index.cjs").RecordIntegrityFailure | import("../record/reader/errors.cjs").FamilyDefinitionRequired | import("../run/storage/errors.cjs").RunStorageError | ExplicitAdoptionError, import("../coordination/record-leases.cjs").RecordCoordination | import("../record/platform/services.cjs").RecordEntropy | import("../record/sqlite/project-state-database.cjs").ProjectStateDatabase>;
82
81
  /** One-item native convenience without reconstructing a legacy result object. */
@@ -74,9 +74,8 @@ export declare function acceptRun(input: AcceptRunOptions): Effect.Effect<readon
74
74
  */
75
75
  export declare function planAcceptLocators(input: AcceptLocatorsOptions): Effect.Effect<readonly AcceptedAttemptPreview[], import("../record/platform/errors.mjs").RecordResourceLimitInvalid | import("../record/platform/errors.mjs").RecordRootInvalid | import("../record/platform/errors.mjs").RecordPathInvalid | import("../record/platform/errors.mjs").RecordPathTypeInvalid | import("../record/platform/errors.mjs").RecordPathAlreadyExists | import("../record/platform/errors.mjs").RecordResourceLimitExceeded | import("../record/platform/errors.mjs").RecordIoError | import("../record/platform/errors.mjs").RecordPermissionError | import("../record/platform/errors.mjs").RecordMaintenanceBusy | import("../record/index.mjs").RecordRootConstructionError | import("../coordination/record-leases.mjs").RecordCoordinationDeadlineInvalid | import("../coordination/record-leases.mjs").RecordCoordinationTimedOut | import("../coordination/record-leases.mjs").RecordCoordinationCanceled | import("../coordination/record-leases.mjs").RecordCoordinationStateInvalid | import("../record/sqlite/errors.mjs").SqliteRecordError | import("../record/reader/errors.mjs").RecordBootstrapInvalid | import("../record/reader/errors.mjs").RecordMigrationRequired | import("../record/reader/errors.mjs").RecordFormatUnsupported | import("../record/reader/errors.mjs").RecordReaderClosed | import("../record/reader/errors.mjs").RecordHandleInvalid | import("../record/index.mjs").RecordIntegrityFailure | import("../record/reader/errors.mjs").FamilyDefinitionRequired | ExplicitAdoptionError, import("../record/sqlite/project-state-database.mjs").ProjectStateDatabase>;
76
76
  /**
77
- * Effect-native formal acceptance. A reader preflight happens first; then one
78
- * scoped Host read session repeats the entire preflight and publishes
79
- * reference-only target Runs through createReferenceRun.
77
+ * Freeze the complete preflight in one read transaction, then publish detached
78
+ * references after the reader closes.
80
79
  */
81
80
  export declare function acceptLocators(input: AcceptLocatorsOptions): Effect.Effect<readonly AcceptedAttempt[], import("../record/platform/errors.mjs").RecordResourceLimitInvalid | import("../record/platform/errors.mjs").RecordRootInvalid | import("../record/platform/errors.mjs").RecordPathInvalid | import("../record/platform/errors.mjs").RecordPathTypeInvalid | import("../record/platform/errors.mjs").RecordPathAlreadyExists | import("../record/platform/errors.mjs").RecordResourceLimitExceeded | import("../record/platform/errors.mjs").RecordIoError | import("../record/platform/errors.mjs").RecordPermissionError | import("../record/platform/errors.mjs").RecordMaintenanceBusy | import("../record/index.mjs").RecordRootConstructionError | import("../coordination/record-leases.mjs").RecordCoordinationDeadlineInvalid | import("../coordination/record-leases.mjs").RecordCoordinationTimedOut | import("../coordination/record-leases.mjs").RecordCoordinationCanceled | import("../coordination/record-leases.mjs").RecordCoordinationStateInvalid | import("../record/sqlite/errors.mjs").SqliteRecordError | import("../record/reader/errors.mjs").RecordBootstrapInvalid | import("../record/reader/errors.mjs").RecordMigrationRequired | import("../record/reader/errors.mjs").RecordFormatUnsupported | import("../record/reader/errors.mjs").RecordReaderClosed | import("../record/reader/errors.mjs").RecordHandleInvalid | import("../record/index.mjs").RecordIntegrityFailure | import("../record/reader/errors.mjs").FamilyDefinitionRequired | import("../run/storage/errors.mjs").RunStorageError | ExplicitAdoptionError, import("../coordination/record-leases.mjs").RecordCoordination | import("../record/platform/services.mjs").RecordEntropy | import("../record/sqlite/project-state-database.mjs").ProjectStateDatabase>;
82
81
  /** One-item native convenience without reconstructing a legacy result object. */
@@ -74,9 +74,8 @@ export declare function acceptRun(input: AcceptRunOptions): Effect.Effect<readon
74
74
  */
75
75
  export declare function planAcceptLocators(input: AcceptLocatorsOptions): Effect.Effect<readonly AcceptedAttemptPreview[], import("../record/platform/errors.js").RecordResourceLimitInvalid | import("../record/platform/errors.js").RecordRootInvalid | import("../record/platform/errors.js").RecordPathInvalid | import("../record/platform/errors.js").RecordPathTypeInvalid | import("../record/platform/errors.js").RecordPathAlreadyExists | import("../record/platform/errors.js").RecordResourceLimitExceeded | import("../record/platform/errors.js").RecordIoError | import("../record/platform/errors.js").RecordPermissionError | import("../record/platform/errors.js").RecordMaintenanceBusy | import("../record/index.js").RecordRootConstructionError | import("../coordination/record-leases.js").RecordCoordinationDeadlineInvalid | import("../coordination/record-leases.js").RecordCoordinationTimedOut | import("../coordination/record-leases.js").RecordCoordinationCanceled | import("../coordination/record-leases.js").RecordCoordinationStateInvalid | import("../record/sqlite/errors.js").SqliteRecordError | import("../record/reader/errors.js").RecordBootstrapInvalid | import("../record/reader/errors.js").RecordMigrationRequired | import("../record/reader/errors.js").RecordFormatUnsupported | import("../record/reader/errors.js").RecordReaderClosed | import("../record/reader/errors.js").RecordHandleInvalid | import("../record/index.js").RecordIntegrityFailure | import("../record/reader/errors.js").FamilyDefinitionRequired | ExplicitAdoptionError, import("../record/sqlite/project-state-database.js").ProjectStateDatabase>;
76
76
  /**
77
- * Effect-native formal acceptance. A reader preflight happens first; then one
78
- * scoped Host read session repeats the entire preflight and publishes
79
- * reference-only target Runs through createReferenceRun.
77
+ * Freeze the complete preflight in one read transaction, then publish detached
78
+ * references after the reader closes.
80
79
  */
81
80
  export declare function acceptLocators(input: AcceptLocatorsOptions): Effect.Effect<readonly AcceptedAttempt[], import("../record/platform/errors.js").RecordResourceLimitInvalid | import("../record/platform/errors.js").RecordRootInvalid | import("../record/platform/errors.js").RecordPathInvalid | import("../record/platform/errors.js").RecordPathTypeInvalid | import("../record/platform/errors.js").RecordPathAlreadyExists | import("../record/platform/errors.js").RecordResourceLimitExceeded | import("../record/platform/errors.js").RecordIoError | import("../record/platform/errors.js").RecordPermissionError | import("../record/platform/errors.js").RecordMaintenanceBusy | import("../record/index.js").RecordRootConstructionError | import("../coordination/record-leases.js").RecordCoordinationDeadlineInvalid | import("../coordination/record-leases.js").RecordCoordinationTimedOut | import("../coordination/record-leases.js").RecordCoordinationCanceled | import("../coordination/record-leases.js").RecordCoordinationStateInvalid | import("../record/sqlite/errors.js").SqliteRecordError | import("../record/reader/errors.js").RecordBootstrapInvalid | import("../record/reader/errors.js").RecordMigrationRequired | import("../record/reader/errors.js").RecordFormatUnsupported | import("../record/reader/errors.js").RecordReaderClosed | import("../record/reader/errors.js").RecordHandleInvalid | import("../record/index.js").RecordIntegrityFailure | import("../record/reader/errors.js").FamilyDefinitionRequired | import("../run/storage/errors.js").RunStorageError | ExplicitAdoptionError, import("../coordination/record-leases.js").RecordCoordination | import("../record/platform/services.js").RecordEntropy | import("../record/sqlite/project-state-database.js").ProjectStateDatabase>;
82
81
  /** One-item native convenience without reconstructing a legacy result object. */
@@ -86,7 +86,7 @@ class AdapterUsageCollector {
86
86
  throw new Error("Adapter usage is already sealed");
87
87
  const decoded = effect_1.Schema.decodeUnknownResult(UsageSealSchema, core_ts_1.RecordExactParseOptions)(input);
88
88
  if (effect_1.Result.isFailure(decoded))
89
- throw new Error("Invalid Adapter usage seal");
89
+ throw new Error("Invalid Adapter usage seal: sealUsage partial reason must be 1-128 ASCII characters, start with a letter or digit, and contain only letters, digits, dot, underscore, colon, or hyphen; complete seals accept only state");
90
90
  this.sealed = Object.freeze({ ...decoded.success });
91
91
  }
92
92
  catch (cause) {
@@ -94,7 +94,7 @@ class AdapterUsageCollector {
94
94
  throw cause;
95
95
  }
96
96
  };
97
- snapshot() { return (0, eval_usage_ts_1.projectAdapterEvalUsage)(deepFreeze(structuredClone(this.capture()))); }
97
+ snapshot() { return (0, eval_usage_ts_1.projectAdapterEvalUsage)(deepFreeze(structuredClone(this.capture())), this.models); }
98
98
  close() {
99
99
  this.closed = true;
100
100
  return this.capture();
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-usage.js","sourceRoot":"","sources":["adapter-usage.ts"],"names":[],"mappings":"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","sourcesContent":["import { projectAdapterEvalUsage, type EvalUsage } from \"../o11y/eval-usage.ts\";\nimport { Result, Schema } from \"effect\";\nimport type { AdapterUsageInput, AdapterUsageSeal } from \"../adapter-usage.ts\";\nimport { SafeIdentifierSchema } from \"../record/family/common.ts\";\nimport type { ResolvedModelSlots } from \"../model-slots.ts\";\nimport { createAdapterCallPriceReceipts } from \"../o11y/adapter-call-price.ts\";\nimport { RecordExactParseOptions } from \"../record/codec/core.ts\";\nimport { AdapterUsageCallSchema, AdapterUsageLimits, validateAdapterUsageCalls, type AdapterUsageCall, type AdapterUsageAttachment } from \"../record/family/adapter-usage/schema.ts\";\nimport type { PriceOverride } from \"./types.ts\";\nimport type { EvalResult } from \"./types.ts\";\nconst captures = new WeakMap<EvalResult, AdapterUsageAttachment>();\nconst UsageSealSchema = Schema.Union([\n Schema.Struct({ state: Schema.Literal(\"complete\") }),\n Schema.Struct({ state: Schema.Literal(\"partial\"),\n reason: SafeIdentifierSchema.check(Schema.makeFilter((value) => value.length <= 128)) }),\n]);\nexport function retainAdapterUsage(result: EvalResult, value: AdapterUsageAttachment): void {\n captures.set(result, value);\n}\nexport function adapterUsageForResult(result: EvalResult): AdapterUsageAttachment | undefined { return captures.get(result); }\n/** Snapshot-only capture remains writable during the independent cleanup window. */\nexport class AdapterUsageCollector {\n private readonly calls = new Map<string, AdapterUsageCall>();\n private closed = false;\n private failed: Error | undefined;\n private sealed: AdapterUsageSeal | undefined;\n get failure(): Error | undefined { return this.failed; }\n constructor(private readonly assertOpen: () => void, private readonly pricing: Readonly<Record<string, PriceOverride>> | undefined, private readonly models: ResolvedModelSlots = {}) { }\n record = (input: AdapterUsageInput): void => {\n if (this.closed)\n throw new Error(\"Adapter usage capture is closed\");\n this.assertOpen();\n try {\n if (this.sealed !== undefined)\n throw new Error(\"Adapter usage is already sealed\");\n const decoded = Schema.decodeUnknownResult(AdapterUsageCallSchema, RecordExactParseOptions)({\n ...input,\n retryOf: input.retryOf ?? null,\n modelSlot: input.modelSlot ?? null,\n route: input.route ?? { transportProvider: null, endpointId: null },\n cost: input.cost ?? null,\n inputTotalTokens: input.inputTotalTokens ?? null,\n cacheReadTokens: input.cacheReadTokens ?? null,\n cacheWriteTokens: input.cacheWriteTokens ?? null,\n });\n if (Result.isFailure(decoded))\n throw new Error(\"Invalid Adapter usage snapshot\");\n const call = deepFreeze(structuredClone(decoded.success));\n if (call.modelSlot !== null && !Object.hasOwn(this.models, call.modelSlot)) {\n throw new Error(\"Adapter usage modelSlot must reference a configured model purpose in this Attempt\");\n }\n const prior = this.calls.get(call.callId);\n if (prior !== undefined) {\n if (JSON.stringify(prior) !== JSON.stringify(call))\n throw new Error(\"Conflicting Adapter usage snapshot for callId\");\n return;\n }\n if (call.retryOf !== null && !this.calls.has(call.retryOf))\n throw new Error(\"Adapter usage retryOf must reference an earlier call in this Attempt\");\n if (this.calls.size >= AdapterUsageLimits.maximumCalls)\n throw new Error(\"Adapter usage exceeds 4000 calls per Attempt\");\n if (validateAdapterUsageCalls([...this.calls.values(), call]).length > 0) {\n throw new Error(\"Adapter input token observations are inconsistent or exceed safe integer limits\");\n }\n this.calls.set(call.callId, call);\n }\n catch (cause) {\n this.failed ??= cause instanceof Error ? cause : new Error(\"Adapter usage capture failed\");\n throw cause;\n }\n };\n seal = (input: AdapterUsageSeal): void => {\n if (this.closed)\n throw new Error(\"Adapter usage capture is closed\");\n this.assertOpen();\n try {\n if (this.sealed !== undefined)\n throw new Error(\"Adapter usage is already sealed\");\n const decoded = Schema.decodeUnknownResult(UsageSealSchema, RecordExactParseOptions)(input);\n if (Result.isFailure(decoded))\n throw new Error(\"Invalid Adapter usage seal\");\n this.sealed = Object.freeze({ ...decoded.success });\n }\n catch (cause) {\n this.failed ??= cause instanceof Error ? cause : new Error(\"Adapter usage capture failed\");\n throw cause;\n }\n };\n snapshot(): EvalUsage { return projectAdapterEvalUsage(deepFreeze(structuredClone(this.capture()))); }\n close(): AdapterUsageAttachment {\n this.closed = true;\n return this.capture();\n }\n private capture(): AdapterUsageAttachment {\n const calls = Object.freeze([...this.calls.values()]);\n return Object.freeze({\n collection: this.failed !== undefined\n ? { state: \"partial\" as const, limitations: [{ code: \"capture-failed\" as const, stage: \"adapter-usage\" }] as const }\n : this.sealed === undefined\n ? { state: \"partial\" as const, limitations: [{ code: \"capture-interrupted\" as const, stage: \"adapter-usage-unsealed\" }] as const }\n : this.sealed.state === \"partial\"\n ? { state: \"partial\" as const, limitations: [{ code: \"capture-failed\" as const, stage: this.sealed.reason }] as const }\n : { state: \"complete\" as const, limitations: [] as const },\n calls,\n priceReceipts: createAdapterCallPriceReceipts(calls, this.pricing),\n });\n }\n}\nfunction deepFreeze<T>(value: T): T {\n if (value !== null && typeof value === \"object\") {\n for (const child of Object.values(value))\n deepFreeze(child);\n Object.freeze(value);\n }\n return value;\n}\n"]}
1
+ {"version":3,"file":"adapter-usage.js","sourceRoot":"","sources":["adapter-usage.ts"],"names":[],"mappings":"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","sourcesContent":["import { projectAdapterEvalUsage, type EvalUsage } from \"../o11y/eval-usage.ts\";\nimport { Result, Schema } from \"effect\";\nimport type { AdapterUsageInput, AdapterUsageSeal } from \"../adapter-usage.ts\";\nimport { SafeIdentifierSchema } from \"../record/family/common.ts\";\nimport type { ResolvedModelSlots } from \"../model-slots.ts\";\nimport { createAdapterCallPriceReceipts } from \"../o11y/adapter-call-price.ts\";\nimport { RecordExactParseOptions } from \"../record/codec/core.ts\";\nimport { AdapterUsageCallSchema, AdapterUsageLimits, validateAdapterUsageCalls, type AdapterUsageCall, type AdapterUsageAttachment } from \"../record/family/adapter-usage/schema.ts\";\nimport type { PriceOverride } from \"./types.ts\";\nimport type { EvalResult } from \"./types.ts\";\nconst captures = new WeakMap<EvalResult, AdapterUsageAttachment>();\nconst UsageSealSchema = Schema.Union([\n Schema.Struct({ state: Schema.Literal(\"complete\") }),\n Schema.Struct({ state: Schema.Literal(\"partial\"),\n reason: SafeIdentifierSchema.check(Schema.makeFilter((value) => value.length <= 128)) }),\n]);\nexport function retainAdapterUsage(result: EvalResult, value: AdapterUsageAttachment): void {\n captures.set(result, value);\n}\nexport function adapterUsageForResult(result: EvalResult): AdapterUsageAttachment | undefined { return captures.get(result); }\n/** Snapshot-only capture remains writable during the independent cleanup window. */\nexport class AdapterUsageCollector {\n private readonly calls = new Map<string, AdapterUsageCall>();\n private closed = false;\n private failed: Error | undefined;\n private sealed: AdapterUsageSeal | undefined;\n get failure(): Error | undefined { return this.failed; }\n constructor(private readonly assertOpen: () => void, private readonly pricing: Readonly<Record<string, PriceOverride>> | undefined, private readonly models: ResolvedModelSlots = {}) { }\n record = (input: AdapterUsageInput): void => {\n if (this.closed)\n throw new Error(\"Adapter usage capture is closed\");\n this.assertOpen();\n try {\n if (this.sealed !== undefined)\n throw new Error(\"Adapter usage is already sealed\");\n const decoded = Schema.decodeUnknownResult(AdapterUsageCallSchema, RecordExactParseOptions)({\n ...input,\n retryOf: input.retryOf ?? null,\n modelSlot: input.modelSlot ?? null,\n route: input.route ?? { transportProvider: null, endpointId: null },\n cost: input.cost ?? null,\n inputTotalTokens: input.inputTotalTokens ?? null,\n cacheReadTokens: input.cacheReadTokens ?? null,\n cacheWriteTokens: input.cacheWriteTokens ?? null,\n });\n if (Result.isFailure(decoded))\n throw new Error(\"Invalid Adapter usage snapshot\");\n const call = deepFreeze(structuredClone(decoded.success));\n if (call.modelSlot !== null && !Object.hasOwn(this.models, call.modelSlot)) {\n throw new Error(\"Adapter usage modelSlot must reference a configured model purpose in this Attempt\");\n }\n const prior = this.calls.get(call.callId);\n if (prior !== undefined) {\n if (JSON.stringify(prior) !== JSON.stringify(call))\n throw new Error(\"Conflicting Adapter usage snapshot for callId\");\n return;\n }\n if (call.retryOf !== null && !this.calls.has(call.retryOf))\n throw new Error(\"Adapter usage retryOf must reference an earlier call in this Attempt\");\n if (this.calls.size >= AdapterUsageLimits.maximumCalls)\n throw new Error(\"Adapter usage exceeds 4000 calls per Attempt\");\n if (validateAdapterUsageCalls([...this.calls.values(), call]).length > 0) {\n throw new Error(\"Adapter input token observations are inconsistent or exceed safe integer limits\");\n }\n this.calls.set(call.callId, call);\n }\n catch (cause) {\n this.failed ??= cause instanceof Error ? cause : new Error(\"Adapter usage capture failed\");\n throw cause;\n }\n };\n seal = (input: AdapterUsageSeal): void => {\n if (this.closed)\n throw new Error(\"Adapter usage capture is closed\");\n this.assertOpen();\n try {\n if (this.sealed !== undefined)\n throw new Error(\"Adapter usage is already sealed\");\n const decoded = Schema.decodeUnknownResult(UsageSealSchema, RecordExactParseOptions)(input);\n if (Result.isFailure(decoded))\n throw new Error(\"Invalid Adapter usage seal: sealUsage partial reason must be 1-128 ASCII characters, start with a letter or digit, and contain only letters, digits, dot, underscore, colon, or hyphen; complete seals accept only state\");\n this.sealed = Object.freeze({ ...decoded.success });\n }\n catch (cause) {\n this.failed ??= cause instanceof Error ? cause : new Error(\"Adapter usage capture failed\");\n throw cause;\n }\n };\n snapshot(): EvalUsage { return projectAdapterEvalUsage(deepFreeze(structuredClone(this.capture())), this.models); }\n close(): AdapterUsageAttachment {\n this.closed = true;\n return this.capture();\n }\n private capture(): AdapterUsageAttachment {\n const calls = Object.freeze([...this.calls.values()]);\n return Object.freeze({\n collection: this.failed !== undefined\n ? { state: \"partial\" as const, limitations: [{ code: \"capture-failed\" as const, stage: \"adapter-usage\" }] as const }\n : this.sealed === undefined\n ? { state: \"partial\" as const, limitations: [{ code: \"capture-interrupted\" as const, stage: \"adapter-usage-unsealed\" }] as const }\n : this.sealed.state === \"partial\"\n ? { state: \"partial\" as const, limitations: [{ code: \"capture-failed\" as const, stage: this.sealed.reason }] as const }\n : { state: \"complete\" as const, limitations: [] as const },\n calls,\n priceReceipts: createAdapterCallPriceReceipts(calls, this.pricing),\n });\n }\n}\nfunction deepFreeze<T>(value: T): T {\n if (value !== null && typeof value === \"object\") {\n for (const child of Object.values(value))\n deepFreeze(child);\n Object.freeze(value);\n }\n return value;\n}\n"]}
@@ -16,7 +16,6 @@ exports.commitExplicitAdoptionRunPlans = commitExplicitAdoptionRunPlans;
16
16
  exports.createExplicitAdoptionInvocationId = createExplicitAdoptionInvocationId;
17
17
  exports.adoptionStartedAt = adoptionStartedAt;
18
18
  exports.withAdoptionReader = withAdoptionReader;
19
- exports.withAdoptionCommitScope = withAdoptionCommitScope;
20
19
  exports.resolveExactAdoptionSourceRun = resolveExactAdoptionSourceRun;
21
20
  exports.prepareWholeRunAdoptionMembers = prepareWholeRunAdoptionMembers;
22
21
  // @concord-file ne-runner-adoption
@@ -105,9 +104,9 @@ function parseExplicitAttemptLocator(value) {
105
104
  }
106
105
  return effect_1.Effect.succeed(Object.freeze({ text: value, locator: parsed.locator }));
107
106
  }
108
- /** The public adapter boundary owns Record-root construction. */
107
+ /** Adoption writes only to the discovered project's canonical Record. */
109
108
  function adoptionRecordRoot(input) {
110
- const root = (0, root_ts_1.makeRecordRoot)((0, node_path_1.resolve)(input.cwd, input.recordRoot ?? ".niceeval"));
109
+ const root = (0, root_ts_1.makeRecordRoot)((0, node_path_1.resolve)(input.cwd, ".niceeval"));
111
110
  return effect_1.Result.isFailure(root) ? effect_1.Effect.fail(root.failure) : effect_1.Effect.succeed(root.success);
112
111
  }
113
112
  /** Discovery is rerun for both read preflight and the write-session frozen view. */
@@ -350,7 +349,7 @@ function sourceCoreInvalid(message) {
350
349
  function resolveExplicitAttemptLocator(reader, text) {
351
350
  return effect_1.Effect.gen(function* () {
352
351
  const parsed = yield* parseExplicitAttemptLocator(text);
353
- const selected = yield* reader.selectRuns({ includePublishedActive: true });
352
+ const selected = yield* (0, sqlite_host_ts_1.selectPlanningLocator)(reader, parsed.locator);
354
353
  const resolved = yield* (0, attempt_locator_resolution_ts_1.resolveAttemptLocator)({
355
354
  reader,
356
355
  selection: selected,
@@ -397,7 +396,11 @@ function resolveAdoptionAttempt(reader, attempt, locator) {
397
396
  ? `Source locator "${sourceLocator.text}" has no origin Member.`
398
397
  : `Source origin Run for "${sourceLocator.text}" has duplicate origin Members.`));
399
398
  }
399
+ const reference = (0, sqlite_host_ts_1.detachPlanningReference)(reader, attempt);
400
+ if (reference === undefined)
401
+ return yield* effect_1.Effect.fail(sourceCoreInvalid(`Source locator "${sourceLocator.text}" has no exact publication identity.`));
400
402
  return Object.freeze({
403
+ reference,
401
404
  locator: sourceLocator,
402
405
  attempt,
403
406
  origin: Object.freeze({
@@ -627,22 +630,14 @@ function buildExplicitAdoptionRunPlan(input) {
627
630
  });
628
631
  });
629
632
  }
630
- /** Writes only plans already built from this exact session's Host reader. */
631
- function commitExplicitAdoptionRunPlans(_reader, root, invocationId, plans) {
633
+ /** Writes detached plans; publication identity is rechecked by the binding transaction. */
634
+ function commitExplicitAdoptionRunPlans(root, invocationId, plans) {
632
635
  const storageRoot = (0, root_ts_1.recordRootPaths)(root)?.portableRoot;
633
636
  if (storageRoot === undefined) {
634
637
  return effect_1.Effect.fail((0, index_ts_1.asRunStorageError)(new Error("Adoption Record root is unavailable to Run storage.")));
635
638
  }
636
639
  return effect_1.Effect.forEach(plans, (plan) => effect_1.Effect.gen(function* () {
637
640
  const experimentId = yield* decodeBrandedId(identifiers_ts_1.ExperimentIdSchema, plan.target.experimentId, "adoption-target-invalid", "Adoption target Experiment");
638
- const publications = new Map();
639
- for (const member of plan.members) {
640
- const published = yield* (0, index_ts_1.readPublishedAttempt)(storageRoot, String(member.source.attempt.attemptId)).pipe(effect_1.Effect.mapError(index_ts_1.asRunStorageError));
641
- if (published === undefined) {
642
- return yield* effect_1.Effect.fail((0, index_ts_1.asRunStorageError)(new Error(`Adoption source Attempt ${String(member.source.attempt.attemptId)} has no Run publication identity.`)));
643
- }
644
- publications.set(String(member.target.slotId), published.publicationIdentity);
645
- }
646
641
  const accepted = new Set(plan.members.map((member) => String(member.target.slotId)));
647
642
  const writer = yield* runtime_ts_1.recordHost.createReferenceRun({
648
643
  root,
@@ -671,16 +666,17 @@ function commitExplicitAdoptionRunPlans(_reader, root, invocationId, plans) {
671
666
  deadlineEpochMs: Date.now() + 30000,
672
667
  }).pipe(effect_1.Effect.mapError(index_ts_1.asRunStorageError));
673
668
  for (const member of plan.members) {
674
- yield* writer.recordAcceptedMembership({
669
+ yield* (0, sqlite_host_ts_1.stagePlanningReference)(writer, {
675
670
  slotId: member.target.slotId,
676
- attempt: member.source.attempt,
671
+ action: "accepted",
672
+ reference: member.source.reference,
677
673
  });
678
674
  yield* (0, index_ts_1.bindAttemptReference)(storageRoot, {
679
675
  runId: String(writer.runId),
680
676
  writerGeneration,
681
677
  slotId: String(member.target.slotId),
682
678
  action: "accepted",
683
- publicationIdentity: publications.get(String(member.target.slotId)),
679
+ publicationIdentity: member.source.reference.publicationIdentity,
684
680
  deadlineEpochMs: Date.now() + 30000,
685
681
  }).pipe(effect_1.Effect.mapError(index_ts_1.asRunStorageError));
686
682
  }
@@ -708,7 +704,7 @@ function commitExplicitAdoptionRunPlans(_reader, root, invocationId, plans) {
708
704
  deadlineEpochMs: Date.now() + 30000,
709
705
  }).pipe(effect_1.Effect.mapError(index_ts_1.asRunStorageError));
710
706
  return receiptForPlan(plan, sealed.runId);
711
- }), { concurrency: 1 }).pipe(effect_1.Effect.mapError((cause) => cause instanceof index_ts_1.RunStorageError
707
+ }), { concurrency: 1 }).pipe(effect_1.Effect.scoped, effect_1.Effect.mapError((cause) => cause instanceof index_ts_1.RunStorageError
712
708
  ? cause
713
709
  : new index_ts_1.RunStorageError("run-storage-invalid", safeMessage(cause))));
714
710
  }
@@ -741,14 +737,6 @@ function withAdoptionReader(input) {
741
737
  return yield* input.use(reader);
742
738
  }));
743
739
  }
744
- /**
745
- * One Scope keeps the Host reader live while reference Runs are created, so
746
- * SelectedAttemptRefs remain valid through seal. Discovery still happens
747
- * before this Scope opens, so the first preflight writes nothing.
748
- */
749
- function withAdoptionCommitScope(input) {
750
- return withAdoptionReader(input);
751
- }
752
740
  function resolveExactAdoptionSourceRun(input) {
753
741
  return effect_1.Effect.gen(function* () {
754
742
  const runId = yield* decodeBrandedId(identifiers_ts_1.RunIdSchema, input.sourceRunId, "adoption-source-run-not-found", "Adoption source Run");