@roj-ai/sdk 0.0.2

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 (763) hide show
  1. package/dist/bootstrap.d.ts +453 -0
  2. package/dist/bootstrap.d.ts.map +1 -0
  3. package/dist/builtin-events.d.ts +16 -0
  4. package/dist/builtin-events.d.ts.map +1 -0
  5. package/dist/bun-platform/fs.d.ts +9 -0
  6. package/dist/bun-platform/fs.d.ts.map +1 -0
  7. package/dist/bun-platform/index.d.ts +12 -0
  8. package/dist/bun-platform/index.d.ts.map +1 -0
  9. package/dist/bun-platform/process.d.ts +6 -0
  10. package/dist/bun-platform/process.d.ts.map +1 -0
  11. package/dist/config.d.ts +38 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.test.d.ts +2 -0
  14. package/dist/config.test.d.ts.map +1 -0
  15. package/dist/core/agent-loop.integration.test.d.ts +2 -0
  16. package/dist/core/agent-loop.integration.test.d.ts.map +1 -0
  17. package/dist/core/agents/agent-config.test.d.ts +2 -0
  18. package/dist/core/agents/agent-config.test.d.ts.map +1 -0
  19. package/dist/core/agents/agent-roles.d.ts +33 -0
  20. package/dist/core/agents/agent-roles.d.ts.map +1 -0
  21. package/dist/core/agents/agent-shutdown.test.d.ts +6 -0
  22. package/dist/core/agents/agent-shutdown.test.d.ts.map +1 -0
  23. package/dist/core/agents/agent.d.ts +234 -0
  24. package/dist/core/agents/agent.d.ts.map +1 -0
  25. package/dist/core/agents/agent.test.d.ts +2 -0
  26. package/dist/core/agents/agent.test.d.ts.map +1 -0
  27. package/dist/core/agents/communicator.d.ts +3 -0
  28. package/dist/core/agents/communicator.d.ts.map +1 -0
  29. package/dist/core/agents/config.d.ts +84 -0
  30. package/dist/core/agents/config.d.ts.map +1 -0
  31. package/dist/core/agents/context.d.ts +16 -0
  32. package/dist/core/agents/context.d.ts.map +1 -0
  33. package/dist/core/agents/debounce.d.ts +52 -0
  34. package/dist/core/agents/debounce.d.ts.map +1 -0
  35. package/dist/core/agents/handler-events.test.d.ts +5 -0
  36. package/dist/core/agents/handler-events.test.d.ts.map +1 -0
  37. package/dist/core/agents/index.d.ts +2 -0
  38. package/dist/core/agents/index.d.ts.map +1 -0
  39. package/dist/core/agents/response-sanitizer.d.ts +25 -0
  40. package/dist/core/agents/response-sanitizer.d.ts.map +1 -0
  41. package/dist/core/agents/response-sanitizer.test.d.ts +2 -0
  42. package/dist/core/agents/response-sanitizer.test.d.ts.map +1 -0
  43. package/dist/core/agents/retry.d.ts +40 -0
  44. package/dist/core/agents/retry.d.ts.map +1 -0
  45. package/dist/core/agents/schema.d.ts +57 -0
  46. package/dist/core/agents/schema.d.ts.map +1 -0
  47. package/dist/core/agents/state.d.ts +255 -0
  48. package/dist/core/agents/state.d.ts.map +1 -0
  49. package/dist/core/context/state.d.ts +28 -0
  50. package/dist/core/context/state.d.ts.map +1 -0
  51. package/dist/core/errors.d.ts +29 -0
  52. package/dist/core/errors.d.ts.map +1 -0
  53. package/dist/core/event-sourcing.integration.test.d.ts +2 -0
  54. package/dist/core/event-sourcing.integration.test.d.ts.map +1 -0
  55. package/dist/core/events/base-event-store.d.ts +55 -0
  56. package/dist/core/events/base-event-store.d.ts.map +1 -0
  57. package/dist/core/events/event-store.d.ts +108 -0
  58. package/dist/core/events/event-store.d.ts.map +1 -0
  59. package/dist/core/events/file.d.ts +50 -0
  60. package/dist/core/events/file.d.ts.map +1 -0
  61. package/dist/core/events/file.test.d.ts +2 -0
  62. package/dist/core/events/file.test.d.ts.map +1 -0
  63. package/dist/core/events/index.d.ts +4 -0
  64. package/dist/core/events/index.d.ts.map +1 -0
  65. package/dist/core/events/memory.d.ts +43 -0
  66. package/dist/core/events/memory.d.ts.map +1 -0
  67. package/dist/core/events/memory.test.d.ts +2 -0
  68. package/dist/core/events/memory.test.d.ts.map +1 -0
  69. package/dist/core/events/metadata-utils.d.ts +27 -0
  70. package/dist/core/events/metadata-utils.d.ts.map +1 -0
  71. package/dist/core/events/test-helpers.d.ts +28 -0
  72. package/dist/core/events/test-helpers.d.ts.map +1 -0
  73. package/dist/core/events/types.d.ts +46 -0
  74. package/dist/core/events/types.d.ts.map +1 -0
  75. package/dist/core/file-store/file-store.d.ts +56 -0
  76. package/dist/core/file-store/file-store.d.ts.map +1 -0
  77. package/dist/core/file-store/types.d.ts +50 -0
  78. package/dist/core/file-store/types.d.ts.map +1 -0
  79. package/dist/core/image/image-processor.d.ts +15 -0
  80. package/dist/core/image/image-processor.d.ts.map +1 -0
  81. package/dist/core/image/image-processor.test.d.ts +2 -0
  82. package/dist/core/image/image-processor.test.d.ts.map +1 -0
  83. package/dist/core/image/index.d.ts +5 -0
  84. package/dist/core/image/index.d.ts.map +1 -0
  85. package/dist/core/image/noop-resizer.d.ts +5 -0
  86. package/dist/core/image/noop-resizer.d.ts.map +1 -0
  87. package/dist/core/image/types.d.ts +20 -0
  88. package/dist/core/image/types.d.ts.map +1 -0
  89. package/dist/core/image/vips-resizer.d.ts +21 -0
  90. package/dist/core/image/vips-resizer.d.ts.map +1 -0
  91. package/dist/core/image/vips-resizer.test.d.ts +2 -0
  92. package/dist/core/image/vips-resizer.test.d.ts.map +1 -0
  93. package/dist/core/llm/anthropic.d.ts +51 -0
  94. package/dist/core/llm/anthropic.d.ts.map +1 -0
  95. package/dist/core/llm/anthropic.test.d.ts +2 -0
  96. package/dist/core/llm/anthropic.test.d.ts.map +1 -0
  97. package/dist/core/llm/cache-breakpoints.d.ts +17 -0
  98. package/dist/core/llm/cache-breakpoints.d.ts.map +1 -0
  99. package/dist/core/llm/cache-live.test.d.ts +16 -0
  100. package/dist/core/llm/cache-live.test.d.ts.map +1 -0
  101. package/dist/core/llm/index.d.ts +16 -0
  102. package/dist/core/llm/index.d.ts.map +1 -0
  103. package/dist/core/llm/llm-log-types.d.ts +148 -0
  104. package/dist/core/llm/llm-log-types.d.ts.map +1 -0
  105. package/dist/core/llm/logger.d.ts +74 -0
  106. package/dist/core/llm/logger.d.ts.map +1 -0
  107. package/dist/core/llm/logger.test.d.ts +7 -0
  108. package/dist/core/llm/logger.test.d.ts.map +1 -0
  109. package/dist/core/llm/logging-provider.d.ts +20 -0
  110. package/dist/core/llm/logging-provider.d.ts.map +1 -0
  111. package/dist/core/llm/middleware.d.ts +79 -0
  112. package/dist/core/llm/middleware.d.ts.map +1 -0
  113. package/dist/core/llm/mock.d.ts +79 -0
  114. package/dist/core/llm/mock.d.ts.map +1 -0
  115. package/dist/core/llm/mock.test.d.ts +2 -0
  116. package/dist/core/llm/mock.test.d.ts.map +1 -0
  117. package/dist/core/llm/openrouter-mapping.test.d.ts +2 -0
  118. package/dist/core/llm/openrouter-mapping.test.d.ts.map +1 -0
  119. package/dist/core/llm/openrouter.d.ts +37 -0
  120. package/dist/core/llm/openrouter.d.ts.map +1 -0
  121. package/dist/core/llm/openrouter.test.d.ts +2 -0
  122. package/dist/core/llm/openrouter.test.d.ts.map +1 -0
  123. package/dist/core/llm/provider-integration.test.d.ts +12 -0
  124. package/dist/core/llm/provider-integration.test.d.ts.map +1 -0
  125. package/dist/core/llm/provider.d.ts +175 -0
  126. package/dist/core/llm/provider.d.ts.map +1 -0
  127. package/dist/core/llm/routing-provider.d.ts +31 -0
  128. package/dist/core/llm/routing-provider.d.ts.map +1 -0
  129. package/dist/core/llm/routing-provider.test.d.ts +2 -0
  130. package/dist/core/llm/routing-provider.test.d.ts.map +1 -0
  131. package/dist/core/llm/schema.d.ts +24 -0
  132. package/dist/core/llm/schema.d.ts.map +1 -0
  133. package/dist/core/llm/snapshot-fetch.d.ts +21 -0
  134. package/dist/core/llm/snapshot-fetch.d.ts.map +1 -0
  135. package/dist/core/llm/snapshot-middleware.d.ts +71 -0
  136. package/dist/core/llm/snapshot-middleware.d.ts.map +1 -0
  137. package/dist/core/llm/snapshot-middleware.test.d.ts +2 -0
  138. package/dist/core/llm/snapshot-middleware.test.d.ts.map +1 -0
  139. package/dist/core/llm/state.d.ts +73 -0
  140. package/dist/core/llm/state.d.ts.map +1 -0
  141. package/dist/core/llm/tokens.d.ts +36 -0
  142. package/dist/core/llm/tokens.d.ts.map +1 -0
  143. package/dist/core/multi-agent.integration.test.d.ts +2 -0
  144. package/dist/core/multi-agent.integration.test.d.ts.map +1 -0
  145. package/dist/core/plugin-hooks.integration.test.d.ts +2 -0
  146. package/dist/core/plugin-hooks.integration.test.d.ts.map +1 -0
  147. package/dist/core/plugins/hook-types.d.ts +55 -0
  148. package/dist/core/plugins/hook-types.d.ts.map +1 -0
  149. package/dist/core/plugins/index.d.ts +23 -0
  150. package/dist/core/plugins/index.d.ts.map +1 -0
  151. package/dist/core/plugins/plugin-builder.d.ts +474 -0
  152. package/dist/core/plugins/plugin-builder.d.ts.map +1 -0
  153. package/dist/core/preset/config.d.ts +55 -0
  154. package/dist/core/preset/config.d.ts.map +1 -0
  155. package/dist/core/preset/index.d.ts +8 -0
  156. package/dist/core/preset/index.d.ts.map +1 -0
  157. package/dist/core/preset/preset-builder.d.ts +44 -0
  158. package/dist/core/preset/preset-builder.d.ts.map +1 -0
  159. package/dist/core/session-lifecycle.integration.test.d.ts +2 -0
  160. package/dist/core/session-lifecycle.integration.test.d.ts.map +1 -0
  161. package/dist/core/sessions/apply-event.d.ts +19 -0
  162. package/dist/core/sessions/apply-event.d.ts.map +1 -0
  163. package/dist/core/sessions/context.d.ts +34 -0
  164. package/dist/core/sessions/context.d.ts.map +1 -0
  165. package/dist/core/sessions/fork-utils.d.ts +20 -0
  166. package/dist/core/sessions/fork-utils.d.ts.map +1 -0
  167. package/dist/core/sessions/fork-utils.test.d.ts +2 -0
  168. package/dist/core/sessions/fork-utils.test.d.ts.map +1 -0
  169. package/dist/core/sessions/reducer.d.ts +50 -0
  170. package/dist/core/sessions/reducer.d.ts.map +1 -0
  171. package/dist/core/sessions/schema.d.ts +82 -0
  172. package/dist/core/sessions/schema.d.ts.map +1 -0
  173. package/dist/core/sessions/session-environment.d.ts +13 -0
  174. package/dist/core/sessions/session-environment.d.ts.map +1 -0
  175. package/dist/core/sessions/session-manager.d.ts +183 -0
  176. package/dist/core/sessions/session-manager.d.ts.map +1 -0
  177. package/dist/core/sessions/session-store.d.ts +69 -0
  178. package/dist/core/sessions/session-store.d.ts.map +1 -0
  179. package/dist/core/sessions/session.d.ts +212 -0
  180. package/dist/core/sessions/session.d.ts.map +1 -0
  181. package/dist/core/sessions/session.test.d.ts +2 -0
  182. package/dist/core/sessions/session.test.d.ts.map +1 -0
  183. package/dist/core/sessions/state.d.ts +110 -0
  184. package/dist/core/sessions/state.d.ts.map +1 -0
  185. package/dist/core/system.d.ts +97 -0
  186. package/dist/core/system.d.ts.map +1 -0
  187. package/dist/core/tools/context.d.ts +3 -0
  188. package/dist/core/tools/context.d.ts.map +1 -0
  189. package/dist/core/tools/definition.d.ts +10 -0
  190. package/dist/core/tools/definition.d.ts.map +1 -0
  191. package/dist/core/tools/executor.d.ts +28 -0
  192. package/dist/core/tools/executor.d.ts.map +1 -0
  193. package/dist/core/tools/executor.test.d.ts +2 -0
  194. package/dist/core/tools/executor.test.d.ts.map +1 -0
  195. package/dist/core/tools/index.d.ts +4 -0
  196. package/dist/core/tools/index.d.ts.map +1 -0
  197. package/dist/core/tools/schema.d.ts +61 -0
  198. package/dist/core/tools/schema.d.ts.map +1 -0
  199. package/dist/core/tools/state.d.ts +28 -0
  200. package/dist/core/tools/state.d.ts.map +1 -0
  201. package/dist/index.d.ts +111 -0
  202. package/dist/index.d.ts.map +1 -0
  203. package/dist/lib/json/index.d.ts +17 -0
  204. package/dist/lib/json/index.d.ts.map +1 -0
  205. package/dist/lib/logger/console.d.ts +35 -0
  206. package/dist/lib/logger/console.d.ts.map +1 -0
  207. package/dist/lib/logger/console.test.d.ts +2 -0
  208. package/dist/lib/logger/console.test.d.ts.map +1 -0
  209. package/dist/lib/logger/file.d.ts +20 -0
  210. package/dist/lib/logger/file.d.ts.map +1 -0
  211. package/dist/lib/logger/index.d.ts +5 -0
  212. package/dist/lib/logger/index.d.ts.map +1 -0
  213. package/dist/lib/logger/logger.d.ts +87 -0
  214. package/dist/lib/logger/logger.d.ts.map +1 -0
  215. package/dist/lib/logger/ring-buffer.d.ts +33 -0
  216. package/dist/lib/logger/ring-buffer.d.ts.map +1 -0
  217. package/dist/lib/logger/tee.d.ts +15 -0
  218. package/dist/lib/logger/tee.d.ts.map +1 -0
  219. package/dist/lib/mime.d.ts +9 -0
  220. package/dist/lib/mime.d.ts.map +1 -0
  221. package/dist/lib/never.d.ts +2 -0
  222. package/dist/lib/never.d.ts.map +1 -0
  223. package/dist/lib/utils/hash.d.ts +19 -0
  224. package/dist/lib/utils/hash.d.ts.map +1 -0
  225. package/dist/lib/utils/result.d.ts +26 -0
  226. package/dist/lib/utils/result.d.ts.map +1 -0
  227. package/dist/platform/fs.d.ts +39 -0
  228. package/dist/platform/fs.d.ts.map +1 -0
  229. package/dist/platform/index.d.ts +21 -0
  230. package/dist/platform/index.d.ts.map +1 -0
  231. package/dist/platform/process.d.ts +24 -0
  232. package/dist/platform/process.d.ts.map +1 -0
  233. package/dist/plugins/agent-status/plugin.d.ts +8 -0
  234. package/dist/plugins/agent-status/plugin.d.ts.map +1 -0
  235. package/dist/plugins/agents/agents.integration.test.d.ts +2 -0
  236. package/dist/plugins/agents/agents.integration.test.d.ts.map +1 -0
  237. package/dist/plugins/agents/index.d.ts +3 -0
  238. package/dist/plugins/agents/index.d.ts.map +1 -0
  239. package/dist/plugins/agents/plugin.d.ts +57 -0
  240. package/dist/plugins/agents/plugin.d.ts.map +1 -0
  241. package/dist/plugins/context-compact/context-compact.integration.test.d.ts +2 -0
  242. package/dist/plugins/context-compact/context-compact.integration.test.d.ts.map +1 -0
  243. package/dist/plugins/context-compact/context-compactor.d.ts +88 -0
  244. package/dist/plugins/context-compact/context-compactor.d.ts.map +1 -0
  245. package/dist/plugins/context-compact/context-compactor.test.d.ts +2 -0
  246. package/dist/plugins/context-compact/context-compactor.test.d.ts.map +1 -0
  247. package/dist/plugins/context-compact/history-offloader.d.ts +17 -0
  248. package/dist/plugins/context-compact/history-offloader.d.ts.map +1 -0
  249. package/dist/plugins/context-compact/history-offloader.test.d.ts +2 -0
  250. package/dist/plugins/context-compact/history-offloader.test.d.ts.map +1 -0
  251. package/dist/plugins/context-compact/index.d.ts +4 -0
  252. package/dist/plugins/context-compact/index.d.ts.map +1 -0
  253. package/dist/plugins/context-compact/plugin.d.ts +15 -0
  254. package/dist/plugins/context-compact/plugin.d.ts.map +1 -0
  255. package/dist/plugins/filesystem/filesystem.integration.test.d.ts +2 -0
  256. package/dist/plugins/filesystem/filesystem.integration.test.d.ts.map +1 -0
  257. package/dist/plugins/filesystem/helpers.d.ts +34 -0
  258. package/dist/plugins/filesystem/helpers.d.ts.map +1 -0
  259. package/dist/plugins/filesystem/index.d.ts +5 -0
  260. package/dist/plugins/filesystem/index.d.ts.map +1 -0
  261. package/dist/plugins/filesystem/listing.d.ts +38 -0
  262. package/dist/plugins/filesystem/listing.d.ts.map +1 -0
  263. package/dist/plugins/filesystem/plugin.d.ts +53 -0
  264. package/dist/plugins/filesystem/plugin.d.ts.map +1 -0
  265. package/dist/plugins/filesystem/schema.d.ts +7 -0
  266. package/dist/plugins/filesystem/schema.d.ts.map +1 -0
  267. package/dist/plugins/git-status/index.d.ts +2 -0
  268. package/dist/plugins/git-status/index.d.ts.map +1 -0
  269. package/dist/plugins/git-status/plugin.d.ts +12 -0
  270. package/dist/plugins/git-status/plugin.d.ts.map +1 -0
  271. package/dist/plugins/limits-guard/config.d.ts +23 -0
  272. package/dist/plugins/limits-guard/config.d.ts.map +1 -0
  273. package/dist/plugins/limits-guard/index.d.ts +5 -0
  274. package/dist/plugins/limits-guard/index.d.ts.map +1 -0
  275. package/dist/plugins/limits-guard/limit-guard.d.ts +40 -0
  276. package/dist/plugins/limits-guard/limit-guard.d.ts.map +1 -0
  277. package/dist/plugins/limits-guard/limit-guard.test.d.ts +2 -0
  278. package/dist/plugins/limits-guard/limit-guard.test.d.ts.map +1 -0
  279. package/dist/plugins/limits-guard/limits-guard.integration.test.d.ts +2 -0
  280. package/dist/plugins/limits-guard/limits-guard.integration.test.d.ts.map +1 -0
  281. package/dist/plugins/limits-guard/plugin.d.ts +39 -0
  282. package/dist/plugins/limits-guard/plugin.d.ts.map +1 -0
  283. package/dist/plugins/llm-debug/index.d.ts +2 -0
  284. package/dist/plugins/llm-debug/index.d.ts.map +1 -0
  285. package/dist/plugins/llm-debug/llm-debug.integration.test.d.ts +2 -0
  286. package/dist/plugins/llm-debug/llm-debug.integration.test.d.ts.map +1 -0
  287. package/dist/plugins/llm-debug/plugin.d.ts +31 -0
  288. package/dist/plugins/llm-debug/plugin.d.ts.map +1 -0
  289. package/dist/plugins/logs/index.d.ts +2 -0
  290. package/dist/plugins/logs/index.d.ts.map +1 -0
  291. package/dist/plugins/logs/plugin.d.ts +10 -0
  292. package/dist/plugins/logs/plugin.d.ts.map +1 -0
  293. package/dist/plugins/mailbox/helpers.d.ts +20 -0
  294. package/dist/plugins/mailbox/helpers.d.ts.map +1 -0
  295. package/dist/plugins/mailbox/index.d.ts +9 -0
  296. package/dist/plugins/mailbox/index.d.ts.map +1 -0
  297. package/dist/plugins/mailbox/mailbox.integration.test.d.ts +2 -0
  298. package/dist/plugins/mailbox/mailbox.integration.test.d.ts.map +1 -0
  299. package/dist/plugins/mailbox/plugin.d.ts +31 -0
  300. package/dist/plugins/mailbox/plugin.d.ts.map +1 -0
  301. package/dist/plugins/mailbox/prompts.d.ts +21 -0
  302. package/dist/plugins/mailbox/prompts.d.ts.map +1 -0
  303. package/dist/plugins/mailbox/query.d.ts +33 -0
  304. package/dist/plugins/mailbox/query.d.ts.map +1 -0
  305. package/dist/plugins/mailbox/schema.d.ts +54 -0
  306. package/dist/plugins/mailbox/schema.d.ts.map +1 -0
  307. package/dist/plugins/mailbox/state.d.ts +40 -0
  308. package/dist/plugins/mailbox/state.d.ts.map +1 -0
  309. package/dist/plugins/resources/index.d.ts +7 -0
  310. package/dist/plugins/resources/index.d.ts.map +1 -0
  311. package/dist/plugins/resources/manifest.d.ts +23 -0
  312. package/dist/plugins/resources/manifest.d.ts.map +1 -0
  313. package/dist/plugins/resources/plugin.d.ts +28 -0
  314. package/dist/plugins/resources/plugin.d.ts.map +1 -0
  315. package/dist/plugins/resources/post-inject.d.ts +39 -0
  316. package/dist/plugins/resources/post-inject.d.ts.map +1 -0
  317. package/dist/plugins/resources/state.d.ts +25 -0
  318. package/dist/plugins/resources/state.d.ts.map +1 -0
  319. package/dist/plugins/result-eviction/index.d.ts +3 -0
  320. package/dist/plugins/result-eviction/index.d.ts.map +1 -0
  321. package/dist/plugins/result-eviction/plugin.d.ts +19 -0
  322. package/dist/plugins/result-eviction/plugin.d.ts.map +1 -0
  323. package/dist/plugins/result-eviction/result-eviction.integration.test.d.ts +2 -0
  324. package/dist/plugins/result-eviction/result-eviction.integration.test.d.ts.map +1 -0
  325. package/dist/plugins/services/plugin.d.ts +85 -0
  326. package/dist/plugins/services/plugin.d.ts.map +1 -0
  327. package/dist/plugins/services/port-pool.d.ts +32 -0
  328. package/dist/plugins/services/port-pool.d.ts.map +1 -0
  329. package/dist/plugins/services/prompt.d.ts +13 -0
  330. package/dist/plugins/services/prompt.d.ts.map +1 -0
  331. package/dist/plugins/services/schema.d.ts +70 -0
  332. package/dist/plugins/services/schema.d.ts.map +1 -0
  333. package/dist/plugins/services/service.d.ts +86 -0
  334. package/dist/plugins/services/service.d.ts.map +1 -0
  335. package/dist/plugins/services/services.integration.test.d.ts +2 -0
  336. package/dist/plugins/services/services.integration.test.d.ts.map +1 -0
  337. package/dist/plugins/session-lifecycle/index.d.ts +2 -0
  338. package/dist/plugins/session-lifecycle/index.d.ts.map +1 -0
  339. package/dist/plugins/session-lifecycle/plugin.d.ts +97 -0
  340. package/dist/plugins/session-lifecycle/plugin.d.ts.map +1 -0
  341. package/dist/plugins/session-lifecycle/session-lifecycle.integration.test.d.ts +2 -0
  342. package/dist/plugins/session-lifecycle/session-lifecycle.integration.test.d.ts.map +1 -0
  343. package/dist/plugins/session-state/plugin.d.ts +48 -0
  344. package/dist/plugins/session-state/plugin.d.ts.map +1 -0
  345. package/dist/plugins/session-stats/index.d.ts +4 -0
  346. package/dist/plugins/session-stats/index.d.ts.map +1 -0
  347. package/dist/plugins/session-stats/plugin.d.ts +29 -0
  348. package/dist/plugins/session-stats/plugin.d.ts.map +1 -0
  349. package/dist/plugins/shell/executor.d.ts +78 -0
  350. package/dist/plugins/shell/executor.d.ts.map +1 -0
  351. package/dist/plugins/shell/index.d.ts +6 -0
  352. package/dist/plugins/shell/index.d.ts.map +1 -0
  353. package/dist/plugins/shell/plugin.d.ts +51 -0
  354. package/dist/plugins/shell/plugin.d.ts.map +1 -0
  355. package/dist/plugins/shell/shell.integration.test.d.ts +2 -0
  356. package/dist/plugins/shell/shell.integration.test.d.ts.map +1 -0
  357. package/dist/plugins/shell/shell.test.d.ts +2 -0
  358. package/dist/plugins/shell/shell.test.d.ts.map +1 -0
  359. package/dist/plugins/skills/discovery.d.ts +69 -0
  360. package/dist/plugins/skills/discovery.d.ts.map +1 -0
  361. package/dist/plugins/skills/discovery.test.d.ts +2 -0
  362. package/dist/plugins/skills/discovery.test.d.ts.map +1 -0
  363. package/dist/plugins/skills/index.d.ts +11 -0
  364. package/dist/plugins/skills/index.d.ts.map +1 -0
  365. package/dist/plugins/skills/plugin.d.ts +94 -0
  366. package/dist/plugins/skills/plugin.d.ts.map +1 -0
  367. package/dist/plugins/skills/prompts.d.ts +29 -0
  368. package/dist/plugins/skills/prompts.d.ts.map +1 -0
  369. package/dist/plugins/skills/schema.d.ts +64 -0
  370. package/dist/plugins/skills/schema.d.ts.map +1 -0
  371. package/dist/plugins/skills/skills.integration.test.d.ts +2 -0
  372. package/dist/plugins/skills/skills.integration.test.d.ts.map +1 -0
  373. package/dist/plugins/snapshotting/index.d.ts +4 -0
  374. package/dist/plugins/snapshotting/index.d.ts.map +1 -0
  375. package/dist/plugins/snapshotting/jj-snapshotter.d.ts +27 -0
  376. package/dist/plugins/snapshotting/jj-snapshotter.d.ts.map +1 -0
  377. package/dist/plugins/snapshotting/plugin.d.ts +15 -0
  378. package/dist/plugins/snapshotting/plugin.d.ts.map +1 -0
  379. package/dist/plugins/snapshotting/snapshotter.d.ts +19 -0
  380. package/dist/plugins/snapshotting/snapshotter.d.ts.map +1 -0
  381. package/dist/plugins/todo/index.d.ts +7 -0
  382. package/dist/plugins/todo/index.d.ts.map +1 -0
  383. package/dist/plugins/todo/plugin.d.ts +95 -0
  384. package/dist/plugins/todo/plugin.d.ts.map +1 -0
  385. package/dist/plugins/todo/prompts.d.ts +13 -0
  386. package/dist/plugins/todo/prompts.d.ts.map +1 -0
  387. package/dist/plugins/todo/schema.d.ts +44 -0
  388. package/dist/plugins/todo/schema.d.ts.map +1 -0
  389. package/dist/plugins/todo/todo.integration.test.d.ts +2 -0
  390. package/dist/plugins/todo/todo.integration.test.d.ts.map +1 -0
  391. package/dist/plugins/uploads/index.d.ts +9 -0
  392. package/dist/plugins/uploads/index.d.ts.map +1 -0
  393. package/dist/plugins/uploads/plugin.d.ts +56 -0
  394. package/dist/plugins/uploads/plugin.d.ts.map +1 -0
  395. package/dist/plugins/uploads/preprocessor.d.ts +70 -0
  396. package/dist/plugins/uploads/preprocessor.d.ts.map +1 -0
  397. package/dist/plugins/uploads/preprocessors/image-classifier.d.ts +49 -0
  398. package/dist/plugins/uploads/preprocessors/image-classifier.d.ts.map +1 -0
  399. package/dist/plugins/uploads/preprocessors/index.d.ts +7 -0
  400. package/dist/plugins/uploads/preprocessors/index.d.ts.map +1 -0
  401. package/dist/plugins/uploads/preprocessors/markitdown-preprocessor.d.ts +43 -0
  402. package/dist/plugins/uploads/preprocessors/markitdown-preprocessor.d.ts.map +1 -0
  403. package/dist/plugins/uploads/preprocessors/zip-preprocessor.d.ts +30 -0
  404. package/dist/plugins/uploads/preprocessors/zip-preprocessor.d.ts.map +1 -0
  405. package/dist/plugins/uploads/schema.d.ts +72 -0
  406. package/dist/plugins/uploads/schema.d.ts.map +1 -0
  407. package/dist/plugins/uploads/state.d.ts +38 -0
  408. package/dist/plugins/uploads/state.d.ts.map +1 -0
  409. package/dist/plugins/uploads/uploads.integration.test.d.ts +2 -0
  410. package/dist/plugins/uploads/uploads.integration.test.d.ts.map +1 -0
  411. package/dist/plugins/user-chat/index.d.ts +7 -0
  412. package/dist/plugins/user-chat/index.d.ts.map +1 -0
  413. package/dist/plugins/user-chat/plugin.d.ts +221 -0
  414. package/dist/plugins/user-chat/plugin.d.ts.map +1 -0
  415. package/dist/plugins/user-chat/prompts.d.ts +13 -0
  416. package/dist/plugins/user-chat/prompts.d.ts.map +1 -0
  417. package/dist/plugins/user-chat/schema.d.ts +82 -0
  418. package/dist/plugins/user-chat/schema.d.ts.map +1 -0
  419. package/dist/plugins/user-chat/user-chat.integration.test.d.ts +2 -0
  420. package/dist/plugins/user-chat/user-chat.integration.test.d.ts.map +1 -0
  421. package/dist/plugins/workers/context.d.ts +159 -0
  422. package/dist/plugins/workers/context.d.ts.map +1 -0
  423. package/dist/plugins/workers/definition.d.ts +118 -0
  424. package/dist/plugins/workers/definition.d.ts.map +1 -0
  425. package/dist/plugins/workers/index.d.ts +11 -0
  426. package/dist/plugins/workers/index.d.ts.map +1 -0
  427. package/dist/plugins/workers/plugin.d.ts +125 -0
  428. package/dist/plugins/workers/plugin.d.ts.map +1 -0
  429. package/dist/plugins/workers/worker.d.ts +76 -0
  430. package/dist/plugins/workers/worker.d.ts.map +1 -0
  431. package/dist/plugins/workers/workers.integration.test.d.ts +2 -0
  432. package/dist/plugins/workers/workers.integration.test.d.ts.map +1 -0
  433. package/dist/prompts/base.d.ts +75 -0
  434. package/dist/prompts/base.d.ts.map +1 -0
  435. package/dist/prompts/builder.d.ts +73 -0
  436. package/dist/prompts/builder.d.ts.map +1 -0
  437. package/dist/prompts/index.d.ts +10 -0
  438. package/dist/prompts/index.d.ts.map +1 -0
  439. package/dist/prompts/macros.d.ts +15 -0
  440. package/dist/prompts/macros.d.ts.map +1 -0
  441. package/dist/prompts/macros.test.d.ts +2 -0
  442. package/dist/prompts/macros.test.d.ts.map +1 -0
  443. package/dist/testing/bootstrap-for-testing.d.ts +12 -0
  444. package/dist/testing/bootstrap-for-testing.d.ts.map +1 -0
  445. package/dist/testing/index.d.ts +8 -0
  446. package/dist/testing/index.d.ts.map +1 -0
  447. package/dist/testing/node-platform.d.ts +12 -0
  448. package/dist/testing/node-platform.d.ts.map +1 -0
  449. package/dist/testing/notification-collector.d.ts +46 -0
  450. package/dist/testing/notification-collector.d.ts.map +1 -0
  451. package/dist/testing/preset-helpers.d.ts +28 -0
  452. package/dist/testing/preset-helpers.d.ts.map +1 -0
  453. package/dist/testing/test-harness.d.ts +117 -0
  454. package/dist/testing/test-harness.d.ts.map +1 -0
  455. package/dist/testing/test-harness.test.d.ts +2 -0
  456. package/dist/testing/test-harness.test.d.ts.map +1 -0
  457. package/dist/testing/wait-helpers.d.ts +17 -0
  458. package/dist/testing/wait-helpers.d.ts.map +1 -0
  459. package/dist/transport/adapter/client-adapter.d.ts +32 -0
  460. package/dist/transport/adapter/client-adapter.d.ts.map +1 -0
  461. package/dist/transport/adapter/index.d.ts +23 -0
  462. package/dist/transport/adapter/index.d.ts.map +1 -0
  463. package/dist/transport/adapter/server-adapter.d.ts +29 -0
  464. package/dist/transport/adapter/server-adapter.d.ts.map +1 -0
  465. package/dist/transport/adapter/types.d.ts +14 -0
  466. package/dist/transport/adapter/types.d.ts.map +1 -0
  467. package/dist/transport/http/app.d.ts +41 -0
  468. package/dist/transport/http/app.d.ts.map +1 -0
  469. package/dist/transport/http/index.d.ts +7 -0
  470. package/dist/transport/http/index.d.ts.map +1 -0
  471. package/dist/transport/http/middleware/bearer-auth.d.ts +16 -0
  472. package/dist/transport/http/middleware/bearer-auth.d.ts.map +1 -0
  473. package/dist/transport/http/middleware/error-handler.d.ts +21 -0
  474. package/dist/transport/http/middleware/error-handler.d.ts.map +1 -0
  475. package/dist/transport/http/routes/files.d.ts +16 -0
  476. package/dist/transport/http/routes/files.d.ts.map +1 -0
  477. package/dist/transport/http/routes/resources.d.ts +12 -0
  478. package/dist/transport/http/routes/resources.d.ts.map +1 -0
  479. package/dist/transport/http/routes/rpc.d.ts +22 -0
  480. package/dist/transport/http/routes/rpc.d.ts.map +1 -0
  481. package/dist/transport/http/routes/rpc.integration.test.d.ts +2 -0
  482. package/dist/transport/http/routes/rpc.integration.test.d.ts.map +1 -0
  483. package/dist/transport/http/routes/rpc.test.d.ts +2 -0
  484. package/dist/transport/http/routes/rpc.test.d.ts.map +1 -0
  485. package/dist/transport/http/routes/upload.d.ts +14 -0
  486. package/dist/transport/http/routes/upload.d.ts.map +1 -0
  487. package/dist/transport/rpc/index.d.ts +8 -0
  488. package/dist/transport/rpc/index.d.ts.map +1 -0
  489. package/dist/transport/rpc/methods.d.ts +25 -0
  490. package/dist/transport/rpc/methods.d.ts.map +1 -0
  491. package/dist/user-config.d.ts +29 -0
  492. package/dist/user-config.d.ts.map +1 -0
  493. package/package.json +154 -0
  494. package/src/bootstrap.ts +268 -0
  495. package/src/builtin-events.ts +25 -0
  496. package/src/bun-platform/fs.ts +50 -0
  497. package/src/bun-platform/index.ts +21 -0
  498. package/src/bun-platform/process.ts +25 -0
  499. package/src/config.test.ts +174 -0
  500. package/src/config.ts +103 -0
  501. package/src/core/agent-loop.integration.test.ts +503 -0
  502. package/src/core/agents/agent-config.test.ts +240 -0
  503. package/src/core/agents/agent-roles.ts +41 -0
  504. package/src/core/agents/agent-shutdown.test.ts +236 -0
  505. package/src/core/agents/agent.test.ts +387 -0
  506. package/src/core/agents/agent.ts +1472 -0
  507. package/src/core/agents/communicator.ts +16 -0
  508. package/src/core/agents/config.ts +98 -0
  509. package/src/core/agents/context.ts +19 -0
  510. package/src/core/agents/debounce.ts +116 -0
  511. package/src/core/agents/handler-events.test.ts +167 -0
  512. package/src/core/agents/index.ts +1 -0
  513. package/src/core/agents/response-sanitizer.test.ts +137 -0
  514. package/src/core/agents/response-sanitizer.ts +67 -0
  515. package/src/core/agents/retry.ts +164 -0
  516. package/src/core/agents/schema.ts +75 -0
  517. package/src/core/agents/state.ts +272 -0
  518. package/src/core/context/state.ts +38 -0
  519. package/src/core/errors.ts +55 -0
  520. package/src/core/event-sourcing.integration.test.ts +191 -0
  521. package/src/core/events/base-event-store.ts +264 -0
  522. package/src/core/events/event-store.ts +143 -0
  523. package/src/core/events/file.test.ts +436 -0
  524. package/src/core/events/file.ts +372 -0
  525. package/src/core/events/index.ts +3 -0
  526. package/src/core/events/memory.test.ts +741 -0
  527. package/src/core/events/memory.ts +131 -0
  528. package/src/core/events/metadata-utils.ts +133 -0
  529. package/src/core/events/test-helpers.ts +31 -0
  530. package/src/core/events/types.ts +64 -0
  531. package/src/core/file-store/file-store.ts +275 -0
  532. package/src/core/file-store/types.ts +52 -0
  533. package/src/core/image/image-processor.test.ts +218 -0
  534. package/src/core/image/image-processor.ts +127 -0
  535. package/src/core/image/index.ts +4 -0
  536. package/src/core/image/noop-resizer.ts +7 -0
  537. package/src/core/image/types.ts +24 -0
  538. package/src/core/image/vips-resizer.test.ts +377 -0
  539. package/src/core/image/vips-resizer.ts +124 -0
  540. package/src/core/llm/__snapshots__/anthropic-assistant-text-with-tool-calls.json +156 -0
  541. package/src/core/llm/__snapshots__/anthropic-consecutive-tool-results.json +152 -0
  542. package/src/core/llm/__snapshots__/anthropic-image-data-url.json +105 -0
  543. package/src/core/llm/__snapshots__/anthropic-image-http-url.json +104 -0
  544. package/src/core/llm/__snapshots__/anthropic-multiple-images.json +113 -0
  545. package/src/core/llm/__snapshots__/anthropic-multiple-tool-calls-requested.json +151 -0
  546. package/src/core/llm/__snapshots__/anthropic-simple-user-message.json +97 -0
  547. package/src/core/llm/__snapshots__/anthropic-system-message-in-conversation.json +119 -0
  548. package/src/core/llm/__snapshots__/anthropic-tool-call.json +123 -0
  549. package/src/core/llm/__snapshots__/anthropic-tool-error-result.json +139 -0
  550. package/src/core/llm/__snapshots__/anthropic-tool-result-with-image.json +152 -0
  551. package/src/core/llm/__snapshots__/anthropic-tool-roundtrip.json +139 -0
  552. package/src/core/llm/__snapshots__/openrouter-assistant-text-with-tool-calls.json +150 -0
  553. package/src/core/llm/__snapshots__/openrouter-consecutive-tool-results.json +150 -0
  554. package/src/core/llm/__snapshots__/openrouter-image-data-url.json +107 -0
  555. package/src/core/llm/__snapshots__/openrouter-image-http-url.json +107 -0
  556. package/src/core/llm/__snapshots__/openrouter-multiple-images.json +113 -0
  557. package/src/core/llm/__snapshots__/openrouter-multiple-tool-calls-requested.json +158 -0
  558. package/src/core/llm/__snapshots__/openrouter-simple-user-message.json +96 -0
  559. package/src/core/llm/__snapshots__/openrouter-system-message-in-conversation.json +108 -0
  560. package/src/core/llm/__snapshots__/openrouter-tool-call.json +129 -0
  561. package/src/core/llm/__snapshots__/openrouter-tool-error-result.json +137 -0
  562. package/src/core/llm/__snapshots__/openrouter-tool-result-with-image.json +148 -0
  563. package/src/core/llm/__snapshots__/openrouter-tool-roundtrip.json +137 -0
  564. package/src/core/llm/anthropic.test.ts +509 -0
  565. package/src/core/llm/anthropic.ts +578 -0
  566. package/src/core/llm/cache-breakpoints.ts +38 -0
  567. package/src/core/llm/cache-live.test.ts +155 -0
  568. package/src/core/llm/index.ts +30 -0
  569. package/src/core/llm/llm-log-types.ts +167 -0
  570. package/src/core/llm/logger.test.ts +270 -0
  571. package/src/core/llm/logger.ts +306 -0
  572. package/src/core/llm/logging-provider.ts +73 -0
  573. package/src/core/llm/middleware.ts +172 -0
  574. package/src/core/llm/mock.test.ts +402 -0
  575. package/src/core/llm/mock.ts +234 -0
  576. package/src/core/llm/openrouter-mapping.test.ts +153 -0
  577. package/src/core/llm/openrouter.test.ts +499 -0
  578. package/src/core/llm/openrouter.ts +458 -0
  579. package/src/core/llm/provider-integration.test.ts +408 -0
  580. package/src/core/llm/provider.ts +238 -0
  581. package/src/core/llm/routing-provider.test.ts +113 -0
  582. package/src/core/llm/routing-provider.ts +86 -0
  583. package/src/core/llm/schema.ts +47 -0
  584. package/src/core/llm/snapshot-fetch.ts +158 -0
  585. package/src/core/llm/snapshot-middleware.test.ts +168 -0
  586. package/src/core/llm/snapshot-middleware.ts +185 -0
  587. package/src/core/llm/state.ts +92 -0
  588. package/src/core/llm/tokens.ts +61 -0
  589. package/src/core/multi-agent.integration.test.ts +340 -0
  590. package/src/core/plugin-hooks.integration.test.ts +428 -0
  591. package/src/core/plugins/hook-types.ts +49 -0
  592. package/src/core/plugins/index.ts +52 -0
  593. package/src/core/plugins/plugin-builder.ts +967 -0
  594. package/src/core/preset/config.ts +110 -0
  595. package/src/core/preset/index.ts +11 -0
  596. package/src/core/preset/preset-builder.ts +111 -0
  597. package/src/core/session-lifecycle.integration.test.ts +202 -0
  598. package/src/core/sessions/apply-event.ts +46 -0
  599. package/src/core/sessions/context.ts +36 -0
  600. package/src/core/sessions/fork-utils.test.ts +158 -0
  601. package/src/core/sessions/fork-utils.ts +71 -0
  602. package/src/core/sessions/reducer.ts +95 -0
  603. package/src/core/sessions/schema.ts +91 -0
  604. package/src/core/sessions/session-environment.ts +12 -0
  605. package/src/core/sessions/session-manager.ts +883 -0
  606. package/src/core/sessions/session-store.ts +141 -0
  607. package/src/core/sessions/session.test.ts +1730 -0
  608. package/src/core/sessions/session.ts +833 -0
  609. package/src/core/sessions/state.ts +520 -0
  610. package/src/core/system.ts +206 -0
  611. package/src/core/tools/context.ts +3 -0
  612. package/src/core/tools/definition.ts +15 -0
  613. package/src/core/tools/executor.test.ts +160 -0
  614. package/src/core/tools/executor.ts +117 -0
  615. package/src/core/tools/index.ts +3 -0
  616. package/src/core/tools/schema.ts +80 -0
  617. package/src/core/tools/state.ts +34 -0
  618. package/src/index.ts +165 -0
  619. package/src/lib/json/index.ts +20 -0
  620. package/src/lib/logger/console.test.ts +348 -0
  621. package/src/lib/logger/console.ts +185 -0
  622. package/src/lib/logger/file.ts +65 -0
  623. package/src/lib/logger/index.ts +4 -0
  624. package/src/lib/logger/logger.ts +114 -0
  625. package/src/lib/logger/ring-buffer.ts +65 -0
  626. package/src/lib/logger/tee.ts +51 -0
  627. package/src/lib/mime.ts +23 -0
  628. package/src/lib/never.ts +3 -0
  629. package/src/lib/utils/hash.ts +38 -0
  630. package/src/lib/utils/result.ts +35 -0
  631. package/src/platform/fs.ts +38 -0
  632. package/src/platform/index.ts +23 -0
  633. package/src/platform/process.ts +28 -0
  634. package/src/plugins/agent-status/plugin.ts +77 -0
  635. package/src/plugins/agents/agents.integration.test.ts +808 -0
  636. package/src/plugins/agents/index.ts +2 -0
  637. package/src/plugins/agents/plugin.ts +242 -0
  638. package/src/plugins/context-compact/context-compact.integration.test.ts +207 -0
  639. package/src/plugins/context-compact/context-compactor.test.ts +923 -0
  640. package/src/plugins/context-compact/context-compactor.ts +343 -0
  641. package/src/plugins/context-compact/history-offloader.test.ts +100 -0
  642. package/src/plugins/context-compact/history-offloader.ts +47 -0
  643. package/src/plugins/context-compact/index.ts +3 -0
  644. package/src/plugins/context-compact/plugin.ts +62 -0
  645. package/src/plugins/filesystem/filesystem.integration.test.ts +485 -0
  646. package/src/plugins/filesystem/helpers.ts +216 -0
  647. package/src/plugins/filesystem/index.ts +4 -0
  648. package/src/plugins/filesystem/listing.ts +276 -0
  649. package/src/plugins/filesystem/plugin.ts +468 -0
  650. package/src/plugins/filesystem/schema.ts +6 -0
  651. package/src/plugins/git-status/index.ts +1 -0
  652. package/src/plugins/git-status/plugin.ts +166 -0
  653. package/src/plugins/limits-guard/config.ts +26 -0
  654. package/src/plugins/limits-guard/index.ts +4 -0
  655. package/src/plugins/limits-guard/limit-guard.test.ts +161 -0
  656. package/src/plugins/limits-guard/limit-guard.ts +164 -0
  657. package/src/plugins/limits-guard/limits-guard.integration.test.ts +437 -0
  658. package/src/plugins/limits-guard/plugin.ts +306 -0
  659. package/src/plugins/llm-debug/index.ts +1 -0
  660. package/src/plugins/llm-debug/llm-debug.integration.test.ts +192 -0
  661. package/src/plugins/llm-debug/plugin.ts +172 -0
  662. package/src/plugins/logs/index.ts +1 -0
  663. package/src/plugins/logs/plugin.ts +39 -0
  664. package/src/plugins/mailbox/helpers.ts +83 -0
  665. package/src/plugins/mailbox/index.ts +13 -0
  666. package/src/plugins/mailbox/mailbox.integration.test.ts +705 -0
  667. package/src/plugins/mailbox/plugin.ts +270 -0
  668. package/src/plugins/mailbox/prompts.ts +104 -0
  669. package/src/plugins/mailbox/query.ts +53 -0
  670. package/src/plugins/mailbox/schema.ts +81 -0
  671. package/src/plugins/mailbox/state.ts +52 -0
  672. package/src/plugins/resources/index.ts +11 -0
  673. package/src/plugins/resources/manifest.ts +25 -0
  674. package/src/plugins/resources/plugin.ts +201 -0
  675. package/src/plugins/resources/post-inject.ts +74 -0
  676. package/src/plugins/resources/state.ts +30 -0
  677. package/src/plugins/result-eviction/index.ts +2 -0
  678. package/src/plugins/result-eviction/plugin.ts +65 -0
  679. package/src/plugins/result-eviction/result-eviction.integration.test.ts +244 -0
  680. package/src/plugins/services/plugin.ts +485 -0
  681. package/src/plugins/services/port-pool.ts +73 -0
  682. package/src/plugins/services/prompt.ts +53 -0
  683. package/src/plugins/services/schema.ts +83 -0
  684. package/src/plugins/services/service.ts +578 -0
  685. package/src/plugins/services/services.integration.test.ts +595 -0
  686. package/src/plugins/session-lifecycle/index.ts +1 -0
  687. package/src/plugins/session-lifecycle/plugin.ts +302 -0
  688. package/src/plugins/session-lifecycle/session-lifecycle.integration.test.ts +639 -0
  689. package/src/plugins/session-state/plugin.ts +179 -0
  690. package/src/plugins/session-stats/index.ts +3 -0
  691. package/src/plugins/session-stats/plugin.ts +120 -0
  692. package/src/plugins/shell/executor.ts +462 -0
  693. package/src/plugins/shell/index.ts +23 -0
  694. package/src/plugins/shell/plugin.ts +118 -0
  695. package/src/plugins/shell/shell.integration.test.ts +273 -0
  696. package/src/plugins/shell/shell.test.ts +314 -0
  697. package/src/plugins/skills/discovery.test.ts +395 -0
  698. package/src/plugins/skills/discovery.ts +276 -0
  699. package/src/plugins/skills/index.ts +32 -0
  700. package/src/plugins/skills/plugin.ts +381 -0
  701. package/src/plugins/skills/prompts.ts +84 -0
  702. package/src/plugins/skills/schema.ts +88 -0
  703. package/src/plugins/skills/skills.integration.test.ts +580 -0
  704. package/src/plugins/snapshotting/index.ts +3 -0
  705. package/src/plugins/snapshotting/jj-snapshotter.ts +122 -0
  706. package/src/plugins/snapshotting/plugin.ts +36 -0
  707. package/src/plugins/snapshotting/snapshotter.ts +20 -0
  708. package/src/plugins/todo/index.ts +11 -0
  709. package/src/plugins/todo/plugin.ts +363 -0
  710. package/src/plugins/todo/prompts.ts +63 -0
  711. package/src/plugins/todo/schema.ts +71 -0
  712. package/src/plugins/todo/todo.integration.test.ts +687 -0
  713. package/src/plugins/uploads/index.ts +13 -0
  714. package/src/plugins/uploads/plugin.ts +406 -0
  715. package/src/plugins/uploads/preprocessor.ts +111 -0
  716. package/src/plugins/uploads/preprocessors/image-classifier.ts +176 -0
  717. package/src/plugins/uploads/preprocessors/index.ts +7 -0
  718. package/src/plugins/uploads/preprocessors/markitdown-preprocessor.ts +262 -0
  719. package/src/plugins/uploads/preprocessors/zip-preprocessor.ts +210 -0
  720. package/src/plugins/uploads/schema.ts +92 -0
  721. package/src/plugins/uploads/state.ts +42 -0
  722. package/src/plugins/uploads/uploads.integration.test.ts +654 -0
  723. package/src/plugins/user-chat/index.ts +17 -0
  724. package/src/plugins/user-chat/plugin.ts +728 -0
  725. package/src/plugins/user-chat/prompts.ts +30 -0
  726. package/src/plugins/user-chat/schema.ts +80 -0
  727. package/src/plugins/user-chat/user-chat.integration.test.ts +794 -0
  728. package/src/plugins/workers/context.ts +251 -0
  729. package/src/plugins/workers/definition.ts +169 -0
  730. package/src/plugins/workers/index.ts +21 -0
  731. package/src/plugins/workers/plugin.ts +722 -0
  732. package/src/plugins/workers/worker.ts +115 -0
  733. package/src/plugins/workers/workers.integration.test.ts +778 -0
  734. package/src/prompts/base.ts +266 -0
  735. package/src/prompts/builder.ts +194 -0
  736. package/src/prompts/index.ts +36 -0
  737. package/src/prompts/macros.test.ts +107 -0
  738. package/src/prompts/macros.ts +27 -0
  739. package/src/testing/bootstrap-for-testing.ts +39 -0
  740. package/src/testing/index.ts +7 -0
  741. package/src/testing/node-platform.ts +80 -0
  742. package/src/testing/notification-collector.ts +100 -0
  743. package/src/testing/preset-helpers.ts +57 -0
  744. package/src/testing/test-harness.test.ts +63 -0
  745. package/src/testing/test-harness.ts +279 -0
  746. package/src/testing/wait-helpers.ts +84 -0
  747. package/src/transport/adapter/client-adapter.ts +81 -0
  748. package/src/transport/adapter/index.ts +42 -0
  749. package/src/transport/adapter/server-adapter.ts +93 -0
  750. package/src/transport/adapter/types.ts +20 -0
  751. package/src/transport/http/app.ts +129 -0
  752. package/src/transport/http/index.ts +7 -0
  753. package/src/transport/http/middleware/bearer-auth.ts +40 -0
  754. package/src/transport/http/middleware/error-handler.ts +76 -0
  755. package/src/transport/http/routes/files.ts +274 -0
  756. package/src/transport/http/routes/resources.ts +115 -0
  757. package/src/transport/http/routes/rpc.integration.test.ts +243 -0
  758. package/src/transport/http/routes/rpc.test.ts +372 -0
  759. package/src/transport/http/routes/rpc.ts +156 -0
  760. package/src/transport/http/routes/upload.ts +286 -0
  761. package/src/transport/rpc/index.ts +11 -0
  762. package/src/transport/rpc/methods.ts +38 -0
  763. package/src/user-config.ts +33 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-log-types.d.ts","sourceRoot":"","sources":["../../../src/core/llm/llm-log-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAC/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,MAAM,0BAA0B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAEvE,MAAM,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE;QACT,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,CAAC,EAAE,iCAAiC,CAAA;KAC1C,CAAA;CACD,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC/B,0BAA0B,GAC1B,2BAA2B,CAAA;AAE9B;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,sBAAsB,EAAE,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,iBAAiB,KAAG,MAM5D,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC9C,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAAA;IAC1C,SAAS,CAAC,EAAE,WAAW,EAAE,CAAA;IACzB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,eAAe,CAAC,EAAE;QACjB,UAAU,CAAC,EAAE,wBAAwB,CAAA;QACrC,SAAS,CAAC,EAAE,uBAAuB,CAAA;KACnC,CAAA;CACD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;IACxD,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mBAAmB;IACnB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;CACrC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,SAAS,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;IAEvC,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,YAAY,CAAA;IAEpB,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACb,CAAA"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * LLM Request/Response Logger
3
+ *
4
+ * Logs LLM calls as individual JSON files for debugging and audit.
5
+ * Per spec.md 9.1: "Pro debugging a audit se bude logovat kompletní LLM komunikace"
6
+ *
7
+ * Calls are stored in the session folder: {dataPath}/sessions/{sessionId}/calls/
8
+ */
9
+ import type { AgentId } from '../../core/agents/schema.js';
10
+ import { LLMCallId } from '../../core/llm/schema.js';
11
+ import type { SessionId } from '../../core/sessions/schema.js';
12
+ import type { FileSystem } from '../../platform/fs.js';
13
+ import type { LLMCallLogEntry } from './llm-log-types.js';
14
+ import type { InferenceRequest, InferenceResponse, LLMError } from './provider.js';
15
+ /**
16
+ * Configuration for LLM logger
17
+ */
18
+ export interface LLMLoggerConfig {
19
+ /** Base data path (same as event store dataPath) */
20
+ basePath: string;
21
+ enabled: boolean;
22
+ fs: FileSystem;
23
+ }
24
+ /**
25
+ * Logger for LLM requests and responses.
26
+ * Stores individual JSON files per LLM call in the session folder.
27
+ */
28
+ export declare class LLMLogger {
29
+ private config;
30
+ private dirCache;
31
+ private readonly fs;
32
+ constructor(config: LLMLoggerConfig);
33
+ /**
34
+ * Check if logging is enabled.
35
+ */
36
+ isEnabled(): boolean;
37
+ /**
38
+ * Ensure the calls directory exists for a session.
39
+ * Calls are stored in {basePath}/sessions/{sessionId}/calls/
40
+ */
41
+ private ensureCallsDir;
42
+ /**
43
+ * Get the path to an individual call file.
44
+ */
45
+ private getCallFilePath;
46
+ /**
47
+ * Create a new LLM call entry when a request starts.
48
+ * Returns the generated call ID.
49
+ */
50
+ createCall(sessionId: SessionId, agentId: AgentId, request: InferenceRequest): Promise<LLMCallId>;
51
+ /**
52
+ * Update a call entry with a successful response.
53
+ */
54
+ completeCall(sessionId: SessionId, callId: LLMCallId, response: InferenceResponse, durationMs: number): Promise<void>;
55
+ /**
56
+ * Update a call entry with an error.
57
+ */
58
+ failCall(sessionId: SessionId, callId: LLMCallId, error: LLMError, durationMs: number): Promise<void>;
59
+ /**
60
+ * Get a single LLM call entry.
61
+ */
62
+ getCall(sessionId: SessionId, callId: LLMCallId): Promise<LLMCallLogEntry | null>;
63
+ /**
64
+ * List all LLM calls for a session.
65
+ */
66
+ listCalls(sessionId: SessionId, options?: {
67
+ limit?: number;
68
+ offset?: number;
69
+ }): Promise<{
70
+ calls: LLMCallLogEntry[];
71
+ total: number;
72
+ }>;
73
+ }
74
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/core/llm/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAqB,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAgB,eAAe,EAAmE,MAAM,oBAAoB,CAAA;AACxI,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAMlF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,EAAE,EAAE,UAAU,CAAA;CACd;AAMD;;;GAGG;AACH,qBAAa,SAAS;IAIT,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;gBAEX,MAAM,EAAE,eAAe;IAI3C;;OAEG;IACH,SAAS,IAAI,OAAO;IAQpB;;;OAGG;YACW,cAAc;IAS5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;;OAGG;IACG,UAAU,CACf,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC;IAsErB;;OAEG;IACG,YAAY,CACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IA+ChB;;OAEG;IACG,QAAQ,CACb,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IA4BhB;;OAEG;IACG,OAAO,CACZ,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAWlC;;OAEG;IACG,SAAS,CACd,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC;QAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAmCvD"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tests for LLM Logger
3
+ *
4
+ * Tests individual LLM call file storage in session folders.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=logger.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../../src/core/llm/logger.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * LoggingLLMProvider - Wrapper that adds logging to any LLM provider
3
+ */
4
+ import type { Logger } from '../../lib/logger/logger.js';
5
+ import type { Result } from '../../lib/utils/result.js';
6
+ import type { LLMLogger } from './logger.js';
7
+ import type { InferenceContext, InferenceRequest, InferenceResponse, LLMError, LLMProvider, ProviderHttpRequest, RawInferenceRequest } from './provider.js';
8
+ /**
9
+ * Wraps an LLM provider to add request/response logging.
10
+ */
11
+ export declare class LoggingLLMProvider implements LLMProvider {
12
+ private readonly provider;
13
+ private readonly logger;
14
+ private readonly runtimeLogger?;
15
+ readonly name: string;
16
+ constructor(provider: LLMProvider, logger: LLMLogger, runtimeLogger?: Logger | undefined);
17
+ inference(request: InferenceRequest, context?: InferenceContext): Promise<Result<InferenceResponse, LLMError>>;
18
+ buildHttpRequest(request: RawInferenceRequest, context?: InferenceContext): Promise<ProviderHttpRequest>;
19
+ }
20
+ //# sourceMappingURL=logging-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-provider.d.ts","sourceRoot":"","sources":["../../../src/core/llm/logging-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,eAAe,CAAA;AAEtB;;GAEG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAIpD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IALhC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBAGH,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,MAAM,YAAA;IAKlC,SAAS,CACd,OAAO,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IA2BzC,gBAAgB,CACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC;CAM/B"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * LLM Middleware
3
+ *
4
+ * Composable middleware chain for LLM inference requests.
5
+ * Middleware can modify requests, set provider-specific options,
6
+ * force a specific provider, or implement retry/fallback logic.
7
+ *
8
+ * Chain order: preset middleware → agent middleware → base provider (RoutingLLMProvider).
9
+ */
10
+ import type { Result } from '../../lib/utils/result.js';
11
+ import type { AnthropicRequestOptions, InferenceContext, InferenceRequest, InferenceResponse, LLMError, LLMProvider, OpenRouterRequestOptions } from './provider.js';
12
+ /**
13
+ * Next function in the middleware chain.
14
+ * Call this to pass the (potentially modified) request to the next middleware or the base provider.
15
+ */
16
+ export type InferenceNext = (request: InferenceRequest, context: InferenceContext) => Promise<Result<InferenceResponse, LLMError>>;
17
+ /**
18
+ * LLM middleware function.
19
+ *
20
+ * Can:
21
+ * - Modify the request and call `next` (pass-through with modifications)
22
+ * - Call a provider directly from `context.providers` (terminal — bypasses routing)
23
+ * - Implement retry, fallback, or A/B logic around `next`
24
+ */
25
+ export type LLMMiddleware = (request: InferenceRequest, context: InferenceContext, next: InferenceNext) => Promise<Result<InferenceResponse, LLMError>>;
26
+ /**
27
+ * Wrap an LLMProvider with a middleware chain.
28
+ *
29
+ * Middleware is applied in order: first middleware in the array is outermost (runs first).
30
+ * The base provider sits at the end of the chain.
31
+ */
32
+ export declare function applyMiddleware(provider: LLMProvider, middleware: LLMMiddleware[]): LLMProvider;
33
+ /**
34
+ * Force a specific provider by name. Terminal — does NOT call `next`.
35
+ *
36
+ * The provider is resolved from `context.providers` at call time.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * // All agents in this preset use Anthropic directly:
41
+ * createPreset({
42
+ * llmMiddleware: [useProvider('anthropic')],
43
+ * orchestrator: { model: ModelId('claude-sonnet-4'), ... },
44
+ * })
45
+ * ```
46
+ */
47
+ export declare function useProvider(name: string): LLMMiddleware;
48
+ /**
49
+ * Set OpenRouter-specific request options.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * // Exclude Google providers:
54
+ * llmMiddleware: [withOpenRouter({ providers: { deny: ['Google'] } })]
55
+ *
56
+ * // Prefer specific providers:
57
+ * llmMiddleware: [withOpenRouter({ providers: { order: ['Anthropic', 'AWS Bedrock'] } })]
58
+ * ```
59
+ */
60
+ export declare function withOpenRouter(opts: OpenRouterRequestOptions): LLMMiddleware;
61
+ /**
62
+ * Set Anthropic-specific request options.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * // Enable extended thinking for this agent:
67
+ * llmMiddleware: [withAnthropic({ thinkingBudget: 50000 })]
68
+ * ```
69
+ */
70
+ export declare function withAnthropic(opts: AnthropicRequestOptions): LLMMiddleware;
71
+ /**
72
+ * Override max tokens for the request.
73
+ */
74
+ export declare function withMaxTokens(maxTokens: number): LLMMiddleware;
75
+ /**
76
+ * Override temperature for the request.
77
+ */
78
+ export declare function withTemperature(temperature: number): LLMMiddleware;
79
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/core/llm/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EACX,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,MAAM,eAAe,CAAA;AAMtB;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAC3B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,gBAAgB,KACrB,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEjD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,CAC3B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,aAAa,KACf,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAA;AAMjD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,aAAa,EAAE,GACzB,WAAW,CAYb;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAWvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,wBAAwB,GAAG,aAAa,CAY5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,uBAAuB,GAAG,aAAa,CAY1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAI9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAIlE"}
@@ -0,0 +1,79 @@
1
+ import type { Result } from '../../lib/utils/result.js';
2
+ import type { InferenceRequest, InferenceResponse, LLMError, LLMMetrics, LLMProvider } from './provider.js';
3
+ /**
4
+ * Handler type pro mock inference
5
+ */
6
+ export type MockInferenceHandler = (request: InferenceRequest) => InferenceResponse | Promise<InferenceResponse>;
7
+ /**
8
+ * MockLLMProvider - callback-based mock pro testy
9
+ */
10
+ export declare class MockLLMProvider implements LLMProvider {
11
+ readonly name = "mock";
12
+ private handler;
13
+ private callHistory;
14
+ constructor(handler: MockInferenceHandler);
15
+ inference(request: InferenceRequest): Promise<Result<InferenceResponse, LLMError>>;
16
+ private isLLMError;
17
+ /**
18
+ * Vrátí historii všech volání.
19
+ */
20
+ getCallHistory(): InferenceRequest[];
21
+ /**
22
+ * Vrátí počet volání.
23
+ */
24
+ getCallCount(): number;
25
+ /**
26
+ * Vymaže historii volání.
27
+ */
28
+ clearHistory(): void;
29
+ /**
30
+ * Vrátí poslední request.
31
+ */
32
+ getLastRequest(): InferenceRequest | undefined;
33
+ /**
34
+ * Vytvoří mock s fixní response.
35
+ */
36
+ static withFixedResponse(response: Partial<InferenceResponse>): MockLLMProvider;
37
+ /**
38
+ * Vytvoří mock se sekvencí responses.
39
+ */
40
+ static withSequence(responses: Partial<InferenceResponse>[]): MockLLMProvider;
41
+ /**
42
+ * Vytvoří mock který vždy selže.
43
+ */
44
+ static withError(error: LLMError): MockLLMProvider;
45
+ /**
46
+ * Vytvoří mock který odpoví podle obsahu zpráv.
47
+ */
48
+ static withMatcher(matchers: Array<{
49
+ match: (request: InferenceRequest) => boolean;
50
+ response: Partial<InferenceResponse>;
51
+ }>, defaultResponse?: Partial<InferenceResponse>): MockLLMProvider;
52
+ /**
53
+ * Default metrics pro mock responses.
54
+ */
55
+ static defaultMetrics(): LLMMetrics;
56
+ /**
57
+ * Default metrics with cost for mock responses.
58
+ */
59
+ static defaultMetricsWithCost(cost: number): LLMMetrics;
60
+ }
61
+ export declare const RequestMatchers: {
62
+ /**
63
+ * Match pokud poslední message obsahuje text.
64
+ */
65
+ lastMessageContains: (text: string) => (request: InferenceRequest) => boolean;
66
+ /**
67
+ * Match pokud system prompt obsahuje text.
68
+ */
69
+ systemPromptContains: (text: string) => (request: InferenceRequest) => boolean;
70
+ /**
71
+ * Match pokud je k dispozici určitý tool.
72
+ */
73
+ hasTool: (toolName: string) => (request: InferenceRequest) => boolean;
74
+ /**
75
+ * Match vždy.
76
+ */
77
+ always: () => (request: InferenceRequest) => boolean;
78
+ };
79
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/core/llm/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAM3G;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAClC,OAAO,EAAE,gBAAgB,KACrB,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAMnD;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IAClD,QAAQ,CAAC,IAAI,UAAS;IACtB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,WAAW,CAAyB;gBAEhC,OAAO,EAAE,oBAAoB;IAInC,SAAS,CACd,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAiB/C,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,cAAc,IAAI,gBAAgB,EAAE;IAIpC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,cAAc,IAAI,gBAAgB,GAAG,SAAS;IAQ9C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACvB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,eAAe;IASlB;;OAEG;IACH,MAAM,CAAC,YAAY,CAClB,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,GACrC,eAAe;IAgBlB;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe;IAMlD;;OAEG;IACH,MAAM,CAAC,WAAW,CACjB,QAAQ,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAA;QAC7C,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;KACpC,CAAC,EACF,eAAe,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAC1C,eAAe;IA0BlB;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,UAAU;IAUnC;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;CAMvD;AAMD,eAAO,MAAM,eAAe;IAC3B;;OAEG;gCACyB,MAAM,MAAM,SAAS,gBAAgB,KAAG,OAAO;IAS3E;;OAEG;iCAC0B,MAAM,MAAM,SAAS,gBAAgB,KAAG,OAAO;IAI5E;;OAEG;wBACiB,MAAM,MAAM,SAAS,gBAAgB,KAAG,OAAO;IAInE;;OAEG;kBACS,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO;CAClD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.test.d.ts","sourceRoot":"","sources":["../../../src/core/llm/mock.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=openrouter-mapping.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter-mapping.test.d.ts","sourceRoot":"","sources":["../../../src/core/llm/openrouter-mapping.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import type { ImageProcessor } from '../../core/image/types.js';
2
+ import type { Logger } from '../../lib/logger/logger.js';
3
+ import type { Result } from '../../lib/utils/result.js';
4
+ import type { InferenceContext, InferenceRequest, InferenceResponse, LLMError, LLMProvider, ProviderHttpRequest, RawInferenceRequest } from './provider.js';
5
+ export interface OpenRouterConfig {
6
+ apiKey: string;
7
+ defaultModel?: string;
8
+ timeout?: number;
9
+ logger?: Logger;
10
+ imageProcessor: ImageProcessor;
11
+ /** Custom fetch function (for testing/caching). Defaults to globalThis.fetch. */
12
+ fetch?: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
13
+ }
14
+ export declare class OpenRouterProvider implements LLMProvider {
15
+ readonly name = "openrouter";
16
+ private apiKey;
17
+ private defaultModel;
18
+ private logger?;
19
+ private imageProcessor;
20
+ private timeout;
21
+ private fetchFn;
22
+ constructor(config: OpenRouterConfig);
23
+ inference(request: InferenceRequest, context?: InferenceContext): Promise<Result<InferenceResponse, LLMError>>;
24
+ buildHttpRequest(request: RawInferenceRequest, context?: InferenceContext): Promise<ProviderHttpRequest>;
25
+ private mapMessage;
26
+ private mapMessageContent;
27
+ /**
28
+ * Map internal ChatMessageContentItem[] (camelCase imageUrl) to OpenRouter format (snake_case image_url).
29
+ */
30
+ private mapContentToOpenRouter;
31
+ private extractContent;
32
+ private parseToolArguments;
33
+ private mapFinishReason;
34
+ private mapHttpError;
35
+ private mapError;
36
+ }
37
+ //# sourceMappingURL=openrouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/core/llm/openrouter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAG3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EAGR,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,eAAe,CAAA;AAMtB,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,cAAc,CAAA;IAC9B,iFAAiF;IACjF,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAChF;AAgID,qBAAa,kBAAmB,YAAW,WAAW;IACrD,QAAQ,CAAC,IAAI,gBAAe;IAC5B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAA0E;gBAE7E,MAAM,EAAE,gBAAgB;IAS9B,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAuF9G,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAwDhG,UAAU;YAQV,iBAAiB;IA0C/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,QAAQ;CAShB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=openrouter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.test.d.ts","sourceRoot":"","sources":["../../../src/core/llm/openrouter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Integration tests for LLM providers against real APIs.
3
+ *
4
+ * Uses snapshot-caching fetch: first run hits the real API and saves the
5
+ * request+response; subsequent runs with the same request use the cache.
6
+ *
7
+ * Env vars: ANTHROPIC_API_KEY, OPENROUTER_API_KEY
8
+ * When snapshots exist, tests run without API keys (using cached responses).
9
+ * API keys are only needed to record new snapshots.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=provider-integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-integration.test.d.ts","sourceRoot":"","sources":["../../../src/core/llm/provider-integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,175 @@
1
+ import type { AssistantLLMMessage, LLMMessage, SystemLLMMessage, ToolCall, ToolLLMMessage, UserLLMMessage } from '../../core/agents/state.js';
2
+ import type { FileStore } from '../../core/file-store/types.js';
3
+ import type { ToolResultContent } from '../../core/llm/llm-log-types.js';
4
+ import type { ToolDefinition } from '../../core/tools/definition.js';
5
+ import type { ToolCallId } from '../../core/tools/schema.js';
6
+ import type { Result } from '../../lib/utils/result.js';
7
+ import { ModelId } from './schema';
8
+ export type { AssistantLLMMessage, LLMMessage, SystemLLMMessage, ToolCall, ToolLLMMessage, UserLLMMessage };
9
+ /**
10
+ * Raw tool spec without Zod dependency (for buildHttpRequest / curl export).
11
+ */
12
+ export interface RawToolSpec {
13
+ name: string;
14
+ description: string;
15
+ parameters: Record<string, unknown>;
16
+ }
17
+ /**
18
+ * OpenRouter-specific request options.
19
+ * Set via `withOpenRouter()` middleware.
20
+ *
21
+ * @see https://openrouter.ai/docs/api-reference/overview
22
+ */
23
+ export interface OpenRouterRequestOptions {
24
+ /** Provider routing preferences */
25
+ providers?: {
26
+ /** Preferred provider ordering */
27
+ order?: string[];
28
+ /** Only allow these providers */
29
+ allow?: string[];
30
+ /** Exclude these providers */
31
+ deny?: string[];
32
+ /** Allowed quantizations (e.g. "bf16", "int8") */
33
+ quantizations?: string[];
34
+ };
35
+ /** Routing strategy */
36
+ route?: 'fallback';
37
+ /** Model transforms */
38
+ transforms?: string[];
39
+ /** OpenRouter saved preset ID */
40
+ preset?: string;
41
+ }
42
+ /**
43
+ * Anthropic-specific request options.
44
+ * Set via `withAnthropic()` middleware.
45
+ */
46
+ export interface AnthropicRequestOptions {
47
+ /** Extended thinking token budget. Min 1024. Overrides server-level default. */
48
+ thinkingBudget?: number;
49
+ }
50
+ /**
51
+ * Request pro LLM inference
52
+ */
53
+ export interface InferenceRequest {
54
+ model: ModelId;
55
+ systemPrompt: string;
56
+ messages: LLMMessage[];
57
+ tools?: ToolDefinition<any>[];
58
+ maxTokens?: number;
59
+ temperature?: number;
60
+ /** Stop sequences - LLM will stop generating when any of these are encountered */
61
+ stopSequences?: string[];
62
+ /** OpenRouter-specific options, set by middleware */
63
+ openrouter?: OpenRouterRequestOptions;
64
+ /** Anthropic-specific options, set by middleware */
65
+ anthropic?: AnthropicRequestOptions;
66
+ }
67
+ /**
68
+ * Raw inference request — uses plain JSON schemas instead of ToolDefinition.
69
+ * Used by buildHttpRequest (and curl export from stored log entries).
70
+ */
71
+ export interface RawInferenceRequest {
72
+ model: ModelId;
73
+ systemPrompt: string;
74
+ messages: LLMMessage[];
75
+ tools?: RawToolSpec[];
76
+ maxTokens?: number;
77
+ temperature?: number;
78
+ stopSequences?: string[];
79
+ /** OpenRouter-specific options, set by middleware */
80
+ openrouter?: OpenRouterRequestOptions;
81
+ /** Anthropic-specific options, set by middleware */
82
+ anthropic?: AnthropicRequestOptions;
83
+ }
84
+ /**
85
+ * Context for inference (for logging and call tracking).
86
+ */
87
+ export interface InferenceContext {
88
+ sessionId: string;
89
+ agentId: string;
90
+ /** Callback invoked when an LLM call entry is created, providing the call ID */
91
+ onLLMCallCreated?: (callId: string) => void;
92
+ /** Signal to abort the inference request */
93
+ signal?: AbortSignal;
94
+ /** FileStore for resolving file:// URLs in message content */
95
+ fileStore: FileStore;
96
+ /** Named provider instances, available for middleware routing via useProvider() */
97
+ providers?: ReadonlyMap<string, LLMProvider>;
98
+ }
99
+ /**
100
+ * Raw HTTP request as it would be sent to the provider API (without auth).
101
+ */
102
+ export interface ProviderHttpRequest {
103
+ url: string;
104
+ method: 'POST';
105
+ headers: Record<string, string>;
106
+ body: unknown;
107
+ }
108
+ /**
109
+ * Response z LLM inference
110
+ */
111
+ export interface InferenceResponse {
112
+ content: string | null;
113
+ toolCalls: ToolCall[];
114
+ finishReason: 'stop' | 'tool_calls' | 'length' | 'error';
115
+ metrics: LLMMetrics;
116
+ /** Provider-specific request ID (e.g., OpenRouter generation ID for fetching stats) */
117
+ providerRequestId?: string;
118
+ /** Extended thinking / reasoning content (for models that support it) */
119
+ reasoning?: string;
120
+ }
121
+ /**
122
+ * Metriky z LLM volání
123
+ */
124
+ export interface LLMMetrics {
125
+ promptTokens: number;
126
+ completionTokens: number;
127
+ totalTokens: number;
128
+ latencyMs: number;
129
+ model: string;
130
+ /** Provider name (e.g. "anthropic", "openrouter") */
131
+ provider?: string;
132
+ cost?: number;
133
+ /** Tokens served from prompt cache */
134
+ cachedTokens?: number;
135
+ /** Tokens written to prompt cache */
136
+ cacheWriteTokens?: number;
137
+ /** Reasoning/thinking tokens */
138
+ reasoningTokens?: number;
139
+ }
140
+ /**
141
+ * LLM error types
142
+ */
143
+ export interface LLMError {
144
+ type: 'rate_limit' | 'invalid_request' | 'context_length' | 'server_error' | 'network_error' | 'timeout' | 'aborted';
145
+ message: string;
146
+ retryAfterMs?: number;
147
+ /** HTTP status code from the provider response */
148
+ statusCode?: number;
149
+ /** Raw HTTP response body from the provider */
150
+ responseBody?: string;
151
+ cause?: unknown;
152
+ }
153
+ /**
154
+ * LLMProvider interface
155
+ */
156
+ export interface LLMProvider {
157
+ /**
158
+ * Provede inference a vrátí response.
159
+ */
160
+ inference(request: InferenceRequest, context?: InferenceContext): Promise<Result<InferenceResponse, LLMError>>;
161
+ /**
162
+ * Build the raw HTTP request that would be sent to the provider API.
163
+ * Returns URL, headers (without auth), and body with resolved images.
164
+ * Used for curl export from debug UI.
165
+ */
166
+ buildHttpRequest?(request: RawInferenceRequest, context?: InferenceContext): Promise<ProviderHttpRequest>;
167
+ readonly name: string;
168
+ }
169
+ export declare const LLMMessageFactory: {
170
+ user: (content: string) => UserLLMMessage;
171
+ assistant: (content: string, toolCalls?: ToolCall[]) => AssistantLLMMessage;
172
+ toolResult: (toolCallId: ToolCallId, content: ToolResultContent) => ToolLLMMessage;
173
+ system: (content: string) => SystemLLMMessage;
174
+ };
175
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/core/llm/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * RoutingLLMProvider - Routes requests to the appropriate provider based on model ID.
3
+ *
4
+ * Each registered provider declares which models it can handle via `canHandle()`.
5
+ * The last registered provider acts as the fallback (typically OpenRouter).
6
+ */
7
+ import type { Result } from '../../lib/utils/result.js';
8
+ import type { InferenceContext, InferenceRequest, InferenceResponse, LLMError, LLMProvider, ProviderHttpRequest, RawInferenceRequest } from './provider.js';
9
+ /**
10
+ * A provider that can declare which models it supports.
11
+ */
12
+ export interface RoutableLLMProvider extends LLMProvider {
13
+ /** Returns true if this provider can handle the given model ID. */
14
+ canHandle(model: string): boolean;
15
+ /** Normalizes the model ID for this provider (e.g. strips vendor prefix). */
16
+ normalizeModel(model: string): string;
17
+ }
18
+ /**
19
+ * Routes inference requests to the appropriate provider based on model ID.
20
+ * Providers are checked in order; first match wins.
21
+ * If no provider matches, the fallback provider is used.
22
+ */
23
+ export declare class RoutingLLMProvider implements LLMProvider {
24
+ private readonly providers;
25
+ private readonly fallback?;
26
+ readonly name = "routing";
27
+ constructor(providers: RoutableLLMProvider[], fallback?: LLMProvider | undefined);
28
+ inference(request: InferenceRequest, context?: InferenceContext): Promise<Result<InferenceResponse, LLMError>>;
29
+ buildHttpRequest(request: RawInferenceRequest, context?: InferenceContext): Promise<ProviderHttpRequest>;
30
+ }
31
+ //# sourceMappingURL=routing-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-provider.d.ts","sourceRoot":"","sources":["../../../src/core/llm/routing-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,eAAe,CAAA;AAGtB;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,mEAAmE;IACnE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;IACjC,6EAA6E;IAC7E,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACrC;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAIpD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAJ3B,QAAQ,CAAC,IAAI,aAAY;gBAGP,SAAS,EAAE,mBAAmB,EAAE,EAChC,QAAQ,CAAC,EAAE,WAAW,YAAA;IAGlC,SAAS,CACd,OAAO,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAoBzC,gBAAgB,CACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC;CAgB/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=routing-provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-provider.test.d.ts","sourceRoot":"","sources":["../../../src/core/llm/routing-provider.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * LLM domain types and schemas
3
+ *
4
+ * Contains all types related to LLM:
5
+ * - Branded ID types and constructors (LLMCallId, ModelId)
6
+ * - LLM response types
7
+ * - Zod schemas for validation
8
+ */
9
+ import z from 'zod/v4';
10
+ /** LLMCallId schema - validates any string and brands as LLMCallId. */
11
+ export declare const llmCallIdSchema: z.core.$ZodBranded<z.ZodString, "LLMCallId", "out">;
12
+ /** Branded LLMCallId type */
13
+ export type LLMCallId = z.infer<typeof llmCallIdSchema>;
14
+ /** Constructor for LLMCallId */
15
+ export declare const LLMCallId: (id: string) => LLMCallId;
16
+ /** Generate a new LLMCallId (UUIDv7) */
17
+ export declare const generateLLMCallId: () => LLMCallId;
18
+ /** ModelId schema - validates any string and brands as ModelId. */
19
+ export declare const modelIdSchema: z.core.$ZodBranded<z.ZodString, "ModelId", "out">;
20
+ /** Branded ModelId type */
21
+ export type ModelId = z.infer<typeof modelIdSchema>;
22
+ /** Constructor for ModelId */
23
+ export declare const ModelId: (id: string) => ModelId;
24
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/llm/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,CAAC,MAAM,QAAQ,CAAA;AAOtB,uEAAuE;AACvE,eAAO,MAAM,eAAe,qDAAgC,CAAA;AAE5D,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,gCAAgC;AAChC,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,KAAG,SAA4B,CAAA;AAEnE,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,QAAO,SAAgC,CAAA;AAUrE,mEAAmE;AACnE,eAAO,MAAM,aAAa,mDAA8B,CAAA;AAExD,2BAA2B;AAC3B,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEnD,8BAA8B;AAC9B,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,KAAG,OAAwB,CAAA"}