openpond 0.2.36 → 0.2.38
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.
- package/dist/app-server.d.ts +189 -3
- package/dist/app-server.js +1 -1
- package/dist/chunks/actions-command-MHWHPQ66.js +2 -0
- package/dist/chunks/{app-layer-KPPQSL67.js → app-layer-JZTMHORT.js} +1 -1
- package/dist/chunks/app-server-runtime-PDT6BJD2.js +2 -0
- package/dist/chunks/apps-U5GIOD6W.js +2 -0
- package/dist/chunks/{chunk-SHWLRMDG.js → chunk-25OT6IYM.js} +2 -2
- package/dist/chunks/chunk-3HQEEZPO.js +2 -0
- package/dist/chunks/{chunk-K6EGNB2A.js → chunk-562Q5UVS.js} +2 -2
- package/dist/chunks/chunk-7BGT6Q2D.js +8 -0
- package/dist/chunks/{chunk-QPZNN5Q3.js → chunk-AOBTILU5.js} +1 -1
- package/dist/chunks/{chunk-DR3XPQRZ.js → chunk-DDHUSA3I.js} +1 -1
- package/dist/chunks/{chunk-FIFGH6W3.js → chunk-FKVP26MC.js} +1 -1
- package/dist/chunks/{chunk-MXLB6MEW.js → chunk-FUFIZ37W.js} +2 -2
- package/dist/chunks/chunk-GIPSOLAY.js +2 -0
- package/dist/chunks/chunk-GKRTXVNT.js +12 -0
- package/dist/chunks/{chunk-5WFHGIQB.js → chunk-GOHJHZVA.js} +206 -206
- package/dist/chunks/chunk-HZP5U2AA.js +3 -0
- package/dist/chunks/{chunk-Q2Z27DCK.js → chunk-IKM6ICPY.js} +1 -1
- package/dist/chunks/{chunk-EFTLCT7C.js → chunk-J4S7AVGF.js} +1 -1
- package/dist/chunks/chunk-JUX77H6K.js +13 -0
- package/dist/chunks/chunk-KNEMKYHY.js +2 -0
- package/dist/chunks/chunk-MRGA6BKG.js +19 -0
- package/dist/chunks/{chunk-VRY5TEEF.js → chunk-OCWH4BV7.js} +135 -141
- package/dist/chunks/chunk-P5CFBE6Z.js +3 -0
- package/dist/chunks/chunk-PKBU37CH.js +5 -0
- package/dist/chunks/chunk-Q3X5WOVH.js +4 -0
- package/dist/chunks/chunk-QK2GLRCY.js +53 -0
- package/dist/chunks/chunk-QUNRWDVO.js +155 -0
- package/dist/chunks/chunk-RELOOVWW.js +2 -0
- package/dist/chunks/chunk-SBBXUZWL.js +5 -0
- package/dist/chunks/{chunk-Z6F6PYF4.js → chunk-SHCKK3SU.js} +1 -1
- package/dist/chunks/chunk-SHCRE7B2.js +2 -0
- package/dist/chunks/{chunk-4QX2I2DX.js → chunk-T7Y5OYO2.js} +1 -1
- package/dist/chunks/chunk-TZNKOKQJ.js +5 -0
- package/dist/chunks/{chunk-YZ262JZT.js → chunk-V5BC6QT2.js} +1 -1
- package/dist/chunks/{chunk-ZF6OAPTQ.js → chunk-WCZRDULE.js} +7 -7
- package/dist/chunks/chunk-XHJUP7M4.js +23 -0
- package/dist/chunks/chunk-ZCDOE3EO.js +42 -0
- package/dist/chunks/{chunk-34URWDE7.js → chunk-ZCFX6HQO.js} +1 -1
- package/dist/chunks/{chunk-LL3ZAZEU.js → chunk-ZPGTGQJT.js} +1 -1
- package/dist/chunks/cli-OP4EDGZN.js +2 -0
- package/dist/chunks/configuration-command-RPNYWBKK.js +2 -0
- package/dist/chunks/{continual-6EW2SLGL.js → continual-MHMPLLUZ.js} +3 -3
- package/dist/chunks/core-commands-WFTASSGL.js +2 -0
- package/dist/chunks/datasets-V7E4I5N3.js +13 -0
- package/dist/chunks/desktop-test-NZAZVXLK.js +3 -0
- package/dist/chunks/dist-4OUZANXR.js +2 -0
- package/dist/chunks/dist-GKCGK44T.js +2 -0
- package/dist/chunks/experiments-7UBJCQAQ.js +2 -0
- package/dist/chunks/{extension-LG3JL5QD.js → extension-OQ7CFD4Q.js} +1 -1
- package/dist/chunks/{help-XP73IYAV.js → help-4BB2A5JC.js} +1 -1
- package/dist/chunks/hosted-harness-runtime-6TE37GBH.js +2 -0
- package/dist/chunks/hosted-profile-compiler-7ZWCIHPA.js +3 -0
- package/dist/chunks/opchat-QVB4UIZR.js +3 -0
- package/dist/chunks/organizations-MUKXB6MX.js +2 -0
- package/dist/chunks/{profile-O7NIC76F.js → profile-LZYR4CMX.js} +1 -1
- package/dist/chunks/project-agent-FHNWIH2D.js +2 -0
- package/dist/chunks/sandbox-command-GJN3HSJQ.js +2 -0
- package/dist/chunks/{sandbox-template-H5M4NV2F.js → sandbox-template-6RLQYNTY.js} +1 -1
- package/dist/chunks/{src-BITVDQDA.js → src-2NVS6PNZ.js} +112 -112
- package/dist/chunks/{src-WN3RDFPF.js → src-PASASTIA.js} +5 -5
- package/dist/chunks/{taskset-YPKY3HUM.js → taskset-BZYQT65N.js} +1 -1
- package/dist/chunks/{teams-bot-RPZVD4UD.js → teams-bot-UQB636V3.js} +1 -1
- package/dist/chunks/training-7PST5HZU.js +1 -1
- package/dist/chunks/{workspaces-XMU4772P.js → workspaces-2KYAFRX4.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/web/assets/{App-BRZg56AC.js → App-BL1D_PLh.js} +9 -9
- package/dist/web/assets/{AppDialog-BR9UjEFe.js → AppDialog-CmPsGOzE.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-DNXVV6S_.js → AppTerminalPanel-0_Ewf4wJ.js} +2 -2
- package/dist/web/assets/{AppsView-DhaB7uT7.js → AppsView-Ddn9R2I-.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-zecj1P2T.js → BrowserSidebar-j2Yyiaz-.js} +1 -1
- package/dist/web/assets/{CartesianChart-DRhWC0XA.js → CartesianChart-BWAkc0mY.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-BzNNwOcD.js → CollaborationTabs-SVc7oX8N.js} +1 -1
- package/dist/web/assets/{CommandMenu-C7HuXmgN.js → CommandMenu-CcX5ypdX.js} +1 -1
- package/dist/web/assets/{CommunityView-C4HfU5ky.js → CommunityView-B7W1C8KG.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-CG8YZxWB.js → ComposerCreateImproveStrip-BBKdrbNP.js} +1 -1
- package/dist/web/assets/{GetStartedView-ZxtcgU5X.js → GetStartedView-BXuTBT4U.js} +1 -1
- package/dist/web/assets/HostedModelLearningReview-C3oAdyoF.js +1 -0
- package/dist/web/assets/{HostedModelLearningSettings-BKM_1-LZ.js → HostedModelLearningSettings-9e5z5eRf.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-CklKwV_e.js → LabModelVersionDetailPage-CctGBUae.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-Cq_axOXr.js → LabSkillSidebar-Cl8Sdiqc.js} +1 -1
- package/dist/web/assets/{LabsRoute-BPGkQnKq.js → LabsRoute-di9O0XV1.js} +4 -4
- package/dist/web/assets/{MainChatThread-DvllW6Ej.js → MainChatThread-BaEeNsrh.js} +2 -2
- package/dist/web/assets/{MainPane-BaUIvio6.js → MainPane-Dw90VsN-.js} +4 -4
- package/dist/web/assets/{MarkdownText-DP7Hjp4L.js → MarkdownText-CGGUFrZe.js} +1 -1
- package/dist/web/assets/{NativeSkillSidebar-BSSKKH-y.js → NativeSkillSidebar-2mgh6WV4.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-cWw4m_pU.js → NewExperienceSwitcher-DMTe3jS9.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-BMzXEHsC.js → NewProjectDialog-D6pvuCoo.js} +1 -1
- package/dist/web/assets/{OutputsPage-CGWtgJ_j.js → OutputsPage-DMeIKxzN.js} +1 -1
- package/dist/web/assets/{ProjectsPage-C00Wt3oR.js → ProjectsPage-V5oXwB-5.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-0D_jpeAm.js → RightChatPanelStack-B0y2XNdm.js} +1 -1
- package/dist/web/assets/{RightSidebarHomePanel-BgHpI97K.js → RightSidebarHomePanel-BksZR71F.js} +1 -1
- package/dist/web/assets/{ScheduledWorkPage-C-P_Jv04.js → ScheduledWorkPage-BRcVebWV.js} +1 -1
- package/dist/web/assets/{SettingsView-BJDvzvtZ.js → SettingsView-CtI170q1.js} +3 -3
- package/dist/web/assets/{TeamChatView-BdUQNXvx.js → TeamChatView-DWGM8eXj.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-85H1eqcg.js → TerminalOverlay-DLSmAkbQ.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-Bdx2BJzb.js → TrainingCreationPanel-C6e6zhC8.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-TcvqZfYS.js → TrainingDraftPanel-Q1GXOAlQ.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-Dm8bsNIT.js → UsageSettingsSection-UET2vS1c.js} +1 -1
- package/dist/web/assets/{WorkSidebarPanel-C9bKi4NH.js → WorkSidebarPanel-DMsXId2s.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-CFzHklbv.js → WorkspaceDiffPanel-B_eZE-bq.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-_e6IkhGw.js → WorkspaceEnvironmentMenu-C848cDBP.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-BglcR8S9.js → WorkspaceGitDialogs-CSnIC26s.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BuipCT-i.js → WorkspaceMonacoEditor-C5dvv9s_.js} +3 -3
- package/dist/web/assets/{arrow-up-right-jN0p0koy.js → arrow-up-right-CsvQameJ.js} +1 -1
- package/dist/web/assets/{clipboard-Bat4as9H.js → clipboard-fZsv7_ot.js} +1 -1
- package/dist/web/assets/{cloud-upload-CFs0F_2n.js → cloud-upload-CUXNsLn2.js} +1 -1
- package/dist/web/assets/{cssMode-Cg4Jey3B.js → cssMode-1tbsSShK.js} +1 -1
- package/dist/web/assets/{folder-open-BqInWH_9.js → folder-open-Da8t5AtB.js} +1 -1
- package/dist/web/assets/{folder-plus-BSA6I7ld.js → folder-plus-X7B8dzc3.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CLDqrpDQ.js → git-commit-horizontal-CajQIfK5.js} +1 -1
- package/dist/web/assets/{htmlMode-DHHN3vwk.js → htmlMode-qapgENKW.js} +1 -1
- package/dist/web/assets/{index-VtbQYCWA.js → index-DUQK09vA.js} +2 -2
- package/dist/web/assets/{info-BSebzpyp.js → info-BYfs9_PT.js} +1 -1
- package/dist/web/assets/{jsonMode-mvqMGlEK.js → jsonMode-DYPkWxLK.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-Bw_QMGcP.js → lspLanguageFeatures-Cbcp__rz.js} +1 -1
- package/dist/web/assets/{minimize-2-CaHjbHpF.js → minimize-2-Dp7tWjno.js} +1 -1
- package/dist/web/assets/{monaco.contribution-DubQum0F.js → monaco.contribution-COP3_DCK.js} +2 -2
- package/dist/web/assets/{monaco.contribution-KrPDFXc4.js → monaco.contribution-CcL6YtdZ.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CBkwYqsg.js → monaco.contribution-DApKEq_e.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CiXEi4Ka.js → monaco.contribution-cIq6c5M4.js} +2 -2
- package/dist/web/assets/{monitor-DwOfVMY6.js → monitor-nP1D5S_1.js} +1 -1
- package/dist/web/assets/{python-BPnA89YS.js → python-DXYfRGSs.js} +1 -1
- package/dist/web/assets/{refresh-cw-DO-hUyTn.js → refresh-cw-D_9Q01ox.js} +1 -1
- package/dist/web/assets/{save-C7WFI7Mn.js → save-BxG7d5Nm.js} +1 -1
- package/dist/web/assets/{square-DiLQ59tw.js → square--Ua9DQPL.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-BWFPIQBM.js → toggleHighContrast-CqAtkn5E.js} +1 -1
- package/dist/web/assets/{tsMode-CWxqU0x6.js → tsMode-BCdfa4wT.js} +1 -1
- package/dist/web/assets/{upload-vUnuWYGk.js → upload-BkYSJcbc.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-BFbGmflA.js → useLocalAgentSchedules-CGlPbPZr.js} +1 -1
- package/dist/web/assets/{useSessionTurnCache-C0zgYrCB.js → useSessionTurnCache-DtNQyWXl.js} +1 -1
- package/dist/web/assets/{wifi-off-DbNO6u3Z.js → wifi-off-DF8YmlRa.js} +1 -1
- package/dist/web/assets/{workers-4I09fePv.js → workers-BUHY0ojx.js} +1 -1
- package/dist/web/assets/{yaml-DpHYonDY.js → yaml-CtBzXx8s.js} +1 -1
- package/dist/web/index.html +1 -1
- package/docs/command-reference.md +35 -0
- package/package.json +3 -1
- package/dist/chunks/actions-command-U2DMVGDS.js +0 -2
- package/dist/chunks/app-server-runtime-ELR3VCKR.js +0 -2
- package/dist/chunks/apps-NBV45ZGW.js +0 -2
- package/dist/chunks/chunk-BFHAJTU4.js +0 -19
- package/dist/chunks/chunk-CL6YPTWP.js +0 -5
- package/dist/chunks/chunk-DJHJIXMW.js +0 -26
- package/dist/chunks/chunk-IFP6W4OW.js +0 -54
- package/dist/chunks/chunk-JB6FTAMW.js +0 -2
- package/dist/chunks/chunk-L67V63N3.js +0 -2
- package/dist/chunks/chunk-MPNHNWN6.js +0 -15
- package/dist/chunks/chunk-P3DI3ZMK.js +0 -3
- package/dist/chunks/chunk-PBRD43CI.js +0 -42
- package/dist/chunks/chunk-RC3JXLP7.js +0 -4
- package/dist/chunks/chunk-VVKE6EYN.js +0 -166
- package/dist/chunks/chunk-XCTFXXVY.js +0 -2
- package/dist/chunks/cli-EG7K37TB.js +0 -2
- package/dist/chunks/configuration-command-MSDFCKOT.js +0 -2
- package/dist/chunks/core-commands-WDHXJPCY.js +0 -2
- package/dist/chunks/desktop-test-SN4BHDV3.js +0 -3
- package/dist/chunks/dist-XCT2G25K.js +0 -2
- package/dist/chunks/hosted-profile-compiler-HQ6T6NDP.js +0 -3
- package/dist/chunks/opchat-5NQ22CPO.js +0 -3
- package/dist/chunks/organizations-AY52SHI4.js +0 -2
- package/dist/chunks/project-agent-UKGWIFFI.js +0 -2
- package/dist/chunks/sandbox-command-WL6DAJTO.js +0 -2
- package/dist/web/assets/HostedModelLearningReview-BhGIhvoc.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{Wa as A,v as C}from"./chunk-JUX77H6K.js";import{a as f,b,c as R,e as H,h as j,l as h,m as z}from"./chunk-HZP5U2AA.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as d}from"./chunk-FTQLQJQV.js";var F=e.number().finite().nonnegative(),V=e.discriminatedUnion("kind",[e.object({kind:e.literal("model"),modelId:f,configurationHash:b}).strict(),e.object({kind:e.literal("harness"),source:A}).strict(),e.object({kind:e.literal("fixture"),configurationHash:b}).strict()]),U=e.object({release:H.extend({revision:e.union([e.number().int().positive(),e.string().trim().min(1).max(200)])}).strict(),feedbackKey:C,configurationHash:b.optional(),output:e.enum(["boolean","score","category"]),categories:e.array(e.string().trim().min(1).max(120)).max(50)}).strict().superRefine((t,n)=>{t.output==="category"!=t.categories.length>0&&n.addIssue({code:"custom",path:["categories"],message:"Only category feedback declares categories."}),new Set(t.categories).size!==t.categories.length&&n.addIssue({code:"custom",path:["categories"],message:"Feedback categories must be unique."})}),M=e.object({caseId:f,seed:e.string().trim().min(1).max(500),fixtureId:f.nullable()}).strict();function K(t){let n=M.parse(t);return JSON.stringify([n.caseId,n.seed,n.fixtureId])}d(K,"experimentCaseKey");var D=e.object({schemaVersion:e.literal("openpond.experimentManifest.v1"),id:f,name:e.string().trim().min(1).max(500),teamId:f,operationId:f,maximumCostUsd:F.nullable(),dataset:H.extend({revision:e.number().int().positive()}).strict(),target:V,execution:e.object({packageHash:b,runtimeTargetHash:b,metricPolicyHash:b}).strict().optional(),lineage:e.object({definition:H.extend({revision:e.number().int().positive()}).strict().nullable(),execution:H,scoringPassId:f.nullable()}).strict().optional(),evaluators:e.array(U).max(100),population:e.array(M).min(1).max(1e4),createdAt:R}).strict().superRefine((t,n)=>{t.lineage&&t.id!==(t.lineage.scoringPassId??t.lineage.execution.id)&&n.addIssue({code:"custom",path:["lineage"],message:"Experiment identity must match its execution or independent scoring pass."}),new Set(t.population.map(K)).size!==t.population.length&&n.addIssue({code:"custom",path:["population"],message:"Experiment cases must be unique."}),new Set(t.evaluators.map(s=>s.feedbackKey)).size!==t.evaluators.length&&n.addIssue({code:"custom",path:["evaluators"],message:"Experiment feedback keys must be unique."})}),q=D.extend({contentHash:b}).strict(),J=e.object({feedbackKey:C,evaluator:U.shape.release,status:e.enum(["scored","unavailable","failed","pending"]),value:e.union([e.boolean(),e.number().finite(),e.string().max(120)]).nullable(),passed:e.boolean().nullable().optional(),reasoning:e.string().max(2e4).nullable(),evidenceRefs:e.array(j).max(1e3)}).strict(),B=e.object({inputTokens:e.number().int().nonnegative().nullable(),outputTokens:e.number().int().nonnegative().nullable(),totalTokens:e.number().int().nonnegative().nullable(),costUsd:F.nullable(),latencyMs:e.number().finite().nonnegative().nullable()}).strict().superRefine((t,n)=>{t.inputTokens!==null&&t.outputTokens!==null&&t.totalTokens!==null&&t.totalTokens<t.inputTokens+t.outputTokens&&n.addIssue({code:"custom",path:["totalTokens"],message:"Total tokens cannot be less than input plus output."})}),G=e.object({identity:M,status:e.enum(["completed","failed","cancelled","unavailable"]),output:e.unknown().nullable(),error:e.object({code:f,message:e.string().max(2e3)}).strict().nullable(),feedback:e.array(J).max(100),usage:B,traceRef:j.nullable(),startedAt:R.nullable(),completedAt:R.nullable()}).strict(),N=e.object({schemaVersion:e.literal("openpond.experimentResult.v1"),manifest:H,status:e.enum(["completed","failed","cancelled"]),cases:e.array(G).min(1).max(1e4),completedAt:R}).strict(),O=N.extend({contentHash:b}).strict();function L(t,n){q.parse(n),z(n,"Experiment manifest");let s=N.parse(t);if(s.manifest.id!==n.id||s.manifest.contentHash!==n.contentHash)throw new Error("Experiment result differs from its manifest.");let v=new Set(n.population.map(K)),l=new Set,w=new Map(n.evaluators.map(g=>[g.feedbackKey,g]));for(let g of s.cases){let S=K(g.identity);if(!v.has(S)||l.has(S))throw new Error("Experiment result has an unexpected or repeated case.");l.add(S);let I=new Set;for(let i of g.feedback){let a=w.get(i.feedbackKey);if(!a||I.has(i.feedbackKey)||i.evaluator.id!==a.release.id||i.evaluator.contentHash!==a.release.contentHash||i.evaluator.revision!==a.release.revision)throw new Error("Experiment feedback differs from its pinned evaluator.");if(I.add(i.feedbackKey),i.status==="scored"){if(i.value===null||typeof i.value!=={boolean:"boolean",score:"number",category:"string"}[a.output]||a.output==="category"&&!a.categories.includes(i.value)||a.output==="score"&&(i.value<0||i.value>1))throw new Error("Experiment feedback value violates its output contract.")}else if(i.value!==null||i.passed!==null&&i.passed!==void 0)throw new Error("Unscored experiment feedback cannot claim a value or pass decision.")}}if(l.size!==v.size)throw new Error("Experiment result omits admitted cases.");return O.parse({...s,contentHash:h(s)})}d(L,"createExperimentResult");function Q(t){let n=q.parse(t.manifest),s=O.parse(t.result),{contentHash:v,...l}=s;if(h(l)!==v)throw new Error("Experiment result integrity failed.");return L(l,n),{manifest:n,result:s}}d(Q,"verifyExperimentEvidence");function $(t,n){for(let a of[t,n])Q(a);let s=[];if(t.manifest.teamId!==n.manifest.teamId&&s.push("different_workspace"),(t.manifest.dataset.id!==n.manifest.dataset.id||t.manifest.dataset.contentHash!==n.manifest.dataset.contentHash||t.manifest.dataset.revision!==n.manifest.dataset.revision)&&s.push("different_dataset_version"),t.manifest.target.kind!==n.manifest.target.kind&&s.push("different_target_kind"),h(t.manifest.execution??null)!==h(n.manifest.execution??null)&&s.push("different_execution_contract"),t.manifest.target.kind==="harness"&&n.manifest.target.kind==="harness"){let a=t.manifest.target.source,r=n.manifest.target.source;(a.profileId!==r.profileId||h(a.target)!==h(r.target))&&s.push("different_component"),a.environmentHash!==r.environmentHash&&s.push("different_environment"),(a.definitionId!==r.definitionId||a.definitionHash!==r.definitionHash)&&s.push("different_evaluation_definition")}let v=d(a=>[...a.evaluators].sort((r,o)=>r.feedbackKey.localeCompare(o.feedbackKey)),"orderedEvaluators");h(v(t.manifest))!==h(v(n.manifest))&&s.push("different_evaluators");let l=new Map(t.result.cases.map(a=>[K(a.identity),a])),w=new Map(n.result.cases.map(a=>[K(a.identity),a])),g=[...new Set([...l.keys(),...w.keys()])].sort();(l.size!==w.size||g.some(a=>!l.has(a)||!w.has(a)))&&s.push("different_population");let S=s.length===0,I=g.map(a=>{let r=l.get(a)??null,o=w.get(a)??null,T=new Map(r?.feedback.map(c=>[c.feedbackKey,c])??[]),_=new Map(o?.feedback.map(c=>[c.feedbackKey,c])??[]);return{identity:(r??o).identity,baseline:r,candidate:o,feedback:t.manifest.evaluators.map(c=>{let y=T.get(c.feedbackKey),x=_.get(c.feedbackKey),m=S?!r||!o?"missing_case":r.status!=="completed"||o.status!=="completed"||r.error||o.error?"case_not_completed":!y||!x||y.status!=="scored"||x.status!=="scored"?"feedback_unavailable":c.output==="category"?"categorical_feedback":null:"incompatible_experiments",u=d(k=>typeof k?.value=="boolean"?Number(k.value):typeof k?.value=="number"?k.value:null,"numeric"),p=m?null:u(y),E=m?null:u(x),P=d(k=>m?null:typeof k?.value=="boolean"?k.value:k?.passed??null,"pass");return{feedbackKey:c.feedbackKey,eligible:m===null,reason:m,baseline:p,candidate:E,delta:p===null||E===null?null:E-p,baselinePassed:P(y),candidatePassed:P(x)}})}}),i=t.manifest.evaluators.map((a,r)=>{let o=I.map(u=>u.feedback[r]).filter(u=>u.eligible),T=d(u=>o.length?o.reduce((p,E)=>p+E[u],0)/o.length:null,"mean"),_=T("baseline"),c=T("candidate"),y=d(u=>o.length&&o.every(p=>p[u]!==null)?o.reduce((p,E)=>p+Number(E[u]),0)/o.length:null,"passRate"),x=y("baselinePassed"),m=y("candidatePassed");return{feedbackKey:a.feedbackKey,eligibleCount:o.length,excludedCount:I.length-o.length,baseline:_,candidate:c,delta:_===null||c===null?null:c-_,baselinePassRate:x,candidatePassRate:m,passRateDelta:x===null||m===null?null:m-x}});return{comparable:S,reasons:s,cases:I,metrics:i}}d($,"compareExperiments");export{Q as a,$ as b};
|