niceeval 0.16.3-canary.99 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +1 -0
  7. package/dist/expect/index.d.mts +1 -0
  8. package/dist/expect/index.d.ts +1 -0
  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 +1 -0
  27. package/dist/index.d.mts +1 -0
  28. package/dist/index.d.ts +1 -0
  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 +4 -1
  92. package/dist/o11y/eval-usage.cjs.map +1 -1
  93. package/dist/o11y/eval-usage.d.cts +4 -1
  94. package/dist/o11y/eval-usage.d.mts +4 -1
  95. package/dist/o11y/eval-usage.d.ts +4 -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 +22 -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":"rename-experiment.js","sourceRoot":"","sources":["rename-experiment.ts"],"names":[],"mappings":"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","sourcesContent":["/** Explicit whole-Run adoption into a current Experiment, preserving exact origins. */\nimport { Effect, Result } from \"effect\";\nimport type { SandboxPlanningServices } from \"../sandbox/plan.ts\";\nimport { type AdoptionProject, type AdoptionProjectInput, ExplicitAdoptionError, type ExplicitAdoptionFailureCode, type ExplicitAdoptionReadError, type ExplicitAdoptionRunPlan, type ExplicitAdoptionRunReceipt, type RenameAdoptionPreflight, adoptionRecordRoot, adoptionStartedAt, buildExplicitAdoptionRunPlan, commitExplicitAdoptionRunPlans, createExplicitAdoptionInvocationId, loadAdoptionProject, prepareCurrentAdoptionTarget, prepareWholeRunAdoptionMembers, resolveExactAdoptionSourceRun, withAdoptionReader, } from \"./adoption.ts\";\nimport type { Config, DiscoveredEval, DiscoveredExperiment } from \"./types.ts\";\nexport type ExperimentRenameReason = ExplicitAdoptionFailureCode;\nexport interface ExperimentRenameOptions {\n readonly cwd: string;\n readonly sourceRunId: string;\n readonly newId: 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 readonly operatorReason?: string;\n}\nexport interface ExperimentRenameMigration {\n readonly evalId: string;\n readonly attempt: number;\n readonly sourceLocator: string;\n readonly targetExperimentId: string;\n readonly fingerprint: string;\n}\nexport interface ExperimentRenamePlan {\n readonly status: \"plan\";\n readonly sourceRunId: string;\n readonly oldId: string | null;\n readonly newId: string;\n readonly migrations: readonly ExperimentRenameMigration[];\n readonly blocked?: {\n readonly reason: ExperimentRenameReason;\n readonly detail: string;\n };\n}\nexport class ExperimentRenameError extends Error {\n readonly name = \"ExperimentRenameError\";\n constructor(readonly plan: ExperimentRenamePlan) {\n super(plan.blocked!.detail);\n }\n get reason(): ExperimentRenameReason { return this.plan.blocked!.reason; }\n}\nexport interface RenamedAttemptSourceReceipt {\n readonly experimentId: string;\n readonly locator: string;\n readonly originRunId: string;\n readonly attemptId: string;\n}\nexport interface ExperimentRenameDoneEntry {\n readonly evalId: string;\n readonly attempt: number;\n readonly sourceLocator: string;\n readonly locator: string;\n readonly fingerprint: string;\n readonly verdict: \"passed\" | \"failed\";\n readonly renamedFrom: RenamedAttemptSourceReceipt;\n}\nexport interface RenamedExperiment {\n readonly status: \"done\";\n readonly invocationId: string;\n readonly runId: string;\n readonly sourceRunId: string;\n readonly oldId: string;\n readonly newId: string;\n readonly migrated: readonly ExperimentRenameDoneEntry[];\n}\nexport interface RenamePreflight {\n readonly source: RenameAdoptionPreflight;\n readonly plan: ExplicitAdoptionRunPlan;\n}\nconst explicitError = (code: ExplicitAdoptionFailureCode, message: string) => new ExplicitAdoptionError(code, message);\nfunction projectInput(input: ExperimentRenameOptions): 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 ? {} : { planningServices: input.planningServices }),\n };\n}\nexport function preflightExperimentRename(input: {\n readonly reader: Parameters<typeof resolveExactAdoptionSourceRun>[0][\"reader\"];\n readonly project: AdoptionProject;\n readonly sourceRun: AwaitedSourceRun;\n readonly newId: string;\n readonly startedAt: Parameters<typeof prepareCurrentAdoptionTarget>[0][\"startedAt\"];\n readonly operatorReason?: string;\n}): Effect.Effect<RenamePreflight, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n if (input.sourceRun.experimentId === input.newId)\n return yield* Effect.fail(explicitError(\"adoption-source-run-mismatch\", \"Source and target Experiment identities must differ; use niceeval accept --run for the same Experiment.\"));\n const target = yield* prepareCurrentAdoptionTarget({ project: input.project, experimentId: input.newId, startedAt: input.startedAt });\n const source = yield* prepareWholeRunAdoptionMembers({\n intent: \"rename\", reader: input.reader, sourceRun: input.sourceRun, target,\n operatorReason: input.operatorReason ?? `rename ${input.sourceRun.experimentId} -> ${input.newId}`,\n });\n const plan = yield* buildExplicitAdoptionRunPlan({ intent: \"rename\", target, members: source.members.map((entry) => entry.member) });\n return Object.freeze({ source, plan });\n });\n}\ntype AwaitedSourceRun = RenameAdoptionPreflight[\"sourceRun\"];\nfunction blockedPlan(input: ExperimentRenameOptions, oldId: string | null, error: ExplicitAdoptionError): ExperimentRenamePlan {\n return Object.freeze({ status: \"plan\", sourceRunId: input.sourceRunId, oldId, newId: input.newId,\n migrations: Object.freeze([]), blocked: Object.freeze({ reason: error.code, detail: error.message }) });\n}\nfunction prepare(input: ExperimentRenameOptions, reader: Parameters<typeof resolveExactAdoptionSourceRun>[0][\"reader\"], project: AdoptionProject, startedAt: Parameters<typeof prepareCurrentAdoptionTarget>[0][\"startedAt\"]) {\n return Effect.gen(function* () {\n const source = yield* Effect.result(resolveExactAdoptionSourceRun({ reader, sourceRunId: input.sourceRunId }));\n if (Result.isFailure(source)) {\n if (source.failure instanceof ExplicitAdoptionError)\n return yield* Effect.fail(new ExperimentRenameError(blockedPlan(input, null, source.failure)));\n return yield* Effect.fail(source.failure);\n }\n return yield* preflightExperimentRename({ reader, project, sourceRun: source.success, newId: input.newId, startedAt,\n ...(input.operatorReason === undefined ? {} : { operatorReason: input.operatorReason }) }).pipe(Effect.mapError((error) => error instanceof ExplicitAdoptionError ? new ExperimentRenameError(blockedPlan(input, source.success.experimentId, error)) : error));\n });\n}\nexport function planExperimentRename(input: ExperimentRenameOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot({ cwd: input.cwd });\n const startedAt = yield* adoptionStartedAt(input.now);\n const project = yield* loadAdoptionProject(projectInput(input));\n return yield* withAdoptionReader({ root, use: (reader) => prepare(input, reader, project, startedAt).pipe(Effect.map((preflight): ExperimentRenamePlan => Object.freeze({ status: \"plan\", sourceRunId: input.sourceRunId,\n oldId: preflight.source.sourceRun.experimentId, newId: input.newId,\n migrations: Object.freeze(preflight.source.members.map((entry) => Object.freeze({ evalId: entry.evalId, attempt: entry.attempt,\n sourceLocator: entry.member.locator, targetExperimentId: input.newId, fingerprint: entry.member.target.inputIdentity.value }))),\n })), Effect.catchIf((error): error is ExperimentRenameError => error instanceof ExperimentRenameError, (error) => Effect.succeed(error.plan))) });\n });\n}\nfunction renameMemberReceiptsByLocator(input: {\n readonly preflight: RenamePreflight;\n readonly receipt: ExplicitAdoptionRunReceipt;\n}): Effect.Effect<ReadonlyMap<string, ExplicitAdoptionRunReceipt[\"members\"][number]>, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const expectedByLocator = new Map<string, RenameAdoptionPreflight[\"members\"][number]>();\n for (const entry of input.preflight.source.members) {\n if (expectedByLocator.has(entry.member.locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename preflight repeated source locator \"${entry.member.locator}\".`));\n }\n expectedByLocator.set(entry.member.locator, entry);\n }\n const receiptsByLocator = new Map<string, ExplicitAdoptionRunReceipt[\"members\"][number]>();\n for (const memberReceipt of input.receipt.members) {\n if (receiptsByLocator.has(memberReceipt.locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename publication returned duplicate receipt locator \"${memberReceipt.locator}\".`));\n }\n receiptsByLocator.set(memberReceipt.locator, memberReceipt);\n }\n for (const [locator, entry] of expectedByLocator) {\n const memberReceipt = receiptsByLocator.get(locator);\n if (memberReceipt === undefined) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename publication omitted receipt for source locator \"${locator}\".`));\n }\n if (memberReceipt.locator !== entry.member.locator\n || memberReceipt.slotId !== entry.member.target.slotId\n || memberReceipt.sourceRunId !== entry.member.source.origin.runId\n || memberReceipt.attemptId !== entry.member.source.attempt.attemptId) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename publication returned mismatched identity provenance for source locator \"${locator}\".`));\n }\n }\n for (const locator of receiptsByLocator.keys()) {\n if (!expectedByLocator.has(locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename publication returned unexpected receipt locator \"${locator}\".`));\n }\n }\n return receiptsByLocator;\n });\n}\nfunction renamedReceipt(input: {\n readonly invocationId: string;\n readonly sourceRunId: string;\n readonly oldId: string;\n readonly newId: string;\n readonly preflight: RenamePreflight;\n readonly receipt: readonly ExplicitAdoptionRunReceipt[];\n}): Effect.Effect<RenamedExperiment, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const [runReceipt] = input.receipt;\n if (input.receipt.length !== 1 || runReceipt === undefined) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit rename publication did not return exactly one target Run receipt.\"));\n }\n if (runReceipt.experimentId !== input.newId\n || runReceipt.experimentId !== input.preflight.plan.target.experimentId) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit rename publication returned a receipt for the wrong target Experiment.\"));\n }\n const receiptsByLocator = yield* renameMemberReceiptsByLocator({\n preflight: input.preflight,\n receipt: runReceipt,\n });\n const migrated: ExperimentRenameDoneEntry[] = [];\n for (const entry of input.preflight.source.members) {\n const memberReceipt = receiptsByLocator.get(entry.member.locator);\n if (memberReceipt === undefined) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit rename publication omitted one accepted Member receipt.\"));\n }\n migrated.push(Object.freeze({\n evalId: entry.evalId,\n attempt: entry.attempt,\n sourceLocator: entry.member.locator,\n // A reference has no new Attempt; the exact source locator remains it.\n locator: entry.member.locator,\n fingerprint: entry.member.target.inputIdentity.value,\n verdict: entry.member.verdict,\n renamedFrom: Object.freeze({\n experimentId: input.oldId,\n locator: entry.member.locator,\n originRunId: entry.member.source.origin.runId,\n attemptId: entry.member.source.attempt.attemptId,\n }),\n }));\n }\n return Object.freeze({\n status: \"done\" as const,\n invocationId: input.invocationId,\n runId: runReceipt.runId,\n sourceRunId: input.sourceRunId,\n oldId: input.oldId,\n newId: input.newId,\n migrated: Object.freeze(migrated),\n });\n });\n}\n/** A formal invocation evaluates and freezes its target once, then publishes the preflighted membership. */\nexport function renameExperiment(input: ExperimentRenameOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot({ cwd: input.cwd });\n const startedAt = yield* adoptionStartedAt(input.now);\n const project = yield* loadAdoptionProject(projectInput(input));\n return yield* withAdoptionReader({ root, use: (reader) => Effect.gen(function* () {\n const preflight = yield* prepare(input, reader, project, startedAt);\n const invocationId = yield* createExplicitAdoptionInvocationId();\n const receipt = yield* commitExplicitAdoptionRunPlans(reader, root, invocationId, [preflight.plan]);\n return yield* renamedReceipt({ invocationId, sourceRunId: input.sourceRunId,\n oldId: preflight.source.sourceRun.experimentId, newId: input.newId, preflight, receipt });\n }) });\n });\n}\n"]}
1
+ {"version":3,"file":"rename-experiment.js","sourceRoot":"","sources":["rename-experiment.ts"],"names":[],"mappings":"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","sourcesContent":["/** Explicit whole-Run adoption into a current Experiment, preserving exact origins. */\nimport { Effect, Result } from \"effect\";\nimport type { SandboxPlanningServices } from \"../sandbox/plan.ts\";\nimport { type AdoptionProject, type AdoptionProjectInput, ExplicitAdoptionError, type ExplicitAdoptionFailureCode, type ExplicitAdoptionReadError, type ExplicitAdoptionRunPlan, type ExplicitAdoptionRunReceipt, type RenameAdoptionPreflight, adoptionRecordRoot, adoptionStartedAt, buildExplicitAdoptionRunPlan, commitExplicitAdoptionRunPlans, createExplicitAdoptionInvocationId, loadAdoptionProject, prepareCurrentAdoptionTarget, prepareWholeRunAdoptionMembers, resolveExactAdoptionSourceRun, withAdoptionReader, } from \"./adoption.ts\";\nimport type { Config, DiscoveredEval, DiscoveredExperiment } from \"./types.ts\";\nexport type ExperimentRenameReason = ExplicitAdoptionFailureCode;\nexport interface ExperimentRenameOptions {\n readonly cwd: string;\n readonly sourceRunId: string;\n readonly newId: 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 readonly operatorReason?: string;\n}\nexport interface ExperimentRenameMigration {\n readonly evalId: string;\n readonly attempt: number;\n readonly sourceLocator: string;\n readonly targetExperimentId: string;\n readonly fingerprint: string;\n}\nexport interface ExperimentRenamePlan {\n readonly status: \"plan\";\n readonly sourceRunId: string;\n readonly oldId: string | null;\n readonly newId: string;\n readonly migrations: readonly ExperimentRenameMigration[];\n readonly blocked?: {\n readonly reason: ExperimentRenameReason;\n readonly detail: string;\n };\n}\nexport class ExperimentRenameError extends Error {\n readonly name = \"ExperimentRenameError\";\n constructor(readonly plan: ExperimentRenamePlan) {\n super(plan.blocked!.detail);\n }\n get reason(): ExperimentRenameReason { return this.plan.blocked!.reason; }\n}\nexport interface RenamedAttemptSourceReceipt {\n readonly experimentId: string;\n readonly locator: string;\n readonly originRunId: string;\n readonly attemptId: string;\n}\nexport interface ExperimentRenameDoneEntry {\n readonly evalId: string;\n readonly attempt: number;\n readonly sourceLocator: string;\n readonly locator: string;\n readonly fingerprint: string;\n readonly verdict: \"passed\" | \"failed\";\n readonly renamedFrom: RenamedAttemptSourceReceipt;\n}\nexport interface RenamedExperiment {\n readonly status: \"done\";\n readonly invocationId: string;\n readonly runId: string;\n readonly sourceRunId: string;\n readonly oldId: string;\n readonly newId: string;\n readonly migrated: readonly ExperimentRenameDoneEntry[];\n}\nexport interface RenamePreflight {\n readonly source: RenameAdoptionPreflight;\n readonly plan: ExplicitAdoptionRunPlan;\n}\nconst explicitError = (code: ExplicitAdoptionFailureCode, message: string) => new ExplicitAdoptionError(code, message);\nfunction projectInput(input: ExperimentRenameOptions): 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 ? {} : { planningServices: input.planningServices }),\n };\n}\nexport function preflightExperimentRename(input: {\n readonly reader: Parameters<typeof resolveExactAdoptionSourceRun>[0][\"reader\"];\n readonly project: AdoptionProject;\n readonly sourceRun: AwaitedSourceRun;\n readonly newId: string;\n readonly startedAt: Parameters<typeof prepareCurrentAdoptionTarget>[0][\"startedAt\"];\n readonly operatorReason?: string;\n}): Effect.Effect<RenamePreflight, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n if (input.sourceRun.experimentId === input.newId)\n return yield* Effect.fail(explicitError(\"adoption-source-run-mismatch\", \"Source and target Experiment identities must differ; use niceeval accept --run for the same Experiment.\"));\n const target = yield* prepareCurrentAdoptionTarget({ project: input.project, experimentId: input.newId, startedAt: input.startedAt });\n const source = yield* prepareWholeRunAdoptionMembers({\n intent: \"rename\", reader: input.reader, sourceRun: input.sourceRun, target,\n operatorReason: input.operatorReason ?? `rename ${input.sourceRun.experimentId} -> ${input.newId}`,\n });\n const plan = yield* buildExplicitAdoptionRunPlan({ intent: \"rename\", target, members: source.members.map((entry) => entry.member) });\n return Object.freeze({ source, plan });\n });\n}\ntype AwaitedSourceRun = RenameAdoptionPreflight[\"sourceRun\"];\nfunction blockedPlan(input: ExperimentRenameOptions, oldId: string | null, error: ExplicitAdoptionError): ExperimentRenamePlan {\n return Object.freeze({ status: \"plan\", sourceRunId: input.sourceRunId, oldId, newId: input.newId,\n migrations: Object.freeze([]), blocked: Object.freeze({ reason: error.code, detail: error.message }) });\n}\nfunction prepare(input: ExperimentRenameOptions, reader: Parameters<typeof resolveExactAdoptionSourceRun>[0][\"reader\"], project: AdoptionProject, startedAt: Parameters<typeof prepareCurrentAdoptionTarget>[0][\"startedAt\"]) {\n return Effect.gen(function* () {\n const source = yield* Effect.result(resolveExactAdoptionSourceRun({ reader, sourceRunId: input.sourceRunId }));\n if (Result.isFailure(source)) {\n if (source.failure instanceof ExplicitAdoptionError)\n return yield* Effect.fail(new ExperimentRenameError(blockedPlan(input, null, source.failure)));\n return yield* Effect.fail(source.failure);\n }\n return yield* preflightExperimentRename({ reader, project, sourceRun: source.success, newId: input.newId, startedAt,\n ...(input.operatorReason === undefined ? {} : { operatorReason: input.operatorReason }) }).pipe(Effect.mapError((error) => error instanceof ExplicitAdoptionError ? new ExperimentRenameError(blockedPlan(input, source.success.experimentId, error)) : error));\n });\n}\nexport function planExperimentRename(input: ExperimentRenameOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot({ cwd: input.cwd });\n const startedAt = yield* adoptionStartedAt(input.now);\n const project = yield* loadAdoptionProject(projectInput(input));\n return yield* withAdoptionReader({ root, use: (reader) => prepare(input, reader, project, startedAt).pipe(Effect.map((preflight): ExperimentRenamePlan => Object.freeze({ status: \"plan\", sourceRunId: input.sourceRunId,\n oldId: preflight.source.sourceRun.experimentId, newId: input.newId,\n migrations: Object.freeze(preflight.source.members.map((entry) => Object.freeze({ evalId: entry.evalId, attempt: entry.attempt,\n sourceLocator: entry.member.locator, targetExperimentId: input.newId, fingerprint: entry.member.target.inputIdentity.value }))),\n })), Effect.catchIf((error): error is ExperimentRenameError => error instanceof ExperimentRenameError, (error) => Effect.succeed(error.plan))) });\n });\n}\nfunction renameMemberReceiptsByLocator(input: {\n readonly preflight: RenamePreflight;\n readonly receipt: ExplicitAdoptionRunReceipt;\n}): Effect.Effect<ReadonlyMap<string, ExplicitAdoptionRunReceipt[\"members\"][number]>, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const expectedByLocator = new Map<string, RenameAdoptionPreflight[\"members\"][number]>();\n for (const entry of input.preflight.source.members) {\n if (expectedByLocator.has(entry.member.locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename preflight repeated source locator \"${entry.member.locator}\".`));\n }\n expectedByLocator.set(entry.member.locator, entry);\n }\n const receiptsByLocator = new Map<string, ExplicitAdoptionRunReceipt[\"members\"][number]>();\n for (const memberReceipt of input.receipt.members) {\n if (receiptsByLocator.has(memberReceipt.locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename publication returned duplicate receipt locator \"${memberReceipt.locator}\".`));\n }\n receiptsByLocator.set(memberReceipt.locator, memberReceipt);\n }\n for (const [locator, entry] of expectedByLocator) {\n const memberReceipt = receiptsByLocator.get(locator);\n if (memberReceipt === undefined) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename publication omitted receipt for source locator \"${locator}\".`));\n }\n if (memberReceipt.locator !== entry.member.locator\n || memberReceipt.slotId !== entry.member.target.slotId\n || memberReceipt.sourceRunId !== entry.member.source.origin.runId\n || memberReceipt.attemptId !== entry.member.source.attempt.attemptId) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename publication returned mismatched identity provenance for source locator \"${locator}\".`));\n }\n }\n for (const locator of receiptsByLocator.keys()) {\n if (!expectedByLocator.has(locator)) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", `Explicit rename publication returned unexpected receipt locator \"${locator}\".`));\n }\n }\n return receiptsByLocator;\n });\n}\nfunction renamedReceipt(input: {\n readonly invocationId: string;\n readonly sourceRunId: string;\n readonly oldId: string;\n readonly newId: string;\n readonly preflight: RenamePreflight;\n readonly receipt: readonly ExplicitAdoptionRunReceipt[];\n}): Effect.Effect<RenamedExperiment, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const [runReceipt] = input.receipt;\n if (input.receipt.length !== 1 || runReceipt === undefined) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit rename publication did not return exactly one target Run receipt.\"));\n }\n if (runReceipt.experimentId !== input.newId\n || runReceipt.experimentId !== input.preflight.plan.target.experimentId) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit rename publication returned a receipt for the wrong target Experiment.\"));\n }\n const receiptsByLocator = yield* renameMemberReceiptsByLocator({\n preflight: input.preflight,\n receipt: runReceipt,\n });\n const migrated: ExperimentRenameDoneEntry[] = [];\n for (const entry of input.preflight.source.members) {\n const memberReceipt = receiptsByLocator.get(entry.member.locator);\n if (memberReceipt === undefined) {\n return yield* Effect.fail(explicitError(\"adoption-provenance-invalid\", \"Explicit rename publication omitted one accepted Member receipt.\"));\n }\n migrated.push(Object.freeze({\n evalId: entry.evalId,\n attempt: entry.attempt,\n sourceLocator: entry.member.locator,\n // A reference has no new Attempt; the exact source locator remains it.\n locator: entry.member.locator,\n fingerprint: entry.member.target.inputIdentity.value,\n verdict: entry.member.verdict,\n renamedFrom: Object.freeze({\n experimentId: input.oldId,\n locator: entry.member.locator,\n originRunId: entry.member.source.origin.runId,\n attemptId: entry.member.source.attempt.attemptId,\n }),\n }));\n }\n return Object.freeze({\n status: \"done\" as const,\n invocationId: input.invocationId,\n runId: runReceipt.runId,\n sourceRunId: input.sourceRunId,\n oldId: input.oldId,\n newId: input.newId,\n migrated: Object.freeze(migrated),\n });\n });\n}\n/** A formal invocation evaluates and freezes its target once, then publishes the preflighted membership. */\nexport function renameExperiment(input: ExperimentRenameOptions) {\n return Effect.gen(function* () {\n const root = yield* adoptionRecordRoot({ cwd: input.cwd });\n const startedAt = yield* adoptionStartedAt(input.now);\n const project = yield* loadAdoptionProject(projectInput(input));\n const preflight = yield* withAdoptionReader({ root, use: (reader) => prepare(input, reader, project, startedAt) });\n const invocationId = yield* createExplicitAdoptionInvocationId();\n const receipt = yield* commitExplicitAdoptionRunPlans(root, invocationId, [preflight.plan]);\n return yield* renamedReceipt({ invocationId, sourceRunId: input.sourceRunId,\n oldId: preflight.source.sourceRun.experimentId, newId: input.newId, preflight, receipt });\n });\n}\n"]}
@@ -13,10 +13,13 @@ exports.assessCurrentTargetSlot = assessCurrentTargetSlot;
13
13
  // @concord-implements docs/feature/experiments/use-case/rerun-all.md
14
14
  const effect_1 = require("effect");
15
15
  const errors_ts_1 = require("../record/reader/errors.cjs");
16
+ const errors_ts_2 = require("../record/sqlite/errors.cjs");
17
+ const sqlite_host_ts_1 = require("../record/host/sqlite-host.cjs");
16
18
  const identifiers_ts_1 = require("../record/codec/identifiers.cjs");
17
19
  const core_ts_1 = require("../record/codec/core.cjs");
18
20
  const score_ts_1 = require("../eval/record/score.cjs");
19
21
  const rename_identity_ts_1 = require("./rename-identity.cjs");
22
+ const record_errors_ts_1 = require("../record/errors/record-errors.cjs");
20
23
  const catalog_ts_1 = require("../record/family/catalog.cjs");
21
24
  const eligibility_ts_1 = require("../eval/record/eligibility.cjs");
22
25
  const membership_provenance_ts_1 = require("../eval/record/membership-provenance.cjs");
@@ -140,7 +143,10 @@ function planProjectTargetReuse(input) {
140
143
  if (invalid !== undefined)
141
144
  return effect_1.Effect.fail(invalid);
142
145
  return effect_1.Effect.gen(function* () {
143
- const selection = yield* input.reader.selectRuns({ includePublishedActive: true });
146
+ const selected = yield* (0, sqlite_host_ts_1.selectPlanningSources)(input.reader, flattenTargetSlots(input.target).map((slot) => ({
147
+ experimentId: slot.experimentId, evalId: slot.evalId, attemptOrdinal: slot.attempt, excludeRunId: slot.runId,
148
+ })));
149
+ const { selection } = selected;
144
150
  const readable = yield* effect_1.Effect.forEach(selection.runRefs, (ref) => input.reader.readRun(ref), { concurrency: 1 });
145
151
  const publishedRuns = [];
146
152
  const coreIssues = [];
@@ -150,27 +156,24 @@ function planProjectTargetReuse(input) {
150
156
  else if (read.state === "core-invalid")
151
157
  coreIssues.push(...read.issues);
152
158
  }
153
- const resources = [];
154
- let afterRunId = "";
155
- for (;;) {
156
- const page = yield* input.reader.listRunResources({ afterRunId, pageSize: 100 });
157
- resources.push(...page.runs);
158
- if (page.nextAfterRunId === null)
159
- break;
160
- afterRunId = page.nextAfterRunId;
161
- }
162
- const runs = yield* mergeCurrentAssessmentRuns(publishedRuns, resources);
159
+ const merged = yield* mergeCurrentAssessmentRuns(publishedRuns, selected.resources);
160
+ const runs = merged.map((run) => selected.members.has(run.document.runId)
161
+ ? Object.freeze({ ...run, members: selected.members.get(run.document.runId) }) : run);
163
162
  const byRunId = new Map(publishedRuns.map((run) => [run.document.runId, run]));
164
163
  const slots = [];
165
164
  for (const target of flattenTargetSlots(input.target)) {
165
+ const sourceProblems = selection.problems.filter((problem) => selected.experimentByRun.get(problem.runId) === target.experimentId);
166
+ const scopedIssues = [...(selected.issuesByExperiment.get(target.experimentId) ?? []),
167
+ ...sourceProblems.map((problem) => (0, record_errors_ts_1.recordIssue)("record-schema-invalid", ["run", problem.runId, problem.code]))];
166
168
  slots.push(yield* planTargetSlot({
167
169
  reader: input.reader,
168
170
  target,
169
171
  policy: input.policy,
170
172
  runs,
171
173
  byRunId,
172
- selectionHasProblem: selection.problems.length > 0 || coreIssues.length > 0,
173
- coreIssues,
174
+ selectionHasProblem: scopedIssues.length > 0 || coreIssues.length > 0,
175
+ selectionProblemScope: coreIssues.length > 0 ? "target" : "experiment",
176
+ coreIssues: [...coreIssues, ...scopedIssues],
174
177
  }));
175
178
  }
176
179
  const reuse = slots.filter((slot) => slot.state === "reuse");
@@ -212,19 +215,31 @@ exports.ProjectTargetReusePlanner = Object.freeze({ plan: planProjectTargetReuse
212
215
  function planTargetSlot(input) {
213
216
  return assessCurrentTargetSlot({
214
217
  ...input,
215
- readAttempt: (ref) => input.reader.readAttempt(ref).pipe(effect_1.Effect.map((read) => read.state !== "available" ? read : {
218
+ readAttempt: (ref) => input.reader.readAttempt(ref).pipe(effect_1.Effect.catch((error) => error instanceof errors_ts_1.RecordIntegrityFailure || error instanceof errors_ts_2.SqliteRecordError &&
219
+ ["record-database-invalid", "record-content-invalid", "record-seal-incomplete"].includes(error.code)
220
+ ? effect_1.Effect.succeed({ state: "core-invalid",
221
+ issues: (0, record_errors_ts_1.nonEmptyRecordIssues)([(0, record_errors_ts_1.recordIssue)("record-schema-invalid", ["attempt", String(ref.attemptId), error.code,
222
+ ...(error instanceof errors_ts_1.RecordIntegrityFailure ? [error.reason] : [])])]) })
223
+ : effect_1.Effect.fail(error)), effect_1.Effect.map((read) => read.state !== "available" ? read : {
216
224
  state: "available",
217
225
  value: { ...read.value, publicationAvailable: read.value.ref.publicationIdentity !== undefined },
218
226
  })),
219
- readAssertions: (attempt) => input.reader.read(attempt.owner, catalog_ts_1.NiceEvalRecordAttachments.assertions),
220
- readActivities: (attempt) => input.reader.read(attempt.owner, catalog_ts_1.NiceEvalRecordAttachments.runnerActivities.attempt),
227
+ readAssertions: (attempt) => planningAttachment(input.reader.read(attempt.owner, catalog_ts_1.NiceEvalRecordAttachments.assertions), "assertions"),
228
+ readActivities: (attempt) => planningAttachment(input.reader.read(attempt.owner, catalog_ts_1.NiceEvalRecordAttachments.runnerActivities.attempt), "runner-activities"),
221
229
  sourceFor: (attempt, sourceBarrier) => {
222
230
  if (!hasPublicationIdentity(attempt))
223
231
  throw new Error("Expected a published Attempt");
224
- return candidateFor({ target: input.target, sourceBarrier, attempt, byRunId: input.byRunId }).source;
232
+ return candidateFor({ reader: input.reader, target: input.target, sourceBarrier, attempt, byRunId: input.byRunId }).source;
225
233
  },
226
234
  });
227
235
  }
236
+ function planningAttachment(read, family) {
237
+ return read.pipe(effect_1.Effect.catch((error) => error instanceof errors_ts_2.SqliteRecordError &&
238
+ ["record-database-invalid", "record-content-invalid", "record-seal-incomplete"].includes(error.code)
239
+ ? effect_1.Effect.succeed({ state: "invalid",
240
+ issues: (0, record_errors_ts_1.nonEmptyRecordIssues)([(0, record_errors_ts_1.recordIssue)("record-schema-invalid", [family, error.code])]) })
241
+ : effect_1.Effect.fail(error)));
242
+ }
228
243
  function assessCurrentTargetSlot(input) {
229
244
  return effect_1.Effect.gen(function* () {
230
245
  if (input.target.reuseEligibility !== undefined) {
@@ -238,7 +253,7 @@ function assessCurrentTargetSlot(input) {
238
253
  if (input.selectionHasProblem) {
239
254
  return gapSlot(input.target, {
240
255
  reason: "source-core-invalid",
241
- scope: "target",
256
+ scope: input.selectionProblemScope ?? "target",
242
257
  issues: input.coreIssues,
243
258
  comparisons: [],
244
259
  });
@@ -490,8 +505,12 @@ function candidateFor(input) {
490
505
  || document.executionIdentityDigest !== originExpected.executionIdentityDigest) {
491
506
  return undefined;
492
507
  }
508
+ const reference = (0, sqlite_host_ts_1.detachPlanningReference)(input.reader, input.attempt.ref);
509
+ if (reference === undefined)
510
+ return undefined;
493
511
  return Object.freeze({
494
512
  source: Object.freeze({
513
+ reference,
495
514
  attemptId: input.attempt.ref.attemptId,
496
515
  attempt: input.attempt.ref,
497
516
  origin: Object.freeze({ runId: document.originRunId, slotId: document.slotId }),