pi-harness-runtime 0.10.11 → 0.10.12

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 (584) hide show
  1. package/cli.ts +111 -0
  2. package/footer-status.ts +204 -0
  3. package/harness/agent-handoff.ts +189 -0
  4. package/harness/auto-compact.ts +309 -0
  5. package/harness/auto-quota-resume.ts +132 -0
  6. package/harness/autonomous-review.ts +88 -0
  7. package/harness/blackboard.ts +291 -0
  8. package/harness/context-compact-orchestrator.ts +551 -0
  9. package/harness/context-window-manager.ts +464 -0
  10. package/harness/continue-prompt.ts +242 -0
  11. package/harness/e2e/index.ts +44 -0
  12. package/harness/e2e/minimax-quota-parser.ts +88 -0
  13. package/harness/e2e/minimax-quota-scraper.ts +609 -0
  14. package/harness/e2e/openai-quota-scraper.ts +447 -0
  15. package/harness/e2e/playwright-runner.ts +204 -0
  16. package/harness/e2e/quota-status.ts +194 -0
  17. package/harness/e2e/test-engine.ts +398 -0
  18. package/harness/forked-summarizer.ts +304 -0
  19. package/harness/herdr-agents.ts +91 -0
  20. package/harness/index.ts +232 -0
  21. package/harness/job-state-machine.ts +363 -0
  22. package/harness/loop-code-agent.ts +284 -0
  23. package/harness/loop-controller.ts +201 -0
  24. package/harness/loop-review-agent.ts +295 -0
  25. package/harness/loop-runtime.ts +760 -0
  26. package/harness/loop-types.ts +118 -0
  27. package/harness/master-planner.ts +327 -0
  28. package/harness/notification-events.ts +299 -0
  29. package/harness/output-limit-handler.ts +316 -0
  30. package/harness/partial-recovery.ts +531 -0
  31. package/harness/project-detector/detector.ts +328 -0
  32. package/harness/repair-engine.ts +340 -0
  33. package/harness/session-memory.ts +401 -0
  34. package/harness/task-graph.d.ts +51 -0
  35. package/harness/task-graph.ts +143 -0
  36. package/mirror.ts +278 -0
  37. package/package.json +8 -12
  38. package/packages/a2a-adapter/src/agent.ts +139 -0
  39. package/packages/a2a-adapter/src/client.ts +107 -0
  40. package/packages/a2a-adapter/src/discovery.ts +106 -0
  41. package/packages/a2a-adapter/src/index.ts +38 -0
  42. package/packages/a2a-adapter/src/protocol.ts +46 -0
  43. package/packages/a2a-adapter/src/transport.ts +142 -0
  44. package/packages/a2a-adapter/src/types.ts +117 -0
  45. package/packages/auth/src/minimax-browser-auth.ts +1109 -0
  46. package/packages/auth/src/run-minimax-auth.ts +150 -0
  47. package/packages/autonomous-refactor/src/detector.ts +219 -0
  48. package/packages/autonomous-refactor/src/index.ts +16 -0
  49. package/packages/autonomous-refactor/src/planner.ts +99 -0
  50. package/packages/autonomous-refactor/src/types.ts +57 -0
  51. package/packages/autonomous-runtime/src/inbox.ts +266 -0
  52. package/packages/autonomous-runtime/src/index.ts +22 -0
  53. package/packages/autonomous-runtime/src/lease.ts +318 -0
  54. package/packages/autonomous-runtime/src/types.ts +257 -0
  55. package/packages/cache-strategy/src/cache.ts +213 -0
  56. package/packages/cache-strategy/src/index.ts +6 -0
  57. package/packages/cache-strategy/src/types.ts +40 -0
  58. package/packages/capability-registry/src/defaults.ts +247 -0
  59. package/packages/capability-registry/src/index.ts +43 -0
  60. package/packages/capability-registry/src/query.ts +99 -0
  61. package/packages/capability-registry/src/registry.ts +222 -0
  62. package/packages/capability-registry/src/types.d.ts +47 -0
  63. package/packages/capability-registry/src/types.js +10 -0
  64. package/packages/capability-registry/src/types.ts +83 -0
  65. package/packages/checkpoint/src/checkpoint-manager.ts +33 -0
  66. package/packages/checkpoint/src/differ.ts +281 -0
  67. package/packages/checkpoint/src/engine.ts +532 -0
  68. package/packages/checkpoint/src/index.ts +48 -0
  69. package/packages/checkpoint/src/storage.ts +439 -0
  70. package/packages/checkpoint/src/types.ts +348 -0
  71. package/packages/cli-plugin-sdk/src/index.ts +169 -0
  72. package/packages/cli-plugin-sdk/src/plugin-fs.ts +91 -0
  73. package/packages/cli-plugin-sdk/src/registry.ts +55 -0
  74. package/packages/cli-plugin-sdk/src/types.ts +32 -0
  75. package/packages/clipboard/dist/src/clipboard.d.ts +11 -0
  76. package/packages/clipboard/dist/src/clipboard.js +51 -0
  77. package/packages/clipboard/dist/src/copy-sync.d.ts +27 -0
  78. package/packages/clipboard/dist/src/copy-sync.js +170 -0
  79. package/packages/clipboard/dist/src/gist-relay.d.ts +48 -0
  80. package/packages/clipboard/dist/src/gist-relay.js +186 -0
  81. package/packages/clipboard/dist/src/github-login.d.ts +16 -0
  82. package/packages/clipboard/dist/src/github-login.js +69 -0
  83. package/packages/clipboard/dist/src/index.d.ts +4 -0
  84. package/packages/clipboard/dist/src/index.js +3 -0
  85. package/packages/clipboard/dist/src/types.d.ts +13 -0
  86. package/packages/clipboard/dist/src/types.js +5 -0
  87. package/packages/clipboard/src/clipboard.ts +59 -0
  88. package/packages/clipboard/src/copy-sync.ts +201 -0
  89. package/packages/clipboard/src/gist-relay.ts +240 -0
  90. package/packages/clipboard/src/github-login.ts +107 -0
  91. package/packages/clipboard/src/index.ts +3 -0
  92. package/packages/clipboard/src/types.ts +14 -0
  93. package/packages/code-generation/src/faker.ts +461 -0
  94. package/packages/code-generation/src/generator.ts +421 -0
  95. package/packages/code-generation/src/index.ts +56 -0
  96. package/packages/code-generation/src/templates/ejs-renderer.ts +142 -0
  97. package/packages/code-generation/src/templates/registry.ts +174 -0
  98. package/packages/code-generation/src/types.ts +373 -0
  99. package/packages/code-review/src/engine.ts +408 -0
  100. package/packages/code-review/src/index.ts +46 -0
  101. package/packages/code-review/src/reports/html.ts +143 -0
  102. package/packages/code-review/src/reports/markdown.ts +197 -0
  103. package/packages/code-review/src/reports/text.ts +171 -0
  104. package/packages/code-review/src/types.ts +324 -0
  105. package/packages/codex-adapter/src/executor.ts +83 -0
  106. package/packages/codex-adapter/src/index.ts +16 -0
  107. package/packages/codex-adapter/src/provider.ts +213 -0
  108. package/packages/codex-adapter/src/types.ts +118 -0
  109. package/packages/config-capture/src/index.ts +357 -0
  110. package/packages/context-compiler/src/budget.ts +122 -0
  111. package/packages/context-compiler/src/cache.ts +134 -0
  112. package/packages/context-compiler/src/compiler.ts +314 -0
  113. package/packages/context-compiler/src/deduplicate.ts +171 -0
  114. package/packages/context-compiler/src/filter.ts +135 -0
  115. package/packages/context-compiler/src/index.ts +61 -0
  116. package/packages/context-compiler/src/okf-loader.ts +86 -0
  117. package/packages/context-compiler/src/score.ts +130 -0
  118. package/packages/context-compiler/src/types.ts +246 -0
  119. package/packages/context-discovery/dist/src/discover.d.ts +3 -0
  120. package/packages/context-discovery/dist/src/discover.js +42 -0
  121. package/packages/context-discovery/dist/src/discovery.d.ts +28 -0
  122. package/packages/context-discovery/dist/src/discovery.js +21 -0
  123. package/packages/context-discovery/dist/src/index.d.ts +3 -0
  124. package/packages/context-discovery/dist/src/index.js +2 -0
  125. package/packages/context-discovery/dist/src/types.d.ts +16 -0
  126. package/packages/context-discovery/dist/src/types.js +2 -0
  127. package/packages/context-discovery/src/discover.ts +42 -0
  128. package/packages/context-discovery/src/discovery.ts +44 -0
  129. package/packages/context-discovery/src/index.ts +2 -0
  130. package/packages/context-discovery/src/types.ts +15 -0
  131. package/packages/context-manager/src/compaction.ts +139 -0
  132. package/packages/context-manager/src/core.ts +85 -0
  133. package/packages/context-manager/src/index.ts +22 -0
  134. package/packages/context-manager/src/types.ts +44 -0
  135. package/packages/cookie-sanitizer/src/atomic-write.ts +79 -0
  136. package/packages/cookie-sanitizer/src/detect-format.ts +102 -0
  137. package/packages/cookie-sanitizer/src/index.ts +89 -0
  138. package/packages/cookie-sanitizer/src/infer-provider.ts +103 -0
  139. package/packages/cookie-sanitizer/src/normalize.ts +92 -0
  140. package/packages/cookie-sanitizer/src/parse-json.ts +122 -0
  141. package/packages/cookie-sanitizer/src/parse-netscape.ts +118 -0
  142. package/packages/cookie-sanitizer/src/sync.ts +312 -0
  143. package/packages/cookie-sanitizer/src/types.ts +101 -0
  144. package/packages/cookie-sanitizer/src/watcher.ts +180 -0
  145. package/packages/cost-optimizer/src/budget.ts +138 -0
  146. package/packages/cost-optimizer/src/config.ts +34 -0
  147. package/packages/cost-optimizer/src/forecast.ts +59 -0
  148. package/packages/cost-optimizer/src/index.ts +74 -0
  149. package/packages/cost-optimizer/src/optimizer.ts +277 -0
  150. package/packages/cost-optimizer/src/selection.ts +264 -0
  151. package/packages/cost-optimizer/src/tracker.ts +122 -0
  152. package/packages/cost-optimizer/src/types.ts +134 -0
  153. package/packages/dependency-analyzer/dist/src/analyzer.d.ts +17 -0
  154. package/packages/dependency-analyzer/dist/src/analyzer.js +119 -0
  155. package/packages/dependency-analyzer/dist/src/imports.d.ts +12 -0
  156. package/packages/dependency-analyzer/dist/src/imports.js +73 -0
  157. package/packages/dependency-analyzer/dist/src/index.d.ts +4 -0
  158. package/packages/dependency-analyzer/dist/src/index.js +3 -0
  159. package/packages/dependency-analyzer/dist/src/types.d.ts +28 -0
  160. package/packages/dependency-analyzer/dist/src/types.js +5 -0
  161. package/packages/dependency-analyzer/src/analyzer.ts +140 -0
  162. package/packages/dependency-analyzer/src/imports.ts +93 -0
  163. package/packages/dependency-analyzer/src/index.ts +9 -0
  164. package/packages/dependency-analyzer/src/types.ts +38 -0
  165. package/packages/django-plugin/src/analyzer.ts +284 -0
  166. package/packages/django-plugin/src/index.ts +39 -0
  167. package/packages/django-plugin/src/types.ts +35 -0
  168. package/packages/doc-generator/src/detector.ts +113 -0
  169. package/packages/doc-generator/src/docs.ts +158 -0
  170. package/packages/doc-generator/src/index.ts +7 -0
  171. package/packages/doc-generator/src/types.ts +58 -0
  172. package/packages/evaluation-engine/src/engine.ts +488 -0
  173. package/packages/evaluation-engine/src/index.ts +23 -0
  174. package/packages/evaluation-engine/src/types.ts +136 -0
  175. package/packages/evaluation-runner/src/index.ts +6 -0
  176. package/packages/evaluation-runner/src/runner.ts +182 -0
  177. package/packages/evaluation-runner/src/types.ts +51 -0
  178. package/packages/event-bus/dist/src/bus.d.ts +15 -0
  179. package/packages/event-bus/dist/src/bus.js +98 -0
  180. package/packages/event-bus/dist/src/herdr-bus.d.ts +121 -0
  181. package/packages/event-bus/dist/src/herdr-bus.js +322 -0
  182. package/packages/event-bus/dist/src/index.d.ts +6 -0
  183. package/packages/event-bus/dist/src/index.js +4 -0
  184. package/packages/event-bus/dist/src/types.d.ts +27 -0
  185. package/packages/event-bus/dist/src/types.js +10 -0
  186. package/packages/event-bus/src/bus.ts +111 -0
  187. package/packages/event-bus/src/herdr-bus.ts +525 -0
  188. package/packages/event-bus/src/index.ts +38 -0
  189. package/packages/event-bus/src/types.ts +59 -0
  190. package/packages/event-store/dist/src/index.d.ts +3 -0
  191. package/packages/event-store/dist/src/index.js +2 -0
  192. package/packages/event-store/dist/src/store.d.ts +15 -0
  193. package/packages/event-store/dist/src/store.js +139 -0
  194. package/packages/event-store/dist/src/types.d.ts +48 -0
  195. package/packages/event-store/dist/src/types.js +5 -0
  196. package/packages/event-store/src/index.ts +11 -0
  197. package/packages/event-store/src/store.ts +168 -0
  198. package/packages/event-store/src/types.d.ts +48 -0
  199. package/packages/event-store/src/types.js +5 -0
  200. package/packages/event-store/src/types.ts +65 -0
  201. package/packages/experience-replay/src/index.ts +19 -0
  202. package/packages/experience-replay/src/replay.ts +348 -0
  203. package/packages/experience-replay/src/types.ts +128 -0
  204. package/packages/feedback-collector/src/collector.ts +160 -0
  205. package/packages/feedback-collector/src/index.ts +6 -0
  206. package/packages/feedback-collector/src/types.ts +51 -0
  207. package/packages/framework-detector/src/detector.ts +586 -0
  208. package/packages/framework-detector/src/index.ts +46 -0
  209. package/packages/framework-detector/src/signatures/registry.ts +648 -0
  210. package/packages/framework-detector/src/types.ts +299 -0
  211. package/packages/framework-plugin-sdk/src/index.ts +45 -0
  212. package/packages/framework-plugin-sdk/src/manager.ts +525 -0
  213. package/packages/framework-plugin-sdk/src/types.ts +449 -0
  214. package/packages/frappe-plugin/src/analyzer.ts +454 -0
  215. package/packages/frappe-plugin/src/index.ts +72 -0
  216. package/packages/frappe-plugin/src/types.ts +135 -0
  217. package/packages/generic-web-plugin/src/analyzer.ts +347 -0
  218. package/packages/generic-web-plugin/src/index.ts +61 -0
  219. package/packages/generic-web-plugin/src/types.ts +41 -0
  220. package/packages/health-monitor/src/index.ts +16 -0
  221. package/packages/health-monitor/src/monitor.ts +216 -0
  222. package/packages/health-monitor/src/types.ts +45 -0
  223. package/packages/intent-analyzer/dist/src/analyzer.d.ts +13 -0
  224. package/packages/intent-analyzer/dist/src/analyzer.js +239 -0
  225. package/packages/intent-analyzer/dist/src/index.d.ts +3 -0
  226. package/packages/intent-analyzer/dist/src/index.js +2 -0
  227. package/packages/intent-analyzer/dist/src/types.d.ts +26 -0
  228. package/packages/intent-analyzer/dist/src/types.js +7 -0
  229. package/packages/intent-analyzer/src/analyzer.ts +259 -0
  230. package/packages/intent-analyzer/src/index.ts +8 -0
  231. package/packages/intent-analyzer/src/types.ts +44 -0
  232. package/packages/knowledge-retrieval/src/index.ts +18 -0
  233. package/packages/knowledge-retrieval/src/mcp-client.ts +212 -0
  234. package/packages/knowledge-retrieval/src/types.ts +112 -0
  235. package/packages/laravel-plugin/src/analyzer.ts +323 -0
  236. package/packages/laravel-plugin/src/index.ts +40 -0
  237. package/packages/laravel-plugin/src/types.ts +24 -0
  238. package/packages/learning-engine/src/engine.ts +391 -0
  239. package/packages/learning-engine/src/index.ts +26 -0
  240. package/packages/learning-engine/src/types.ts +201 -0
  241. package/packages/mcp-adapter/src/index.ts +20 -0
  242. package/packages/mcp-adapter/src/server.ts +273 -0
  243. package/packages/mcp-adapter/src/tools.ts +220 -0
  244. package/packages/mcp-adapter/src/types.ts +79 -0
  245. package/packages/memory-engine/src/engine.ts +615 -0
  246. package/packages/memory-engine/src/index.ts +20 -0
  247. package/packages/memory-engine/src/types.ts +159 -0
  248. package/packages/model-registry/src/cost.ts +80 -0
  249. package/packages/model-registry/src/defaults.ts +178 -0
  250. package/packages/model-registry/src/index.ts +57 -0
  251. package/packages/model-registry/src/query.ts +85 -0
  252. package/packages/model-registry/src/registry.ts +188 -0
  253. package/packages/model-registry/src/types.d.ts +63 -0
  254. package/packages/model-registry/src/types.js +5 -0
  255. package/packages/model-registry/src/types.ts +69 -0
  256. package/packages/nextjs-plugin/src/analyzer.ts +247 -0
  257. package/packages/nextjs-plugin/src/index.ts +41 -0
  258. package/packages/nextjs-plugin/src/types.ts +36 -0
  259. package/packages/notification/src/adapters/email-adapter.ts +126 -0
  260. package/packages/notification/src/adapters/ntfy-adapter.ts +100 -0
  261. package/packages/notification/src/adapters/telegram-adapter.ts +107 -0
  262. package/packages/notification/src/adapters/webhook-adapter.ts +75 -0
  263. package/packages/notification/src/base-adapter.ts +75 -0
  264. package/packages/notification/src/index.ts +9 -0
  265. package/packages/notification/src/notification-center.ts +286 -0
  266. package/packages/notification/src/types.ts +89 -0
  267. package/packages/observability/src/alerts.ts +355 -0
  268. package/packages/observability/src/health.ts +325 -0
  269. package/packages/observability/src/index.ts +79 -0
  270. package/packages/observability/src/logger.ts +373 -0
  271. package/packages/observability/src/metrics.ts +475 -0
  272. package/packages/observability/src/tracer.ts +336 -0
  273. package/packages/observability/src/types.ts +391 -0
  274. package/packages/okf-indexer/src/cli.ts +25 -0
  275. package/packages/okf-indexer/src/indexer.ts +186 -0
  276. package/packages/performance-optimizer/src/index.ts +20 -0
  277. package/packages/performance-optimizer/src/optimizer.ts +428 -0
  278. package/packages/performance-optimizer/src/types.ts +112 -0
  279. package/packages/privilege-broker/src/approval.ts +70 -0
  280. package/packages/privilege-broker/src/audit.ts +142 -0
  281. package/packages/privilege-broker/src/executor.ts +110 -0
  282. package/packages/privilege-broker/src/index.ts +46 -0
  283. package/packages/privilege-broker/src/registry.ts +98 -0
  284. package/packages/privilege-broker/src/types.ts +105 -0
  285. package/packages/project-analyzer/src/analyzer.ts +683 -0
  286. package/packages/project-analyzer/src/cache.ts +329 -0
  287. package/packages/project-analyzer/src/command-discovery.ts +239 -0
  288. package/packages/project-analyzer/src/index.ts +123 -0
  289. package/packages/project-analyzer/src/plugins/index.ts +16 -0
  290. package/packages/project-analyzer/src/rule-discovery.ts +282 -0
  291. package/packages/project-analyzer/src/signals.ts +355 -0
  292. package/packages/project-analyzer/src/types.ts +412 -0
  293. package/packages/project-analyzer/src/walker.ts +366 -0
  294. package/packages/projection-engine/dist/src/engine.d.ts +61 -0
  295. package/packages/projection-engine/dist/src/engine.js +87 -0
  296. package/packages/projection-engine/dist/src/index.d.ts +2 -0
  297. package/packages/projection-engine/dist/src/index.js +2 -0
  298. package/packages/projection-engine/dist/src/project.d.ts +3 -0
  299. package/packages/projection-engine/dist/src/project.js +24 -0
  300. package/packages/projection-engine/dist/src/types.d.ts +55 -0
  301. package/packages/projection-engine/dist/src/types.js +5 -0
  302. package/packages/projection-engine/src/engine.ts +134 -0
  303. package/packages/projection-engine/src/index.ts +8 -0
  304. package/packages/projection-engine/src/project.ts +24 -0
  305. package/packages/projection-engine/src/types.d.ts +55 -0
  306. package/packages/projection-engine/src/types.js +5 -0
  307. package/packages/projection-engine/src/types.ts +60 -0
  308. package/packages/prompt-compiler/src/budget.ts +170 -0
  309. package/packages/prompt-compiler/src/compiler.ts +188 -0
  310. package/packages/prompt-compiler/src/deduplicate.ts +84 -0
  311. package/packages/prompt-compiler/src/index.ts +50 -0
  312. package/packages/prompt-compiler/src/normalize.ts +140 -0
  313. package/packages/prompt-compiler/src/render.ts +105 -0
  314. package/packages/prompt-compiler/src/section-builder.ts +279 -0
  315. package/packages/prompt-compiler/src/types.ts +263 -0
  316. package/packages/prompt-compiler/src/validate.ts +157 -0
  317. package/packages/prompt-versioning/src/index.ts +6 -0
  318. package/packages/prompt-versioning/src/types.ts +41 -0
  319. package/packages/prompt-versioning/src/versioning.ts +149 -0
  320. package/packages/provider-adapter-sdk/dist/src/builder.d.ts +140 -0
  321. package/packages/provider-adapter-sdk/dist/src/builder.js +332 -0
  322. package/packages/provider-adapter-sdk/dist/src/errors.d.ts +71 -0
  323. package/packages/provider-adapter-sdk/dist/src/errors.js +111 -0
  324. package/packages/provider-adapter-sdk/dist/src/index.d.ts +15 -0
  325. package/packages/provider-adapter-sdk/dist/src/index.js +19 -0
  326. package/packages/provider-adapter-sdk/dist/src/registry.d.ts +108 -0
  327. package/packages/provider-adapter-sdk/dist/src/registry.js +301 -0
  328. package/packages/provider-adapter-sdk/dist/src/tester.d.ts +71 -0
  329. package/packages/provider-adapter-sdk/dist/src/tester.js +392 -0
  330. package/packages/provider-adapter-sdk/dist/src/types.d.ts +182 -0
  331. package/packages/provider-adapter-sdk/dist/src/types.js +11 -0
  332. package/packages/provider-adapter-sdk/src/builder.ts +442 -0
  333. package/packages/provider-adapter-sdk/src/errors.ts +153 -0
  334. package/packages/provider-adapter-sdk/src/index.ts +84 -0
  335. package/packages/provider-adapter-sdk/src/registry.ts +486 -0
  336. package/packages/provider-adapter-sdk/src/tester.ts +483 -0
  337. package/packages/provider-adapter-sdk/src/types.ts +293 -0
  338. package/packages/provider-router/dist/capability-registry/src/types.d.ts +47 -0
  339. package/packages/provider-router/dist/capability-registry/src/types.js +10 -0
  340. package/packages/provider-router/dist/provider-router/src/index.d.ts +23 -0
  341. package/packages/provider-router/dist/provider-router/src/index.js +25 -0
  342. package/packages/provider-router/dist/provider-router/src/policy.d.ts +10 -0
  343. package/packages/provider-router/dist/provider-router/src/policy.js +45 -0
  344. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts +56 -0
  345. package/packages/provider-router/dist/provider-router/src/provider-router.js +222 -0
  346. package/packages/provider-router/dist/provider-router/src/strategies.d.ts +19 -0
  347. package/packages/provider-router/dist/provider-router/src/strategies.js +110 -0
  348. package/packages/provider-router/dist/provider-router/src/types.d.ts +91 -0
  349. package/packages/provider-router/dist/provider-router/src/types.js +10 -0
  350. package/packages/provider-router/dist/src/index.d.ts +23 -0
  351. package/packages/provider-router/dist/src/index.js +25 -0
  352. package/packages/provider-router/dist/src/policy.d.ts +10 -0
  353. package/packages/provider-router/dist/src/policy.js +45 -0
  354. package/packages/provider-router/dist/src/provider-router.d.ts +56 -0
  355. package/packages/provider-router/dist/src/provider-router.js +222 -0
  356. package/packages/provider-router/dist/src/strategies.d.ts +19 -0
  357. package/packages/provider-router/dist/src/strategies.js +110 -0
  358. package/packages/provider-router/dist/src/types.d.ts +91 -0
  359. package/packages/provider-router/dist/src/types.js +10 -0
  360. package/packages/provider-router/dist/types/src/runtime-types.d.ts +412 -0
  361. package/packages/provider-router/dist/types/src/runtime-types.js +2 -0
  362. package/packages/provider-router/src/index.ts +49 -0
  363. package/packages/provider-router/src/policy.ts +50 -0
  364. package/packages/provider-router/src/provider-router.ts +315 -0
  365. package/packages/provider-router/src/strategies.ts +158 -0
  366. package/packages/provider-router/src/types.ts +130 -0
  367. package/packages/provider-selector/src/index.ts +13 -0
  368. package/packages/provider-selector/src/selector.ts +120 -0
  369. package/packages/provider-selector/src/types.ts +33 -0
  370. package/packages/providers/dist/src/adapters.d.ts +133 -0
  371. package/packages/providers/dist/src/adapters.js +236 -0
  372. package/packages/providers/dist/src/deepagents-adapter.d.ts +78 -0
  373. package/packages/providers/dist/src/deepagents-adapter.js +323 -0
  374. package/packages/providers/dist/src/glm-usage.d.ts +102 -0
  375. package/packages/providers/dist/src/glm-usage.js +197 -0
  376. package/packages/providers/dist/src/index.d.ts +11 -0
  377. package/packages/providers/dist/src/index.js +11 -0
  378. package/packages/providers/dist/src/openai-usage.d.ts +103 -0
  379. package/packages/providers/dist/src/openai-usage.js +208 -0
  380. package/packages/providers/dist/src/provider-id.d.ts +46 -0
  381. package/packages/providers/dist/src/provider-id.js +113 -0
  382. package/packages/providers/src/adapters.ts +362 -0
  383. package/packages/providers/src/deepagents-adapter.ts +458 -0
  384. package/packages/providers/src/glm-usage.ts +248 -0
  385. package/packages/providers/src/index.ts +11 -0
  386. package/packages/providers/src/openai-usage.ts +263 -0
  387. package/packages/providers/src/provider-id.ts +129 -0
  388. package/packages/quota-manager/dist/src/examples/tui-usage-integration.d.ts +35 -0
  389. package/packages/quota-manager/dist/src/examples/tui-usage-integration.js +73 -0
  390. package/packages/quota-manager/dist/src/index.d.ts +8 -0
  391. package/packages/quota-manager/dist/src/index.js +8 -0
  392. package/packages/quota-manager/dist/src/quota-manager.d.ts +70 -0
  393. package/packages/quota-manager/dist/src/quota-manager.js +260 -0
  394. package/packages/quota-manager/dist/src/tui-usage-monitor.d.ts +96 -0
  395. package/packages/quota-manager/dist/src/tui-usage-monitor.js +268 -0
  396. package/packages/quota-manager/src/examples/tui-usage-integration.ts +72 -0
  397. package/packages/quota-manager/src/index.ts +8 -0
  398. package/packages/quota-manager/src/quota-manager.ts +336 -0
  399. package/packages/quota-manager/src/tui-usage-monitor.ts +355 -0
  400. package/packages/rate-limiter/src/index.ts +6 -0
  401. package/packages/rate-limiter/src/limiter.ts +122 -0
  402. package/packages/rate-limiter/src/types.ts +41 -0
  403. package/packages/react-vite-plugin/src/analyzer.ts +226 -0
  404. package/packages/react-vite-plugin/src/index.ts +39 -0
  405. package/packages/react-vite-plugin/src/types.ts +28 -0
  406. package/packages/release-manager/src/changelog.ts +148 -0
  407. package/packages/release-manager/src/index.ts +21 -0
  408. package/packages/release-manager/src/types.ts +50 -0
  409. package/packages/release-manager/src/version.ts +52 -0
  410. package/packages/requirement-compiler/src/ambiguity-detector.ts +302 -0
  411. package/packages/requirement-compiler/src/classifier.ts +145 -0
  412. package/packages/requirement-compiler/src/compiler.ts +328 -0
  413. package/packages/requirement-compiler/src/extractor.ts +155 -0
  414. package/packages/requirement-compiler/src/index.ts +36 -0
  415. package/packages/requirement-compiler/src/normalizer.ts +161 -0
  416. package/packages/requirement-compiler/src/risk-detector.ts +58 -0
  417. package/packages/requirement-compiler/src/types.ts +596 -0
  418. package/packages/runtime/dist/src/command-executor.d.ts +129 -0
  419. package/packages/runtime/dist/src/command-executor.js +383 -0
  420. package/packages/runtime/dist/src/index.d.ts +11 -0
  421. package/packages/runtime/dist/src/index.js +11 -0
  422. package/packages/runtime/dist/src/local-runtime-agent.d.ts +111 -0
  423. package/packages/runtime/dist/src/local-runtime-agent.js +356 -0
  424. package/packages/runtime/dist/src/policy-engine.d.ts +203 -0
  425. package/packages/runtime/dist/src/policy-engine.js +592 -0
  426. package/packages/runtime/dist/src/runtime-api.d.ts +137 -0
  427. package/packages/runtime/dist/src/runtime-api.js +454 -0
  428. package/packages/runtime/dist/src/workspace-manager.d.ts +162 -0
  429. package/packages/runtime/dist/src/workspace-manager.js +451 -0
  430. package/packages/runtime/src/command-executor.ts +523 -0
  431. package/packages/runtime/src/index.ts +11 -0
  432. package/packages/runtime/src/local-runtime-agent.ts +480 -0
  433. package/packages/runtime/src/policy-engine.ts +813 -0
  434. package/packages/runtime/src/runtime-api.ts +665 -0
  435. package/packages/runtime/src/workspace-manager.ts +591 -0
  436. package/packages/scheduler/src/scheduler.ts +50 -0
  437. package/packages/scheduler-adapter/src/cron.ts +123 -0
  438. package/packages/scheduler-adapter/src/index.ts +9 -0
  439. package/packages/scheduler-adapter/src/interface.ts +61 -0
  440. package/packages/scheduler-adapter/src/internal.ts +99 -0
  441. package/packages/scheduler-adapter/src/systemd.ts +221 -0
  442. package/packages/session/src/history.ts +353 -0
  443. package/packages/session/src/index.ts +53 -0
  444. package/packages/session/src/manager.ts +481 -0
  445. package/packages/session/src/policy.ts +363 -0
  446. package/packages/session/src/store.ts +348 -0
  447. package/packages/session/src/types.ts +275 -0
  448. package/packages/session-api/dist/src/api.d.ts +83 -0
  449. package/packages/session-api/dist/src/api.js +49 -0
  450. package/packages/session-api/dist/src/index.d.ts +2 -0
  451. package/packages/session-api/dist/src/index.js +2 -0
  452. package/packages/session-api/dist/src/types.d.ts +22 -0
  453. package/packages/session-api/dist/src/types.js +5 -0
  454. package/packages/session-api/src/api.ts +117 -0
  455. package/packages/session-api/src/index.ts +1 -0
  456. package/packages/session-api/src/types.ts +23 -0
  457. package/packages/session-export/dist/src/exporter.d.ts +28 -0
  458. package/packages/session-export/dist/src/exporter.js +42 -0
  459. package/packages/session-export/dist/src/index.d.ts +2 -0
  460. package/packages/session-export/dist/src/index.js +2 -0
  461. package/packages/session-export/dist/src/types.d.ts +20 -0
  462. package/packages/session-export/dist/src/types.js +5 -0
  463. package/packages/session-export/src/exporter.ts +81 -0
  464. package/packages/session-export/src/index.ts +1 -0
  465. package/packages/session-export/src/types.ts +22 -0
  466. package/packages/shared-context/src/index.ts +7 -0
  467. package/packages/shared-context/src/shared-context.ts +42 -0
  468. package/packages/skill-registry/src/defaults.ts +146 -0
  469. package/packages/skill-registry/src/index.ts +48 -0
  470. package/packages/skill-registry/src/matching.ts +118 -0
  471. package/packages/skill-registry/src/registry.ts +211 -0
  472. package/packages/skill-registry/src/types.ts +97 -0
  473. package/packages/sprint-planner/src/decomposer.ts +57 -0
  474. package/packages/sprint-planner/src/index.ts +16 -0
  475. package/packages/sprint-planner/src/planner.ts +150 -0
  476. package/packages/sprint-planner/src/types.ts +59 -0
  477. package/packages/subscription-engine/dist/src/engine.d.ts +13 -0
  478. package/packages/subscription-engine/dist/src/engine.js +40 -0
  479. package/packages/subscription-engine/dist/src/index.d.ts +2 -0
  480. package/packages/subscription-engine/dist/src/index.js +2 -0
  481. package/packages/subscription-engine/dist/src/subscriptions.d.ts +19 -0
  482. package/packages/subscription-engine/dist/src/subscriptions.js +39 -0
  483. package/packages/subscription-engine/dist/src/types.d.ts +24 -0
  484. package/packages/subscription-engine/dist/src/types.js +5 -0
  485. package/packages/subscription-engine/src/engine.ts +55 -0
  486. package/packages/subscription-engine/src/index.ts +6 -0
  487. package/packages/subscription-engine/src/subscriptions.ts +55 -0
  488. package/packages/subscription-engine/src/types.ts +27 -0
  489. package/packages/task-compiler/src/command-policy.ts +193 -0
  490. package/packages/task-compiler/src/compiler.ts +114 -0
  491. package/packages/task-compiler/src/decompose.ts +265 -0
  492. package/packages/task-compiler/src/file-scope.ts +240 -0
  493. package/packages/task-compiler/src/graph.ts +144 -0
  494. package/packages/task-compiler/src/index.ts +38 -0
  495. package/packages/task-compiler/src/types.ts +225 -0
  496. package/packages/task-compiler/src/validate.ts +218 -0
  497. package/packages/task-compiler/src/verification.ts +248 -0
  498. package/packages/tencentdb-memory/src/client.ts +130 -0
  499. package/packages/tencentdb-memory/src/index.ts +32 -0
  500. package/packages/tencentdb-memory/src/loader.ts +150 -0
  501. package/packages/tencentdb-memory/src/mcp-tools.ts +213 -0
  502. package/packages/tencentdb-memory/src/types.ts +101 -0
  503. package/packages/tencentdb-sync/src/cli.ts +363 -0
  504. package/packages/tencentdb-sync/src/client.ts +268 -0
  505. package/packages/tencentdb-sync/src/config.ts +139 -0
  506. package/packages/tencentdb-sync/src/index.ts +15 -0
  507. package/packages/test-data-generator/src/faker-adapter.ts +657 -0
  508. package/packages/test-data-generator/src/generator.ts +461 -0
  509. package/packages/test-data-generator/src/index.ts +48 -0
  510. package/packages/test-data-generator/src/types.ts +421 -0
  511. package/packages/test-generator/src/generator.ts +144 -0
  512. package/packages/test-generator/src/index.ts +11 -0
  513. package/packages/test-generator/src/types.ts +39 -0
  514. package/packages/todo-bd-sync/src/detector.ts +171 -0
  515. package/packages/todo-bd-sync/src/extension.ts +129 -0
  516. package/packages/todo-bd-sync/src/index.ts +401 -0
  517. package/packages/todo-bd-sync/src/sync.ts +322 -0
  518. package/packages/todo-bd-sync/src/task-analyzer.ts +314 -0
  519. package/packages/todo-bd-sync/src/todo-reminder.ts +418 -0
  520. package/packages/todo-bd-sync/src/types.ts +137 -0
  521. package/packages/token-estimation/src/index.ts +192 -0
  522. package/packages/token-optimizer/src/index.ts +15 -0
  523. package/packages/token-optimizer/src/optimizer.ts +150 -0
  524. package/packages/token-optimizer/src/types.ts +47 -0
  525. package/packages/types/src/agent-worker-types.d.ts +206 -0
  526. package/packages/types/src/agent-worker-types.js +41 -0
  527. package/packages/types/src/agent-worker-types.ts +264 -0
  528. package/packages/types/src/ai-providers.d.ts +36 -0
  529. package/packages/types/src/ai-providers.js +66 -0
  530. package/packages/types/src/ai-providers.ts +73 -0
  531. package/packages/types/src/runtime-types.d.ts +418 -0
  532. package/packages/types/src/runtime-types.js +3 -0
  533. package/packages/types/src/runtime-types.ts +588 -0
  534. package/packages/workflow-events/dist/src/events.d.ts +38 -0
  535. package/packages/workflow-events/dist/src/events.js +55 -0
  536. package/packages/workflow-events/dist/src/index.d.ts +2 -0
  537. package/packages/workflow-events/dist/src/index.js +2 -0
  538. package/packages/workflow-events/dist/src/pipeline.d.ts +21 -0
  539. package/packages/workflow-events/dist/src/pipeline.js +36 -0
  540. package/packages/workflow-events/dist/src/types.d.ts +110 -0
  541. package/packages/workflow-events/dist/src/types.js +5 -0
  542. package/packages/workflow-events/src/events.ts +86 -0
  543. package/packages/workflow-events/src/index.ts +19 -0
  544. package/packages/workflow-events/src/pipeline.ts +41 -0
  545. package/packages/workflow-events/src/types.d.ts +110 -0
  546. package/packages/workflow-events/src/types.js +5 -0
  547. package/packages/workflow-events/src/types.ts +139 -0
  548. package/packages/workspace-scanner/dist/src/detect.d.ts +3 -0
  549. package/packages/workspace-scanner/dist/src/detect.js +60 -0
  550. package/packages/workspace-scanner/dist/src/git.d.ts +7 -0
  551. package/packages/workspace-scanner/dist/src/git.js +75 -0
  552. package/packages/workspace-scanner/dist/src/index.d.ts +5 -0
  553. package/packages/workspace-scanner/dist/src/index.js +4 -0
  554. package/packages/workspace-scanner/dist/src/scanner.d.ts +11 -0
  555. package/packages/workspace-scanner/dist/src/scanner.js +59 -0
  556. package/packages/workspace-scanner/dist/src/types.d.ts +35 -0
  557. package/packages/workspace-scanner/dist/src/types.js +5 -0
  558. package/packages/workspace-scanner/src/detect.ts +77 -0
  559. package/packages/workspace-scanner/src/git.ts +83 -0
  560. package/packages/workspace-scanner/src/index.ts +9 -0
  561. package/packages/workspace-scanner/src/scanner.ts +73 -0
  562. package/packages/workspace-scanner/src/types.ts +48 -0
  563. package/packages/worktree/dist/src/index.d.ts +7 -0
  564. package/packages/worktree/dist/src/index.js +7 -0
  565. package/packages/worktree/dist/src/worktree.d.ts +88 -0
  566. package/packages/worktree/dist/src/worktree.js +239 -0
  567. package/packages/worktree/src/index.ts +7 -0
  568. package/packages/worktree/src/worktree.ts +290 -0
  569. package/packages/write-review/src/blackboard.ts +249 -0
  570. package/packages/write-review/src/gate.ts +169 -0
  571. package/packages/write-review/src/index.ts +18 -0
  572. package/packages/write-review/src/injection.ts +170 -0
  573. package/packages/write-review/src/review.ts +206 -0
  574. package/packages/write-review/src/trigger.ts +133 -0
  575. package/packages/write-review/src/types.ts +90 -0
  576. package/proactive-compact.ts +90 -0
  577. package/prompts/tencentdb-connect.md +35 -0
  578. package/prompts/tencentdb-setup.md +101 -0
  579. package/prompts/tencentdb.md +88 -0
  580. package/renderer.ts +205 -0
  581. package/skills/harness-runtime/SKILL.md +237 -0
  582. package/status-parsers.ts +84 -0
  583. package/tracker.ts +72 -0
  584. package/windows.ts +121 -0
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Provider Adapter SDK - Builder
3
+ *
4
+ * Fluent API for creating provider adapters.
5
+ */
6
+ import type { ProviderCapability, ProviderRequest } from "../../types/src/runtime-types.js";
7
+ import type { AdapterResult, AdapterBuilderConfig, ErrorAnalysis, HealthCheckResult, InvokeFunction, ErrorParserFunction, HealthCheckFunction, RateLimitConfig } from "./types.js";
8
+ /**
9
+ * Builder class for creating provider adapters
10
+ */
11
+ export declare class AdapterBuilder {
12
+ private _id;
13
+ private _name;
14
+ private _models;
15
+ private _capabilities;
16
+ private _rateLimits;
17
+ private _defaultModel;
18
+ private _maxTokens;
19
+ private _invokeFn;
20
+ private _errorParserFn;
21
+ private _healthCheckFn;
22
+ constructor(name?: string);
23
+ /**
24
+ * Set the adapter ID
25
+ */
26
+ id(id: string): AdapterBuilder;
27
+ /**
28
+ * Set the adapter name
29
+ */
30
+ name(name: string): AdapterBuilder;
31
+ /**
32
+ * Set supported models
33
+ */
34
+ models(...models: string[]): AdapterBuilder;
35
+ /**
36
+ * Set default model (if different from first model)
37
+ */
38
+ defaultModel(model: string): AdapterBuilder;
39
+ /**
40
+ * Set capabilities
41
+ */
42
+ capabilities(...capabilities: ProviderCapability[]): AdapterBuilder;
43
+ /**
44
+ * Set rate limits
45
+ */
46
+ rateLimits(limits: RateLimitConfig): AdapterBuilder;
47
+ /**
48
+ * Set token limits per model
49
+ */
50
+ maxTokens(model: string, tokens: number): AdapterBuilder;
51
+ /**
52
+ * Set the invoke function (required)
53
+ */
54
+ invoke(fn: InvokeFunction): AdapterBuilder;
55
+ /**
56
+ * Set custom error parser
57
+ */
58
+ parseError(fn: ErrorParserFunction): AdapterBuilder;
59
+ /**
60
+ * Set health check function
61
+ */
62
+ healthCheck(fn: HealthCheckFunction): AdapterBuilder;
63
+ /**
64
+ * Validate and build the adapter
65
+ */
66
+ build(): BuiltAdapter;
67
+ }
68
+ /**
69
+ * Configuration for BuiltAdapter
70
+ */
71
+ interface BuiltAdapterConfig {
72
+ id: string;
73
+ name: string;
74
+ models: string[];
75
+ capabilities: ProviderCapability[];
76
+ rateLimits: RateLimitConfig;
77
+ defaultModel: string;
78
+ maxTokens: Record<string, number>;
79
+ invokeFn: InvokeFunction;
80
+ errorParserFn: ErrorParserFunction;
81
+ healthCheckFn?: HealthCheckFunction;
82
+ }
83
+ /**
84
+ * Built adapter instance
85
+ */
86
+ export declare class BuiltAdapter {
87
+ readonly id: string;
88
+ readonly name: string;
89
+ private readonly _models;
90
+ private readonly _capabilities;
91
+ private readonly _rateLimits;
92
+ private readonly _defaultModel;
93
+ private readonly _maxTokens;
94
+ private readonly _invokeFn;
95
+ private readonly _errorParserFn;
96
+ private readonly _healthCheckFn?;
97
+ constructor(config: BuiltAdapterConfig);
98
+ /**
99
+ * Get supported models
100
+ */
101
+ getModels(): string[];
102
+ /**
103
+ * Get capabilities
104
+ */
105
+ getCapabilities(): ProviderCapability[];
106
+ /**
107
+ * Get rate limits
108
+ */
109
+ getRateLimits(): RateLimitConfig;
110
+ /**
111
+ * Check if model is supported
112
+ */
113
+ supportsModel(model: string): boolean;
114
+ /**
115
+ * Get default model
116
+ */
117
+ getDefaultModel(): string;
118
+ /**
119
+ * Get max tokens for a model
120
+ */
121
+ getMaxTokens(model?: string): number;
122
+ /**
123
+ * Invoke the adapter
124
+ */
125
+ invoke(request: ProviderRequest): Promise<AdapterResult>;
126
+ /**
127
+ * Parse an error
128
+ */
129
+ parseError(error: unknown): ErrorAnalysis;
130
+ /**
131
+ * Health check
132
+ */
133
+ healthCheck(): Promise<HealthCheckResult>;
134
+ /**
135
+ * Convert to adapter info for registry
136
+ */
137
+ toConfig(): AdapterBuilderConfig;
138
+ }
139
+ export {};
140
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1,332 @@
1
+ /**
2
+ * Provider Adapter SDK - Builder
3
+ *
4
+ * Fluent API for creating provider adapters.
5
+ */
6
+ import { BuilderValidationError } from "./errors.js";
7
+ /**
8
+ * Token limits for common model families
9
+ */
10
+ const DEFAULT_TOKEN_LIMITS = {
11
+ // MiniMax
12
+ "minimax/MiniMax-M3": 32768,
13
+ "minimax/MiniMax-Text-01": 1000000,
14
+ // Anthropic
15
+ "anthropic/claude-3-5-sonnet": 200000,
16
+ "anthropic/claude-3-5-haiku": 200000,
17
+ "anthropic/claude-3-opus": 200000,
18
+ "anthropic/claude-3-sonnet": 200000,
19
+ "anthropic/claude-3-haiku": 200000,
20
+ "anthropic/claude-2.1": 200000,
21
+ "anthropic/claude-2": 100000,
22
+ "anthropic/claude-instant": 100000,
23
+ // OpenAI
24
+ "openai/gpt-4o": 128000,
25
+ "openai/gpt-4-turbo": 128000,
26
+ "openai/gpt-4": 128000,
27
+ "openai/gpt-3.5-turbo": 16385,
28
+ // Google
29
+ "google/gemini-1.5-pro": 128000,
30
+ "google/gemini-1.5-flash": 128000,
31
+ // Default
32
+ default: 4096,
33
+ };
34
+ /**
35
+ * Default error parser for unknown providers
36
+ */
37
+ const defaultErrorParser = (error) => {
38
+ const e = error;
39
+ const msg = String(e.message ?? e.error ?? "").toLowerCase();
40
+ const code = String(e.code ?? "");
41
+ return {
42
+ quotaExceeded: code === "insufficient_quota" ||
43
+ code === "context_length_exceeded" ||
44
+ msg.includes("quota"),
45
+ rateLimited: code === "rate_limit_exceeded" ||
46
+ msg.includes("429") ||
47
+ msg.includes("rate limit"),
48
+ timeout: msg.includes("timeout") || msg.includes("timed out"),
49
+ serverError: code.startsWith("5") || msg.includes("500"),
50
+ clientError: code.startsWith("4") && !code.startsWith("429"),
51
+ message: String(e.message ?? e.error ?? "Unknown error"),
52
+ code,
53
+ };
54
+ };
55
+ /**
56
+ * Builder class for creating provider adapters
57
+ */
58
+ export class AdapterBuilder {
59
+ _id;
60
+ _name;
61
+ _models = [];
62
+ _capabilities = [];
63
+ _rateLimits = {};
64
+ _defaultModel;
65
+ _maxTokens = {};
66
+ _invokeFn;
67
+ _errorParserFn = defaultErrorParser;
68
+ _healthCheckFn;
69
+ constructor(name) {
70
+ if (name) {
71
+ this._name = name;
72
+ }
73
+ }
74
+ /**
75
+ * Set the adapter ID
76
+ */
77
+ id(id) {
78
+ if (!id || id.trim() === "") {
79
+ throw new BuilderValidationError("Adapter ID cannot be empty", "id");
80
+ }
81
+ this._id = id.toLowerCase();
82
+ return this;
83
+ }
84
+ /**
85
+ * Set the adapter name
86
+ */
87
+ name(name) {
88
+ if (!name || name.trim() === "") {
89
+ throw new BuilderValidationError("Adapter name cannot be empty", "name");
90
+ }
91
+ this._name = name;
92
+ return this;
93
+ }
94
+ /**
95
+ * Set supported models
96
+ */
97
+ models(...models) {
98
+ if (models.length === 0) {
99
+ throw new BuilderValidationError("At least one model must be specified", "models");
100
+ }
101
+ this._models = models;
102
+ if (!this._defaultModel) {
103
+ this._defaultModel = models[0];
104
+ }
105
+ return this;
106
+ }
107
+ /**
108
+ * Set default model (if different from first model)
109
+ */
110
+ defaultModel(model) {
111
+ if (!this._models.includes(model)) {
112
+ throw new BuilderValidationError(`Default model '${model}' must be in the models list`, "defaultModel");
113
+ }
114
+ this._defaultModel = model;
115
+ return this;
116
+ }
117
+ /**
118
+ * Set capabilities
119
+ */
120
+ capabilities(...capabilities) {
121
+ this._capabilities = capabilities;
122
+ return this;
123
+ }
124
+ /**
125
+ * Set rate limits
126
+ */
127
+ rateLimits(limits) {
128
+ this._rateLimits = limits;
129
+ return this;
130
+ }
131
+ /**
132
+ * Set token limits per model
133
+ */
134
+ maxTokens(model, tokens) {
135
+ this._maxTokens[model] = tokens;
136
+ return this;
137
+ }
138
+ /**
139
+ * Set the invoke function (required)
140
+ */
141
+ invoke(fn) {
142
+ if (typeof fn !== "function") {
143
+ throw new BuilderValidationError("Invoke must be a function", "invoke");
144
+ }
145
+ this._invokeFn = fn;
146
+ return this;
147
+ }
148
+ /**
149
+ * Set custom error parser
150
+ */
151
+ parseError(fn) {
152
+ if (typeof fn !== "function") {
153
+ throw new BuilderValidationError("parseError must be a function", "parseError");
154
+ }
155
+ this._errorParserFn = fn;
156
+ return this;
157
+ }
158
+ /**
159
+ * Set health check function
160
+ */
161
+ healthCheck(fn) {
162
+ if (typeof fn !== "function") {
163
+ throw new BuilderValidationError("healthCheck must be a function", "healthCheck");
164
+ }
165
+ this._healthCheckFn = fn;
166
+ return this;
167
+ }
168
+ /**
169
+ * Validate and build the adapter
170
+ */
171
+ build() {
172
+ // Validate required fields
173
+ if (!this._id) {
174
+ throw new BuilderValidationError("Adapter ID is required", "id");
175
+ }
176
+ if (!this._name) {
177
+ throw new BuilderValidationError("Adapter name is required", "name");
178
+ }
179
+ if (!this._invokeFn) {
180
+ throw new BuilderValidationError("Invoke function is required", "invoke");
181
+ }
182
+ return new BuiltAdapter({
183
+ id: this._id,
184
+ name: this._name,
185
+ models: this._models,
186
+ capabilities: this._capabilities,
187
+ rateLimits: this._rateLimits,
188
+ defaultModel: this._defaultModel ?? this._models[0],
189
+ maxTokens: { ...DEFAULT_TOKEN_LIMITS, ...this._maxTokens },
190
+ invokeFn: this._invokeFn,
191
+ errorParserFn: this._errorParserFn,
192
+ healthCheckFn: this._healthCheckFn,
193
+ });
194
+ }
195
+ }
196
+ /**
197
+ * Built adapter instance
198
+ */
199
+ export class BuiltAdapter {
200
+ id;
201
+ name;
202
+ _models;
203
+ _capabilities;
204
+ _rateLimits;
205
+ _defaultModel;
206
+ _maxTokens;
207
+ _invokeFn;
208
+ _errorParserFn;
209
+ _healthCheckFn;
210
+ constructor(config) {
211
+ this.id = config.id;
212
+ this.name = config.name;
213
+ this._models = config.models;
214
+ this._capabilities = config.capabilities;
215
+ this._rateLimits = config.rateLimits;
216
+ this._defaultModel = config.defaultModel;
217
+ this._maxTokens = config.maxTokens;
218
+ this._invokeFn = config.invokeFn;
219
+ this._errorParserFn = config.errorParserFn;
220
+ this._healthCheckFn = config.healthCheckFn;
221
+ }
222
+ /**
223
+ * Get supported models
224
+ */
225
+ getModels() {
226
+ return [...this._models];
227
+ }
228
+ /**
229
+ * Get capabilities
230
+ */
231
+ getCapabilities() {
232
+ return [...this._capabilities];
233
+ }
234
+ /**
235
+ * Get rate limits
236
+ */
237
+ getRateLimits() {
238
+ return { ...this._rateLimits };
239
+ }
240
+ /**
241
+ * Check if model is supported
242
+ */
243
+ supportsModel(model) {
244
+ return this._models.some((m) => m.toLowerCase() === model.toLowerCase());
245
+ }
246
+ /**
247
+ * Get default model
248
+ */
249
+ getDefaultModel() {
250
+ return this._defaultModel;
251
+ }
252
+ /**
253
+ * Get max tokens for a model
254
+ */
255
+ getMaxTokens(model) {
256
+ const modelToCheck = model ?? this._defaultModel;
257
+ // Try exact match first
258
+ if (this._maxTokens[modelToCheck]) {
259
+ return this._maxTokens[modelToCheck];
260
+ }
261
+ // Try to find a prefix match
262
+ for (const [key, value] of Object.entries(this._maxTokens)) {
263
+ if (modelToCheck?.toLowerCase().startsWith(key.toLowerCase())) {
264
+ return value;
265
+ }
266
+ }
267
+ return this._maxTokens.default ?? 4096;
268
+ }
269
+ /**
270
+ * Invoke the adapter
271
+ */
272
+ async invoke(request) {
273
+ const start = Date.now();
274
+ try {
275
+ const response = await this._invokeFn(request);
276
+ return {
277
+ response,
278
+ retryable: false,
279
+ latencyMs: Date.now() - start,
280
+ };
281
+ }
282
+ catch (error) {
283
+ const errorAnalysis = this._errorParserFn(error);
284
+ const latencyMs = Date.now() - start;
285
+ return {
286
+ response: {
287
+ content: "",
288
+ error: errorAnalysis.message,
289
+ },
290
+ quotaSignal: errorAnalysis.quotaSignal,
291
+ retryable: errorAnalysis.rateLimited ||
292
+ errorAnalysis.serverError ||
293
+ errorAnalysis.timeout,
294
+ latencyMs,
295
+ };
296
+ }
297
+ }
298
+ /**
299
+ * Parse an error
300
+ */
301
+ parseError(error) {
302
+ return this._errorParserFn(error);
303
+ }
304
+ /**
305
+ * Health check
306
+ */
307
+ async healthCheck() {
308
+ if (this._healthCheckFn) {
309
+ return this._healthCheckFn();
310
+ }
311
+ // Default health check - just return healthy
312
+ return {
313
+ healthy: true,
314
+ timestamp: new Date().toISOString(),
315
+ };
316
+ }
317
+ /**
318
+ * Convert to adapter info for registry
319
+ */
320
+ toConfig() {
321
+ return {
322
+ id: this.id,
323
+ name: this.name,
324
+ models: this._models,
325
+ capabilities: this._capabilities,
326
+ rateLimits: this._rateLimits,
327
+ defaultModel: this._defaultModel,
328
+ maxTokens: this._maxTokens,
329
+ };
330
+ }
331
+ }
332
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Provider Adapter SDK - Errors
3
+ *
4
+ * Custom error classes for the adapter SDK.
5
+ */
6
+ /**
7
+ * Base error for adapter SDK
8
+ */
9
+ export declare class AdapterError extends Error {
10
+ readonly code: string;
11
+ readonly details?: Record<string, unknown> | undefined;
12
+ constructor(message: string, code: string, details?: Record<string, unknown> | undefined);
13
+ }
14
+ /**
15
+ * Thrown when an adapter is not found in registry
16
+ */
17
+ export declare class AdapterNotFoundError extends AdapterError {
18
+ constructor(adapterId: string);
19
+ }
20
+ /**
21
+ * Thrown when an adapter is already registered
22
+ */
23
+ export declare class AdapterAlreadyRegisteredError extends AdapterError {
24
+ constructor(adapterId: string);
25
+ }
26
+ /**
27
+ * Thrown when adapter invocation fails
28
+ */
29
+ export declare class AdapterInvocationError extends AdapterError {
30
+ readonly adapterId: string;
31
+ readonly retryable: boolean;
32
+ readonly originalError?: unknown;
33
+ constructor(message: string, adapterId: string, retryable: boolean, originalError?: unknown);
34
+ }
35
+ /**
36
+ * Thrown when a model is not supported
37
+ */
38
+ export declare class ModelNotSupportedError extends AdapterError {
39
+ constructor(model: string, adapterId: string, supportedModels: string[]);
40
+ }
41
+ /**
42
+ * Thrown when adapter is not in expected state
43
+ */
44
+ export declare class AdapterStateError extends AdapterError {
45
+ constructor(adapterId: string, expectedState: string, actualState: string);
46
+ }
47
+ /**
48
+ * Thrown when compatibility check fails
49
+ */
50
+ export declare class CompatibilityError extends AdapterError {
51
+ constructor(adapterId: string, issues: string[], sdkVersion: string, runtimeVersion?: string);
52
+ }
53
+ /**
54
+ * Thrown when test fails
55
+ */
56
+ export declare class TestFailureError extends AdapterError {
57
+ constructor(adapterId: string, testName: string, message: string, error?: unknown);
58
+ }
59
+ /**
60
+ * Thrown when builder validation fails
61
+ */
62
+ export declare class BuilderValidationError extends AdapterError {
63
+ constructor(message: string, field: string);
64
+ }
65
+ /**
66
+ * Thrown when lifecycle hook fails
67
+ */
68
+ export declare class LifecycleError extends AdapterError {
69
+ constructor(hook: string, adapterId: string, originalError: unknown);
70
+ }
71
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Provider Adapter SDK - Errors
3
+ *
4
+ * Custom error classes for the adapter SDK.
5
+ */
6
+ /**
7
+ * Base error for adapter SDK
8
+ */
9
+ export class AdapterError extends Error {
10
+ code;
11
+ details;
12
+ constructor(message, code, details) {
13
+ super(message);
14
+ this.code = code;
15
+ this.details = details;
16
+ this.name = "AdapterError";
17
+ }
18
+ }
19
+ /**
20
+ * Thrown when an adapter is not found in registry
21
+ */
22
+ export class AdapterNotFoundError extends AdapterError {
23
+ constructor(adapterId) {
24
+ super(`Adapter '${adapterId}' not found in registry`, "ADAPTER_NOT_FOUND", {
25
+ adapterId,
26
+ });
27
+ this.name = "AdapterNotFoundError";
28
+ }
29
+ }
30
+ /**
31
+ * Thrown when an adapter is already registered
32
+ */
33
+ export class AdapterAlreadyRegisteredError extends AdapterError {
34
+ constructor(adapterId) {
35
+ super(`Adapter '${adapterId}' is already registered`, "ADAPTER_ALREADY_REGISTERED", { adapterId });
36
+ this.name = "AdapterAlreadyRegisteredError";
37
+ }
38
+ }
39
+ /**
40
+ * Thrown when adapter invocation fails
41
+ */
42
+ export class AdapterInvocationError extends AdapterError {
43
+ adapterId;
44
+ retryable;
45
+ originalError;
46
+ constructor(message, adapterId, retryable, originalError) {
47
+ super(message, "ADAPTER_INVOCATION_ERROR", {
48
+ adapterId,
49
+ retryable,
50
+ });
51
+ this.adapterId = adapterId;
52
+ this.retryable = retryable;
53
+ this.originalError = originalError;
54
+ this.name = "AdapterInvocationError";
55
+ }
56
+ }
57
+ /**
58
+ * Thrown when a model is not supported
59
+ */
60
+ export class ModelNotSupportedError extends AdapterError {
61
+ constructor(model, adapterId, supportedModels) {
62
+ super(`Model '${model}' is not supported by adapter '${adapterId}'`, "MODEL_NOT_SUPPORTED", { model, adapterId, supportedModels });
63
+ this.name = "ModelNotSupportedError";
64
+ }
65
+ }
66
+ /**
67
+ * Thrown when adapter is not in expected state
68
+ */
69
+ export class AdapterStateError extends AdapterError {
70
+ constructor(adapterId, expectedState, actualState) {
71
+ super(`Adapter '${adapterId}' is in state '${actualState}', expected '${expectedState}'`, "ADAPTER_STATE_ERROR", { adapterId, expectedState, actualState });
72
+ this.name = "AdapterStateError";
73
+ }
74
+ }
75
+ /**
76
+ * Thrown when compatibility check fails
77
+ */
78
+ export class CompatibilityError extends AdapterError {
79
+ constructor(adapterId, issues, sdkVersion, runtimeVersion) {
80
+ super(`Adapter '${adapterId}' is not compatible: ${issues.join(", ")}`, "COMPATIBILITY_ERROR", { adapterId, issues, sdkVersion, runtimeVersion });
81
+ this.name = "CompatibilityError";
82
+ }
83
+ }
84
+ /**
85
+ * Thrown when test fails
86
+ */
87
+ export class TestFailureError extends AdapterError {
88
+ constructor(adapterId, testName, message, error) {
89
+ super(`Test '${testName}' failed for adapter '${adapterId}': ${message}`, "TEST_FAILURE", { adapterId, testName, originalError: error });
90
+ this.name = "TestFailureError";
91
+ }
92
+ }
93
+ /**
94
+ * Thrown when builder validation fails
95
+ */
96
+ export class BuilderValidationError extends AdapterError {
97
+ constructor(message, field) {
98
+ super(message, "BUILDER_VALIDATION_ERROR", { field });
99
+ this.name = "BuilderValidationError";
100
+ }
101
+ }
102
+ /**
103
+ * Thrown when lifecycle hook fails
104
+ */
105
+ export class LifecycleError extends AdapterError {
106
+ constructor(hook, adapterId, originalError) {
107
+ super(`Lifecycle hook '${hook}' failed for adapter '${adapterId}'`, "LIFECYCLE_ERROR", { hook, adapterId, originalError });
108
+ this.name = "LifecycleError";
109
+ }
110
+ }
111
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Provider Adapter SDK
3
+ *
4
+ * A comprehensive SDK for building, testing, and registering provider adapters.
5
+ */
6
+ export { AdapterBuilder, BuiltAdapter } from "./builder.js";
7
+ export { AdapterRegistry, type RegistryConfig } from "./registry.js";
8
+ export { AdapterTester, assertTestResults, } from "./tester.js";
9
+ export type { AdapterVersion, AdapterResult, ErrorAnalysis, QuotaSignal, RateLimitConfig, AdapterBuilderConfig, InvokeFunction, ErrorParserFunction, HealthCheckFunction, HealthCheckResult, AdapterInfo, AdapterLifecycle, AdapterState, CompatibilityResult, TestConfig, TestResult, TestReport, MockResponse, RegistryEvents, ProviderCapability, ProviderRequest, ProviderResponse, } from "./types.js";
10
+ export { AdapterError, AdapterNotFoundError, AdapterAlreadyRegisteredError, AdapterInvocationError, ModelNotSupportedError, AdapterStateError, CompatibilityError, TestFailureError, BuilderValidationError, LifecycleError, } from "./errors.js";
11
+ /**
12
+ * SDK version
13
+ */
14
+ export { SDK_VERSION, SDK_VERSION as ADAPTER_SDK_VERSION } from "./types.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Provider Adapter SDK
3
+ *
4
+ * A comprehensive SDK for building, testing, and registering provider adapters.
5
+ */
6
+ // ─── Builder ────────────────────────────────────────────────────────────────
7
+ export { AdapterBuilder, BuiltAdapter } from "./builder.js";
8
+ // ─── Registry ────────────────────────────────────────────────────────────────
9
+ export { AdapterRegistry } from "./registry.js";
10
+ // ─── Tester ─────────────────────────────────────────────────────────────────
11
+ export { AdapterTester, assertTestResults, } from "./tester.js";
12
+ // ─── Errors ─────────────────────────────────────────────────────────────────
13
+ export { AdapterError, AdapterNotFoundError, AdapterAlreadyRegisteredError, AdapterInvocationError, ModelNotSupportedError, AdapterStateError, CompatibilityError, TestFailureError, BuilderValidationError, LifecycleError, } from "./errors.js";
14
+ // ─── Constants ───────────────────────────────────────────────────────────────
15
+ /**
16
+ * SDK version
17
+ */
18
+ export { SDK_VERSION, SDK_VERSION as ADAPTER_SDK_VERSION } from "./types.js";
19
+ //# sourceMappingURL=index.js.map