pi-harness-runtime 1.1.382 → 1.1.384

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 (156) hide show
  1. package/harness/job-state-machine.ts +97 -10
  2. package/harness/langchain/surge.test.ts +57 -25
  3. package/index.ts +124 -4
  4. package/package.json +8 -4
  5. package/packages/a2a-adapter/package.json +1 -1
  6. package/packages/agent-policy/package.json +1 -1
  7. package/packages/architecture-generator/package.json +1 -1
  8. package/packages/auth/dist/minimax-browser-auth.d.ts +1 -0
  9. package/packages/auth/dist/minimax-browser-auth.d.ts.map +1 -1
  10. package/packages/auth/dist/minimax-browser-auth.js +2 -2
  11. package/packages/auth/dist/minimax-browser-auth.js.map +1 -1
  12. package/packages/auth/package.json +1 -1
  13. package/packages/auth/src/minimax-browser-auth.ts +15 -3
  14. package/packages/autonomous-refactor/package.json +1 -1
  15. package/packages/autonomous-runtime/package.json +1 -1
  16. package/packages/cache-strategy/package.json +1 -1
  17. package/packages/capability-registry/package.json +1 -1
  18. package/packages/checkpoint/dist/checkpoint-manager.d.ts.map +1 -1
  19. package/packages/checkpoint/dist/checkpoint-manager.js +3 -0
  20. package/packages/checkpoint/dist/checkpoint-manager.js.map +1 -1
  21. package/packages/checkpoint/package.json +1 -1
  22. package/packages/checkpoint/src/checkpoint-manager.ts +8 -1
  23. package/packages/cli-plugin-sdk/package.json +1 -1
  24. package/packages/clipboard/package.json +1 -1
  25. package/packages/clipboard-plugin/package.json +1 -1
  26. package/packages/code-generation/package.json +1 -1
  27. package/packages/code-review/package.json +1 -1
  28. package/packages/codex-adapter/package.json +1 -1
  29. package/packages/codex-watcher/package.json +1 -1
  30. package/packages/config-capture/package.json +1 -1
  31. package/packages/connection-runtime/package.json +1 -1
  32. package/packages/context-compiler/package.json +1 -1
  33. package/packages/context-discovery/package.json +1 -1
  34. package/packages/context-manager/package.json +1 -1
  35. package/packages/contracts/package.json +1 -1
  36. package/packages/cookie-sanitizer/package.json +1 -1
  37. package/packages/cost-optimizer/package.json +1 -1
  38. package/packages/dependency-analyzer/package.json +1 -1
  39. package/packages/django-plugin/package.json +1 -1
  40. package/packages/doc-generator/package.json +1 -1
  41. package/packages/durable-review/package.json +1 -1
  42. package/packages/e2e-tester/package.json +1 -1
  43. package/packages/evaluation-engine/package.json +1 -1
  44. package/packages/evaluation-runner/package.json +1 -1
  45. package/packages/event-bus/package.json +1 -1
  46. package/packages/event-sink/package.json +1 -1
  47. package/packages/event-store/package.json +1 -1
  48. package/packages/experience-replay/package.json +1 -1
  49. package/packages/feedback-collector/package.json +1 -1
  50. package/packages/file-copy-helper/package.json +1 -1
  51. package/packages/framework-detector/package.json +1 -1
  52. package/packages/framework-plugin-sdk/package.json +1 -1
  53. package/packages/frappe-plugin/package.json +1 -1
  54. package/packages/generic-web-plugin/package.json +1 -1
  55. package/packages/health-monitor/package.json +1 -1
  56. package/packages/intent-analyzer/package.json +1 -1
  57. package/packages/jev-judge/dist/continuation-controller.d.ts +174 -9
  58. package/packages/jev-judge/dist/continuation-controller.d.ts.map +1 -1
  59. package/packages/jev-judge/dist/continuation-controller.js +530 -77
  60. package/packages/jev-judge/dist/continuation-controller.js.map +1 -1
  61. package/packages/jev-judge/dist/typesafe-provider.d.ts.map +1 -1
  62. package/packages/jev-judge/dist/typesafe-provider.js +29 -2
  63. package/packages/jev-judge/dist/typesafe-provider.js.map +1 -1
  64. package/packages/jev-judge/package.json +1 -1
  65. package/packages/jev-judge/src/continuation-controller.ts +636 -83
  66. package/packages/jev-judge/src/typesafe-provider.ts +31 -2
  67. package/packages/jev-judge/tests/continuation-controller.test.ts +1229 -0
  68. package/packages/jev-judge/tests/typesafe-provider.test.ts +180 -0
  69. package/packages/knowledge-graph/package.json +1 -1
  70. package/packages/knowledge-retrieval/package.json +1 -1
  71. package/packages/laravel-plugin/package.json +1 -1
  72. package/packages/learning-engine/package.json +1 -1
  73. package/packages/mcp-adapter/package.json +1 -1
  74. package/packages/memory-engine/package.json +1 -1
  75. package/packages/milestone-manager/package.json +1 -1
  76. package/packages/model-registry/package.json +1 -1
  77. package/packages/nextjs-plugin/package.json +1 -1
  78. package/packages/notification/package.json +1 -1
  79. package/packages/observability/package.json +1 -1
  80. package/packages/okf-indexer/package.json +1 -1
  81. package/packages/paperclip-integration/package.json +1 -1
  82. package/packages/performance-optimizer/package.json +1 -1
  83. package/packages/permission-mode/package.json +1 -1
  84. package/packages/privilege-broker/package.json +1 -1
  85. package/packages/project-analyzer/package.json +1 -1
  86. package/packages/project-bootstrap/package.json +1 -1
  87. package/packages/projection-engine/package.json +1 -1
  88. package/packages/prompt-compiler/package.json +1 -1
  89. package/packages/prompt-versioning/package.json +1 -1
  90. package/packages/provider-adapter-sdk/package.json +1 -1
  91. package/packages/provider-router/package.json +1 -1
  92. package/packages/provider-selector/package.json +1 -1
  93. package/packages/providers/package.json +1 -1
  94. package/packages/qdrant-skills/package.json +1 -1
  95. package/packages/quota-manager/package.json +1 -1
  96. package/packages/rate-limiter/package.json +1 -1
  97. package/packages/react-vite-plugin/package.json +1 -1
  98. package/packages/relay/dist/client.d.ts +36 -1
  99. package/packages/relay/dist/client.js +195 -25
  100. package/packages/relay/dist/server.d.ts +5 -1
  101. package/packages/relay/dist/server.js +74 -7
  102. package/packages/relay/dist/types.d.ts +7 -0
  103. package/packages/relay/package.json +1 -1
  104. package/packages/relay/src/client.ts +206 -42
  105. package/packages/relay/src/server.ts +78 -10
  106. package/packages/relay/src/types.ts +7 -0
  107. package/packages/relay/test/client.test.ts +312 -0
  108. package/packages/relay/test/relay-e2e.test.ts +263 -0
  109. package/packages/release-manager/package.json +1 -1
  110. package/packages/requirement-compiler/package.json +1 -1
  111. package/packages/runtime/package.json +1 -1
  112. package/packages/scheduler/package.json +1 -1
  113. package/packages/scheduler-adapter/package.json +1 -1
  114. package/packages/session/package.json +1 -1
  115. package/packages/session-api/package.json +1 -1
  116. package/packages/session-export/package.json +1 -1
  117. package/packages/shared-context/package.json +1 -1
  118. package/packages/skill-mcp-client/package.json +1 -1
  119. package/packages/skill-registry/package.json +1 -1
  120. package/packages/skills/package.json +1 -1
  121. package/packages/sprint-planner/package.json +1 -1
  122. package/packages/subscription-engine/package.json +1 -1
  123. package/packages/task-compiler/package.json +1 -1
  124. package/packages/telegram/package.json +1 -1
  125. package/packages/tencentdb-memory/package.json +1 -1
  126. package/packages/tencentdb-sync/package.json +1 -1
  127. package/packages/test-data-generator/package.json +1 -1
  128. package/packages/test-generator/package.json +1 -1
  129. package/packages/todo-bd-sync/package.json +1 -1
  130. package/packages/token-estimation/package.json +1 -1
  131. package/packages/token-optimizer/package.json +1 -1
  132. package/packages/trajectory/package.json +1 -1
  133. package/packages/tui/dist/harness-footer.d.ts +131 -0
  134. package/packages/tui/dist/harness-footer.d.ts.map +1 -0
  135. package/packages/tui/dist/harness-footer.js +463 -0
  136. package/packages/tui/dist/harness-footer.js.map +1 -0
  137. package/packages/tui/dist/index.d.ts +1 -0
  138. package/packages/tui/dist/index.d.ts.map +1 -1
  139. package/packages/tui/dist/index.js +1 -0
  140. package/packages/tui/dist/index.js.map +1 -1
  141. package/packages/tui/package.json +1 -1
  142. package/packages/tui/src/harness-footer.ts +580 -0
  143. package/packages/tui/src/index.ts +17 -0
  144. package/packages/tui/test/harness-footer.test.ts +440 -0
  145. package/packages/types/package.json +1 -1
  146. package/packages/voice-api/package.json +1 -1
  147. package/packages/webmcp-tester/package.json +1 -1
  148. package/packages/wiki/package.json +1 -1
  149. package/packages/workflow-events/package.json +1 -1
  150. package/packages/workspace-scanner/package.json +1 -1
  151. package/packages/worktree/package.json +1 -1
  152. package/packages/write-review/package.json +1 -1
  153. package/scripts/run-e2e-scripts.mjs +74 -0
  154. package/scripts/run-langchain-tests.mjs +169 -0
  155. package/scripts/typecheck-packages.mjs +167 -0
  156. package/scripts/unified-webhook-server.ts +70 -13
@@ -275,14 +275,43 @@ export class TypeSafeJudge {
275
275
  probability = answer.noul;
276
276
  break;
277
277
 
278
- case "choice":
278
+ case "choice": {
279
+ const options =
280
+ question.type === "choice"
281
+ ? ((question as { options?: string[] }).options ?? [])
282
+ : [];
283
+ // The model's choice MUST win. The previous expression
284
+ // (`answer.choice ?? question.type === "choice" ? options[0] : ""`)
285
+ // was parsed as `(answer.choice ?? (question.type === "choice")) ? options[0] : ""`,
286
+ // so a non-empty returned choice was DISCARDED and the first option was
287
+ // always selected.
288
+ const returned =
289
+ typeof answer.choice === "string" ? answer.choice.trim() : "";
290
+ let selected: string;
291
+ if (returned.length > 0) {
292
+ if (options.includes(returned)) {
293
+ selected = returned;
294
+ } else {
295
+ // Case-insensitive match: keep the canonical option spelling.
296
+ const canonical = options.find(
297
+ (option) => option.toLowerCase() === returned.toLowerCase(),
298
+ );
299
+ // No match: pass the model's value through unchanged instead of
300
+ // silently substituting a different option.
301
+ selected = canonical ?? returned;
302
+ }
303
+ } else {
304
+ // The model returned no usable choice: fall back to the first option.
305
+ selected = options[0] ?? "";
306
+ }
279
307
  response = {
280
308
  type: "choice",
281
- choice: answer.choice ?? question.type === "choice" ? (question as { options: string[] }).options[0] : "",
309
+ choice: selected,
282
310
  confidence: answer.confidence ?? 0.5,
283
311
  };
284
312
  probability = answer.confidence ?? 0.5;
285
313
  break;
314
+ }
286
315
 
287
316
  case "score":
288
317
  const min = question.type === "score" ? (question as { min?: number }).min ?? 0 : 0;