pi-harness-runtime 1.1.397 → 1.1.402

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 (624) hide show
  1. package/AGENTS.md +44 -2
  2. package/CHANGELOG.md +21 -0
  3. package/RULES.md +28 -0
  4. package/harness/agent-handoff.ts +2 -3
  5. package/harness/autonomous-review.ts +1 -1
  6. package/harness/blackboard.ts +2 -3
  7. package/harness/context-compact-orchestrator.ts +1 -1
  8. package/harness/context-window-manager.ts +2 -2
  9. package/harness/e2e/playwright-runner.ts +6 -4
  10. package/harness/herdr-agents.ts +1 -1
  11. package/harness/job-state-machine.ts +1 -1
  12. package/harness/langchain/daemon.ts +3 -3
  13. package/harness/langchain/graph.ts +2 -2
  14. package/harness/langchain/ping-pong-middleware.ts +2 -2
  15. package/harness/loop-code-agent.ts +6 -4
  16. package/harness/loop-controller.ts +1 -1
  17. package/harness/loop-review-agent.ts +1 -1
  18. package/harness/loop-types.ts +1 -1
  19. package/harness/master-planner.ts +1 -1
  20. package/harness/notification-events.ts +6 -6
  21. package/harness/project-detector/detector.ts +1 -2
  22. package/harness/repair-engine.ts +2 -4
  23. package/harness/service-diagnostics.ts +1 -1
  24. package/harness/skill-sync.ts +3 -3
  25. package/index.ts +276 -55
  26. package/mirror.ts +1 -1
  27. package/package.json +5 -3
  28. package/packages/a2a-adapter/dist/discovery.d.ts.map +1 -1
  29. package/packages/a2a-adapter/dist/discovery.js +0 -1
  30. package/packages/a2a-adapter/dist/discovery.js.map +1 -1
  31. package/packages/a2a-adapter/package.json +1 -1
  32. package/packages/a2a-adapter/src/discovery.ts +0 -1
  33. package/packages/agent-policy/package.json +1 -1
  34. package/packages/architecture-generator/package.json +1 -1
  35. package/packages/auth/dist/index.d.ts +9 -0
  36. package/packages/auth/dist/index.d.ts.map +1 -0
  37. package/packages/auth/dist/index.js +9 -0
  38. package/packages/auth/dist/index.js.map +1 -0
  39. package/packages/auth/package.json +1 -1
  40. package/packages/auth/src/index.ts +9 -0
  41. package/packages/autonomous-refactor/package.json +1 -1
  42. package/packages/autonomous-runtime/package.json +1 -1
  43. package/packages/cache-strategy/package.json +1 -1
  44. package/packages/capability-registry/package.json +1 -1
  45. package/packages/checkpoint/package.json +1 -1
  46. package/packages/cli-plugin-sdk/package.json +1 -1
  47. package/packages/clipboard/package.json +1 -1
  48. package/packages/clipboard-plugin/package.json +1 -1
  49. package/packages/code-generation/package.json +1 -1
  50. package/packages/code-review/package.json +1 -1
  51. package/packages/codex-adapter/package.json +1 -1
  52. package/packages/codex-watcher/package.json +1 -1
  53. package/packages/config-capture/dist/index.d.ts +52 -0
  54. package/packages/config-capture/dist/index.d.ts.map +1 -0
  55. package/packages/config-capture/dist/index.js +261 -0
  56. package/packages/config-capture/dist/index.js.map +1 -0
  57. package/packages/config-capture/package.json +1 -1
  58. package/packages/connection-runtime/package.json +1 -1
  59. package/packages/context-compiler/package.json +1 -1
  60. package/packages/context-discovery/package.json +1 -1
  61. package/packages/context-manager/package.json +1 -1
  62. package/packages/contracts/package.json +1 -1
  63. package/packages/cookie-sanitizer/package.json +1 -1
  64. package/packages/cost-optimizer/package.json +1 -1
  65. package/packages/dependency-analyzer/package.json +1 -1
  66. package/packages/django-plugin/package.json +1 -1
  67. package/packages/doc-generator/package.json +1 -1
  68. package/packages/durable-review/package.json +1 -1
  69. package/packages/e2e-tester/package.json +1 -1
  70. package/packages/evaluation-engine/package.json +1 -1
  71. package/packages/evaluation-runner/package.json +1 -1
  72. package/packages/event-bus/package.json +1 -1
  73. package/packages/event-sink/package.json +1 -1
  74. package/packages/event-store/package.json +1 -1
  75. package/packages/experience-replay/package.json +1 -1
  76. package/packages/feedback-collector/package.json +1 -1
  77. package/packages/file-copy-helper/dist/extension.d.ts +15 -0
  78. package/packages/file-copy-helper/dist/extension.d.ts.map +1 -0
  79. package/packages/file-copy-helper/dist/extension.debug.d.ts +15 -0
  80. package/packages/file-copy-helper/dist/extension.debug.d.ts.map +1 -0
  81. package/packages/file-copy-helper/dist/extension.debug.js +215 -0
  82. package/packages/file-copy-helper/dist/extension.debug.js.map +1 -0
  83. package/packages/file-copy-helper/dist/extension.js +222 -0
  84. package/packages/file-copy-helper/dist/extension.js.map +1 -0
  85. package/packages/file-copy-helper/dist/index.d.ts +3 -0
  86. package/packages/file-copy-helper/dist/index.d.ts.map +1 -0
  87. package/packages/file-copy-helper/dist/index.js +3 -0
  88. package/packages/file-copy-helper/dist/index.js.map +1 -0
  89. package/packages/file-copy-helper/dist/intent-detector.d.ts +21 -0
  90. package/packages/file-copy-helper/dist/intent-detector.d.ts.map +1 -0
  91. package/packages/file-copy-helper/dist/intent-detector.js +348 -0
  92. package/packages/file-copy-helper/dist/intent-detector.js.map +1 -0
  93. package/packages/file-copy-helper/package.json +1 -1
  94. package/packages/framework-detector/package.json +1 -1
  95. package/packages/framework-plugin-sdk/package.json +1 -1
  96. package/packages/frappe-plugin/package.json +1 -1
  97. package/packages/generic-web-plugin/package.json +1 -1
  98. package/packages/health-monitor/package.json +1 -1
  99. package/packages/intent-analyzer/package.json +1 -1
  100. package/packages/jev-judge/dist/auto-continue.d.ts +161 -2
  101. package/packages/jev-judge/dist/auto-continue.d.ts.map +1 -1
  102. package/packages/jev-judge/dist/auto-continue.js +267 -22
  103. package/packages/jev-judge/dist/auto-continue.js.map +1 -1
  104. package/packages/jev-judge/dist/index.d.ts +2 -0
  105. package/packages/jev-judge/dist/index.d.ts.map +1 -1
  106. package/packages/jev-judge/dist/index.js +2 -0
  107. package/packages/jev-judge/dist/index.js.map +1 -1
  108. package/packages/jev-judge/dist/question-risk.d.ts +50 -0
  109. package/packages/jev-judge/dist/question-risk.d.ts.map +1 -0
  110. package/packages/jev-judge/dist/question-risk.js +100 -0
  111. package/packages/jev-judge/dist/question-risk.js.map +1 -0
  112. package/packages/jev-judge/package.json +1 -1
  113. package/packages/jev-judge/src/auto-continue.ts +426 -29
  114. package/packages/jev-judge/src/index.ts +4 -0
  115. package/packages/jev-judge/src/question-risk.ts +151 -0
  116. package/packages/jev-judge/tests/auto-continue-context.test.ts +221 -0
  117. package/packages/jev-judge/tests/outcome-application.test.ts +132 -0
  118. package/packages/jev-judge/tests/question-risk.test.ts +116 -0
  119. package/packages/knowledge-graph/package.json +1 -1
  120. package/packages/knowledge-retrieval/package.json +1 -1
  121. package/packages/laravel-plugin/package.json +1 -1
  122. package/packages/learning-engine/package.json +1 -1
  123. package/packages/logging/README.md +36 -3
  124. package/packages/logging/dist/config.d.ts +7 -0
  125. package/packages/logging/dist/config.d.ts.map +1 -1
  126. package/packages/logging/dist/config.js +14 -0
  127. package/packages/logging/dist/config.js.map +1 -1
  128. package/packages/logging/dist/incidents/schema.d.ts +111 -0
  129. package/packages/logging/dist/incidents/schema.d.ts.map +1 -0
  130. package/packages/logging/dist/incidents/schema.js +0 -0
  131. package/packages/logging/dist/incidents/schema.js.map +1 -0
  132. package/packages/logging/dist/index.d.ts +2 -0
  133. package/packages/logging/dist/index.d.ts.map +1 -1
  134. package/packages/logging/dist/index.js +2 -0
  135. package/packages/logging/dist/index.js.map +1 -1
  136. package/packages/logging/dist/server/http.d.ts +4 -3
  137. package/packages/logging/dist/server/http.d.ts.map +1 -1
  138. package/packages/logging/dist/server/http.js +35 -3
  139. package/packages/logging/dist/server/http.js.map +1 -1
  140. package/packages/logging/dist/server/incident-qdrant.d.ts +83 -0
  141. package/packages/logging/dist/server/incident-qdrant.d.ts.map +1 -0
  142. package/packages/logging/dist/server/incident-qdrant.js +129 -0
  143. package/packages/logging/dist/server/incident-qdrant.js.map +1 -0
  144. package/packages/logging/dist/server/incident-store.d.ts +76 -0
  145. package/packages/logging/dist/server/incident-store.d.ts.map +1 -0
  146. package/packages/logging/dist/server/incident-store.js +157 -0
  147. package/packages/logging/dist/server/incident-store.js.map +1 -0
  148. package/packages/logging/dist/server/index.d.ts +4 -0
  149. package/packages/logging/dist/server/index.d.ts.map +1 -1
  150. package/packages/logging/dist/server/index.js +2 -0
  151. package/packages/logging/dist/server/index.js.map +1 -1
  152. package/packages/logging/dist/server/service.d.ts +33 -0
  153. package/packages/logging/dist/server/service.d.ts.map +1 -1
  154. package/packages/logging/dist/server/service.js +63 -0
  155. package/packages/logging/dist/server/service.js.map +1 -1
  156. package/packages/logging/dist/shipper.d.ts +74 -3
  157. package/packages/logging/dist/shipper.d.ts.map +1 -1
  158. package/packages/logging/dist/shipper.js +88 -5
  159. package/packages/logging/dist/shipper.js.map +1 -1
  160. package/packages/logging/dist/singleton.d.ts.map +1 -1
  161. package/packages/logging/dist/singleton.js +1 -0
  162. package/packages/logging/dist/singleton.js.map +1 -1
  163. package/packages/logging/package.json +1 -1
  164. package/packages/logging/src/config.ts +22 -0
  165. package/packages/logging/src/incidents/schema.ts +0 -0
  166. package/packages/logging/src/index.ts +17 -0
  167. package/packages/logging/src/server/http.ts +42 -3
  168. package/packages/logging/src/server/incident-qdrant.ts +177 -0
  169. package/packages/logging/src/server/incident-store.ts +192 -0
  170. package/packages/logging/src/server/index.ts +21 -0
  171. package/packages/logging/src/server/service.ts +79 -0
  172. package/packages/logging/src/shipper.ts +120 -5
  173. package/packages/logging/src/singleton.ts +1 -0
  174. package/packages/logging/test/fanout.test.ts +186 -0
  175. package/packages/logging/test/incidents.test.ts +404 -0
  176. package/packages/mcp-adapter/package.json +1 -1
  177. package/packages/memory-engine/package.json +1 -1
  178. package/packages/milestone-manager/package.json +1 -1
  179. package/packages/model-registry/package.json +1 -1
  180. package/packages/nextjs-plugin/package.json +1 -1
  181. package/packages/notification/dist/adapters/detail-format.d.ts +42 -0
  182. package/packages/notification/dist/adapters/detail-format.d.ts.map +1 -0
  183. package/packages/notification/dist/adapters/detail-format.js +94 -0
  184. package/packages/notification/dist/adapters/detail-format.js.map +1 -0
  185. package/packages/notification/dist/adapters/email-adapter.d.ts.map +1 -1
  186. package/packages/notification/dist/adapters/email-adapter.js +3 -2
  187. package/packages/notification/dist/adapters/email-adapter.js.map +1 -1
  188. package/packages/notification/dist/adapters/line-adapter.d.ts +33 -0
  189. package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -1
  190. package/packages/notification/dist/adapters/line-adapter.js +87 -9
  191. package/packages/notification/dist/adapters/line-adapter.js.map +1 -1
  192. package/packages/notification/dist/adapters/ntfy-adapter.d.ts.map +1 -1
  193. package/packages/notification/dist/adapters/ntfy-adapter.js +3 -2
  194. package/packages/notification/dist/adapters/ntfy-adapter.js.map +1 -1
  195. package/packages/notification/dist/adapters/telegram-adapter.d.ts +14 -0
  196. package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -1
  197. package/packages/notification/dist/adapters/telegram-adapter.js +89 -69
  198. package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -1
  199. package/packages/notification/dist/notification-center.d.ts.map +1 -1
  200. package/packages/notification/dist/notification-center.js +60 -7
  201. package/packages/notification/dist/notification-center.js.map +1 -1
  202. package/packages/notification/dist/pending-question.d.ts +69 -2
  203. package/packages/notification/dist/pending-question.d.ts.map +1 -1
  204. package/packages/notification/dist/pending-question.js +88 -2
  205. package/packages/notification/dist/pending-question.js.map +1 -1
  206. package/packages/notification/dist/types.d.ts +21 -0
  207. package/packages/notification/dist/types.d.ts.map +1 -1
  208. package/packages/notification/package.json +1 -1
  209. package/packages/notification/src/adapters/detail-format.ts +114 -0
  210. package/packages/notification/src/adapters/email-adapter.ts +3 -2
  211. package/packages/notification/src/adapters/line-adapter.ts +97 -9
  212. package/packages/notification/src/adapters/ntfy-adapter.ts +3 -2
  213. package/packages/notification/src/adapters/telegram-adapter.ts +98 -76
  214. package/packages/notification/src/notification-center.ts +66 -8
  215. package/packages/notification/src/pending-question.ts +160 -8
  216. package/packages/notification/src/types.ts +21 -0
  217. package/packages/notification/test/approval-payload.test.ts +269 -0
  218. package/packages/notification/test/detail-format.test.ts +106 -0
  219. package/packages/notification/test/pending-question-lifecycle.test.ts +195 -0
  220. package/packages/observability/package.json +1 -1
  221. package/packages/okf-indexer/dist/index.d.ts +9 -0
  222. package/packages/okf-indexer/dist/index.d.ts.map +1 -0
  223. package/packages/okf-indexer/dist/index.js +9 -0
  224. package/packages/okf-indexer/dist/index.js.map +1 -0
  225. package/packages/okf-indexer/package.json +1 -1
  226. package/packages/okf-indexer/src/index.ts +9 -0
  227. package/packages/paperclip-integration/package.json +1 -1
  228. package/packages/performance-optimizer/package.json +1 -1
  229. package/packages/permission-mode/package.json +1 -1
  230. package/packages/privilege-broker/package.json +1 -1
  231. package/packages/project-analyzer/package.json +1 -1
  232. package/packages/project-bootstrap/package.json +1 -1
  233. package/packages/projection-engine/package.json +1 -1
  234. package/packages/prompt-compiler/package.json +1 -1
  235. package/packages/prompt-versioning/package.json +1 -1
  236. package/packages/provider-adapter-sdk/package.json +1 -1
  237. package/packages/provider-router/dist/provider-router.d.ts.map +1 -1
  238. package/packages/provider-router/dist/types.d.ts +2 -2
  239. package/packages/provider-router/dist/types.d.ts.map +1 -1
  240. package/packages/provider-router/dist/types.js +1 -1
  241. package/packages/provider-router/package.json +1 -1
  242. package/packages/provider-router/src/types.ts +2 -2
  243. package/packages/provider-selector/package.json +1 -1
  244. package/packages/providers/package.json +1 -1
  245. package/packages/qdrant-skills/package.json +1 -1
  246. package/packages/quota-manager/package.json +1 -1
  247. package/packages/rate-limiter/package.json +1 -1
  248. package/packages/react-vite-plugin/package.json +1 -1
  249. package/packages/relay/package.json +1 -1
  250. package/packages/release-manager/package.json +1 -1
  251. package/packages/requirement-compiler/package.json +1 -1
  252. package/packages/runtime/package.json +1 -1
  253. package/packages/scheduler/dist/index.d.ts +9 -0
  254. package/packages/scheduler/dist/index.d.ts.map +1 -0
  255. package/packages/scheduler/dist/index.js +9 -0
  256. package/packages/scheduler/dist/index.js.map +1 -0
  257. package/packages/scheduler/dist/scheduler.d.ts +17 -0
  258. package/packages/scheduler/dist/scheduler.d.ts.map +1 -0
  259. package/packages/scheduler/dist/scheduler.js +41 -0
  260. package/packages/scheduler/dist/scheduler.js.map +1 -0
  261. package/packages/scheduler/package.json +1 -1
  262. package/packages/scheduler/src/index.ts +9 -0
  263. package/packages/scheduler-adapter/package.json +1 -1
  264. package/packages/session/package.json +1 -1
  265. package/packages/session-api/package.json +1 -1
  266. package/packages/session-export/package.json +1 -1
  267. package/packages/shared-context/dist/index.d.ts +7 -0
  268. package/packages/shared-context/dist/index.d.ts.map +1 -0
  269. package/packages/shared-context/dist/index.js +7 -0
  270. package/packages/shared-context/dist/index.js.map +1 -0
  271. package/packages/shared-context/dist/shared-context.d.ts +12 -0
  272. package/packages/shared-context/dist/shared-context.d.ts.map +1 -0
  273. package/packages/shared-context/dist/shared-context.js +39 -0
  274. package/packages/shared-context/dist/shared-context.js.map +1 -0
  275. package/packages/shared-context/package.json +1 -1
  276. package/packages/skill-mcp-client/dist/client.d.ts +56 -0
  277. package/packages/skill-mcp-client/dist/client.d.ts.map +1 -0
  278. package/packages/skill-mcp-client/dist/client.js +101 -0
  279. package/packages/skill-mcp-client/dist/client.js.map +1 -0
  280. package/packages/skill-mcp-client/dist/errors.d.ts +44 -0
  281. package/packages/skill-mcp-client/dist/errors.d.ts.map +1 -0
  282. package/packages/skill-mcp-client/dist/errors.js +68 -0
  283. package/packages/skill-mcp-client/dist/errors.js.map +1 -0
  284. package/packages/skill-mcp-client/dist/index.d.ts +9 -0
  285. package/packages/skill-mcp-client/dist/index.d.ts.map +1 -0
  286. package/packages/skill-mcp-client/dist/index.js +9 -0
  287. package/packages/skill-mcp-client/dist/index.js.map +1 -0
  288. package/packages/skill-mcp-client/dist/types.d.ts +106 -0
  289. package/packages/skill-mcp-client/dist/types.d.ts.map +1 -0
  290. package/packages/skill-mcp-client/dist/types.js +14 -0
  291. package/packages/skill-mcp-client/dist/types.js.map +1 -0
  292. package/packages/skill-mcp-client/package.json +1 -1
  293. package/packages/skill-registry/package.json +1 -1
  294. package/packages/skills/package.json +1 -5
  295. package/packages/sprint-planner/package.json +1 -1
  296. package/packages/subscription-engine/package.json +1 -1
  297. package/packages/task-compiler/package.json +1 -1
  298. package/packages/telegram/package.json +1 -1
  299. package/packages/telegram/src/agent-messages.d.ts +28 -0
  300. package/packages/telegram/src/agent-messages.js +90 -0
  301. package/packages/telegram/src/bindings.d.ts +296 -0
  302. package/packages/telegram/src/bindings.js +1086 -0
  303. package/packages/telegram/src/bus.d.ts +759 -0
  304. package/packages/telegram/src/bus.js +2732 -0
  305. package/packages/telegram/src/commands.d.ts +761 -0
  306. package/packages/telegram/src/commands.js +2622 -0
  307. package/packages/telegram/src/config.d.ts +222 -0
  308. package/packages/telegram/src/config.js +844 -0
  309. package/packages/telegram/src/delivery.d.ts +161 -0
  310. package/packages/telegram/src/delivery.js +550 -0
  311. package/packages/telegram/src/extension.d.ts +7 -0
  312. package/packages/telegram/src/extension.js +2444 -0
  313. package/packages/telegram/src/inbound.d.ts +94 -0
  314. package/packages/telegram/src/inbound.js +478 -0
  315. package/packages/telegram/src/index.d.ts +6 -0
  316. package/packages/telegram/src/index.js +6 -0
  317. package/packages/telegram/src/keyboard.d.ts +21 -0
  318. package/packages/telegram/src/keyboard.js +37 -0
  319. package/packages/telegram/src/lifecycle.d.ts +210 -0
  320. package/packages/telegram/src/lifecycle.js +538 -0
  321. package/packages/telegram/src/pi.d.ts +76 -0
  322. package/packages/telegram/src/pi.js +130 -0
  323. package/packages/telegram/src/polling.d.ts +332 -0
  324. package/packages/telegram/src/polling.js +1219 -0
  325. package/packages/telegram/src/replies.d.ts +210 -0
  326. package/packages/telegram/src/replies.js +752 -0
  327. package/packages/telegram/src/routing.d.ts +388 -0
  328. package/packages/telegram/src/routing.js +7886 -0
  329. package/packages/telegram/src/runtime.d.ts +159 -0
  330. package/packages/telegram/src/runtime.js +351 -0
  331. package/packages/telegram/src/telegram-api.d.ts +564 -0
  332. package/packages/telegram/src/telegram-api.js +1332 -0
  333. package/packages/telegram/src/turns.d.ts +108 -0
  334. package/packages/telegram/src/turns.js +482 -0
  335. package/packages/telegram/src/updates.d.ts +1545 -0
  336. package/packages/telegram/src/updates.js +6420 -0
  337. package/packages/tencentdb-memory/package.json +1 -1
  338. package/packages/tencentdb-sync/package.json +1 -1
  339. package/packages/test-data-generator/package.json +1 -1
  340. package/packages/test-generator/package.json +1 -1
  341. package/packages/todo-bd-sync/dist/detector.d.ts +54 -0
  342. package/packages/todo-bd-sync/dist/detector.d.ts.map +1 -0
  343. package/packages/todo-bd-sync/dist/detector.js +132 -0
  344. package/packages/todo-bd-sync/dist/detector.js.map +1 -0
  345. package/packages/todo-bd-sync/dist/extension.d.ts +30 -0
  346. package/packages/todo-bd-sync/dist/extension.d.ts.map +1 -0
  347. package/packages/todo-bd-sync/dist/extension.js +35 -0
  348. package/packages/todo-bd-sync/dist/extension.js.map +1 -0
  349. package/packages/todo-bd-sync/dist/index.d.ts +87 -0
  350. package/packages/todo-bd-sync/dist/index.d.ts.map +1 -0
  351. package/packages/todo-bd-sync/dist/index.js +296 -0
  352. package/packages/todo-bd-sync/dist/index.js.map +1 -0
  353. package/packages/todo-bd-sync/dist/sync.d.ts +72 -0
  354. package/packages/todo-bd-sync/dist/sync.d.ts.map +1 -0
  355. package/packages/todo-bd-sync/dist/sync.js +290 -0
  356. package/packages/todo-bd-sync/dist/sync.js.map +1 -0
  357. package/packages/todo-bd-sync/dist/task-analyzer.d.ts +49 -0
  358. package/packages/todo-bd-sync/dist/task-analyzer.d.ts.map +1 -0
  359. package/packages/todo-bd-sync/dist/task-analyzer.js +240 -0
  360. package/packages/todo-bd-sync/dist/task-analyzer.js.map +1 -0
  361. package/packages/todo-bd-sync/dist/todo-reminder.d.ts +126 -0
  362. package/packages/todo-bd-sync/dist/todo-reminder.d.ts.map +1 -0
  363. package/packages/todo-bd-sync/dist/todo-reminder.js +329 -0
  364. package/packages/todo-bd-sync/dist/todo-reminder.js.map +1 -0
  365. package/packages/todo-bd-sync/dist/types.d.ts +65 -0
  366. package/packages/todo-bd-sync/dist/types.d.ts.map +1 -0
  367. package/packages/todo-bd-sync/dist/types.js +67 -0
  368. package/packages/todo-bd-sync/dist/types.js.map +1 -0
  369. package/packages/todo-bd-sync/package.json +1 -1
  370. package/packages/token-estimation/dist/index.d.ts +94 -0
  371. package/packages/token-estimation/dist/index.d.ts.map +1 -0
  372. package/packages/token-estimation/dist/index.js +115 -0
  373. package/packages/token-estimation/dist/index.js.map +1 -0
  374. package/packages/token-estimation/package.json +1 -1
  375. package/packages/token-optimizer/package.json +1 -1
  376. package/packages/trajectory/package.json +1 -1
  377. package/packages/tui/package.json +1 -1
  378. package/packages/types/dist/ai-providers.d.ts +36 -0
  379. package/packages/types/dist/ai-providers.d.ts.map +1 -0
  380. package/packages/types/dist/ai-providers.js +66 -0
  381. package/packages/types/dist/ai-providers.js.map +1 -0
  382. package/packages/types/dist/index.d.ts +12 -0
  383. package/packages/types/dist/index.d.ts.map +1 -0
  384. package/packages/types/dist/index.js +12 -0
  385. package/packages/types/dist/index.js.map +1 -0
  386. package/packages/types/package.json +5 -5
  387. package/packages/types/src/index.ts +12 -0
  388. package/packages/voice-api/package.json +1 -1
  389. package/packages/webmcp-tester/package.json +1 -1
  390. package/packages/wiki/package.json +1 -1
  391. package/packages/workflow-events/package.json +1 -1
  392. package/packages/workspace-scanner/package.json +1 -1
  393. package/packages/worktree/package.json +1 -1
  394. package/packages/worktree/worktree.ts +1 -1
  395. package/packages/write-review/package.json +1 -1
  396. package/renderer.ts +1 -1
  397. package/scripts/build-packages.ts +162 -0
  398. package/scripts/relay-client.ts +2 -2
  399. package/scripts/typecheck-packages.mjs +3 -3
  400. package/scripts/unified-webhook-server.ts +22 -10
  401. package/scripts/verify-package-contents.ts +345 -0
  402. package/scripts/ws-server.ts +1 -1
  403. package/tracker.ts +1 -1
  404. package/harness/browser-scrapers/base-browser-scraper.d.ts +0 -91
  405. package/harness/browser-scrapers/chrome-profile-manager.d.ts +0 -80
  406. package/harness/browser-scrapers/codex-browser-scraper.d.ts +0 -60
  407. package/harness/browser-scrapers/index.d.ts +0 -29
  408. package/harness/browser-scrapers/zai-browser-scraper.d.ts +0 -79
  409. package/harness/e2e/browser-scrapers/base-browser-scraper.d.ts +0 -92
  410. package/harness/e2e/browser-scrapers/chrome-profile-manager.d.ts +0 -81
  411. package/harness/e2e/browser-scrapers/codex-browser-scraper.d.ts +0 -61
  412. package/harness/e2e/browser-scrapers/index.d.ts +0 -30
  413. package/harness/e2e/browser-scrapers/zai-browser-scraper.d.ts +0 -80
  414. package/harness/langchain/agents.d.ts +0 -143
  415. package/harness/langchain/agents.test.d.ts +0 -2
  416. package/harness/langchain/checkpointer.d.ts +0 -48
  417. package/harness/langchain/checkpointer.test.d.ts +0 -8
  418. package/harness/langchain/cron-cli.d.ts +0 -12
  419. package/harness/langchain/daemon.d.ts +0 -161
  420. package/harness/langchain/daemon.test.d.ts +0 -11
  421. package/harness/langchain/file-tools.d.ts +0 -97
  422. package/harness/langchain/graph.d.ts +0 -706
  423. package/harness/langchain/model-router.d.ts +0 -63
  424. package/harness/langchain/model-router.test.d.ts +0 -2
  425. package/harness/langchain/models.d.ts +0 -72
  426. package/harness/langchain/ping-pong-middleware.d.ts +0 -28
  427. package/harness/langchain/ping-pong-middleware.test.d.ts +0 -2
  428. package/harness/langchain/run.d.ts +0 -15
  429. package/harness/langchain/scoreboard.test.d.ts +0 -13
  430. package/harness/langchain/status-line.d.ts +0 -91
  431. package/harness/langchain/status-line.test.d.ts +0 -8
  432. package/harness/langchain/surge.d.ts +0 -111
  433. package/harness/langchain/surge.test.d.ts +0 -10
  434. package/harness/langchain/widget.d.ts +0 -105
  435. package/harness/langchain/widget.test.d.ts +0 -8
  436. package/packages/autonomous-runtime/dist/worker.d.ts +0 -63
  437. package/packages/autonomous-runtime/dist/worker.js +0 -133
  438. package/packages/capability-registry/src/types.d.ts +0 -47
  439. package/packages/clipboard/dist/clipboard.d.ts +0 -11
  440. package/packages/clipboard/dist/clipboard.js +0 -40
  441. package/packages/clipboard/dist/index.d.ts +0 -2
  442. package/packages/clipboard/dist/index.js +0 -2
  443. package/packages/clipboard/dist/types.d.ts +0 -13
  444. package/packages/clipboard/dist/types.js +0 -5
  445. package/packages/context-discovery/dist/discover.d.ts +0 -3
  446. package/packages/context-discovery/dist/discover.js +0 -42
  447. package/packages/context-discovery/dist/discovery.d.ts +0 -28
  448. package/packages/context-discovery/dist/discovery.js +0 -21
  449. package/packages/context-discovery/dist/index.d.ts +0 -3
  450. package/packages/context-discovery/dist/index.js +0 -2
  451. package/packages/context-discovery/dist/types.d.ts +0 -16
  452. package/packages/context-discovery/dist/types.js +0 -2
  453. package/packages/event-bus/dist/bus.d.ts +0 -15
  454. package/packages/event-bus/dist/bus.js +0 -90
  455. package/packages/event-bus/dist/index.d.ts +0 -4
  456. package/packages/event-bus/dist/index.js +0 -3
  457. package/packages/event-bus/dist/test/bus.test.js +0 -52
  458. package/packages/event-bus/dist/types.d.ts +0 -27
  459. package/packages/event-bus/dist/types.js +0 -10
  460. package/packages/event-store/dist/index.d.ts +0 -3
  461. package/packages/event-store/dist/index.js +0 -2
  462. package/packages/event-store/dist/store.d.ts +0 -15
  463. package/packages/event-store/dist/store.js +0 -131
  464. package/packages/event-store/dist/test/store.test.js +0 -57
  465. package/packages/event-store/dist/types.d.ts +0 -48
  466. package/packages/event-store/dist/types.js +0 -5
  467. package/packages/event-store/src/types.d.ts +0 -48
  468. package/packages/file-copy-helper/dist/src/extension.js +0 -186
  469. package/packages/model-registry/src/types.d.ts +0 -63
  470. package/packages/notification/dist/src/adapters/email-adapter.d.ts +0 -17
  471. package/packages/notification/dist/src/adapters/email-adapter.d.ts.map +0 -1
  472. package/packages/notification/dist/src/adapters/email-adapter.js +0 -89
  473. package/packages/notification/dist/src/adapters/email-adapter.js.map +0 -1
  474. package/packages/notification/dist/src/adapters/line-adapter.d.ts +0 -17
  475. package/packages/notification/dist/src/adapters/line-adapter.d.ts.map +0 -1
  476. package/packages/notification/dist/src/adapters/line-adapter.js +0 -99
  477. package/packages/notification/dist/src/adapters/line-adapter.js.map +0 -1
  478. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts +0 -17
  479. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts.map +0 -1
  480. package/packages/notification/dist/src/adapters/ntfy-adapter.js +0 -84
  481. package/packages/notification/dist/src/adapters/ntfy-adapter.js.map +0 -1
  482. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts +0 -56
  483. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts.map +0 -1
  484. package/packages/notification/dist/src/adapters/telegram-adapter.js +0 -251
  485. package/packages/notification/dist/src/adapters/telegram-adapter.js.map +0 -1
  486. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts +0 -15
  487. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts.map +0 -1
  488. package/packages/notification/dist/src/adapters/webhook-adapter.js +0 -64
  489. package/packages/notification/dist/src/adapters/webhook-adapter.js.map +0 -1
  490. package/packages/notification/dist/src/base-adapter.d.ts +0 -36
  491. package/packages/notification/dist/src/base-adapter.d.ts.map +0 -1
  492. package/packages/notification/dist/src/base-adapter.js +0 -39
  493. package/packages/notification/dist/src/base-adapter.js.map +0 -1
  494. package/packages/notification/dist/src/index.d.ts +0 -12
  495. package/packages/notification/dist/src/index.d.ts.map +0 -1
  496. package/packages/notification/dist/src/index.js +0 -12
  497. package/packages/notification/dist/src/index.js.map +0 -1
  498. package/packages/notification/dist/src/notification-center.d.ts +0 -89
  499. package/packages/notification/dist/src/notification-center.d.ts.map +0 -1
  500. package/packages/notification/dist/src/notification-center.js +0 -356
  501. package/packages/notification/dist/src/notification-center.js.map +0 -1
  502. package/packages/notification/dist/src/notification-policy.d.ts +0 -66
  503. package/packages/notification/dist/src/notification-policy.d.ts.map +0 -1
  504. package/packages/notification/dist/src/notification-policy.js +0 -153
  505. package/packages/notification/dist/src/notification-policy.js.map +0 -1
  506. package/packages/notification/dist/src/telegram-webhook-handler.d.ts +0 -86
  507. package/packages/notification/dist/src/telegram-webhook-handler.d.ts.map +0 -1
  508. package/packages/notification/dist/src/telegram-webhook-handler.js +0 -149
  509. package/packages/notification/dist/src/telegram-webhook-handler.js.map +0 -1
  510. package/packages/notification/dist/src/types.d.ts +0 -106
  511. package/packages/notification/dist/src/types.d.ts.map +0 -1
  512. package/packages/notification/dist/src/types.js +0 -7
  513. package/packages/notification/dist/src/types.js.map +0 -1
  514. package/packages/projection-engine/dist/engine.d.ts +0 -61
  515. package/packages/projection-engine/dist/engine.js +0 -76
  516. package/packages/projection-engine/dist/index.d.ts +0 -2
  517. package/packages/projection-engine/dist/index.js +0 -2
  518. package/packages/projection-engine/dist/project.d.ts +0 -3
  519. package/packages/projection-engine/dist/project.js +0 -24
  520. package/packages/projection-engine/dist/types.d.ts +0 -55
  521. package/packages/projection-engine/dist/types.js +0 -5
  522. package/packages/projection-engine/src/types.d.ts +0 -55
  523. package/packages/provider-adapter-sdk/dist/src/builder.d.ts +0 -140
  524. package/packages/provider-adapter-sdk/dist/src/builder.d.ts.map +0 -1
  525. package/packages/provider-adapter-sdk/dist/src/builder.js +0 -332
  526. package/packages/provider-adapter-sdk/dist/src/builder.js.map +0 -1
  527. package/packages/provider-adapter-sdk/dist/src/errors.d.ts +0 -71
  528. package/packages/provider-adapter-sdk/dist/src/errors.d.ts.map +0 -1
  529. package/packages/provider-adapter-sdk/dist/src/errors.js +0 -111
  530. package/packages/provider-adapter-sdk/dist/src/errors.js.map +0 -1
  531. package/packages/provider-adapter-sdk/dist/src/index.d.ts +0 -15
  532. package/packages/provider-adapter-sdk/dist/src/index.d.ts.map +0 -1
  533. package/packages/provider-adapter-sdk/dist/src/index.js +0 -19
  534. package/packages/provider-adapter-sdk/dist/src/index.js.map +0 -1
  535. package/packages/provider-adapter-sdk/dist/src/registry.d.ts +0 -108
  536. package/packages/provider-adapter-sdk/dist/src/registry.d.ts.map +0 -1
  537. package/packages/provider-adapter-sdk/dist/src/registry.js +0 -301
  538. package/packages/provider-adapter-sdk/dist/src/registry.js.map +0 -1
  539. package/packages/provider-adapter-sdk/dist/src/tester.d.ts +0 -71
  540. package/packages/provider-adapter-sdk/dist/src/tester.d.ts.map +0 -1
  541. package/packages/provider-adapter-sdk/dist/src/tester.js +0 -392
  542. package/packages/provider-adapter-sdk/dist/src/tester.js.map +0 -1
  543. package/packages/provider-adapter-sdk/dist/src/types.d.ts +0 -182
  544. package/packages/provider-adapter-sdk/dist/src/types.d.ts.map +0 -1
  545. package/packages/provider-adapter-sdk/dist/src/types.js +0 -11
  546. package/packages/provider-adapter-sdk/dist/src/types.js.map +0 -1
  547. package/packages/provider-router/dist/capability-registry/src/types.d.ts +0 -47
  548. package/packages/provider-router/dist/capability-registry/src/types.d.ts.map +0 -1
  549. package/packages/provider-router/dist/capability-registry/src/types.js +0 -10
  550. package/packages/provider-router/dist/capability-registry/src/types.js.map +0 -1
  551. package/packages/provider-router/dist/provider-router/src/index.d.ts +0 -23
  552. package/packages/provider-router/dist/provider-router/src/index.d.ts.map +0 -1
  553. package/packages/provider-router/dist/provider-router/src/index.js +0 -25
  554. package/packages/provider-router/dist/provider-router/src/index.js.map +0 -1
  555. package/packages/provider-router/dist/provider-router/src/policy.d.ts +0 -10
  556. package/packages/provider-router/dist/provider-router/src/policy.d.ts.map +0 -1
  557. package/packages/provider-router/dist/provider-router/src/policy.js +0 -45
  558. package/packages/provider-router/dist/provider-router/src/policy.js.map +0 -1
  559. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts +0 -56
  560. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts.map +0 -1
  561. package/packages/provider-router/dist/provider-router/src/provider-router.js +0 -222
  562. package/packages/provider-router/dist/provider-router/src/provider-router.js.map +0 -1
  563. package/packages/provider-router/dist/provider-router/src/strategies.d.ts +0 -19
  564. package/packages/provider-router/dist/provider-router/src/strategies.d.ts.map +0 -1
  565. package/packages/provider-router/dist/provider-router/src/strategies.js +0 -110
  566. package/packages/provider-router/dist/provider-router/src/strategies.js.map +0 -1
  567. package/packages/provider-router/dist/provider-router/src/types.d.ts +0 -91
  568. package/packages/provider-router/dist/provider-router/src/types.d.ts.map +0 -1
  569. package/packages/provider-router/dist/provider-router/src/types.js +0 -10
  570. package/packages/provider-router/dist/provider-router/src/types.js.map +0 -1
  571. package/packages/provider-router/dist/src/index.d.ts +0 -23
  572. package/packages/provider-router/dist/src/index.d.ts.map +0 -1
  573. package/packages/provider-router/dist/src/index.js +0 -25
  574. package/packages/provider-router/dist/src/index.js.map +0 -1
  575. package/packages/provider-router/dist/src/policy.d.ts +0 -10
  576. package/packages/provider-router/dist/src/policy.d.ts.map +0 -1
  577. package/packages/provider-router/dist/src/policy.js +0 -45
  578. package/packages/provider-router/dist/src/policy.js.map +0 -1
  579. package/packages/provider-router/dist/src/provider-router.d.ts +0 -56
  580. package/packages/provider-router/dist/src/provider-router.d.ts.map +0 -1
  581. package/packages/provider-router/dist/src/provider-router.js +0 -222
  582. package/packages/provider-router/dist/src/provider-router.js.map +0 -1
  583. package/packages/provider-router/dist/src/strategies.d.ts +0 -19
  584. package/packages/provider-router/dist/src/strategies.d.ts.map +0 -1
  585. package/packages/provider-router/dist/src/strategies.js +0 -110
  586. package/packages/provider-router/dist/src/strategies.js.map +0 -1
  587. package/packages/provider-router/dist/src/types.d.ts +0 -91
  588. package/packages/provider-router/dist/src/types.d.ts.map +0 -1
  589. package/packages/provider-router/dist/src/types.js +0 -10
  590. package/packages/provider-router/dist/src/types.js.map +0 -1
  591. package/packages/provider-router/dist/types/src/runtime-types.d.ts +0 -412
  592. package/packages/provider-router/dist/types/src/runtime-types.d.ts.map +0 -1
  593. package/packages/provider-router/dist/types/src/runtime-types.js +0 -2
  594. package/packages/provider-router/dist/types/src/runtime-types.js.map +0 -1
  595. package/packages/session-api/dist/api.d.ts +0 -83
  596. package/packages/session-api/dist/api.js +0 -35
  597. package/packages/session-api/dist/index.d.ts +0 -2
  598. package/packages/session-api/dist/index.js +0 -2
  599. package/packages/session-api/dist/types.d.ts +0 -22
  600. package/packages/session-api/dist/types.js +0 -5
  601. package/packages/session-export/dist/exporter.d.ts +0 -28
  602. package/packages/session-export/dist/exporter.js +0 -38
  603. package/packages/session-export/dist/index.d.ts +0 -2
  604. package/packages/session-export/dist/index.js +0 -2
  605. package/packages/session-export/dist/types.d.ts +0 -20
  606. package/packages/session-export/dist/types.js +0 -5
  607. package/packages/subscription-engine/dist/engine.d.ts +0 -13
  608. package/packages/subscription-engine/dist/engine.js +0 -40
  609. package/packages/subscription-engine/dist/index.d.ts +0 -2
  610. package/packages/subscription-engine/dist/index.js +0 -2
  611. package/packages/subscription-engine/dist/subscriptions.d.ts +0 -19
  612. package/packages/subscription-engine/dist/subscriptions.js +0 -32
  613. package/packages/subscription-engine/dist/types.d.ts +0 -24
  614. package/packages/subscription-engine/dist/types.js +0 -5
  615. package/packages/trajectory/test/store.test.d.ts +0 -2
  616. package/packages/workflow-events/dist/events.d.ts +0 -38
  617. package/packages/workflow-events/dist/events.js +0 -46
  618. package/packages/workflow-events/dist/index.d.ts +0 -2
  619. package/packages/workflow-events/dist/index.js +0 -2
  620. package/packages/workflow-events/dist/pipeline.d.ts +0 -21
  621. package/packages/workflow-events/dist/pipeline.js +0 -27
  622. package/packages/workflow-events/dist/types.d.ts +0 -110
  623. package/packages/workflow-events/dist/types.js +0 -5
  624. package/packages/workflow-events/src/types.d.ts +0 -110
@@ -1,47 +0,0 @@
1
- /**
2
- * Capability Registry Types (RFC-0051)
3
- */
4
- export type Capability = "code_generation" | "code_review" | "planning" | "test_generation" | "e2e_testing" | "refactoring" | "analysis" | "debugging" | "documentation" | "vision" | "function_calling" | "json_mode" | "streaming";
5
- export type Latency = "fast" | "medium" | "slow";
6
- export interface CapabilityProfile {
7
- capability: Capability;
8
- score: number;
9
- latency: Latency;
10
- contextWindow: number;
11
- maxOutputTokens: number;
12
- }
13
- export interface CapabilityQuery {
14
- minScore?: number;
15
- maxLatency?: Latency;
16
- requiresContextWindow?: number;
17
- requiresMaxOutput?: number;
18
- }
19
- export interface ModelWithCapability {
20
- providerId: string;
21
- modelId: string;
22
- profile: CapabilityProfile;
23
- }
24
- export interface CapabilityRegistry {
25
- register(providerId: string, modelId: string, capabilities: CapabilityProfile[]): void;
26
- unregister(providerId: string, modelId: string): void;
27
- getCapabilities(providerId: string, modelId: string): CapabilityProfile[];
28
- query(capability: Capability, requirements?: CapabilityQuery): ModelWithCapability[];
29
- listProviders(): string[];
30
- listModels(providerId: string): string[];
31
- }
32
- export type CapabilityRegistryEvent = {
33
- type: "capability.registered";
34
- providerId: string;
35
- modelId: string;
36
- count: number;
37
- } | {
38
- type: "capability.unregistered";
39
- providerId: string;
40
- modelId: string;
41
- } | {
42
- type: "capability.queried";
43
- capability: Capability;
44
- results: number;
45
- };
46
- export declare const LATENCY_RANK: Record<Latency, number>;
47
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../capability-registry/src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,UAAU,GACnB,iBAAiB,GACjB,aAAa,GACb,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,UAAU,GACV,WAAW,GACX,eAAe,GACf,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,WAAW,CAAC;AAEf,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;CAC3B;AAID,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CACP,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,iBAAiB,EAAE,GAC/B,IAAI,CAAC;IACR,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAC1E,KAAK,CACJ,UAAU,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,eAAe,GAC5B,mBAAmB,EAAE,CAAC;IACzB,aAAa,IAAI,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzC;AAID,MAAM,MAAM,uBAAuB,GAChC;IACA,IAAI,EAAE,uBAAuB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACb,GACD;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAI3E,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAIhD,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Capability Registry Types (RFC-0051)
3
- */
4
- // ─── Latency Ranking ─────────────────────────────────────────────────
5
- export const LATENCY_RANK = {
6
- fast: 1,
7
- medium: 2,
8
- slow: 3,
9
- };
10
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../capability-registry/src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0EH,wEAAwE;AAExE,MAAM,CAAC,MAAM,YAAY,GAA4B;IACpD,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACP,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Provider Router Package (RFC-0054)
3
- *
4
- * Enhanced provider routing with capability, cost, and quota awareness.
5
- *
6
- * @example
7
- * ```typescript
8
- * import { createProviderRouter, DEFAULT_ROUTING_POLICY } from "@pi-harness/provider-router";
9
- *
10
- * const router = createProviderRouter();
11
- *
12
- * const decision = await router.selectProvider(task, context, {
13
- * preferCheapest: true,
14
- * requiredCapabilities: ["code_generation"],
15
- * });
16
- * ```
17
- */
18
- export type { RoutingStrategy, RoutingPolicy, QuotaState, RoutingContext, RoutingOptions, ProviderCandidate, RoutingDecision, ProviderRouter, ProviderRouterEvent, Latency, } from "./types.js";
19
- export { LATENCY_RANK } from "./types.js";
20
- export { EnhancedProviderRouter, createProviderRouter, } from "./provider-router.js";
21
- export { DEFAULT_ROUTING_POLICY, createRoutingPolicy } from "./policy.js";
22
- export { applyStrategy, calculateWeightedScore, createDecision, } from "./strategies.js";
23
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,YAAY,EACX,eAAe,EACf,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,OAAO,GACP,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EACN,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG1E,OAAO,EACN,aAAa,EACb,sBAAsB,EACtB,cAAc,GACd,MAAM,iBAAiB,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Provider Router Package (RFC-0054)
3
- *
4
- * Enhanced provider routing with capability, cost, and quota awareness.
5
- *
6
- * @example
7
- * ```typescript
8
- * import { createProviderRouter, DEFAULT_ROUTING_POLICY } from "@pi-harness/provider-router";
9
- *
10
- * const router = createProviderRouter();
11
- *
12
- * const decision = await router.selectProvider(task, context, {
13
- * preferCheapest: true,
14
- * requiredCapabilities: ["code_generation"],
15
- * });
16
- * ```
17
- */
18
- export { LATENCY_RANK } from "./types.js";
19
- // Router
20
- export { EnhancedProviderRouter, createProviderRouter, } from "./provider-router.js";
21
- // Policy
22
- export { DEFAULT_ROUTING_POLICY, createRoutingPolicy } from "./policy.js";
23
- // Strategies
24
- export { applyStrategy, calculateWeightedScore, createDecision, } from "./strategies.js";
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgBH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,SAAS;AACT,OAAO,EACN,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,SAAS;AACT,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1E,aAAa;AACb,OAAO,EACN,aAAa,EACb,sBAAsB,EACtB,cAAc,GACd,MAAM,iBAAiB,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Default Routing Policy (RFC-0054)
3
- */
4
- import type { RoutingPolicy } from "./types.js";
5
- export declare const DEFAULT_ROUTING_POLICY: RoutingPolicy;
6
- /**
7
- * Create a custom routing policy
8
- */
9
- export declare function createRoutingPolicy(overrides: Partial<RoutingPolicy>): RoutingPolicy;
10
- //# sourceMappingURL=policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/policy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,sBAAsB,EAAE,aAuBpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAC/B,aAAa,CAaf"}
@@ -1,45 +0,0 @@
1
- /**
2
- * Default Routing Policy (RFC-0054)
3
- */
4
- export const DEFAULT_ROUTING_POLICY = {
5
- defaultStrategy: "balanced",
6
- costWeight: 30,
7
- qualityWeight: 40,
8
- latencyWeight: 20,
9
- quotaWeight: 10,
10
- fallbackProviders: ["anthropic", "openai"],
11
- taskTypeOverrides: {
12
- planning: "best_quality",
13
- code_generation: "balanced",
14
- code_review: "best_quality",
15
- test_generation: "fastest",
16
- e2e_testing: "quota_aware",
17
- analysis: "best_quality",
18
- refactoring: "balanced",
19
- debugging: "fastest",
20
- documentation: "cheapest",
21
- },
22
- providerPreferences: {
23
- minimax: 20, // prefer cheaper options
24
- openai: 0,
25
- anthropic: 10,
26
- },
27
- };
28
- /**
29
- * Create a custom routing policy
30
- */
31
- export function createRoutingPolicy(overrides) {
32
- return {
33
- ...DEFAULT_ROUTING_POLICY,
34
- ...overrides,
35
- taskTypeOverrides: {
36
- ...DEFAULT_ROUTING_POLICY.taskTypeOverrides,
37
- ...overrides.taskTypeOverrides,
38
- },
39
- providerPreferences: {
40
- ...DEFAULT_ROUTING_POLICY.providerPreferences,
41
- ...overrides.providerPreferences,
42
- },
43
- };
44
- }
45
- //# sourceMappingURL=policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/policy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACpD,eAAe,EAAE,UAAU;IAC3B,UAAU,EAAE,EAAE;IACd,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,EAAE;IACf,iBAAiB,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC1C,iBAAiB,EAAE;QAClB,QAAQ,EAAE,cAAc;QACxB,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE,cAAc;QAC3B,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,UAAU;KACzB;IACD,mBAAmB,EAAE;QACpB,OAAO,EAAE,EAAE,EAAE,yBAAyB;QACtC,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,EAAE;KACb;CACD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,SAAiC;IAEjC,OAAO;QACN,GAAG,sBAAsB;QACzB,GAAG,SAAS;QACZ,iBAAiB,EAAE;YAClB,GAAG,sBAAsB,CAAC,iBAAiB;YAC3C,GAAG,SAAS,CAAC,iBAAiB;SAC9B;QACD,mBAAmB,EAAE;YACpB,GAAG,sBAAsB,CAAC,mBAAmB;YAC7C,GAAG,SAAS,CAAC,mBAAmB;SAChC;KACD,CAAC;AACH,CAAC"}
@@ -1,56 +0,0 @@
1
- /**
2
- * Enhanced Provider Router (RFC-0054)
3
- */
4
- import type { ProviderRouter, ProviderRouterEvent, RoutingContext, RoutingDecision, RoutingOptions, RoutingPolicy } from "./types.js";
5
- type EventHandler = (event: ProviderRouterEvent) => void;
6
- /**
7
- * Enhanced Provider Router with capability and cost awareness
8
- */
9
- export declare class EnhancedProviderRouter implements ProviderRouter {
10
- private policy;
11
- private eventHandlers;
12
- private defaultCandidates;
13
- constructor(policy?: RoutingPolicy);
14
- /**
15
- * Select the best provider for a task
16
- */
17
- selectProvider(task: RoutingContext["task"], context: RoutingContext, options?: RoutingOptions): Promise<RoutingDecision>;
18
- /**
19
- * Select multiple providers
20
- */
21
- selectProviders(task: RoutingContext["task"], context: RoutingContext, count: number): Promise<RoutingDecision[]>;
22
- /**
23
- * Get current routing policy
24
- */
25
- getRoutingPolicy(): RoutingPolicy;
26
- /**
27
- * Update routing policy
28
- */
29
- setRoutingPolicy(policy: RoutingPolicy): void;
30
- /**
31
- * Subscribe to events
32
- */
33
- onEvent(handler: EventHandler): () => void;
34
- /**
35
- * Build candidate list from context
36
- */
37
- private buildCandidates;
38
- /**
39
- * Filter candidates based on options and context
40
- */
41
- private filterCandidates;
42
- /**
43
- * Determine routing strategy for a task
44
- */
45
- private determineStrategy;
46
- /**
47
- * Emit an event
48
- */
49
- private emit;
50
- }
51
- /**
52
- * Create a new provider router
53
- */
54
- export declare function createProviderRouter(policy?: RoutingPolicy): EnhancedProviderRouter;
55
- export {};
56
- //# sourceMappingURL=provider-router.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-router.d.ts","sourceRoot":"","sources":["../../../src/provider-router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EAEb,MAAM,YAAY,CAAC;AAQpB,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAUzD;;GAEG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IAC5D,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAAgC;IAGrD,OAAO,CAAC,iBAAiB,CA6BvB;gBAEU,MAAM,CAAC,EAAE,aAAa;IAIlC;;OAEG;IACG,cAAc,CACnB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC;IAuD3B;;OAEG;IACG,eAAe,CACpB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,eAAe,EAAE,CAAC;IAgB7B;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAW7C;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAK1C;;OAEG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiDxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,IAAI;CASZ;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,CAAC,EAAE,aAAa,GACpB,sBAAsB,CAExB"}
@@ -1,222 +0,0 @@
1
- /**
2
- * Enhanced Provider Router (RFC-0054)
3
- */
4
- import { DEFAULT_ROUTING_POLICY } from "./policy.js";
5
- import { applyStrategy, createDecision, calculateWeightedScore, } from "./strategies.js";
6
- /**
7
- * Enhanced Provider Router with capability and cost awareness
8
- */
9
- export class EnhancedProviderRouter {
10
- policy;
11
- eventHandlers = new Set();
12
- // Default providers for fallback
13
- defaultCandidates = [
14
- {
15
- providerId: "anthropic",
16
- modelId: "claude-sonnet-4",
17
- estimatedCost: 0.003, // $3/1M tokens average
18
- estimatedLatency: "fast",
19
- qualityScore: 90,
20
- },
21
- {
22
- providerId: "openai",
23
- modelId: "gpt-4o-mini",
24
- estimatedCost: 0.0006,
25
- estimatedLatency: "fast",
26
- qualityScore: 82,
27
- },
28
- {
29
- providerId: "minimax",
30
- modelId: "MiniMax-Text-01",
31
- estimatedCost: 0.0001,
32
- estimatedLatency: "fast",
33
- qualityScore: 75,
34
- },
35
- {
36
- providerId: "google",
37
- modelId: "gemini-1.5-flash",
38
- estimatedCost: 0.00007,
39
- estimatedLatency: "fast",
40
- qualityScore: 78,
41
- },
42
- ];
43
- constructor(policy) {
44
- this.policy = policy ?? DEFAULT_ROUTING_POLICY;
45
- }
46
- /**
47
- * Select the best provider for a task
48
- */
49
- async selectProvider(task, context, options) {
50
- const candidates = this.buildCandidates(context, options);
51
- // Filter candidates
52
- const filtered = this.filterCandidates(candidates, context, options);
53
- if (filtered.length === 0) {
54
- this.emit({
55
- type: "router.no_candidates",
56
- taskId: task.id,
57
- reason: "All candidates filtered out",
58
- });
59
- // Fallback to default
60
- const fallback = this.policy.fallbackProviders[0];
61
- const defaultCandidate = this.defaultCandidates.find((c) => c.providerId === fallback) ??
62
- this.defaultCandidates[0];
63
- return createDecision({
64
- providerId: defaultCandidate.providerId,
65
- modelId: defaultCandidate.modelId,
66
- capabilities: [],
67
- estimatedCost: defaultCandidate.estimatedCost,
68
- estimatedLatency: defaultCandidate.estimatedLatency ?? "medium",
69
- qualityScore: defaultCandidate.qualityScore,
70
- remainingQuotaPct: context.quotaStates[defaultCandidate.providerId]?.remainingPct ?? 1,
71
- }, `Fallback to ${defaultCandidate.providerId}`);
72
- }
73
- // Determine strategy
74
- const strategy = this.determineStrategy(task, options);
75
- // Apply strategy
76
- const selected = applyStrategy(filtered, strategy, this.policy, options);
77
- const decision = createDecision(selected, `Selected via ${strategy} strategy`);
78
- this.emit({
79
- type: "router.provider_selected",
80
- taskId: task.id,
81
- providerId: decision.providerId,
82
- reason: decision.reason,
83
- });
84
- return decision;
85
- }
86
- /**
87
- * Select multiple providers
88
- */
89
- async selectProviders(task, context, count) {
90
- const candidates = this.buildCandidates(context);
91
- const sorted = candidates.sort((a, b) => {
92
- return (calculateWeightedScore(b, this.policy) -
93
- calculateWeightedScore(a, this.policy));
94
- });
95
- const selected = sorted.slice(0, count);
96
- return selected.map((c, i) => createDecision(c, `Ranked #${i + 1} for ${task.id}`));
97
- }
98
- /**
99
- * Get current routing policy
100
- */
101
- getRoutingPolicy() {
102
- return { ...this.policy };
103
- }
104
- /**
105
- * Update routing policy
106
- */
107
- setRoutingPolicy(policy) {
108
- const oldPolicy = this.policy;
109
- this.policy = policy;
110
- this.emit({
111
- type: "router.policy_updated",
112
- oldPolicy,
113
- newPolicy: policy,
114
- });
115
- }
116
- /**
117
- * Subscribe to events
118
- */
119
- onEvent(handler) {
120
- this.eventHandlers.add(handler);
121
- return () => this.eventHandlers.delete(handler);
122
- }
123
- /**
124
- * Build candidate list from context
125
- */
126
- buildCandidates(context, options) {
127
- const candidates = [];
128
- // Add default candidates
129
- for (const candidate of this.defaultCandidates) {
130
- const providerState = context.providerStates[candidate.providerId] ?? "unknown";
131
- const quotaState = context.quotaStates[candidate.providerId];
132
- // Skip disabled providers
133
- if (providerState === "disabled")
134
- continue;
135
- candidates.push({
136
- providerId: candidate.providerId,
137
- modelId: candidate.modelId,
138
- capabilities: [], // Would be populated from capability registry
139
- estimatedCost: candidate.estimatedCost,
140
- estimatedLatency: candidate.estimatedLatency ?? "medium",
141
- qualityScore: candidate.qualityScore,
142
- remainingQuotaPct: quotaState?.remainingPct ?? 1,
143
- });
144
- }
145
- return candidates;
146
- }
147
- /**
148
- * Filter candidates based on options and context
149
- */
150
- filterCandidates(candidates, context, options) {
151
- let filtered = [...candidates];
152
- // Filter by cost
153
- if (options?.maxCostPerTask) {
154
- filtered = filtered.filter((c) => (c.estimatedCost ?? Infinity) <= options.maxCostPerTask);
155
- }
156
- // Filter by quota
157
- filtered = filtered.filter((c) => {
158
- const quota = context.quotaStates[c.providerId];
159
- return !quota || !quota.exhausted;
160
- });
161
- // Filter by provider state
162
- filtered = filtered.filter((c) => {
163
- const state = context.providerStates[c.providerId] ?? "unknown";
164
- return state !== "disabled" && state !== "exhausted";
165
- });
166
- // Prefer providers
167
- if (options?.preferProviders?.length) {
168
- filtered.sort((a, b) => {
169
- const aPreferred = options.preferProviders.includes(a.providerId)
170
- ? 1
171
- : 0;
172
- const bPreferred = options.preferProviders.includes(b.providerId)
173
- ? 1
174
- : 0;
175
- return bPreferred - aPreferred;
176
- });
177
- }
178
- // Avoid providers
179
- if (options?.avoidProviders?.length) {
180
- filtered = filtered.filter((c) => !options.avoidProviders.includes(c.providerId));
181
- }
182
- return filtered;
183
- }
184
- /**
185
- * Determine routing strategy for a task
186
- */
187
- determineStrategy(task, options) {
188
- // Check for explicit preferences
189
- if (options?.preferCheapest)
190
- return "cheapest";
191
- if (options?.preferFastest)
192
- return "fastest";
193
- if (options?.preferHighestQuality)
194
- return "best_quality";
195
- // Check task type override
196
- if (this.policy.taskTypeOverrides[task.type]) {
197
- return this.policy.taskTypeOverrides[task.type];
198
- }
199
- // Fall back to default
200
- return this.policy.defaultStrategy;
201
- }
202
- /**
203
- * Emit an event
204
- */
205
- emit(event) {
206
- for (const handler of this.eventHandlers) {
207
- try {
208
- handler(event);
209
- }
210
- catch {
211
- // Ignore handler errors
212
- }
213
- }
214
- }
215
- }
216
- /**
217
- * Create a new provider router
218
- */
219
- export function createProviderRouter(policy) {
220
- return new EnhancedProviderRouter(policy);
221
- }
222
- //# sourceMappingURL=provider-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-router.js","sourceRoot":"","sources":["../../../src/provider-router.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Routing Strategies (RFC-0054)
3
- */
4
- import type { ProviderCandidate, RoutingDecision, RoutingPolicy, RoutingStrategy } from "./types.js";
5
- /**
6
- * Apply a routing strategy to select the best candidate
7
- */
8
- export declare function applyStrategy(candidates: ProviderCandidate[], strategy: RoutingStrategy, policy: RoutingPolicy, options?: {
9
- preferProviders?: string[];
10
- }): ProviderCandidate;
11
- /**
12
- * Calculate weighted score for a candidate
13
- */
14
- export declare function calculateWeightedScore(candidate: ProviderCandidate, policy: RoutingPolicy): number;
15
- /**
16
- * Create a routing decision from a candidate
17
- */
18
- export declare function createDecision(candidate: ProviderCandidate, reason: string): RoutingDecision;
19
- //# sourceMappingURL=strategies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../../src/strategies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACX,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,eAAe,EACf,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,wBAAgB,aAAa,CAC5B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACtC,iBAAiB,CAoBnB;AAgED;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,aAAa,GACnB,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GACZ,eAAe,CASjB"}
@@ -1,110 +0,0 @@
1
- /**
2
- * Routing Strategies (RFC-0054)
3
- */
4
- import { LATENCY_RANK } from "./types.js";
5
- /**
6
- * Apply a routing strategy to select the best candidate
7
- */
8
- export function applyStrategy(candidates, strategy, policy, options) {
9
- switch (strategy) {
10
- case "cheapest":
11
- return selectCheapest(candidates);
12
- case "fastest":
13
- return selectFastest(candidates);
14
- case "best_quality":
15
- return selectBestQuality(candidates);
16
- case "balanced":
17
- return selectBalanced(candidates, policy);
18
- case "quota_aware":
19
- return selectQuotaAware(candidates);
20
- default:
21
- return selectBalanced(candidates, policy);
22
- }
23
- }
24
- /**
25
- * Select the cheapest candidate
26
- */
27
- function selectCheapest(candidates) {
28
- return candidates.reduce((cheapest, current) => (current.estimatedCost ?? Infinity) < (cheapest.estimatedCost ?? Infinity)
29
- ? current
30
- : cheapest);
31
- }
32
- /**
33
- * Select the fastest candidate
34
- */
35
- function selectFastest(candidates) {
36
- return candidates.reduce((fastest, current) => LATENCY_RANK[current.estimatedLatency] <
37
- LATENCY_RANK[fastest.estimatedLatency]
38
- ? current
39
- : fastest);
40
- }
41
- /**
42
- * Select the highest quality candidate
43
- */
44
- function selectBestQuality(candidates) {
45
- return candidates.reduce((best, current) => (current.qualityScore ?? 0) > (best.qualityScore ?? 0) ? current : best);
46
- }
47
- /**
48
- * Select based on weighted scoring
49
- */
50
- function selectBalanced(candidates, policy) {
51
- return candidates.reduce((best, current) => {
52
- const scoreBest = calculateWeightedScore(best, policy);
53
- const scoreCurrent = calculateWeightedScore(current, policy);
54
- return scoreCurrent > scoreBest ? current : best;
55
- });
56
- }
57
- /**
58
- * Select based on quota availability
59
- */
60
- function selectQuotaAware(candidates) {
61
- return candidates.reduce((best, current) => {
62
- const quotaBest = best.remainingQuotaPct ?? 0;
63
- const quotaCurrent = current.remainingQuotaPct ?? 0;
64
- const costBest = best.estimatedCost ?? Infinity;
65
- const costCurrent = current.estimatedCost ?? Infinity;
66
- // Prefer high quota / low cost
67
- const ratioBest = quotaBest / (costBest || 1);
68
- const ratioCurrent = quotaCurrent / (costCurrent || 1);
69
- return ratioCurrent > ratioBest ? current : best;
70
- });
71
- }
72
- /**
73
- * Calculate weighted score for a candidate
74
- */
75
- export function calculateWeightedScore(candidate, policy) {
76
- // Cost score (inverse - lower is better)
77
- const maxReasonableCost = 1; // $1 per task
78
- const costScore = 100 -
79
- Math.min(((candidate.estimatedCost ?? 0) * 100) / maxReasonableCost, 100);
80
- // Quality score (already 0-100)
81
- const qualityScore = candidate.qualityScore ?? 50;
82
- // Latency score (inverse)
83
- const latencyScore = 100 - LATENCY_RANK[candidate.estimatedLatency] * 33;
84
- // Quota score (0-100)
85
- const quotaScore = (candidate.remainingQuotaPct ?? 1) * 100;
86
- // Normalize weights
87
- const totalWeight = policy.costWeight +
88
- policy.qualityWeight +
89
- policy.latencyWeight +
90
- policy.quotaWeight;
91
- return ((costScore * policy.costWeight +
92
- qualityScore * policy.qualityWeight +
93
- latencyScore * policy.latencyWeight +
94
- quotaScore * policy.quotaWeight) /
95
- totalWeight);
96
- }
97
- /**
98
- * Create a routing decision from a candidate
99
- */
100
- export function createDecision(candidate, reason) {
101
- return {
102
- providerId: candidate.providerId,
103
- modelId: candidate.modelId,
104
- reason,
105
- estimatedCost: candidate.estimatedCost,
106
- estimatedLatency: candidate.estimatedLatency,
107
- confidence: candidate.qualityScore ? candidate.qualityScore / 100 : 0.8,
108
- };
109
- }
110
- //# sourceMappingURL=strategies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../../src/strategies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,UAA+B,EAC/B,QAAyB,EACzB,MAAqB,EACrB,OAAwC;IAExC,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;QAEnC,KAAK,SAAS;YACb,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;QAElC,KAAK,cAAc;YAClB,OAAO,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEtC,KAAK,UAAU;YACd,OAAO,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE3C,KAAK,aAAa;YACjB,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAErC;YACC,OAAO,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,UAA+B;IACtD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAC9C,CAAC,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC;QACzE,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,QAAQ,CACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,UAA+B;IACrD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAC7C,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACtC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACrC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,OAAO,CACV,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAA+B;IACzD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAC1C,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACvE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACtB,UAA+B,EAC/B,MAAqB;IAErB,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,UAA+B;IACxD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC;QAChD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC;QACtD,+BAA+B;QAC/B,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;QACvD,OAAO,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACrC,SAA4B,EAC5B,MAAqB;IAErB,yCAAyC;IACzC,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAAC,cAAc;IAC3C,MAAM,SAAS,GACd,GAAG;QACH,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE3E,gCAAgC;IAChC,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC;IAElD,0BAA0B;IAC1B,MAAM,YAAY,GAAG,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;IAEzE,sBAAsB;IACtB,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IAE5D,oBAAoB;IACpB,MAAM,WAAW,GAChB,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,WAAW,CAAC;IAEpB,OAAO,CACN,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU;QAC7B,YAAY,GAAG,MAAM,CAAC,aAAa;QACnC,YAAY,GAAG,MAAM,CAAC,aAAa;QACnC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,WAAW,CACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC7B,SAA4B,EAC5B,MAAc;IAEd,OAAO;QACN,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,MAAM;QACN,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;QAC5C,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;KACvE,CAAC;AACH,CAAC"}