























@@ -22,21 +22,21 @@ describe("Outcome/fallback runtime contract - Pi fallback classifier", () => {
2222it.each(fallbackClassificationCases)(
2323"maps harness classification %s to a format fallback code",
2424(classification, code) => {
25-expect(
26-classifyEmbeddedPiRunResultForModelFallback({
27-provider: OUTCOME_FALLBACK_RUNTIME_CONTRACT.primaryProvider,
28-model: OUTCOME_FALLBACK_RUNTIME_CONTRACT.primaryModel,
29-result: createContractRunResult({
30-meta: {
31-durationMs: 1,
32-agentHarnessResultClassification: classification,
33-},
34-}),
25+const fallback = classifyEmbeddedPiRunResultForModelFallback({
26+provider: OUTCOME_FALLBACK_RUNTIME_CONTRACT.primaryProvider,
27+model: OUTCOME_FALLBACK_RUNTIME_CONTRACT.primaryModel,
28+result: createContractRunResult({
29+meta: {
30+durationMs: 1,
31+agentHarnessResultClassification: classification,
32+},
3533}),
36-).toMatchObject({
37-reason: "format",
38- code,
3934});
35+if (!fallback || !("reason" in fallback)) {
36+throw new Error(`Expected format fallback detail for ${classification}`);
37+}
38+expect(fallback?.reason).toBe("format");
39+expect(fallback?.code).toBe(code);
4040},
4141);
4242@@ -72,12 +72,10 @@ describe("Outcome/fallback runtime contract - Pi fallback classifier", () => {
7272OUTCOME_FALLBACK_RUNTIME_CONTRACT.fallbackProvider,
7373OUTCOME_FALLBACK_RUNTIME_CONTRACT.fallbackModel,
7474]);
75-expect(result.attempts[0]).toMatchObject({
76-provider: OUTCOME_FALLBACK_RUNTIME_CONTRACT.primaryProvider,
77-model: OUTCOME_FALLBACK_RUNTIME_CONTRACT.primaryModel,
78-reason: "format",
79-code: "empty_result",
80-});
75+expect(result.attempts[0]?.provider).toBe(OUTCOME_FALLBACK_RUNTIME_CONTRACT.primaryProvider);
76+expect(result.attempts[0]?.model).toBe(OUTCOME_FALLBACK_RUNTIME_CONTRACT.primaryModel);
77+expect(result.attempts[0]?.reason).toBe("format");
78+expect(result.attempts[0]?.code).toBe("empty_result");
8179});
82808381const nonFallbackCases = [
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。