@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,27 @@
1
+ /**
2
+ * Utility functions for computing session metadata from events.
3
+ * Used for metadata reconciliation after crashes.
4
+ */
5
+ import type { agentEvents } from '../../core/agents/state.js';
6
+ import type { DomainEvent, FactoryEventType } from '../../core/events/types.js';
7
+ import type { llmEvents } from '../../core/llm/state.js';
8
+ import type { SessionId, SessionMetadata, SessionMetadataMetrics } from '../../core/sessions/schema.js';
9
+ import type { sessionEvents } from '../../core/sessions/state.js';
10
+ import type { toolEvents } from '../../core/tools/state.js';
11
+ import type { mailboxEvents } from '../../plugins/mailbox/state.js';
12
+ export type MetadataEvent = FactoryEventType<typeof sessionEvents | typeof agentEvents | typeof llmEvents | typeof mailboxEvents | typeof toolEvents>;
13
+ /**
14
+ * Compute metrics from a list of events.
15
+ * This is the source of truth for what metrics should be.
16
+ */
17
+ export declare function computeMetricsFromEvents(events: DomainEvent[]): SessionMetadataMetrics;
18
+ /**
19
+ * Compute full metadata from events (for initial creation or full reconciliation).
20
+ */
21
+ export declare function computeMetadataFromEvents(sessionId: SessionId, events: DomainEvent[]): SessionMetadata | null;
22
+ /**
23
+ * Check if stored metadata needs reconciliation by comparing key metrics.
24
+ * Returns true if reconciliation is needed.
25
+ */
26
+ export declare function needsReconciliation(stored: SessionMetadata | null, computed: SessionMetadata): boolean;
27
+ //# sourceMappingURL=metadata-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-utils.d.ts","sourceRoot":"","sources":["../../../src/core/events/metadata-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,aAAa,GAAG,OAAO,WAAW,GAAG,OAAO,SAAS,GAAG,OAAO,aAAa,GAAG,OAAO,UAAU,CAAC,CAAA;AAErJ;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,sBAAsB,CA0CtF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,EAAE,GACnB,eAAe,GAAG,IAAI,CAkCxB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,QAAQ,EAAE,eAAe,GACvB,OAAO,CAoBT"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Helpers for creating branded DomainEvent objects.
3
+ *
4
+ * Event factories (sessionEvents, agentEvents, etc.) produce events
5
+ * without `sessionId` (it's added by `emitEvent()` at runtime).
6
+ * `withSessionId` adds the missing field and returns a full DomainEvent.
7
+ *
8
+ * Usage:
9
+ * const event = withSessionId(sessionId, sessionEvents.create('session_created', { presetId: 'test' }))
10
+ */
11
+ import type { BaseEvent } from '../../core/events/types.js';
12
+ import type { DomainEvent } from '../../core/events/types.js';
13
+ import type { SessionId } from '../../core/sessions/schema.js';
14
+ /**
15
+ * Add `sessionId` to a factory-created event, producing a full DomainEvent.
16
+ *
17
+ * The factory `.create()` returns `Omit<BaseEvent<K>, 'sessionId'> & payload`
18
+ * (branded but missing sessionId). This function adds the missing field.
19
+ *
20
+ * TypeScript cannot prove `Omit<Union, 'key'> & { key }` reconstructs the
21
+ * original union (Omit destroys discriminants). The return type uses the same
22
+ * brand-bridging pattern as `createEventsFactory` — safe because all factory
23
+ * events with sessionId are structurally valid DomainEvent members.
24
+ */
25
+ export declare function withSessionId<T extends Omit<BaseEvent<string>, 'sessionId'>>(sessionId: SessionId, event: T): T & {
26
+ sessionId: SessionId;
27
+ } & DomainEvent;
28
+ //# sourceMappingURL=test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/events/test-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAC3E,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,CAAC,GACN,CAAC,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG,WAAW,CAE5C"}
@@ -0,0 +1,46 @@
1
+ import z4 from 'zod/v4';
2
+ import { SessionId } from '../../core/sessions/schema';
3
+ declare const __brand: unique symbol;
4
+ type TheBrand<B> = {
5
+ [__brand]: B;
6
+ };
7
+ type Brand<T, B> = T & TheBrand<B>;
8
+ export type BaseEvent<T extends string> = Brand<{
9
+ sessionId: SessionId;
10
+ timestamp: number;
11
+ type: T;
12
+ }, 'Event'>;
13
+ export type EventsMap = Record<string, z4.ZodObject<z4.ZodRawShape>>;
14
+ export type EventUnion<TEvents extends EventsMap> = {
15
+ [K in keyof TEvents & string]: BaseEvent<K> & z4.infer<TEvents[K]>;
16
+ }[keyof TEvents & string];
17
+ type EventsOf<TEvents extends EventsMap> = {
18
+ [K in keyof TEvents & string]: BaseEvent<K> & z4.infer<TEvents[K]>;
19
+ };
20
+ export interface EventsFactory<TEvents extends EventsMap> {
21
+ create<K extends keyof TEvents & string>(type: K, input: z4.infer<TEvents[K]>): Omit<BaseEvent<K>, 'sessionId'> & z4.infer<TEvents[K]>;
22
+ EventType: EventUnion<TEvents>;
23
+ Events: EventsOf<TEvents>;
24
+ }
25
+ /**
26
+ * Extract the event union type from an EventsFactory instance.
27
+ * Usage: FactoryEventType<typeof sessionEvents | typeof agentEvents>
28
+ */
29
+ export type FactoryEventType<F extends {
30
+ EventType: unknown;
31
+ }> = F['EventType'] & BaseEvent<string>;
32
+ /**
33
+ * Generic domain event type — any event with sessionId, timestamp, and type.
34
+ * Replaces the monolithic DomainEvent union from events.ts.
35
+ * Individual reducers use their own narrower event types via EventsFactory.
36
+ */
37
+ export type DomainEvent = BaseEvent<string>;
38
+ /**
39
+ * Type guard to check if an unknown value is a DomainEvent.
40
+ */
41
+ export declare const isDomainEvent: (event: unknown) => event is DomainEvent;
42
+ export declare const createEventsFactory: <TEvents extends EventsMap>(_args: {
43
+ events: TEvents;
44
+ }) => EventsFactory<TEvents>;
45
+ export {};
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,QAAQ,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAA;AACpC,KAAK,QAAQ,CAAC,CAAC,IAAI;IAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,CAAA;AACnC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;AAElC,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC;IAC/C,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,CAAC,CAAA;CACP,EAAE,OAAO,CAAC,CAAA;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,SAAS,IAAI;KAClD,CAAC,IAAI,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAA;AAEzB,KAAK,QAAQ,CAAC,OAAO,SAAS,SAAS,IAAI;KACzC,CAAC,IAAI,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAClE,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,SAAS;IACvD,MAAM,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACtI,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;AAEnG;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAKhC,CAAA;AAExB,eAAO,MAAM,mBAAmB,GAAI,OAAO,SAAS,SAAS,EAAE,OAAO;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,KAAG,aAAa,CAAC,OAAO,CAWhH,CAAA"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * SessionFileStore - single FileStore implementation with path resolution.
3
+ *
4
+ * Encapsulates all path resolution logic (sandboxed virtual paths, traversal
5
+ * validation, agent-visible path mapping). Replaces the separate path-resolver
6
+ * functions for FileStore consumers.
7
+ *
8
+ * Three scopes:
9
+ * - 'full': accepts agent-visible paths (/home/user/session/... or real paths)
10
+ * - 'session': paths relative to sessionDir
11
+ * - 'workspace': paths relative to workspaceDir
12
+ */
13
+ import type { FileEntry, FileStore } from '../../core/file-store/types.js';
14
+ import type { FileSystem } from '../../platform/fs.js';
15
+ import type { Result } from '../../lib/utils/result.js';
16
+ type FileStoreScope = 'full' | 'session' | 'workspace';
17
+ export declare class SessionFileStore implements FileStore {
18
+ private readonly sessionDir;
19
+ private readonly workspaceDir;
20
+ private readonly sandboxed;
21
+ private readonly fs;
22
+ private readonly scope;
23
+ constructor(sessionDir: string, workspaceDir: string | undefined, sandboxed: boolean, fs: FileSystem, scope?: FileStoreScope);
24
+ /** Create a session-scoped FileStore (relative paths → sessionDir) */
25
+ get session(): SessionFileStore;
26
+ /** Create a workspace-scoped FileStore (relative paths → workspaceDir), or undefined if no workspace */
27
+ get workspace(): SessionFileStore | undefined;
28
+ write(path: string, content: string | Buffer): Promise<Result<{
29
+ path: string;
30
+ }, string>>;
31
+ read(path: string): Promise<Result<string, string>>;
32
+ read(path: string, opts: {
33
+ type: 'buffer';
34
+ }): Promise<Result<Buffer, string>>;
35
+ exists(path: string): Promise<Result<boolean, string>>;
36
+ stat(path: string): Promise<Result<FileEntry, string>>;
37
+ list(path: string): Promise<Result<FileEntry[], string>>;
38
+ remove(path: string): Promise<Result<void, string>>;
39
+ getRoots(): {
40
+ session: string;
41
+ workspace?: string;
42
+ };
43
+ realPath(path: string): Result<string, string>;
44
+ scoped(basePath: string): SessionFileStore;
45
+ private resolvePath;
46
+ /** Resolve a relative path within a root directory */
47
+ private resolveRelativePath;
48
+ /** Resolve an agent-visible path to real filesystem path (handles sandboxed virtual paths) */
49
+ private resolveAgentPath;
50
+ private resolveSandboxedPath;
51
+ private resolveNonSandboxedPath;
52
+ private validateWithinRoot;
53
+ private toAgentPath;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=file-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-store.d.ts","sourceRoot":"","sources":["../../../src/core/file-store/file-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAMnD,KAAK,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;AAEtD,qBAAa,gBAAiB,YAAW,SAAS;IAEhD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAJL,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,SAAS,EAAE,OAAO,EAClB,EAAE,EAAE,UAAU,EACd,KAAK,GAAE,cAAuB;IAGhD,sEAAsE;IACtE,IAAI,OAAO,IAAI,gBAAgB,CAE9B;IAED,wGAAwG;IACxG,IAAI,SAAS,IAAI,gBAAgB,GAAG,SAAS,CAG5C;IAEK,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,CAAC;IAUxF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAe7E,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAOtD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAgBtD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;IA6BxD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAYzD,QAAQ,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAanD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAa1C,OAAO,CAAC,WAAW;IAYnB,sDAAsD;IACtD,OAAO,CAAC,mBAAmB;IAY3B,8FAA8F;IAC9F,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,WAAW;CAsBnB"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * FileStore interface for centralized file operations.
3
+ * All paths are relative to the store's root directory.
4
+ * Used by tools, lib functions, and the LLM provider.
5
+ */
6
+ import type { Result } from '../../lib/utils/result.js';
7
+ export interface FileStat {
8
+ size: number;
9
+ isFile: boolean;
10
+ isDirectory: boolean;
11
+ }
12
+ export interface FileEntry {
13
+ name: string;
14
+ type: 'file' | 'directory' | 'symlink' | 'other';
15
+ size?: number;
16
+ }
17
+ export interface FileStore {
18
+ /** Write text or binary content. Auto-creates parent dirs. Returns the agent-visible path. */
19
+ write(path: string, content: string | Buffer): Promise<Result<{
20
+ path: string;
21
+ }, string>>;
22
+ /** Read file as UTF-8 text. */
23
+ read(path: string): Promise<Result<string, string>>;
24
+ /** Read file as Buffer. */
25
+ read(path: string, opts: {
26
+ type: 'buffer';
27
+ }): Promise<Result<Buffer, string>>;
28
+ /** Check if a file exists. */
29
+ exists(path: string): Promise<Result<boolean, string>>;
30
+ /** Get file/directory stats. */
31
+ stat(path: string): Promise<Result<FileEntry, string>>;
32
+ /** List entries in a directory with type and size info. */
33
+ list(path: string, options?: {
34
+ maxDepth?: number;
35
+ gitIgnore?: boolean;
36
+ }): Promise<Result<FileEntry[], string>>;
37
+ /** Remove a file. */
38
+ remove(path: string): Promise<Result<void, string>>;
39
+ /** Resolve an agent-visible path to real filesystem path. */
40
+ realPath(path: string): Result<string, string>;
41
+ /** Get the agent-visible root paths (virtual when sandboxed, real otherwise) */
42
+ getRoots(): {
43
+ session: string;
44
+ workspace?: string;
45
+ };
46
+ scoped(subPath: string): FileStore;
47
+ session: FileStore;
48
+ workspace?: FileStore;
49
+ }
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/file-store/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,SAAS;IACzB,8FAA8F;IAC9F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,CAAC,CAAA;IAExF,+BAA+B;IAC/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,2BAA2B;IAC3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAE7E,8BAA8B;IAC9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAEtD,gCAAgC;IAChC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IAEtD,2DAA2D;IAC3D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAAA;IAE9G,qBAAqB;IACrB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAEnD,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,gFAAgF;IAChF,QAAQ,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAEnD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAElC,OAAO,EAAE,SAAS,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;CACrB"}
@@ -0,0 +1,15 @@
1
+ import type { FileStore } from '../../core/file-store/types.js';
2
+ import type { ToolResultContent } from '../../core/llm/llm-log-types.js';
3
+ import type { FileSystem } from '../../platform/fs.js';
4
+ import type { ImageProcessor, ImageProcessorConfig, ImageResizer } from './types.js';
5
+ export declare class DefaultImageProcessor implements ImageProcessor {
6
+ private resizer;
7
+ private fs;
8
+ private config;
9
+ constructor(resizer: ImageResizer, fs: FileSystem, config?: ImageProcessorConfig);
10
+ resolveContent(content: ToolResultContent, fileStore?: FileStore): Promise<ToolResultContent>;
11
+ private resolveDirect;
12
+ private resolveViaStore;
13
+ private readAndEncode;
14
+ }
15
+ //# sourceMappingURL=image-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-processor.d.ts","sourceRoot":"","sources":["../../../src/core/image/image-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAA0B,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAMpF,qBAAa,qBAAsB,YAAW,cAAc;IAE1D,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;gBAFN,OAAO,EAAE,YAAY,EACrB,EAAE,EAAE,UAAU,EACd,MAAM,GAAE,oBAA4D;IAGvE,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAiCrF,aAAa;YAqBb,eAAe;YAsBf,aAAa;CAgC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=image-processor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-processor.test.d.ts","sourceRoot":"","sources":["../../../src/core/image/image-processor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export { DefaultImageProcessor } from './image-processor.js';
2
+ export { NoopImageResizer } from './noop-resizer.js';
3
+ export type { ImageProcessor, ImageProcessorConfig, ImageResizeOptions, ImageResizer, ImageResizeResult } from './types.js';
4
+ export { VipsImageResizer } from './vips-resizer.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC3H,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { ImageResizeOptions, ImageResizer, ImageResizeResult } from './types.js';
2
+ export declare class NoopImageResizer implements ImageResizer {
3
+ resize(filePath: string, mimeType: string, _options?: ImageResizeOptions): Promise<ImageResizeResult>;
4
+ }
5
+ //# sourceMappingURL=noop-resizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop-resizer.d.ts","sourceRoot":"","sources":["../../../src/core/image/noop-resizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAErF,qBAAa,gBAAiB,YAAW,YAAY;IAC9C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAG3G"}
@@ -0,0 +1,20 @@
1
+ import type { FileStore } from '../../core/file-store/types.js';
2
+ import type { ToolResultContent } from '../../core/llm/llm-log-types.js';
3
+ export interface ImageResizeOptions {
4
+ maxFileSizeBytes?: number;
5
+ }
6
+ export interface ImageResizer {
7
+ resize(filePath: string, mimeType: string, options?: ImageResizeOptions): Promise<ImageResizeResult>;
8
+ }
9
+ export interface ImageResizeResult {
10
+ path: string;
11
+ mimeType: string;
12
+ tempFile?: string;
13
+ }
14
+ export interface ImageProcessorConfig {
15
+ maxFileSizeBytes: number;
16
+ }
17
+ export interface ImageProcessor {
18
+ resolveContent(content: ToolResultContent, fileStore?: FileStore): Promise<ToolResultContent>;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/image/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,MAAM,WAAW,kBAAkB;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;CACpG;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACpC,gBAAgB,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC9B,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAC7F"}
@@ -0,0 +1,21 @@
1
+ import type { FileSystem } from '../../platform/fs.js';
2
+ import type { ProcessRunner } from '../../platform/process.js';
3
+ import type { ImageResizeOptions, ImageResizer, ImageResizeResult } from './types.js';
4
+ export interface VipsImageResizerOptions {
5
+ fs: FileSystem;
6
+ process: ProcessRunner;
7
+ tmpDir: string;
8
+ maxDimension?: number;
9
+ }
10
+ export declare class VipsImageResizer implements ImageResizer {
11
+ private readonly fs;
12
+ private readonly process;
13
+ private readonly tmpDir;
14
+ private readonly maxDimension;
15
+ constructor(options: VipsImageResizerOptions);
16
+ resize(filePath: string, mimeType: string, options?: ImageResizeOptions): Promise<ImageResizeResult>;
17
+ private getImageDimensions;
18
+ private dimensionResize;
19
+ private compressToFit;
20
+ }
21
+ //# sourceMappingURL=vips-resizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vips-resizer.d.ts","sourceRoot":"","sources":["../../../src/core/image/vips-resizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAErF,MAAM,WAAW,uBAAuB;IACvC,EAAE,EAAE,UAAU,CAAA;IACd,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,qBAAa,gBAAiB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;gBAEzB,OAAO,EAAE,uBAAuB;IAOtC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAwB5F,kBAAkB;YAUlB,eAAe;YAuBf,aAAa;CAyC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=vips-resizer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vips-resizer.test.d.ts","sourceRoot":"","sources":["../../../src/core/image/vips-resizer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
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, ProviderHttpRequest, RawInferenceRequest } from './provider.js';
5
+ import type { RoutableLLMProvider } from './routing-provider.js';
6
+ export interface AnthropicConfig {
7
+ apiKey: string;
8
+ defaultModel?: string;
9
+ timeout?: number;
10
+ logger?: Logger;
11
+ imageProcessor: ImageProcessor;
12
+ /** When set, enables extended thinking with this token budget. Min 1024. */
13
+ thinkingBudget?: number;
14
+ /** Custom fetch function (for testing/caching). Defaults to globalThis.fetch. */
15
+ fetch?: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
16
+ }
17
+ export declare class AnthropicProvider implements RoutableLLMProvider {
18
+ readonly name = "anthropic";
19
+ private apiKey;
20
+ private defaultModel;
21
+ private logger?;
22
+ private imageProcessor;
23
+ private thinkingBudget?;
24
+ private timeout;
25
+ private fetchFn;
26
+ constructor(config: AnthropicConfig);
27
+ /**
28
+ * Returns true for models with `anthropic/` prefix or starting with `claude-`.
29
+ */
30
+ canHandle(model: string): boolean;
31
+ /**
32
+ * Normalizes model ID for the Anthropic API:
33
+ * 1. Strips `anthropic/` prefix if present
34
+ * 2. Converts version dots to dashes (OpenRouter `claude-opus-4.6` → Anthropic `claude-opus-4-6`)
35
+ */
36
+ normalizeModel(model: string): string;
37
+ inference(request: InferenceRequest, context?: InferenceContext): Promise<Result<InferenceResponse, LLMError>>;
38
+ buildHttpRequest(request: RawInferenceRequest, context?: InferenceContext): Promise<ProviderHttpRequest>;
39
+ private mapMessage;
40
+ private mapMessageContent;
41
+ private mapToolResultContent;
42
+ private mapUserContentItems;
43
+ private mapImageContent;
44
+ private mergeConsecutiveMessages;
45
+ private normalizeContent;
46
+ private mapStopReason;
47
+ private calculateCost;
48
+ private mapHttpError;
49
+ private mapError;
50
+ }
51
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/core/llm/anthropic.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,EAIR,mBAAmB,EACnB,mBAAmB,EAEnB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAMhE,MAAM,WAAW,eAAe;IAC/B,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,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,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;AAsJD,qBAAa,iBAAkB,YAAW,mBAAmB;IAC5D,QAAQ,CAAC,IAAI,eAAc;IAC3B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAC,CAAQ;IAC/B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAA0E;gBAE7E,MAAM,EAAE,eAAe;IAUnC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAKjC;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAS/B,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IA0F9G,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAgDhG,UAAU;YAQV,iBAAiB;IA+C/B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,QAAQ;CAShB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=anthropic.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.test.d.ts","sourceRoot":"","sources":["../../../src/core/llm/anthropic.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import type { LLMMessage } from '../../core/agents/state.js';
2
+ /**
3
+ * Mark the prompt cache breakpoint on a message list.
4
+ *
5
+ * Flag-based: the target message gets a `cacheControl` marker. Providers that
6
+ * support ephemeral prompt caching (anthropic, openrouter) react to the flag
7
+ * during `buildHttpRequest` and place `cache_control: { type: 'ephemeral' }`
8
+ * on the LAST content block of the mapped message — regardless of block type
9
+ * (text / tool_use / tool_result / image). This matches the API semantics
10
+ * "cache the prefix up to and including this block".
11
+ *
12
+ * Target index is `messages.length - 1 - uncachedSuffixCount`. The suffix is
13
+ * the tail of messages that must remain fresh (e.g. ephemeral session context
14
+ * rebuilt each inference).
15
+ */
16
+ export declare function applyCacheBreakpoint(messages: LLMMessage[], uncachedSuffixCount: number): LLMMessage[];
17
+ //# sourceMappingURL=cache-breakpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-breakpoints.d.ts","sourceRoot":"","sources":["../../../src/core/llm/cache-breakpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,mBAAmB,EAAE,MAAM,GAAG,UAAU,EAAE,CAqBtG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Live cache verification tests for Anthropic + OpenRouter providers.
3
+ *
4
+ * Opt-in: run with `LIVE_TESTS=1 ANTHROPIC_API_KEY=… OPENROUTER_API_KEY=…`.
5
+ * Skipped otherwise so the default `bun test` run stays hermetic.
6
+ *
7
+ * These tests bypass snapshot-fetch entirely (use real `globalThis.fetch`) so
8
+ * two sequential identical calls actually land on the live API — proving that
9
+ * the new message-level `cacheControl` flag → last-block placement is both
10
+ * accepted and honored as a prompt cache checkpoint.
11
+ *
12
+ * The system prompt is padded to comfortably exceed Anthropic's 1024-token
13
+ * minimum cacheable prefix for Haiku / Sonnet.
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=cache-live.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-live.test.d.ts","sourceRoot":"","sources":["../../../src/core/llm/cache-live.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
@@ -0,0 +1,16 @@
1
+ export { AnthropicProvider } from './anthropic.js';
2
+ export type { AnthropicConfig } from './anthropic.js';
3
+ export { OpenRouterProvider } from './openrouter.js';
4
+ export type { OpenRouterConfig } from './openrouter.js';
5
+ export { RoutingLLMProvider } from './routing-provider.js';
6
+ export type { RoutableLLMProvider } from './routing-provider.js';
7
+ export { LoggingLLMProvider } from './logging-provider.js';
8
+ export { MockLLMProvider, RequestMatchers } from './mock.js';
9
+ export type { MockInferenceHandler } from './mock.js';
10
+ export { LLMLogger } from './logger.js';
11
+ export type { LLMLoggerConfig } from './logger.js';
12
+ export { applyMiddleware, useProvider, withAnthropic, withMaxTokens, withOpenRouter, withTemperature } from './middleware.js';
13
+ export type { InferenceNext, LLMMiddleware } from './middleware.js';
14
+ export { composeStrippers, createSnapshotLLMMiddleware, normalizeStripRuntime, normalizeStripUuids, normalizeWith, stripEphemeralPorts, stripUuids, } from './snapshot-middleware.js';
15
+ export type { SnapshotLLMMiddlewareOptions } from './snapshot-middleware.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC7H,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEnE,OAAO,EACN,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,UAAU,GACV,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA"}
@@ -0,0 +1,148 @@
1
+ import type { AgentId } from '../../core/agents/schema.js';
2
+ import type { AnthropicRequestOptions, OpenRouterRequestOptions } from '../../core/llm/provider.js';
3
+ import type { LLMCallId } from '../../core/llm/schema.js';
4
+ import type { SessionId } from '../../core/sessions/schema.js';
5
+ import type { ToolCallId } from '../../core/tools/schema.js';
6
+ import type { LLMToolCall } from './state.js';
7
+ export type ChatMessageContentItemText = {
8
+ type: 'text';
9
+ text: string;
10
+ cacheControl?: {
11
+ type: 'ephemeral';
12
+ };
13
+ };
14
+ export type ChatMessageContentItemImageDetail = 'auto' | 'low' | 'high';
15
+ export type ChatMessageContentItemImage = {
16
+ type: 'image_url';
17
+ imageUrl: {
18
+ url: string;
19
+ detail?: ChatMessageContentItemImageDetail;
20
+ };
21
+ };
22
+ /**
23
+ * Union of all content item types.
24
+ * Start with text and image, extend with audio/video as needed.
25
+ */
26
+ export type ChatMessageContentItem = ChatMessageContentItemText | ChatMessageContentItemImage;
27
+ /**
28
+ * Tool result content - string or array of content items.
29
+ * Matches OpenRouter's ToolResponseMessageContent type.
30
+ */
31
+ export type ToolResultContent = string | ChatMessageContentItem[];
32
+ /**
33
+ * Helper to normalize content to string (for display/logging).
34
+ */
35
+ export declare const contentToString: (content: ToolResultContent) => string;
36
+ /**
37
+ * Represents an LLM message in the request.
38
+ */
39
+ export type LLMCallMessage = {
40
+ role: 'user' | 'assistant' | 'tool' | 'system';
41
+ content: string | ChatMessageContentItem[];
42
+ toolCalls?: LLMToolCall[];
43
+ toolCallId?: ToolCallId;
44
+ /** Assistant reasoning (for models that support it) */
45
+ reasoning?: string;
46
+ /** Prompt cache breakpoint marker (ephemeral cache checkpoint after this message) */
47
+ cacheControl?: {
48
+ type: 'ephemeral';
49
+ };
50
+ };
51
+ /**
52
+ * Tool definition for logging (includes full JSON schema).
53
+ */
54
+ export type LLMCallToolDefinition = {
55
+ name: string;
56
+ description: string;
57
+ /** JSON Schema for tool parameters */
58
+ parameters?: Record<string, unknown>;
59
+ };
60
+ /**
61
+ * Request data stored in the log entry.
62
+ */
63
+ export type LLMCallRequest = {
64
+ model: string;
65
+ systemPrompt: string;
66
+ messages: LLMCallMessage[];
67
+ tools?: LLMCallToolDefinition[];
68
+ toolsCount: number;
69
+ maxTokens?: number;
70
+ temperature?: number;
71
+ /** Provider-specific options set by middleware */
72
+ providerOptions?: {
73
+ openrouter?: OpenRouterRequestOptions;
74
+ anthropic?: AnthropicRequestOptions;
75
+ };
76
+ };
77
+ /**
78
+ * Response data stored in the log entry.
79
+ */
80
+ export type LLMCallResponse = {
81
+ content: string | null;
82
+ toolCalls: LLMToolCall[];
83
+ finishReason: 'stop' | 'tool_calls' | 'length' | 'error';
84
+ /** Assistant reasoning (for models that support extended thinking) */
85
+ reasoning?: string;
86
+ };
87
+ /**
88
+ * Extended metrics with detailed token breakdown.
89
+ */
90
+ export type LLMCallMetrics = {
91
+ promptTokens: number;
92
+ completionTokens: number;
93
+ totalTokens: number;
94
+ /** Reasoning/thinking tokens (for models like o1, Claude with extended thinking) */
95
+ reasoningTokens?: number;
96
+ /** Cached prompt tokens (for providers with prompt caching) */
97
+ cachedTokens?: number;
98
+ /** Tokens written to prompt cache */
99
+ cacheWriteTokens?: number;
100
+ latencyMs: number;
101
+ /** Generation time (actual model inference time) */
102
+ generationTimeMs?: number;
103
+ model: string;
104
+ /** Provider name (e.g., "anthropic", "openai") */
105
+ provider?: string;
106
+ cost?: number;
107
+ /** Cache status */
108
+ cacheStatus?: 'hit' | 'miss' | 'none';
109
+ };
110
+ /**
111
+ * Error data stored in the log entry.
112
+ */
113
+ export type LLMCallError = {
114
+ type: string;
115
+ message: string;
116
+ retryAfterMs?: number;
117
+ /** HTTP status code from the provider response */
118
+ statusCode?: number;
119
+ /** Raw HTTP response body from the provider */
120
+ responseBody?: string;
121
+ };
122
+ /**
123
+ * Complete LLM call log entry.
124
+ * Each entry represents a single LLM API call with full request/response details.
125
+ */
126
+ export type LLMCallLogEntry = {
127
+ id: LLMCallId;
128
+ sessionId: SessionId;
129
+ agentId: AgentId;
130
+ createdAt: number;
131
+ completedAt?: number;
132
+ durationMs?: number;
133
+ status: 'running' | 'success' | 'error';
134
+ request: LLMCallRequest;
135
+ response?: LLMCallResponse;
136
+ metrics?: LLMCallMetrics;
137
+ error?: LLMCallError;
138
+ /** Provider-specific request ID (e.g., OpenRouter generation ID) */
139
+ providerRequestId?: string;
140
+ };
141
+ /**
142
+ * Response for listing LLM calls.
143
+ */
144
+ export type GetLLMCallsResponse = {
145
+ calls: LLMCallLogEntry[];
146
+ total: number;
147
+ };
148
+ //# sourceMappingURL=llm-log-types.d.ts.map