agent-nuvira 3.3.13 → 3.3.14

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 (387) hide show
  1. package/README.md +67 -1
  2. package/dist/agents/agents/planner.d.ts.map +1 -1
  3. package/dist/agents/agents/planner.js +9 -0
  4. package/dist/agents/agents/planner.js.map +1 -1
  5. package/dist/agents/orchestrator.d.ts +31 -0
  6. package/dist/agents/orchestrator.d.ts.map +1 -1
  7. package/dist/agents/orchestrator.js +74 -126
  8. package/dist/agents/orchestrator.js.map +1 -1
  9. package/dist/cli/chat.d.ts +89 -0
  10. package/dist/cli/chat.d.ts.map +1 -1
  11. package/dist/cli/chat.js +765 -33
  12. package/dist/cli/chat.js.map +1 -1
  13. package/dist/cli/cli-program.d.ts.map +1 -1
  14. package/dist/cli/cli-program.js +12 -0
  15. package/dist/cli/cli-program.js.map +1 -1
  16. package/dist/cli/config.d.ts +12 -0
  17. package/dist/cli/config.d.ts.map +1 -1
  18. package/dist/cli/config.js +86 -0
  19. package/dist/cli/config.js.map +1 -1
  20. package/dist/cli/decisions.d.ts +28 -0
  21. package/dist/cli/decisions.d.ts.map +1 -0
  22. package/dist/cli/decisions.js +140 -0
  23. package/dist/cli/decisions.js.map +1 -0
  24. package/dist/cli/doctor.d.ts +6 -0
  25. package/dist/cli/doctor.d.ts.map +1 -1
  26. package/dist/cli/doctor.js +46 -0
  27. package/dist/cli/doctor.js.map +1 -1
  28. package/dist/cli/failover-runner.d.ts.map +1 -1
  29. package/dist/cli/failover-runner.js +19 -1
  30. package/dist/cli/failover-runner.js.map +1 -1
  31. package/dist/cli/feedback.d.ts.map +1 -1
  32. package/dist/cli/feedback.js +5 -1
  33. package/dist/cli/feedback.js.map +1 -1
  34. package/dist/cli/hooks.d.ts +30 -0
  35. package/dist/cli/hooks.d.ts.map +1 -0
  36. package/dist/cli/hooks.js +224 -0
  37. package/dist/cli/hooks.js.map +1 -0
  38. package/dist/cli/knowledge.d.ts +9 -1
  39. package/dist/cli/knowledge.d.ts.map +1 -1
  40. package/dist/cli/knowledge.js +93 -2
  41. package/dist/cli/knowledge.js.map +1 -1
  42. package/dist/cli/loop-executor.d.ts.map +1 -1
  43. package/dist/cli/loop-executor.js +47 -12
  44. package/dist/cli/loop-executor.js.map +1 -1
  45. package/dist/cli/model.d.ts +20 -0
  46. package/dist/cli/model.d.ts.map +1 -1
  47. package/dist/cli/model.js +294 -14
  48. package/dist/cli/model.js.map +1 -1
  49. package/dist/cli/rate.d.ts +78 -0
  50. package/dist/cli/rate.d.ts.map +1 -0
  51. package/dist/cli/rate.js +294 -0
  52. package/dist/cli/rate.js.map +1 -0
  53. package/dist/config/process-env.d.ts.map +1 -1
  54. package/dist/config/process-env.js +10 -0
  55. package/dist/config/process-env.js.map +1 -1
  56. package/dist/enterprise/vault.d.ts.map +1 -1
  57. package/dist/enterprise/vault.js +5 -21
  58. package/dist/enterprise/vault.js.map +1 -1
  59. package/dist/gateway/hook-contract.d.ts +33 -0
  60. package/dist/gateway/hook-contract.d.ts.map +1 -1
  61. package/dist/gateway/hook-contract.js +97 -0
  62. package/dist/gateway/hook-contract.js.map +1 -1
  63. package/dist/inference/gemini-adapter.d.ts.map +1 -1
  64. package/dist/inference/gemini-adapter.js +4 -0
  65. package/dist/inference/gemini-adapter.js.map +1 -1
  66. package/dist/inference/interface.d.ts +37 -0
  67. package/dist/inference/interface.d.ts.map +1 -1
  68. package/dist/inference/native-tools.d.ts +16 -1
  69. package/dist/inference/native-tools.d.ts.map +1 -1
  70. package/dist/inference/native-tools.js +34 -10
  71. package/dist/inference/native-tools.js.map +1 -1
  72. package/dist/inference/route-resolver.d.ts +30 -0
  73. package/dist/inference/route-resolver.d.ts.map +1 -1
  74. package/dist/inference/route-resolver.js +158 -1
  75. package/dist/inference/route-resolver.js.map +1 -1
  76. package/dist/inference/tools.d.ts +16 -1
  77. package/dist/inference/tools.d.ts.map +1 -1
  78. package/dist/inference/tools.js +51 -18
  79. package/dist/inference/tools.js.map +1 -1
  80. package/dist/learning/acceptance-model.d.ts +247 -0
  81. package/dist/learning/acceptance-model.d.ts.map +1 -0
  82. package/dist/learning/acceptance-model.js +708 -0
  83. package/dist/learning/acceptance-model.js.map +1 -0
  84. package/dist/learning/auto-router.d.ts +68 -24
  85. package/dist/learning/auto-router.d.ts.map +1 -1
  86. package/dist/learning/auto-router.js +301 -96
  87. package/dist/learning/auto-router.js.map +1 -1
  88. package/dist/learning/autonomy-policy.d.ts +12 -16
  89. package/dist/learning/autonomy-policy.d.ts.map +1 -1
  90. package/dist/learning/autonomy-policy.js +50 -48
  91. package/dist/learning/autonomy-policy.js.map +1 -1
  92. package/dist/learning/behavioural-labels.d.ts +86 -0
  93. package/dist/learning/behavioural-labels.d.ts.map +1 -0
  94. package/dist/learning/behavioural-labels.js +166 -0
  95. package/dist/learning/behavioural-labels.js.map +1 -0
  96. package/dist/learning/capability-evidence.d.ts +167 -0
  97. package/dist/learning/capability-evidence.d.ts.map +1 -0
  98. package/dist/learning/capability-evidence.js +210 -0
  99. package/dist/learning/capability-evidence.js.map +1 -0
  100. package/dist/learning/capability-readiness.d.ts +64 -0
  101. package/dist/learning/capability-readiness.d.ts.map +1 -0
  102. package/dist/learning/capability-readiness.js +74 -0
  103. package/dist/learning/capability-readiness.js.map +1 -0
  104. package/dist/learning/capability-types.d.ts +169 -0
  105. package/dist/learning/capability-types.d.ts.map +1 -0
  106. package/dist/learning/capability-types.js +20 -0
  107. package/dist/learning/capability-types.js.map +1 -0
  108. package/dist/learning/catalog-feed.d.ts +89 -0
  109. package/dist/learning/catalog-feed.d.ts.map +1 -0
  110. package/dist/learning/catalog-feed.js +211 -0
  111. package/dist/learning/catalog-feed.js.map +1 -0
  112. package/dist/learning/cli-intent-effects.d.ts +60 -0
  113. package/dist/learning/cli-intent-effects.d.ts.map +1 -0
  114. package/dist/learning/cli-intent-effects.js +153 -0
  115. package/dist/learning/cli-intent-effects.js.map +1 -0
  116. package/dist/learning/command-adaptation.d.ts +41 -0
  117. package/dist/learning/command-adaptation.d.ts.map +1 -0
  118. package/dist/learning/command-adaptation.js +122 -0
  119. package/dist/learning/command-adaptation.js.map +1 -0
  120. package/dist/learning/consent-picture.d.ts +42 -0
  121. package/dist/learning/consent-picture.d.ts.map +1 -0
  122. package/dist/learning/consent-picture.js +53 -0
  123. package/dist/learning/consent-picture.js.map +1 -0
  124. package/dist/learning/context-budget.d.ts +37 -6
  125. package/dist/learning/context-budget.d.ts.map +1 -1
  126. package/dist/learning/context-budget.js +38 -9
  127. package/dist/learning/context-budget.js.map +1 -1
  128. package/dist/learning/decision-log.d.ts +114 -0
  129. package/dist/learning/decision-log.d.ts.map +1 -0
  130. package/dist/learning/decision-log.js +296 -0
  131. package/dist/learning/decision-log.js.map +1 -0
  132. package/dist/learning/deliverable-class.d.ts.map +1 -1
  133. package/dist/learning/deliverable-class.js +19 -0
  134. package/dist/learning/deliverable-class.js.map +1 -1
  135. package/dist/learning/deliverable-corpus.d.ts +117 -0
  136. package/dist/learning/deliverable-corpus.d.ts.map +1 -0
  137. package/dist/learning/deliverable-corpus.js +176 -0
  138. package/dist/learning/deliverable-corpus.js.map +1 -0
  139. package/dist/learning/error-repair.d.ts +22 -1
  140. package/dist/learning/error-repair.d.ts.map +1 -1
  141. package/dist/learning/error-repair.js +37 -0
  142. package/dist/learning/error-repair.js.map +1 -1
  143. package/dist/learning/exhaustion-report.d.ts +136 -0
  144. package/dist/learning/exhaustion-report.d.ts.map +1 -0
  145. package/dist/learning/exhaustion-report.js +239 -0
  146. package/dist/learning/exhaustion-report.js.map +1 -0
  147. package/dist/learning/failure-bookkeeping.d.ts +16 -0
  148. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  149. package/dist/learning/failure-bookkeeping.js +51 -5
  150. package/dist/learning/failure-bookkeeping.js.map +1 -1
  151. package/dist/learning/gate-friction.d.ts +39 -0
  152. package/dist/learning/gate-friction.d.ts.map +1 -0
  153. package/dist/learning/gate-friction.js +91 -0
  154. package/dist/learning/gate-friction.js.map +1 -0
  155. package/dist/learning/harness-narration.d.ts +34 -0
  156. package/dist/learning/harness-narration.d.ts.map +1 -0
  157. package/dist/learning/harness-narration.js +58 -0
  158. package/dist/learning/harness-narration.js.map +1 -0
  159. package/dist/learning/hub-skill-catalog.d.ts.map +1 -1
  160. package/dist/learning/hub-skill-catalog.js +1 -2
  161. package/dist/learning/hub-skill-catalog.js.map +1 -1
  162. package/dist/learning/hybrid-router.d.ts +65 -0
  163. package/dist/learning/hybrid-router.d.ts.map +1 -1
  164. package/dist/learning/hybrid-router.js +186 -0
  165. package/dist/learning/hybrid-router.js.map +1 -1
  166. package/dist/learning/knowledge-base.d.ts +229 -3
  167. package/dist/learning/knowledge-base.d.ts.map +1 -1
  168. package/dist/learning/knowledge-base.js +593 -24
  169. package/dist/learning/knowledge-base.js.map +1 -1
  170. package/dist/learning/knowledge-eval.d.ts +171 -0
  171. package/dist/learning/knowledge-eval.d.ts.map +1 -0
  172. package/dist/learning/knowledge-eval.js +196 -0
  173. package/dist/learning/knowledge-eval.js.map +1 -0
  174. package/dist/learning/knowledge-turn.d.ts +92 -0
  175. package/dist/learning/knowledge-turn.d.ts.map +1 -0
  176. package/dist/learning/knowledge-turn.js +190 -0
  177. package/dist/learning/knowledge-turn.js.map +1 -0
  178. package/dist/learning/learned-commands.d.ts +64 -0
  179. package/dist/learning/learned-commands.d.ts.map +1 -0
  180. package/dist/learning/learned-commands.js +108 -0
  181. package/dist/learning/learned-commands.js.map +1 -0
  182. package/dist/learning/lexical-search.d.ts +50 -0
  183. package/dist/learning/lexical-search.d.ts.map +1 -0
  184. package/dist/learning/lexical-search.js +111 -0
  185. package/dist/learning/lexical-search.js.map +1 -0
  186. package/dist/learning/machine-facts.d.ts +71 -0
  187. package/dist/learning/machine-facts.d.ts.map +1 -0
  188. package/dist/learning/machine-facts.js +164 -0
  189. package/dist/learning/machine-facts.js.map +1 -0
  190. package/dist/learning/markdown-outline.d.ts +73 -0
  191. package/dist/learning/markdown-outline.d.ts.map +1 -0
  192. package/dist/learning/markdown-outline.js +136 -0
  193. package/dist/learning/markdown-outline.js.map +1 -0
  194. package/dist/learning/model-first-router.d.ts +33 -1
  195. package/dist/learning/model-first-router.d.ts.map +1 -1
  196. package/dist/learning/model-first-router.js +123 -9
  197. package/dist/learning/model-first-router.js.map +1 -1
  198. package/dist/learning/model-identity.d.ts +80 -0
  199. package/dist/learning/model-identity.d.ts.map +1 -0
  200. package/dist/learning/model-identity.js +115 -0
  201. package/dist/learning/model-identity.js.map +1 -0
  202. package/dist/learning/model-registry.d.ts +141 -2
  203. package/dist/learning/model-registry.d.ts.map +1 -1
  204. package/dist/learning/model-registry.js +324 -38
  205. package/dist/learning/model-registry.js.map +1 -1
  206. package/dist/learning/model-scoring.d.ts.map +1 -1
  207. package/dist/learning/model-scoring.js +8 -1
  208. package/dist/learning/model-scoring.js.map +1 -1
  209. package/dist/learning/model-selection.d.ts.map +1 -1
  210. package/dist/learning/model-selection.js +41 -0
  211. package/dist/learning/model-selection.js.map +1 -1
  212. package/dist/learning/outcome-observation.d.ts +49 -0
  213. package/dist/learning/outcome-observation.d.ts.map +1 -0
  214. package/dist/learning/outcome-observation.js +95 -0
  215. package/dist/learning/outcome-observation.js.map +1 -0
  216. package/dist/learning/pair-entitlement.d.ts +184 -0
  217. package/dist/learning/pair-entitlement.d.ts.map +1 -0
  218. package/dist/learning/pair-entitlement.js +214 -0
  219. package/dist/learning/pair-entitlement.js.map +1 -0
  220. package/dist/learning/provider-fallback.d.ts +23 -1
  221. package/dist/learning/provider-fallback.d.ts.map +1 -1
  222. package/dist/learning/provider-fallback.js +24 -0
  223. package/dist/learning/provider-fallback.js.map +1 -1
  224. package/dist/learning/reasoning-trace.d.ts +65 -1
  225. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  226. package/dist/learning/reasoning-trace.js +123 -1
  227. package/dist/learning/reasoning-trace.js.map +1 -1
  228. package/dist/learning/requirement-probe.d.ts +55 -0
  229. package/dist/learning/requirement-probe.d.ts.map +1 -0
  230. package/dist/learning/requirement-probe.js +77 -0
  231. package/dist/learning/requirement-probe.js.map +1 -0
  232. package/dist/learning/resilient-call.d.ts +20 -1
  233. package/dist/learning/resilient-call.d.ts.map +1 -1
  234. package/dist/learning/resilient-call.js +42 -4
  235. package/dist/learning/resilient-call.js.map +1 -1
  236. package/dist/learning/response-usability.d.ts +85 -0
  237. package/dist/learning/response-usability.d.ts.map +1 -0
  238. package/dist/learning/response-usability.js +135 -0
  239. package/dist/learning/response-usability.js.map +1 -0
  240. package/dist/learning/router-bandit.d.ts +132 -0
  241. package/dist/learning/router-bandit.d.ts.map +1 -1
  242. package/dist/learning/router-bandit.js +253 -0
  243. package/dist/learning/router-bandit.js.map +1 -1
  244. package/dist/learning/routing-history.d.ts +41 -2
  245. package/dist/learning/routing-history.d.ts.map +1 -1
  246. package/dist/learning/routing-history.js.map +1 -1
  247. package/dist/learning/run-trace.d.ts +21 -0
  248. package/dist/learning/run-trace.d.ts.map +1 -1
  249. package/dist/learning/run-trace.js +38 -0
  250. package/dist/learning/run-trace.js.map +1 -1
  251. package/dist/learning/session-grant.d.ts +75 -0
  252. package/dist/learning/session-grant.d.ts.map +1 -0
  253. package/dist/learning/session-grant.js +112 -0
  254. package/dist/learning/session-grant.js.map +1 -0
  255. package/dist/learning/task-model-continuity.d.ts +73 -0
  256. package/dist/learning/task-model-continuity.d.ts.map +1 -0
  257. package/dist/learning/task-model-continuity.js +87 -0
  258. package/dist/learning/task-model-continuity.js.map +1 -0
  259. package/dist/learning/turn-feedback.d.ts +93 -0
  260. package/dist/learning/turn-feedback.d.ts.map +1 -0
  261. package/dist/learning/turn-feedback.js +127 -0
  262. package/dist/learning/turn-feedback.js.map +1 -0
  263. package/dist/learning/turn-report.d.ts +104 -2
  264. package/dist/learning/turn-report.d.ts.map +1 -1
  265. package/dist/learning/turn-report.js +161 -6
  266. package/dist/learning/turn-report.js.map +1 -1
  267. package/dist/learning/verdict-routing.d.ts +51 -0
  268. package/dist/learning/verdict-routing.d.ts.map +1 -0
  269. package/dist/learning/verdict-routing.js +122 -0
  270. package/dist/learning/verdict-routing.js.map +1 -0
  271. package/dist/mcp/client.d.ts.map +1 -1
  272. package/dist/mcp/client.js +5 -0
  273. package/dist/mcp/client.js.map +1 -1
  274. package/dist/mcp/manager.d.ts +10 -0
  275. package/dist/mcp/manager.d.ts.map +1 -1
  276. package/dist/mcp/manager.js +20 -0
  277. package/dist/mcp/manager.js.map +1 -1
  278. package/dist/mcp/mcp-discovery.d.ts +34 -0
  279. package/dist/mcp/mcp-discovery.d.ts.map +1 -0
  280. package/dist/mcp/mcp-discovery.js +71 -0
  281. package/dist/mcp/mcp-discovery.js.map +1 -0
  282. package/dist/mcp/mcp-schema-cache.d.ts +17 -0
  283. package/dist/mcp/mcp-schema-cache.d.ts.map +1 -1
  284. package/dist/mcp/mcp-schema-cache.js +47 -3
  285. package/dist/mcp/mcp-schema-cache.js.map +1 -1
  286. package/dist/mcp/types.d.ts +28 -0
  287. package/dist/mcp/types.d.ts.map +1 -1
  288. package/dist/mcp/types.js.map +1 -1
  289. package/dist/tools/ask-user.d.ts.map +1 -1
  290. package/dist/tools/ask-user.js +4 -0
  291. package/dist/tools/ask-user.js.map +1 -1
  292. package/dist/tools/capability-registry.d.ts +150 -0
  293. package/dist/tools/capability-registry.d.ts.map +1 -0
  294. package/dist/tools/capability-registry.js +400 -0
  295. package/dist/tools/capability-registry.js.map +1 -0
  296. package/dist/tools/child-agent-runtime.d.ts.map +1 -1
  297. package/dist/tools/child-agent-runtime.js +19 -5
  298. package/dist/tools/child-agent-runtime.js.map +1 -1
  299. package/dist/tools/coding-tools.d.ts +17 -5
  300. package/dist/tools/coding-tools.d.ts.map +1 -1
  301. package/dist/tools/coding-tools.js +80 -11
  302. package/dist/tools/coding-tools.js.map +1 -1
  303. package/dist/tools/command-memo.d.ts +116 -0
  304. package/dist/tools/command-memo.d.ts.map +1 -0
  305. package/dist/tools/command-memo.js +202 -0
  306. package/dist/tools/command-memo.js.map +1 -0
  307. package/dist/tools/git-tool.d.ts.map +1 -1
  308. package/dist/tools/git-tool.js +13 -3
  309. package/dist/tools/git-tool.js.map +1 -1
  310. package/dist/tools/harness-directive.d.ts +42 -0
  311. package/dist/tools/harness-directive.d.ts.map +1 -0
  312. package/dist/tools/harness-directive.js +45 -0
  313. package/dist/tools/harness-directive.js.map +1 -0
  314. package/dist/tools/loop-skill-hint.d.ts +74 -174
  315. package/dist/tools/loop-skill-hint.d.ts.map +1 -1
  316. package/dist/tools/loop-skill-hint.js +110 -536
  317. package/dist/tools/loop-skill-hint.js.map +1 -1
  318. package/dist/tools/mcp-client-tool.d.ts +2 -0
  319. package/dist/tools/mcp-client-tool.d.ts.map +1 -1
  320. package/dist/tools/mcp-client-tool.js +3 -0
  321. package/dist/tools/mcp-client-tool.js.map +1 -1
  322. package/dist/tools/modality/shared.d.ts +1 -4
  323. package/dist/tools/modality/shared.d.ts.map +1 -1
  324. package/dist/tools/modality/shared.js +7 -22
  325. package/dist/tools/modality/shared.js.map +1 -1
  326. package/dist/tools/plan-store.d.ts +20 -2
  327. package/dist/tools/plan-store.d.ts.map +1 -1
  328. package/dist/tools/plan-store.js +51 -7
  329. package/dist/tools/plan-store.js.map +1 -1
  330. package/dist/tools/registry.d.ts +76 -3
  331. package/dist/tools/registry.d.ts.map +1 -1
  332. package/dist/tools/registry.js +486 -26
  333. package/dist/tools/registry.js.map +1 -1
  334. package/dist/tools/remediation-ladder.d.ts.map +1 -1
  335. package/dist/tools/remediation-ladder.js +8 -0
  336. package/dist/tools/remediation-ladder.js.map +1 -1
  337. package/dist/tools/run-cli.d.ts.map +1 -1
  338. package/dist/tools/run-cli.js +29 -4
  339. package/dist/tools/run-cli.js.map +1 -1
  340. package/dist/tools/run-terminal.d.ts +11 -0
  341. package/dist/tools/run-terminal.d.ts.map +1 -1
  342. package/dist/tools/run-terminal.js +265 -10
  343. package/dist/tools/run-terminal.js.map +1 -1
  344. package/dist/tools/tool-loop.d.ts +321 -13
  345. package/dist/tools/tool-loop.d.ts.map +1 -1
  346. package/dist/tools/tool-loop.js +867 -66
  347. package/dist/tools/tool-loop.js.map +1 -1
  348. package/dist/utils/atomic-store.d.ts +53 -0
  349. package/dist/utils/atomic-store.d.ts.map +1 -0
  350. package/dist/utils/atomic-store.js +178 -0
  351. package/dist/utils/atomic-store.js.map +1 -0
  352. package/dist/utils/binary-probe.d.ts +25 -0
  353. package/dist/utils/binary-probe.d.ts.map +1 -0
  354. package/dist/utils/binary-probe.js +48 -0
  355. package/dist/utils/binary-probe.js.map +1 -0
  356. package/dist/utils/workspace-path.d.ts +50 -0
  357. package/dist/utils/workspace-path.d.ts.map +1 -0
  358. package/dist/utils/workspace-path.js +86 -0
  359. package/dist/utils/workspace-path.js.map +1 -0
  360. package/dist/web-dashboard/chat-console.d.ts +24 -0
  361. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  362. package/dist/web-dashboard/chat-console.js +38 -0
  363. package/dist/web-dashboard/chat-console.js.map +1 -1
  364. package/dist/web-dashboard/project-context.d.ts +27 -2
  365. package/dist/web-dashboard/project-context.d.ts.map +1 -1
  366. package/dist/web-dashboard/project-context.js +32 -2
  367. package/dist/web-dashboard/project-context.js.map +1 -1
  368. package/dist/web-dashboard/server.d.ts +11 -0
  369. package/dist/web-dashboard/server.d.ts.map +1 -1
  370. package/dist/web-dashboard/server.js +362 -11
  371. package/dist/web-dashboard/server.js.map +1 -1
  372. package/dist/web-dashboard/src/types.d.ts +170 -1
  373. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  374. package/dist/web-dashboard/workspace-guard.d.ts +11 -2
  375. package/dist/web-dashboard/workspace-guard.d.ts.map +1 -1
  376. package/dist/web-dashboard/workspace-guard.js +24 -12
  377. package/dist/web-dashboard/workspace-guard.js.map +1 -1
  378. package/dist/web-dashboard/workspace-resolution.d.ts +87 -0
  379. package/dist/web-dashboard/workspace-resolution.d.ts.map +1 -0
  380. package/dist/web-dashboard/workspace-resolution.js +105 -0
  381. package/dist/web-dashboard/workspace-resolution.js.map +1 -0
  382. package/package.json +1 -1
  383. package/src/web-dashboard/public/assets/index-zjbdJnO-.js +210 -0
  384. package/src/web-dashboard/public/assets/index-zjbdJnO-.js.map +1 -0
  385. package/src/web-dashboard/public/index.html +1 -1
  386. package/src/web-dashboard/public/assets/index-DhiuR4S2.js +0 -210
  387. package/src/web-dashboard/public/assets/index-DhiuR4S2.js.map +0 -1
@@ -43,6 +43,22 @@ export interface BetaPrior {
43
43
  * unlearned and (when enabled) escalates to a provider/model that has data.
44
44
  */
45
45
  export declare const DEFAULT_MIN_SAMPLES = 8;
46
+ /**
47
+ * How much one deferred `userAccepted: false` moves an arm.
48
+ *
49
+ * NOT a new reward rule: the success branch of {@link RouterBandit.applyReward}
50
+ * already treats `userAccepted: false` as `reward -= 0.1`, and `reward` moves α by
51
+ * exactly that amount (β by `1 - reward`). Applying the verdict a turn late is
52
+ * therefore `α -= 0.1, β += 0.1` — byte-for-byte the same arm the run would have
53
+ * had if the verdict had been known at record time. Stated as a constant so the
54
+ * two halves cannot drift apart.
55
+ */
56
+ export declare const USER_REJECTION_DELTA = 0.1;
57
+ /**
58
+ * How old the newest recorded outcome may be before the bandit's data stops
59
+ * being described as "learned" for a decision made today. See `isStale`.
60
+ */
61
+ export declare const BANDIT_STALENESS_MS: number;
46
62
  /** The complexity buckets the bandit learns per provider. */
47
63
  export declare const COMPLEXITY_BUCKETS: ComplexityLevel[];
48
64
  /** Persisted bandit state. */
@@ -76,6 +92,14 @@ export interface RouterBanditState {
76
92
  verificationPassed?: boolean;
77
93
  timestamp: string;
78
94
  }>;
95
+ /**
96
+ * Bundle 36 — trace ids whose EXPLICIT user verdict has already been applied to
97
+ * the arms that served them. An explicit `nuvira rate bad` arrives in its OWN
98
+ * process, so it cannot rely on `pendingOutcome`; keying the correction on the
99
+ * trace is what lets a re-run (or a verdict that follows a DERIVED rejection of
100
+ * the same turn) move an arm exactly once. Bounded like the history.
101
+ */
102
+ correctedVerdicts?: string[];
79
103
  }
80
104
  /** Standard normal via Box–Muller. */
81
105
  export declare function standardNormal(): number;
@@ -130,6 +154,47 @@ export declare class RouterBandit {
130
154
  sampleModelScore(model: string, complexity: ComplexityLevel, score: number, taskIntent?: string): number;
131
155
  /** Get the Beta prior for a provider in a complexity bucket (intent-aware). */
132
156
  getPrior(provider: string, complexity: ComplexityLevel, taskIntent?: string): BetaPrior;
157
+ /**
158
+ * P6 (fix_model_routing) — IS THERE ACTUALLY LEARNED DATA for this arm?
159
+ *
160
+ * `Beta(1,1)` is the UNTOUCHED prior: no outcome has ever been recorded for
161
+ * this provider in this bucket. The router used to call any `useBandit`
162
+ * decision `bandit-learned`, so a decision made from a cold-start prior — a
163
+ * score multiplied by a constant 0.5 that cannot reorder anything — was
164
+ * presented to the user as learned. Live: the store had no entry for ANY of
165
+ * the models in play, and the trace still read `bandit-learned`.
166
+ */
167
+ hasLearnedData(provider: string, complexity: ComplexityLevel, taskIntent?: string,
168
+ /** The concrete model, when known — its own arm is evidence too. */
169
+ model?: string): boolean;
170
+ /** Milliseconds since the newest recorded outcome (`Infinity` when none). */
171
+ ageMs(now?: number): number;
172
+ /**
173
+ * P6 (fix_model_routing) — NEGATIVE REWARD for a step-level failure.
174
+ *
175
+ * `recordOutcome` rewards a model only when a whole TASK succeeds or fails,
176
+ * which never happens for the failure that actually killed runs: a model that
177
+ * resolves a step with NOTHING usable. That model was retried, the turn ended
178
+ * `bounded`, and the bandit learned nothing — so its prior kept sampling the
179
+ * same broken arm back up. This is where an ungrounded "learned" score comes
180
+ * from, and where it is now corrected.
181
+ *
182
+ * The signal is a property of the MODEL rather than of the task (a model that
183
+ * returns nothing fails every kind of ask), so when no bucket is supplied the
184
+ * penalty lands on every arm that already holds an entry for this model — the
185
+ * only arms that could otherwise keep sampling it up — and a brand-new model
186
+ * with no arms at all gets the general bucket rather than inventing
187
+ * task-specific ones.
188
+ */
189
+ penalizeModel(model: string, complexity?: ComplexityLevel, taskIntent?: string): void;
190
+ /**
191
+ * P6 — staleness guard. A store whose newest sample is older than
192
+ * {@link BANDIT_STALENESS_MS} describes a different machine, different keys
193
+ * and a different model roster; calling its output "learned" for today's task
194
+ * is a claim nobody checked. Observed on disk: the store was last written 11
195
+ * days before the decision it supposedly informed.
196
+ */
197
+ isStale(now?: number): boolean;
133
198
  /** Note the provider picked for an agent type (for recordOutcome wiring). */
134
199
  noteDecision(agentType: string, provider: string): void;
135
200
  /** Provider picked last for an agent type, if any. */
@@ -181,6 +246,73 @@ export declare class RouterBandit {
181
246
  * learning (ADR-149) so subtask labels stay consistent.
182
247
  */
183
248
  recordModelOutcomeWithComplexity(model: string, complexity: ComplexityLevel, outcome: BanditOutcome, costScore?: number, outcomeData?: Partial<BanditOutcomeData>, taskIntent?: string): void;
249
+ /**
250
+ * Apply the DEFERRED half of `userAccepted: false` to the arms that served the
251
+ * turn the user has just corrected.
252
+ *
253
+ * WHY DEFERRED. The user's verdict on a turn arrives with their NEXT message
254
+ * ("still broken", "no change"), but bandit learning happens at the END of the
255
+ * turn it describes — so the signal can never be part of that turn's own
256
+ * observation. Reading the user's SILENCE as acceptance would be a fabricated
257
+ * sample (exactly what this reward model refuses to do), so the turn is recorded
258
+ * as it was and the rejection is applied when it actually arrives.
259
+ *
260
+ * Only a SUCCESS carries an un-applied penalty: the escalated and failure
261
+ * branches of `applyReward` never read `userAccepted`, so a rejection of one of
262
+ * those is already fully reflected and adds nothing.
263
+ *
264
+ * A rejection CORRECTS an existing arm and never creates one — a turn we never
265
+ * recorded has nothing to correct.
266
+ *
267
+ * @returns True when a prior was actually moved.
268
+ */
269
+ recordUserRejection(provider: string, complexity: ComplexityLevel, outcome: BanditOutcome, taskIntent?: string, model?: string): boolean;
270
+ /**
271
+ * Apply an EXPLICIT user verdict (`nuvira rate bad`, or the dashboard's 👎) to the
272
+ * arms that served the trace it is about.
273
+ *
274
+ * WHY A SEPARATE ENTRY POINT. `recordUserRejection` applies the same deferred
275
+ * delta for the DERIVED signal, but its attribution lives in the in-process
276
+ * `pendingOutcome` slot: it is gone by the time the user rates a turn from the
277
+ * CLI (or from the dashboard after the process ended). An explicit verdict names
278
+ * a TRACE, so this reads the pair and complexity the trace recorded and corrects
279
+ * the arm there — the same `α−δ / β+δ` a known verdict would have applied at
280
+ * record time.
281
+ *
282
+ * COUNTED ONCE, EVER. The trace id is remembered, so a re-run — or a verdict
283
+ * that follows a DERIVED rejection of the same turn — cannot move the arm twice.
284
+ * The marker is written even when no arm existed, because a rejection CORRECTS an
285
+ * existing arm and never creates one, and a second attempt must not suddenly
286
+ * apply a delta the first deliberately did not.
287
+ *
288
+ * Only a SUCCESS carries an un-applied penalty: the escalated and failure
289
+ * branches of `applyReward` never read `userAccepted`, so a rejection of one of
290
+ * those is already fully reflected.
291
+ */
292
+ recordExplicitVerdict(input: {
293
+ traceId: string;
294
+ provider: string;
295
+ complexity: ComplexityLevel;
296
+ taskIntent?: string;
297
+ model?: string;
298
+ /** The outcome the turn's own evidence was recorded under (see `turnOutcomeObservation`). */
299
+ outcome: BanditOutcome;
300
+ }): {
301
+ applied: boolean;
302
+ alreadyApplied: boolean;
303
+ moved: number;
304
+ reason: string;
305
+ };
306
+ /**
307
+ * The bucket keys whose arms could have served this turn, most precise first.
308
+ *
309
+ * The exact `intent:complexity` bucket is used when the trace carried the intent
310
+ * (new traces do; see `TraceRoutingSnapshot.taskIntent`). When it did not — an
311
+ * older trace — every bucket at the SAME complexity that already holds an entry
312
+ * for the provider is corrected instead, because a correction that silently
313
+ * no-ops is worse than one that lands on the buckets this pair could have served.
314
+ */
315
+ private correctionKeys;
184
316
  /**
185
317
  * Update the PER-MODEL prior for a concrete model id in the task's complexity
186
318
 
@@ -1 +1 @@
1
- {"version":3,"file":"router-bandit.d.ts","sourceRoot":"","sources":["../../src/learning/router-bandit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router-bandit.d.ts","sourceRoot":"","sources":["../../src/learning/router-bandit.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,22 @@ import { analyzeComplexity } from './hybrid-router.js';
27
27
  * unlearned and (when enabled) escalates to a provider/model that has data.
28
28
  */
29
29
  export const DEFAULT_MIN_SAMPLES = 8;
30
+ /**
31
+ * How much one deferred `userAccepted: false` moves an arm.
32
+ *
33
+ * NOT a new reward rule: the success branch of {@link RouterBandit.applyReward}
34
+ * already treats `userAccepted: false` as `reward -= 0.1`, and `reward` moves α by
35
+ * exactly that amount (β by `1 - reward`). Applying the verdict a turn late is
36
+ * therefore `α -= 0.1, β += 0.1` — byte-for-byte the same arm the run would have
37
+ * had if the verdict had been known at record time. Stated as a constant so the
38
+ * two halves cannot drift apart.
39
+ */
40
+ export const USER_REJECTION_DELTA = 0.1;
41
+ /**
42
+ * How old the newest recorded outcome may be before the bandit's data stops
43
+ * being described as "learned" for a decision made today. See `isStale`.
44
+ */
45
+ export const BANDIT_STALENESS_MS = 7 * 24 * 60 * 60 * 1000;
30
46
  /** The complexity buckets the bandit learns per provider. */
31
47
  export const COMPLEXITY_BUCKETS = [
32
48
  'trivial',
@@ -39,6 +55,8 @@ export const COMPLEXITY_BUCKETS = [
39
55
  const DEFAULT_MEMORY_DIR = join(resolveNuviraHome(), 'memory');
40
56
  const CURRENT_VERSION = 3; // v2 = per-modelId modelPriors; v3 = task-INTENT-aware buckets
41
57
  const MAX_HISTORY = 200;
58
+ /** Cap the applied-verdict dedupe set (oldest drop first — a trace, once old, is never re-rated). */
59
+ const MAX_CORRECTED_VERDICTS = 2000;
42
60
  function memoryDir() {
43
61
  return envBuff('MEMORY_DIR') || DEFAULT_MEMORY_DIR;
44
62
  }
@@ -187,6 +205,99 @@ export class RouterBandit {
187
205
  getPrior(provider, complexity, taskIntent) {
188
206
  return this.state.priors[this.bucketKey(complexity, taskIntent)]?.[provider] ?? { alpha: 1, beta: 1 };
189
207
  }
208
+ /**
209
+ * P6 (fix_model_routing) — IS THERE ACTUALLY LEARNED DATA for this arm?
210
+ *
211
+ * `Beta(1,1)` is the UNTOUCHED prior: no outcome has ever been recorded for
212
+ * this provider in this bucket. The router used to call any `useBandit`
213
+ * decision `bandit-learned`, so a decision made from a cold-start prior — a
214
+ * score multiplied by a constant 0.5 that cannot reorder anything — was
215
+ * presented to the user as learned. Live: the store had no entry for ANY of
216
+ * the models in play, and the trace still read `bandit-learned`.
217
+ */
218
+ hasLearnedData(provider, complexity, taskIntent,
219
+ /** The concrete model, when known — its own arm is evidence too. */
220
+ model) {
221
+ const prior = this.getPrior(provider, complexity, taskIntent);
222
+ if (prior.alpha + prior.beta > 2)
223
+ return true;
224
+ if (model) {
225
+ const modelPrior = this.getModelPrior(model, complexity, taskIntent);
226
+ if (modelPrior.alpha + modelPrior.beta > 2)
227
+ return true;
228
+ }
229
+ return false;
230
+ }
231
+ /** Milliseconds since the newest recorded outcome (`Infinity` when none). */
232
+ ageMs(now = Date.now()) {
233
+ const newest = this.state.learningHistory.reduce((acc, h) => {
234
+ const t = Date.parse(h.timestamp ?? '');
235
+ return Number.isFinite(t) && t > acc ? t : acc;
236
+ }, 0);
237
+ return newest === 0 ? Number.POSITIVE_INFINITY : Math.max(0, now - newest);
238
+ }
239
+ /**
240
+ * P6 (fix_model_routing) — NEGATIVE REWARD for a step-level failure.
241
+ *
242
+ * `recordOutcome` rewards a model only when a whole TASK succeeds or fails,
243
+ * which never happens for the failure that actually killed runs: a model that
244
+ * resolves a step with NOTHING usable. That model was retried, the turn ended
245
+ * `bounded`, and the bandit learned nothing — so its prior kept sampling the
246
+ * same broken arm back up. This is where an ungrounded "learned" score comes
247
+ * from, and where it is now corrected.
248
+ *
249
+ * The signal is a property of the MODEL rather than of the task (a model that
250
+ * returns nothing fails every kind of ask), so when no bucket is supplied the
251
+ * penalty lands on every arm that already holds an entry for this model — the
252
+ * only arms that could otherwise keep sampling it up — and a brand-new model
253
+ * with no arms at all gets the general bucket rather than inventing
254
+ * task-specific ones.
255
+ */
256
+ penalizeModel(model, complexity, taskIntent) {
257
+ if (!model || model === 'default')
258
+ return;
259
+ const keys = [];
260
+ if (complexity) {
261
+ keys.push(this.bucketKey(complexity, taskIntent));
262
+ }
263
+ else {
264
+ for (const key of Object.keys(this.state.modelPriors)) {
265
+ if (this.state.modelPriors[key]?.[model])
266
+ keys.push(key);
267
+ }
268
+ if (keys.length === 0)
269
+ keys.push(this.bucketKey('moderate', taskIntent));
270
+ }
271
+ const nowIso = new Date().toISOString();
272
+ for (const key of keys) {
273
+ const bucket = this.state.modelPriors[key] ?? (this.state.modelPriors[key] = {});
274
+ const prior = bucket[model] ?? (bucket[model] = { alpha: 1, beta: 1 });
275
+ prior.beta += 1;
276
+ this.state.learningHistory.push({
277
+ provider: model, // model-id surface; `provider` keeps CLI history rendering
278
+ model,
279
+ complexity: (complexity ?? 'moderate'),
280
+ ...(taskIntent ? { taskIntent } : {}),
281
+ outcome: 'failure',
282
+ reward: 0,
283
+ timestamp: nowIso,
284
+ });
285
+ }
286
+ if (this.state.learningHistory.length > MAX_HISTORY) {
287
+ this.state.learningHistory = this.state.learningHistory.slice(-MAX_HISTORY);
288
+ }
289
+ this.save();
290
+ }
291
+ /**
292
+ * P6 — staleness guard. A store whose newest sample is older than
293
+ * {@link BANDIT_STALENESS_MS} describes a different machine, different keys
294
+ * and a different model roster; calling its output "learned" for today's task
295
+ * is a claim nobody checked. Observed on disk: the store was last written 11
296
+ * days before the decision it supposedly informed.
297
+ */
298
+ isStale(now = Date.now()) {
299
+ return this.ageMs(now) > BANDIT_STALENESS_MS;
300
+ }
190
301
  /** Note the provider picked for an agent type (for recordOutcome wiring). */
191
302
  noteDecision(agentType, provider) {
192
303
  this.lastProviderByAgent[agentType] = provider;
@@ -335,6 +446,148 @@ export class RouterBandit {
335
446
  }
336
447
  this.save();
337
448
  }
449
+ /**
450
+ * Apply the DEFERRED half of `userAccepted: false` to the arms that served the
451
+ * turn the user has just corrected.
452
+ *
453
+ * WHY DEFERRED. The user's verdict on a turn arrives with their NEXT message
454
+ * ("still broken", "no change"), but bandit learning happens at the END of the
455
+ * turn it describes — so the signal can never be part of that turn's own
456
+ * observation. Reading the user's SILENCE as acceptance would be a fabricated
457
+ * sample (exactly what this reward model refuses to do), so the turn is recorded
458
+ * as it was and the rejection is applied when it actually arrives.
459
+ *
460
+ * Only a SUCCESS carries an un-applied penalty: the escalated and failure
461
+ * branches of `applyReward` never read `userAccepted`, so a rejection of one of
462
+ * those is already fully reflected and adds nothing.
463
+ *
464
+ * A rejection CORRECTS an existing arm and never creates one — a turn we never
465
+ * recorded has nothing to correct.
466
+ *
467
+ * @returns True when a prior was actually moved.
468
+ */
469
+ recordUserRejection(provider, complexity, outcome, taskIntent, model) {
470
+ if (outcome !== 'success')
471
+ return false;
472
+ const key = this.bucketKey(complexity, taskIntent);
473
+ // Clamp α above zero: a Beta prior needs positive shape parameters, so a run of
474
+ // rejections must never make an arm numerically invalid.
475
+ const applyDelta = (prior) => {
476
+ prior.alpha = Math.max(0.1, prior.alpha - USER_REJECTION_DELTA);
477
+ prior.beta += USER_REJECTION_DELTA;
478
+ };
479
+ let moved = false;
480
+ const providerPrior = this.state.priors[key]?.[provider];
481
+ if (providerPrior) {
482
+ applyDelta(providerPrior);
483
+ moved = true;
484
+ }
485
+ if (model) {
486
+ const modelPrior = this.state.modelPriors[key]?.[model];
487
+ if (modelPrior) {
488
+ applyDelta(modelPrior);
489
+ moved = true;
490
+ }
491
+ }
492
+ if (moved)
493
+ this.save();
494
+ return moved;
495
+ }
496
+ /**
497
+ * Apply an EXPLICIT user verdict (`nuvira rate bad`, or the dashboard's 👎) to the
498
+ * arms that served the trace it is about.
499
+ *
500
+ * WHY A SEPARATE ENTRY POINT. `recordUserRejection` applies the same deferred
501
+ * delta for the DERIVED signal, but its attribution lives in the in-process
502
+ * `pendingOutcome` slot: it is gone by the time the user rates a turn from the
503
+ * CLI (or from the dashboard after the process ended). An explicit verdict names
504
+ * a TRACE, so this reads the pair and complexity the trace recorded and corrects
505
+ * the arm there — the same `α−δ / β+δ` a known verdict would have applied at
506
+ * record time.
507
+ *
508
+ * COUNTED ONCE, EVER. The trace id is remembered, so a re-run — or a verdict
509
+ * that follows a DERIVED rejection of the same turn — cannot move the arm twice.
510
+ * The marker is written even when no arm existed, because a rejection CORRECTS an
511
+ * existing arm and never creates one, and a second attempt must not suddenly
512
+ * apply a delta the first deliberately did not.
513
+ *
514
+ * Only a SUCCESS carries an un-applied penalty: the escalated and failure
515
+ * branches of `applyReward` never read `userAccepted`, so a rejection of one of
516
+ * those is already fully reflected.
517
+ */
518
+ recordExplicitVerdict(input) {
519
+ const noop = (reason, alreadyApplied = false) => ({
520
+ applied: false,
521
+ alreadyApplied,
522
+ moved: 0,
523
+ reason,
524
+ });
525
+ if (!input.traceId)
526
+ return noop('no trace id to key the correction on');
527
+ const done = this.state.correctedVerdicts ?? [];
528
+ if (done.includes(input.traceId))
529
+ return noop('this verdict was already applied', true);
530
+ if (input.outcome !== 'success') {
531
+ return noop('the turn was not recorded as a success — its arm never read the verdict');
532
+ }
533
+ const keys = this.correctionKeys(input.provider, input.complexity, input.taskIntent);
534
+ const applyDelta = (prior) => {
535
+ // Clamp α above zero: a Beta prior needs positive shape parameters.
536
+ prior.alpha = Math.max(0.1, prior.alpha - USER_REJECTION_DELTA);
537
+ prior.beta += USER_REJECTION_DELTA;
538
+ };
539
+ let moved = 0;
540
+ for (const key of keys) {
541
+ const providerPrior = this.state.priors[key]?.[input.provider];
542
+ if (providerPrior) {
543
+ applyDelta(providerPrior);
544
+ moved++;
545
+ }
546
+ if (input.model) {
547
+ const modelPrior = this.state.modelPriors[key]?.[input.model];
548
+ if (modelPrior) {
549
+ applyDelta(modelPrior);
550
+ moved++;
551
+ }
552
+ }
553
+ }
554
+ this.state.correctedVerdicts = [...done, input.traceId].slice(-MAX_CORRECTED_VERDICTS);
555
+ this.save();
556
+ return {
557
+ applied: true,
558
+ alreadyApplied: false,
559
+ moved,
560
+ reason: moved > 0 ? `moved ${moved} prior(s)` : 'no recorded arm for this pair yet',
561
+ };
562
+ }
563
+ /**
564
+ * The bucket keys whose arms could have served this turn, most precise first.
565
+ *
566
+ * The exact `intent:complexity` bucket is used when the trace carried the intent
567
+ * (new traces do; see `TraceRoutingSnapshot.taskIntent`). When it did not — an
568
+ * older trace — every bucket at the SAME complexity that already holds an entry
569
+ * for the provider is corrected instead, because a correction that silently
570
+ * no-ops is worse than one that lands on the buckets this pair could have served.
571
+ */
572
+ correctionKeys(provider, complexity, taskIntent) {
573
+ const keys = [];
574
+ if (taskIntent) {
575
+ const exact = this.bucketKey(complexity, taskIntent);
576
+ if (this.state.priors[exact]?.[provider])
577
+ keys.push(exact);
578
+ }
579
+ else if (this.state.priors[complexity]?.[provider]) {
580
+ keys.push(complexity);
581
+ }
582
+ if (keys.length === 0) {
583
+ for (const key of Object.keys(this.state.priors)) {
584
+ if ((key === complexity || key.endsWith(`:${complexity}`)) && this.state.priors[key]?.[provider]) {
585
+ keys.push(key);
586
+ }
587
+ }
588
+ }
589
+ return keys;
590
+ }
338
591
  /**
339
592
  * Update the PER-MODEL prior for a concrete model id in the task's complexity
340
593
 
@@ -1 +1 @@
1
- {"version":3,"file":"router-bandit.js","sourceRoot":"","sources":["../../src/learning/router-bandit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router-bandit.js","sourceRoot":"","sources":["../../src/learning/router-bandit.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,19 @@
19
19
  */
20
20
  /** Where a routing decision came from. */
21
21
  export type RoutingSource = 'explain' | 'benchmark' | 'eval' | 'chat' | 'orchestrator';
22
+ /**
23
+ * The scale a recorded `score` is on.
24
+ *
25
+ * Two scales decide a walk and they are NOT interchangeable: the auto-router
26
+ * ranks PROVIDERS by a weighted composite, while `buildModelCandidates` ranks
27
+ * MODELS. Comparing one against the other is meaningless, so a row states which
28
+ * it used (see `RoutingHistoryEntry.score`).
29
+ */
30
+ export type RoutingScoreBasis =
31
+ /** The auto-router's provider-level weighted composite for this task. */
32
+ 'provider'
33
+ /** A model-level candidate score from `buildModelCandidates`. */
34
+ | 'model';
22
35
  /**
23
36
  * A full routing-decision snapshot — the ranked candidate list with scores and
24
37
  * the decision context, captured at decision time. Recorded for `explain`
@@ -83,8 +96,34 @@ export interface RoutingHistoryEntry {
83
96
  provider: string;
84
97
  /** Selected model within that provider */
85
98
  model: string;
86
- /** Router composite score of the pick (0–1) */
87
- score: number;
99
+ /**
100
+ * The score of THIS row's own pick — and ONLY this row's pick.
101
+ *
102
+ * B2-a, measured live. There are two scales in play: the auto-router's
103
+ * provider-level COMPOSITE (`decision.score`) and the model-level candidate
104
+ * score from `buildModelCandidates`. `cli/chat.ts` used to write
105
+ * `score: decision.score` onto EVERY row of a failover walk, so three
106
+ * different pairs appeared to share one number — measured:
107
+ * `0.43836864406779663` on gemini/`gemma-4-26b-a4b-it`,
108
+ * openrouter/`cohere/command-r7b-12-2024` and deepseek/`deepseek-flash`, while
109
+ * the provider scores `model explain` prints for that same ask are
110
+ * `local 0.438` / `gemini 0.438`. A reader could only conclude the models had
111
+ * tied — and that is exactly the wrong inference the Bundle 8 live run drew
112
+ * ("equal priors, so the ranking carries no information"), when the
113
+ * model-level scores were in fact ORDERED at 0.9206 / 0.77 / 0.597148.
114
+ *
115
+ * So a row carries its own pick's score or nothing: an audit record may not
116
+ * borrow a number from a different pair, and may not invent one for an
117
+ * ordering placeholder. `scoreBasis` names the scale, because the two scales
118
+ * are not comparable and a column that silently mixes them is the same defect
119
+ * wearing a different hat.
120
+ */
121
+ score?: number;
122
+ /**
123
+ * Which scale `score` is on. Present whenever `score` is meant to be read or
124
+ * compared; absent alongside an absent `score`.
125
+ */
126
+ scoreBasis?: RoutingScoreBasis;
88
127
  /**
89
128
  * Full decision snapshot (ranked candidates + context) — recorded for
90
129
  * `explain` decisions to power `model explain --since` (P3-M3.3). Optional:
@@ -1 +1 @@
1
- {"version":3,"file":"routing-history.d.ts","sourceRoot":"","sources":["../../src/learning/routing-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing-history.d.ts","sourceRoot":"","sources":["../../src/learning/routing-history.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routing-history.js","sourceRoot":"","sources":["../../src/learning/routing-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing-history.js","sourceRoot":"","sources":["../../src/learning/routing-history.ts"],"names":[],"mappings":"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"}