@amodalai/runtime 0.1.25 → 0.2.0

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 (367) hide show
  1. package/dist/src/__fixtures__/README.md +84 -0
  2. package/dist/src/__fixtures__/smoke-agent/amodal.json +11 -0
  3. package/dist/src/__fixtures__/smoke-agent/automations/test-auto.md +5 -0
  4. package/dist/src/__fixtures__/smoke-agent/connections/mock-api/access.json +11 -0
  5. package/dist/src/__fixtures__/smoke-agent/connections/mock-api/spec.json +4 -0
  6. package/dist/src/__fixtures__/smoke-agent/connections/mock-api/surface.md +9 -0
  7. package/dist/src/__fixtures__/smoke-agent/connections/mock-mcp/access.json +3 -0
  8. package/dist/src/__fixtures__/smoke-agent/connections/mock-mcp/spec.json +8 -0
  9. package/dist/src/__fixtures__/smoke-agent/evals/basic-eval.md +12 -0
  10. package/dist/src/__fixtures__/smoke-agent/knowledge/test-knowledge.md +3 -0
  11. package/dist/src/__fixtures__/smoke-agent/skills/test-skill/SKILL.md +11 -0
  12. package/dist/src/__fixtures__/smoke-agent/stores/test-items.json +11 -0
  13. package/dist/src/__fixtures__/smoke-agent/tools/echo_tool/handler.d.ts +18 -0
  14. package/dist/src/__fixtures__/smoke-agent/tools/echo_tool/handler.js +22 -0
  15. package/dist/src/__fixtures__/smoke-agent/tools/echo_tool/handler.js.map +1 -0
  16. package/dist/src/__fixtures__/smoke-agent/tools/echo_tool/tool.json +17 -0
  17. package/dist/src/__fixtures__/smoke.test.js +718 -0
  18. package/dist/src/__fixtures__/smoke.test.js.map +1 -0
  19. package/dist/src/{agent/stores-e2e.test.d.ts → __tests__/providers.test.d.ts} +1 -1
  20. package/dist/src/__tests__/providers.test.js +209 -0
  21. package/dist/src/__tests__/providers.test.js.map +1 -0
  22. package/dist/src/__tests__/test-providers.d.ts +40 -0
  23. package/dist/src/__tests__/test-providers.js +61 -0
  24. package/dist/src/__tests__/test-providers.js.map +1 -0
  25. package/dist/src/agent/agent-types.d.ts +2 -2
  26. package/dist/src/agent/config-watcher.test.js +18 -14
  27. package/dist/src/agent/config-watcher.test.js.map +1 -1
  28. package/dist/src/agent/local-server.d.ts +3 -3
  29. package/dist/src/agent/local-server.js +213 -122
  30. package/dist/src/agent/local-server.js.map +1 -1
  31. package/dist/src/agent/local-server.test.js +17 -13
  32. package/dist/src/agent/local-server.test.js.map +1 -1
  33. package/dist/src/agent/loop-types.d.ts +175 -0
  34. package/dist/src/agent/loop-types.js +20 -0
  35. package/dist/src/agent/loop-types.js.map +1 -0
  36. package/dist/src/agent/loop.d.ts +31 -0
  37. package/dist/src/agent/loop.js +139 -0
  38. package/dist/src/agent/loop.js.map +1 -0
  39. package/dist/src/agent/{tool-context-builder.test.d.ts → loop.test.d.ts} +1 -1
  40. package/dist/src/agent/loop.test.js +1030 -0
  41. package/dist/src/agent/loop.test.js.map +1 -0
  42. package/dist/src/agent/mcp-config.d.ts +28 -0
  43. package/dist/src/agent/mcp-config.js +57 -0
  44. package/dist/src/agent/mcp-config.js.map +1 -0
  45. package/dist/src/agent/page-builder.js +6 -1
  46. package/dist/src/agent/page-builder.js.map +1 -1
  47. package/dist/src/agent/proactive/proactive-runner.d.ts +24 -8
  48. package/dist/src/agent/proactive/proactive-runner.js +36 -33
  49. package/dist/src/agent/proactive/proactive-runner.js.map +1 -1
  50. package/dist/src/agent/proactive/proactive-runner.test.d.ts +1 -1
  51. package/dist/src/agent/proactive/proactive-runner.test.js +75 -87
  52. package/dist/src/agent/proactive/proactive-runner.test.js.map +1 -1
  53. package/dist/src/agent/routes/admin-chat.d.ts +15 -3
  54. package/dist/src/agent/routes/admin-chat.js +63 -17
  55. package/dist/src/agent/routes/admin-chat.js.map +1 -1
  56. package/dist/src/agent/routes/automations.js +5 -4
  57. package/dist/src/agent/routes/automations.js.map +1 -1
  58. package/dist/src/agent/routes/evals.d.ts +3 -2
  59. package/dist/src/agent/routes/evals.js +25 -11
  60. package/dist/src/agent/routes/evals.js.map +1 -1
  61. package/dist/src/agent/routes/files.js +7 -6
  62. package/dist/src/agent/routes/files.js.map +1 -1
  63. package/dist/src/agent/routes/inspect.d.ts +6 -2
  64. package/dist/src/agent/routes/inspect.js +32 -15
  65. package/dist/src/agent/routes/inspect.js.map +1 -1
  66. package/dist/src/agent/routes/inspect.test.js +18 -42
  67. package/dist/src/agent/routes/inspect.test.js.map +1 -1
  68. package/dist/src/agent/routes/stores.js +9 -8
  69. package/dist/src/agent/routes/stores.js.map +1 -1
  70. package/dist/src/agent/routes/task.d.ts +15 -3
  71. package/dist/src/agent/routes/task.js +16 -6
  72. package/dist/src/agent/routes/task.js.map +1 -1
  73. package/dist/src/agent/routes/task.test.d.ts +1 -1
  74. package/dist/src/agent/routes/task.test.js +70 -53
  75. package/dist/src/agent/routes/task.test.js.map +1 -1
  76. package/dist/src/agent/routes/webhooks.js +12 -2
  77. package/dist/src/agent/routes/webhooks.js.map +1 -1
  78. package/dist/src/agent/session-store.d.ts +11 -2
  79. package/dist/src/agent/session-store.js +1 -1
  80. package/dist/src/agent/session-store.js.map +1 -1
  81. package/dist/src/agent/snapshot-server.d.ts +2 -22
  82. package/dist/src/agent/snapshot-server.js +50 -27
  83. package/dist/src/agent/snapshot-server.js.map +1 -1
  84. package/dist/src/agent/states/compacting.d.ts +14 -0
  85. package/dist/src/agent/states/compacting.js +258 -0
  86. package/dist/src/agent/states/compacting.js.map +1 -0
  87. package/dist/src/agent/states/confirming.d.ts +10 -0
  88. package/dist/src/agent/states/confirming.js +76 -0
  89. package/dist/src/agent/states/confirming.js.map +1 -0
  90. package/dist/src/agent/states/dispatching.d.ts +18 -0
  91. package/dist/src/agent/states/dispatching.js +241 -0
  92. package/dist/src/agent/states/dispatching.js.map +1 -0
  93. package/dist/src/agent/states/executing.d.ts +21 -0
  94. package/dist/src/agent/states/executing.js +308 -0
  95. package/dist/src/agent/states/executing.js.map +1 -0
  96. package/dist/src/agent/states/streaming.d.ts +10 -0
  97. package/dist/src/agent/states/streaming.js +155 -0
  98. package/dist/src/agent/states/streaming.js.map +1 -0
  99. package/dist/src/agent/states/thinking.d.ts +13 -0
  100. package/dist/src/agent/states/thinking.js +233 -0
  101. package/dist/src/agent/states/thinking.js.map +1 -0
  102. package/dist/src/agent/token-estimate.d.ts +17 -0
  103. package/dist/src/agent/token-estimate.js +13 -0
  104. package/dist/src/agent/token-estimate.js.map +1 -0
  105. package/dist/src/agent/tool-executor-local.js +9 -18
  106. package/dist/src/agent/tool-executor-local.js.map +1 -1
  107. package/dist/src/agent/tool-executor-local.test.js +3 -5
  108. package/dist/src/agent/tool-executor-local.test.js.map +1 -1
  109. package/dist/src/api/create-agent.d.ts +15 -0
  110. package/dist/src/api/create-agent.js +137 -0
  111. package/dist/src/api/create-agent.js.map +1 -0
  112. package/dist/src/api/types.d.ts +68 -0
  113. package/dist/src/api/types.js +7 -0
  114. package/dist/src/api/types.js.map +1 -0
  115. package/dist/src/config.d.ts +96 -0
  116. package/dist/src/config.js +221 -0
  117. package/dist/src/config.js.map +1 -0
  118. package/dist/src/{agent/custom-tools-e2e.test.d.ts → config.test.d.ts} +1 -1
  119. package/dist/src/config.test.js +235 -0
  120. package/dist/src/config.test.js.map +1 -0
  121. package/dist/src/context/compiler.d.ts +13 -0
  122. package/dist/src/context/compiler.js +358 -0
  123. package/dist/src/context/compiler.js.map +1 -0
  124. package/dist/src/context/compiler.test.d.ts +6 -0
  125. package/dist/src/context/compiler.test.js +532 -0
  126. package/dist/src/context/compiler.test.js.map +1 -0
  127. package/dist/src/context/types.d.ts +110 -0
  128. package/dist/src/context/types.js +7 -0
  129. package/dist/src/context/types.js.map +1 -0
  130. package/dist/src/errors.d.ts +145 -0
  131. package/dist/src/errors.js +218 -0
  132. package/dist/src/errors.js.map +1 -0
  133. package/dist/src/errors.test.d.ts +6 -0
  134. package/dist/src/errors.test.js +203 -0
  135. package/dist/src/errors.test.js.map +1 -0
  136. package/dist/src/index.d.ts +38 -6
  137. package/dist/src/index.js +40 -22
  138. package/dist/src/index.js.map +1 -1
  139. package/dist/src/logger.d.ts +15 -31
  140. package/dist/src/logger.js +19 -78
  141. package/dist/src/logger.js.map +1 -1
  142. package/dist/src/logger.test.d.ts +6 -0
  143. package/dist/src/logger.test.js +198 -0
  144. package/dist/src/logger.test.js.map +1 -0
  145. package/dist/src/providers/create-provider.d.ts +23 -0
  146. package/dist/src/providers/create-provider.js +185 -0
  147. package/dist/src/providers/create-provider.js.map +1 -0
  148. package/dist/src/providers/create-provider.test.d.ts +6 -0
  149. package/dist/src/providers/create-provider.test.js +95 -0
  150. package/dist/src/providers/create-provider.test.js.map +1 -0
  151. package/dist/src/providers/failover.d.ts +38 -0
  152. package/dist/src/providers/failover.js +147 -0
  153. package/dist/src/providers/failover.js.map +1 -0
  154. package/dist/src/providers/failover.test.d.ts +6 -0
  155. package/dist/src/providers/failover.test.js +169 -0
  156. package/dist/src/providers/failover.test.js.map +1 -0
  157. package/dist/src/providers/types.d.ts +110 -0
  158. package/dist/src/providers/types.js +7 -0
  159. package/dist/src/providers/types.js.map +1 -0
  160. package/dist/src/routes/ai-stream.d.ts +13 -10
  161. package/dist/src/routes/ai-stream.js +76 -38
  162. package/dist/src/routes/ai-stream.js.map +1 -1
  163. package/dist/src/routes/chat-new.test.d.ts +6 -0
  164. package/dist/src/routes/chat-new.test.js +107 -0
  165. package/dist/src/routes/chat-new.test.js.map +1 -0
  166. package/dist/src/routes/chat-stream-new.test.d.ts +6 -0
  167. package/dist/src/routes/chat-stream-new.test.js +135 -0
  168. package/dist/src/routes/chat-stream-new.test.js.map +1 -0
  169. package/dist/src/routes/chat-stream.d.ts +14 -4
  170. package/dist/src/routes/chat-stream.js +47 -27
  171. package/dist/src/routes/chat-stream.js.map +1 -1
  172. package/dist/src/routes/chat.d.ts +13 -4
  173. package/dist/src/routes/chat.js +60 -22
  174. package/dist/src/routes/chat.js.map +1 -1
  175. package/dist/src/routes/health.d.ts +3 -2
  176. package/dist/src/routes/health.js.map +1 -1
  177. package/dist/src/routes/route-helpers.d.ts +50 -0
  178. package/dist/src/routes/route-helpers.js +80 -0
  179. package/dist/src/routes/route-helpers.js.map +1 -0
  180. package/dist/src/routes/session-resolver.d.ts +72 -0
  181. package/dist/src/routes/session-resolver.js +123 -0
  182. package/dist/src/routes/session-resolver.js.map +1 -0
  183. package/dist/src/routes/session-resolver.test.d.ts +6 -0
  184. package/dist/src/routes/session-resolver.test.js +206 -0
  185. package/dist/src/routes/session-resolver.test.js.map +1 -0
  186. package/dist/src/routes/webhooks.d.ts +3 -1
  187. package/dist/src/routes/webhooks.js +12 -2
  188. package/dist/src/routes/webhooks.js.map +1 -1
  189. package/dist/src/security/permission-checker.d.ts +80 -0
  190. package/dist/src/security/permission-checker.js +75 -0
  191. package/dist/src/security/permission-checker.js.map +1 -0
  192. package/dist/src/security/permission-checker.test.d.ts +6 -0
  193. package/dist/src/security/permission-checker.test.js +208 -0
  194. package/dist/src/security/permission-checker.test.js.map +1 -0
  195. package/dist/src/server.d.ts +12 -11
  196. package/dist/src/server.js +44 -46
  197. package/dist/src/server.js.map +1 -1
  198. package/dist/src/server.test.d.ts +1 -1
  199. package/dist/src/server.test.js +6 -140
  200. package/dist/src/server.test.js.map +1 -1
  201. package/dist/src/session/manager.d.ts +98 -0
  202. package/dist/src/session/manager.js +364 -0
  203. package/dist/src/session/manager.js.map +1 -0
  204. package/dist/src/session/manager.test.d.ts +6 -0
  205. package/dist/src/session/manager.test.js +315 -0
  206. package/dist/src/session/manager.test.js.map +1 -0
  207. package/dist/src/session/session-builder.d.ts +71 -0
  208. package/dist/src/session/session-builder.js +364 -0
  209. package/dist/src/session/session-builder.js.map +1 -0
  210. package/dist/src/session/session-builder.test.d.ts +6 -0
  211. package/dist/src/session/session-builder.test.js +352 -0
  212. package/dist/src/session/session-builder.test.js.map +1 -0
  213. package/dist/src/session/store.d.ts +57 -0
  214. package/dist/src/session/store.js +167 -0
  215. package/dist/src/session/store.js.map +1 -0
  216. package/dist/src/session/store.test.d.ts +6 -0
  217. package/dist/src/session/store.test.js +145 -0
  218. package/dist/src/session/store.test.js.map +1 -0
  219. package/dist/src/session/stream-hooks.d.ts +39 -0
  220. package/dist/src/session/stream-hooks.js +7 -0
  221. package/dist/src/session/stream-hooks.js.map +1 -0
  222. package/dist/src/session/tool-context-factory.d.ts +60 -0
  223. package/dist/src/session/tool-context-factory.js +190 -0
  224. package/dist/src/session/tool-context-factory.js.map +1 -0
  225. package/dist/src/session/tool-context-factory.test.d.ts +6 -0
  226. package/dist/src/session/tool-context-factory.test.js +287 -0
  227. package/dist/src/session/tool-context-factory.test.js.map +1 -0
  228. package/dist/src/session/types.d.ts +188 -0
  229. package/dist/src/session/types.js +7 -0
  230. package/dist/src/session/types.js.map +1 -0
  231. package/dist/src/stores/drizzle-store-backend.d.ts +49 -0
  232. package/dist/src/stores/drizzle-store-backend.js +306 -0
  233. package/dist/src/stores/drizzle-store-backend.js.map +1 -0
  234. package/dist/src/stores/drizzle-store-backend.test.d.ts +6 -0
  235. package/dist/src/stores/drizzle-store-backend.test.js +215 -0
  236. package/dist/src/stores/drizzle-store-backend.test.js.map +1 -0
  237. package/dist/src/stores/index.d.ts +4 -0
  238. package/dist/src/stores/index.js +2 -0
  239. package/dist/src/stores/index.js.map +1 -1
  240. package/dist/src/stores/pglite-store-backend.d.ts +16 -19
  241. package/dist/src/stores/pglite-store-backend.js +85 -233
  242. package/dist/src/stores/pglite-store-backend.js.map +1 -1
  243. package/dist/src/stores/postgres-store-backend.d.ts +30 -0
  244. package/dist/src/stores/postgres-store-backend.js +100 -0
  245. package/dist/src/stores/postgres-store-backend.js.map +1 -0
  246. package/dist/src/stores/schema.d.ts +491 -0
  247. package/dist/src/stores/schema.js +57 -0
  248. package/dist/src/stores/schema.js.map +1 -0
  249. package/dist/src/tools/admin-file-tools.d.ts +13 -0
  250. package/dist/src/tools/admin-file-tools.js +200 -0
  251. package/dist/src/tools/admin-file-tools.js.map +1 -0
  252. package/dist/src/tools/admin-file-tools.test.d.ts +6 -0
  253. package/dist/src/tools/admin-file-tools.test.js +152 -0
  254. package/dist/src/tools/admin-file-tools.test.js.map +1 -0
  255. package/dist/src/tools/custom-tool-adapter.d.ts +41 -0
  256. package/dist/src/tools/custom-tool-adapter.js +190 -0
  257. package/dist/src/tools/custom-tool-adapter.js.map +1 -0
  258. package/dist/src/tools/custom-tool-adapter.test.d.ts +6 -0
  259. package/dist/src/tools/custom-tool-adapter.test.js +244 -0
  260. package/dist/src/tools/custom-tool-adapter.test.js.map +1 -0
  261. package/dist/src/tools/dispatch-tool.d.ts +52 -0
  262. package/dist/src/tools/dispatch-tool.js +71 -0
  263. package/dist/src/tools/dispatch-tool.js.map +1 -0
  264. package/dist/src/tools/dispatch-tool.test.d.ts +6 -0
  265. package/dist/src/tools/dispatch-tool.test.js +75 -0
  266. package/dist/src/tools/dispatch-tool.test.js.map +1 -0
  267. package/dist/src/tools/mcp-tool-adapter.d.ts +18 -0
  268. package/dist/src/tools/mcp-tool-adapter.js +135 -0
  269. package/dist/src/tools/mcp-tool-adapter.js.map +1 -0
  270. package/dist/src/tools/mcp-tool-adapter.test.d.ts +6 -0
  271. package/dist/src/tools/mcp-tool-adapter.test.js +227 -0
  272. package/dist/src/tools/mcp-tool-adapter.test.js.map +1 -0
  273. package/dist/src/tools/registry.d.ts +25 -0
  274. package/dist/src/tools/registry.js +72 -0
  275. package/dist/src/tools/registry.js.map +1 -0
  276. package/dist/src/tools/registry.test.d.ts +6 -0
  277. package/dist/src/tools/registry.test.js +121 -0
  278. package/dist/src/tools/registry.test.js.map +1 -0
  279. package/dist/src/tools/request-tool.d.ts +42 -0
  280. package/dist/src/tools/request-tool.js +190 -0
  281. package/dist/src/tools/request-tool.js.map +1 -0
  282. package/dist/src/tools/request-tool.test.d.ts +6 -0
  283. package/dist/src/tools/request-tool.test.js +254 -0
  284. package/dist/src/tools/request-tool.test.js.map +1 -0
  285. package/dist/src/tools/store-tools.d.ts +29 -0
  286. package/dist/src/tools/store-tools.js +224 -0
  287. package/dist/src/tools/store-tools.js.map +1 -0
  288. package/dist/src/tools/store-tools.test.d.ts +6 -0
  289. package/dist/src/tools/store-tools.test.js +216 -0
  290. package/dist/src/tools/store-tools.test.js.map +1 -0
  291. package/dist/src/tools/types.d.ts +111 -0
  292. package/dist/src/tools/types.js +7 -0
  293. package/dist/src/tools/types.js.map +1 -0
  294. package/dist/src/types.d.ts +20 -12
  295. package/dist/src/types.js +3 -2
  296. package/dist/src/types.js.map +1 -1
  297. package/dist/tsconfig.tsbuildinfo +1 -1
  298. package/package.json +13 -3
  299. package/dist/src/agent/agent-runner.d.ts +0 -33
  300. package/dist/src/agent/agent-runner.js +0 -1040
  301. package/dist/src/agent/agent-runner.js.map +0 -1
  302. package/dist/src/agent/custom-tools-e2e.test.js +0 -566
  303. package/dist/src/agent/custom-tools-e2e.test.js.map +0 -1
  304. package/dist/src/agent/request-helper.d.ts +0 -16
  305. package/dist/src/agent/request-helper.js +0 -96
  306. package/dist/src/agent/request-helper.js.map +0 -1
  307. package/dist/src/agent/stores-e2e.test.js +0 -433
  308. package/dist/src/agent/stores-e2e.test.js.map +0 -1
  309. package/dist/src/agent/tool-context-builder.d.ts +0 -11
  310. package/dist/src/agent/tool-context-builder.js +0 -102
  311. package/dist/src/agent/tool-context-builder.js.map +0 -1
  312. package/dist/src/agent/tool-context-builder.test.js +0 -152
  313. package/dist/src/agent/tool-context-builder.test.js.map +0 -1
  314. package/dist/src/agent/write-repo-file.test.js +0 -270
  315. package/dist/src/agent/write-repo-file.test.js.map +0 -1
  316. package/dist/src/cron/heartbeat-runner.d.ts +0 -21
  317. package/dist/src/cron/heartbeat-runner.js +0 -79
  318. package/dist/src/cron/heartbeat-runner.js.map +0 -1
  319. package/dist/src/cron/heartbeat-runner.test.d.ts +0 -6
  320. package/dist/src/cron/heartbeat-runner.test.js +0 -120
  321. package/dist/src/cron/heartbeat-runner.test.js.map +0 -1
  322. package/dist/src/cron/heartbeat-scheduler.d.ts +0 -26
  323. package/dist/src/cron/heartbeat-scheduler.js +0 -55
  324. package/dist/src/cron/heartbeat-scheduler.js.map +0 -1
  325. package/dist/src/cron/heartbeat-scheduler.test.d.ts +0 -6
  326. package/dist/src/cron/heartbeat-scheduler.test.js +0 -61
  327. package/dist/src/cron/heartbeat-scheduler.test.js.map +0 -1
  328. package/dist/src/routes/ai-stream.test.d.ts +0 -6
  329. package/dist/src/routes/ai-stream.test.js +0 -586
  330. package/dist/src/routes/ai-stream.test.js.map +0 -1
  331. package/dist/src/routes/ask-user-response.d.ts +0 -30
  332. package/dist/src/routes/ask-user-response.js +0 -61
  333. package/dist/src/routes/ask-user-response.js.map +0 -1
  334. package/dist/src/routes/ask-user-response.test.d.ts +0 -6
  335. package/dist/src/routes/ask-user-response.test.js +0 -88
  336. package/dist/src/routes/ask-user-response.test.js.map +0 -1
  337. package/dist/src/routes/chat-stream.test.d.ts +0 -6
  338. package/dist/src/routes/chat-stream.test.js +0 -155
  339. package/dist/src/routes/chat-stream.test.js.map +0 -1
  340. package/dist/src/routes/chat.test.d.ts +0 -6
  341. package/dist/src/routes/chat.test.js +0 -99
  342. package/dist/src/routes/chat.test.js.map +0 -1
  343. package/dist/src/routes/widget-actions.d.ts +0 -49
  344. package/dist/src/routes/widget-actions.js +0 -78
  345. package/dist/src/routes/widget-actions.js.map +0 -1
  346. package/dist/src/session/custom-tool-adapter.d.ts +0 -74
  347. package/dist/src/session/custom-tool-adapter.js +0 -180
  348. package/dist/src/session/custom-tool-adapter.js.map +0 -1
  349. package/dist/src/session/history-converter.d.ts +0 -21
  350. package/dist/src/session/history-converter.js +0 -59
  351. package/dist/src/session/history-converter.js.map +0 -1
  352. package/dist/src/session/history-converter.test.d.ts +0 -6
  353. package/dist/src/session/history-converter.test.js +0 -130
  354. package/dist/src/session/history-converter.test.js.map +0 -1
  355. package/dist/src/session/session-manager.d.ts +0 -219
  356. package/dist/src/session/session-manager.js +0 -915
  357. package/dist/src/session/session-manager.js.map +0 -1
  358. package/dist/src/session/session-manager.test.d.ts +0 -6
  359. package/dist/src/session/session-manager.test.js +0 -451
  360. package/dist/src/session/session-manager.test.js.map +0 -1
  361. package/dist/src/session/session-runner.d.ts +0 -45
  362. package/dist/src/session/session-runner.js +0 -719
  363. package/dist/src/session/session-runner.js.map +0 -1
  364. package/dist/src/session/session-runner.test.d.ts +0 -6
  365. package/dist/src/session/session-runner.test.js +0 -830
  366. package/dist/src/session/session-runner.test.js.map +0 -1
  367. /package/dist/src/{agent/write-repo-file.test.d.ts → __fixtures__/smoke.test.d.ts} +0 -0
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
6
  import { Router } from 'express';
7
+ import { asyncHandler } from '../../routes/route-helpers.js';
7
8
  /**
8
9
  * Creates routes for reading store data directly (without going through the LLM).
9
10
  *
@@ -15,7 +16,7 @@ export function createStoresRouter(options) {
15
16
  const router = Router();
16
17
  const { repo, storeBackend, appId } = options;
17
18
  // List all store definitions with document counts
18
- router.get('/api/stores', async (_req, res) => {
19
+ router.get('/api/stores', asyncHandler(async (_req, res) => {
19
20
  try {
20
21
  const stores = await Promise.all(repo.stores.map(async (store) => {
21
22
  const result = await storeBackend.list(appId, store.name, { limit: 0 });
@@ -34,9 +35,9 @@ export function createStoresRouter(options) {
34
35
  const message = err instanceof Error ? err.message : String(err);
35
36
  res.status(500).json({ error: message });
36
37
  }
37
- });
38
+ }));
38
39
  // List documents from a store
39
- router.get('/api/stores/:name', async (req, res) => {
40
+ router.get('/api/stores/:name', asyncHandler(async (req, res) => {
40
41
  const storeName = req.params['name'] ?? '';
41
42
  // Verify store exists
42
43
  const store = repo.stores.find((s) => s.name === storeName);
@@ -71,9 +72,9 @@ export function createStoresRouter(options) {
71
72
  const message = err instanceof Error ? err.message : String(err);
72
73
  res.status(500).json({ error: message });
73
74
  }
74
- });
75
+ }));
75
76
  // Get a single document + version history
76
- router.get('/api/stores/:name/:key', async (req, res) => {
77
+ router.get('/api/stores/:name/:key', asyncHandler(async (req, res) => {
77
78
  const storeName = req.params['name'] ?? '';
78
79
  const key = req.params['key'] ?? '';
79
80
  // Verify store exists
@@ -99,9 +100,9 @@ export function createStoresRouter(options) {
99
100
  const message = err instanceof Error ? err.message : String(err);
100
101
  res.status(500).json({ error: message });
101
102
  }
102
- });
103
+ }));
103
104
  // Write a document to a store (for seeding/testing)
104
- router.post('/api/stores/:name', async (req, res) => {
105
+ router.post('/api/stores/:name', asyncHandler(async (req, res) => {
105
106
  const storeName = req.params['name'] ?? '';
106
107
  const store = repo.stores.find((s) => s.name === storeName);
107
108
  if (!store) {
@@ -131,7 +132,7 @@ export function createStoresRouter(options) {
131
132
  const message = err instanceof Error ? err.message : String(err);
132
133
  res.status(500).json({ error: message });
133
134
  }
134
- });
135
+ }));
135
136
  return router;
136
137
  }
137
138
  //# sourceMappingURL=stores.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../../src/agent/routes/stores.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../../src/agent/routes/stores.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,23 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2025 Amodal Labs, Inc.
3
+ * Copyright 2026 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
+ /**
7
+ * Task route.
8
+ *
9
+ * Fire-and-forget task execution via the new StandaloneSessionManager.
10
+ */
6
11
  import { Router } from 'express';
7
- import type { SessionManager } from '../../session/session-manager.js';
12
+ import type { StandaloneSessionManager } from '../../session/manager.js';
13
+ import type { Session } from '../../session/types.js';
14
+ import type { ToolContext } from '../../tools/types.js';
8
15
  export interface TaskRouterOptions {
9
- sessionManager: SessionManager;
16
+ sessionManager: StandaloneSessionManager;
17
+ /** Factory to create a session with components for task execution */
18
+ createTaskSession?: () => {
19
+ session: Session;
20
+ toolContextFactory: (callId: string) => ToolContext;
21
+ };
10
22
  }
11
23
  export declare function createTaskRouter(options: TaskRouterOptions): Router;
@@ -1,13 +1,18 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2025 Amodal Labs, Inc.
3
+ * Copyright 2026 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
+ /**
7
+ * Task route.
8
+ *
9
+ * Fire-and-forget task execution via the new StandaloneSessionManager.
10
+ */
6
11
  import { Router } from 'express';
7
12
  import { randomUUID } from 'node:crypto';
8
13
  import { z } from 'zod';
9
- import { streamMessage } from '../../session/session-runner.js';
10
14
  import { SSEEventType } from '../../types.js';
15
+ import { asyncHandler } from '../../routes/route-helpers.js';
11
16
  const TaskRequestSchema = z.object({
12
17
  prompt: z.string().min(1),
13
18
  });
@@ -15,7 +20,7 @@ const tasks = new Map();
15
20
  export function createTaskRouter(options) {
16
21
  const router = Router();
17
22
  // POST /task — fire-and-forget task
18
- router.post('/task', async (req, res) => {
23
+ router.post('/task', asyncHandler(async (req, res) => {
19
24
  const parsed = TaskRequestSchema.safeParse(req.body);
20
25
  if (!parsed.success) {
21
26
  res.status(400).json({ error: { code: 'VALIDATION_ERROR', message: parsed.error.message } });
@@ -35,9 +40,14 @@ export function createTaskRouter(options) {
35
40
  // Run in background
36
41
  void (async () => {
37
42
  try {
38
- const session = await options.sessionManager.create();
43
+ if (!options.createTaskSession) {
44
+ record.status = 'error';
45
+ record.events.push({ type: SSEEventType.Error, message: 'Task execution not configured', timestamp: new Date().toISOString() });
46
+ return;
47
+ }
48
+ const { session, toolContextFactory } = options.createTaskSession();
39
49
  const controller = new AbortController();
40
- for await (const event of streamMessage(session, prompt, controller.signal)) {
50
+ for await (const event of options.sessionManager.runMessage(session.id, prompt, { signal: controller.signal, buildToolContext: toolContextFactory })) {
41
51
  record.events.push(event);
42
52
  }
43
53
  record.status = 'completed';
@@ -48,7 +58,7 @@ export function createTaskRouter(options) {
48
58
  record.events.push({ type: SSEEventType.Error, message: errMsg, timestamp: new Date().toISOString() });
49
59
  }
50
60
  })();
51
- });
61
+ }));
52
62
  // GET /task/:id — poll task status
53
63
  router.get('/task/:id', (req, res) => {
54
64
  const taskId = req.params['id'];
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../src/agent/routes/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../src/agent/routes/task.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2025 Amodal Labs, Inc.
3
+ * Copyright 2026 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
6
  export {};
@@ -1,91 +1,108 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2025 Amodal Labs, Inc.
3
+ * Copyright 2026 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
6
  import { describe, it, expect, vi, beforeEach } from 'vitest';
7
7
  import express from 'express';
8
8
  import request from 'supertest';
9
9
  import { createTaskRouter } from './task.js';
10
- // Mock agent-runner
11
- vi.mock('../agent-runner.js', () => ({
12
- runAgentTurn: vi.fn(async function* () {
13
- yield { type: 'text_delta', content: 'Task output', timestamp: new Date().toISOString() };
14
- yield { type: 'done', timestamp: new Date().toISOString() };
15
- }),
16
- }));
17
- function makeSessionManager() {
10
+ import { SSEEventType } from '../../types.js';
11
+ import { createLogger } from '../../logger.js';
12
+ const logger = createLogger({ component: 'test:task' });
13
+ const mockSession = {
14
+ id: 'task-session-1',
15
+ tenantId: 'local',
16
+ userId: 'task',
17
+ provider: {},
18
+ toolRegistry: { register: vi.fn(), get: vi.fn(), getTools: vi.fn(), names: vi.fn(() => []), subset: vi.fn(), size: 0 },
19
+ permissionChecker: { check: vi.fn() },
20
+ logger,
21
+ systemPrompt: 'test',
22
+ messages: [],
23
+ usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
24
+ model: 'test-model',
25
+ providerName: 'test',
26
+ userRoles: [],
27
+ appId: 'local',
28
+ metadata: {},
29
+ createdAt: Date.now(),
30
+ lastAccessedAt: Date.now(),
31
+ maxTurns: 50,
32
+ maxContextTokens: 200_000,
33
+ };
34
+ function makeOpts() {
35
+ const runMessage = vi.fn().mockImplementation(async function* () {
36
+ yield { type: SSEEventType.TextDelta, content: 'Task output', timestamp: new Date().toISOString() };
37
+ yield { type: SSEEventType.Done, timestamp: new Date().toISOString() };
38
+ });
18
39
  return {
19
- size: 0,
20
- create: vi.fn(async () => ({
21
- id: 'session-1',
22
- appId: 'tenant-1',
23
- runtime: { compiledContext: { systemPrompt: 'test' } },
24
- conversationHistory: [],
25
- createdAt: Date.now(),
26
- lastAccessedAt: Date.now(),
27
- planModeManager: {},
28
- exploreConfig: {},
29
- })),
30
- get: vi.fn(),
31
- destroy: vi.fn(),
32
- cleanup: vi.fn(),
33
- updateBundle: vi.fn(),
34
- shutdown: vi.fn(),
40
+ sessionManager: {
41
+ create: vi.fn().mockReturnValue(mockSession),
42
+ runMessage,
43
+ destroy: vi.fn(),
44
+ get: vi.fn(),
45
+ has: vi.fn(),
46
+ resume: vi.fn(),
47
+ persist: vi.fn(),
48
+ listPersisted: vi.fn(),
49
+ start: vi.fn(),
50
+ shutdown: vi.fn(),
51
+ cleanup: vi.fn(),
52
+ size: 0,
53
+ },
54
+ createTaskSession: vi.fn().mockReturnValue({
55
+ session: mockSession,
56
+ toolContextFactory: vi.fn(),
57
+ }),
35
58
  };
36
59
  }
37
- function createTestApp(sessionManager) {
60
+ function createTestApp(opts) {
38
61
  const app = express();
39
62
  app.use(express.json());
40
- app.use(createTaskRouter({ sessionManager }));
63
+ app.use(createTaskRouter(opts));
41
64
  return app;
42
65
  }
43
66
  describe('repo-task route', () => {
44
- let sessionManager;
67
+ let opts;
45
68
  beforeEach(() => {
46
- sessionManager = makeSessionManager();
69
+ opts = makeOpts();
47
70
  });
48
71
  it('should reject invalid request', async () => {
49
- const app = createTestApp(sessionManager);
72
+ const app = createTestApp(opts);
50
73
  const res = await request(app).post('/task').send({});
51
74
  expect(res.status).toBe(400);
52
75
  });
53
- it('should accept and return task_id', async () => {
54
- const app = createTestApp(sessionManager);
55
- const res = await request(app)
56
- .post('/task')
57
- .send({ prompt: 'do something', app_id: 'tenant-1' });
76
+ it('should accept valid request and return task ID', async () => {
77
+ const app = createTestApp(opts);
78
+ const res = await request(app).post('/task').send({ prompt: 'Run diagnostics' });
58
79
  expect(res.status).toBe(202);
59
80
  expect(res.body).toHaveProperty('task_id');
60
81
  });
61
82
  it('should return 404 for unknown task', async () => {
62
- const app = createTestApp(sessionManager);
63
- const res = await request(app).get('/task/nonexistent');
83
+ const app = createTestApp(opts);
84
+ const res = await request(app).get('/task/unknown-id');
64
85
  expect(res.status).toBe(404);
65
86
  });
66
87
  it('should return task status after creation', async () => {
67
- const app = createTestApp(sessionManager);
68
- const createRes = await request(app)
69
- .post('/task')
70
- .send({ prompt: 'do something', app_id: 'tenant-1' });
71
- const taskId = createRes.body['task_id'];
72
- // Give the background task a moment to complete
73
- await new Promise((resolve) => setTimeout(resolve, 100));
88
+ const app = createTestApp(opts);
89
+ const createRes = await request(app).post('/task').send({ prompt: 'Run diagnostics' });
90
+ const taskId = createRes.body.task_id;
91
+ // Wait briefly for background execution
92
+ await new Promise((r) => setTimeout(r, 50));
74
93
  const statusRes = await request(app).get(`/task/${taskId}`);
75
94
  expect(statusRes.status).toBe(200);
76
- expect(statusRes.body).toHaveProperty('task_id', taskId);
77
- expect(statusRes.body).toHaveProperty('status');
95
+ expect(statusRes.body.task_id).toBe(taskId);
78
96
  });
79
97
  it('should stream task events', async () => {
80
- const app = createTestApp(sessionManager);
81
- const createRes = await request(app)
82
- .post('/task')
83
- .send({ prompt: 'do something', app_id: 'tenant-1' });
84
- const taskId = createRes.body['task_id'];
85
- // Give the background task a moment
86
- await new Promise((resolve) => setTimeout(resolve, 100));
98
+ const app = createTestApp(opts);
99
+ const createRes = await request(app).post('/task').send({ prompt: 'Run diagnostics' });
100
+ const taskId = createRes.body.task_id;
101
+ // Wait for completion
102
+ await new Promise((r) => setTimeout(r, 100));
87
103
  const streamRes = await request(app).get(`/task/${taskId}/stream`);
88
104
  expect(streamRes.status).toBe(200);
105
+ expect(streamRes.text).toContain('data:');
89
106
  });
90
107
  });
91
108
  //# sourceMappingURL=task.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.test.js","sourceRoot":"","sources":["../../../../src/agent/routes/task.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.test.js","sourceRoot":"","sources":["../../../../src/agent/routes/task.test.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
6
  import { Router } from 'express';
7
+ import rateLimit from 'express-rate-limit';
7
8
  import { verifyHmacSignature } from '../proactive/delivery.js';
9
+ import { asyncHandler } from '../../routes/route-helpers.js';
8
10
  /**
9
11
  * Creates routes for receiving webhook events from external systems.
10
12
  *
@@ -12,7 +14,15 @@ import { verifyHmacSignature } from '../proactive/delivery.js';
12
14
  */
13
15
  export function createWebhookRouter(options) {
14
16
  const router = Router();
15
- router.post('/webhooks/:name', async (req, res) => {
17
+ // Rate-limit inbound webhooks per IP so HMAC verification and
18
+ // automation dispatch can't be triggered unboundedly by an attacker.
19
+ const webhookLimiter = rateLimit({
20
+ windowMs: 60 * 1000,
21
+ max: 100,
22
+ standardHeaders: true,
23
+ legacyHeaders: false,
24
+ });
25
+ router.post('/webhooks/:name', webhookLimiter, asyncHandler(async (req, res) => {
16
26
  const automationName = req.params['name'] ?? '';
17
27
  // HMAC verification
18
28
  if (options.webhookSecret) {
@@ -47,7 +57,7 @@ export function createWebhookRouter(options) {
47
57
  const msg = err instanceof Error ? err.message : String(err);
48
58
  res.status(500).json({ error: msg });
49
59
  }
50
- });
60
+ }));
51
61
  return router;
52
62
  }
53
63
  //# sourceMappingURL=webhooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../../src/agent/routes/webhooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAQ7D;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACnE,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEhD,oBAAoB;QACpB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mCAAmC,EAAC,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAC1C,CAAC,CAAC,GAAG,CAAC,IAAI;gBACV,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,2BAA2B,EAAC,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;QACH,CAAC;QAED,+FAA+F;QAC/F,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../../src/agent/routes/webhooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAE/B,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAO3D;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,8DAA8D;IAC9D,qEAAqE;IACrE,MAAM,cAAc,GAAG,SAAS,CAAC;QAC/B,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,GAAG,EAAE,GAAG;QACR,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,YAAY,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAChG,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEhD,oBAAoB;QACpB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mCAAmC,EAAC,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAC1C,CAAC,CAAC,GAAG,CAAC,IAAI;gBACV,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,2BAA2B,EAAC,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;QACH,CAAC;QAED,+FAA+F;QAC/F,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -3,7 +3,16 @@
3
3
  * Copyright 2026 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- import type { ManagedSession } from '../session/session-manager.js';
6
+ /** Minimal session shape needed for persistence. */
7
+ interface SessionLike {
8
+ id: string;
9
+ appId?: string;
10
+ title?: string;
11
+ conversationHistory?: unknown[];
12
+ messages?: unknown[];
13
+ createdAt: number;
14
+ lastAccessedAt: number;
15
+ }
7
16
  interface PersistedSession {
8
17
  id: string;
9
18
  appId: string;
@@ -29,7 +38,7 @@ export declare class SessionStore {
29
38
  /**
30
39
  * Save a session's conversation history to disk.
31
40
  */
32
- save(session: ManagedSession, automationName?: string): void;
41
+ save(session: SessionLike, automationName?: string): void;
33
42
  /**
34
43
  * Load a session's persisted data by ID.
35
44
  */
@@ -47,7 +47,7 @@ export class SessionStore {
47
47
  id: session.id,
48
48
  appId: session.appId ?? 'local',
49
49
  title: session.title,
50
- conversationHistory: session.accumulatedMessages,
50
+ conversationHistory: session.conversationHistory ?? session.messages ?? [],
51
51
  createdAt: session.createdAt,
52
52
  lastAccessedAt: session.lastAccessedAt,
53
53
  automationName,
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/agent/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/agent/session-store.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,18 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2025 Amodal Labs, Inc.
3
+ * Copyright 2026 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- import type { AgentBundle, DeploySnapshot, CustomToolExecutor, CustomShellExecutor } from '@amodalai/core';
6
+ import type { AgentBundle, DeploySnapshot, CustomToolExecutor } from '@amodalai/types';
7
7
  import type { ServerInstance } from '../server.js';
8
- /**
9
- * Config for creating a server from a local snapshot.
10
- *
11
- * Exactly one source must be provided:
12
- * - `snapshotPath` — load from a local JSON file
13
- * - `snapshot` — use a pre-loaded DeploySnapshot object
14
- * - `bundle` — use a pre-loaded AgentBundle
15
- */
16
8
  export interface SnapshotServerConfig {
17
- /** Path to a resolved-config.json snapshot file. */
18
9
  snapshotPath?: string;
19
- /** A pre-loaded DeploySnapshot object. */
20
10
  snapshot?: DeploySnapshot;
21
- /** A pre-loaded AgentBundle (e.g. from snapshotToBundle). */
22
11
  bundle?: AgentBundle;
23
12
  port: number;
24
13
  host?: string;
25
14
  sessionTtlMs?: number;
26
15
  corsOrigin?: string;
27
- /** Optional custom tool executor (e.g., Daytona sandbox executor) */
28
16
  toolExecutor?: CustomToolExecutor;
29
- /** Optional custom shell executor (e.g., Daytona sandbox executor) */
30
- shellExecutor?: CustomShellExecutor;
31
17
  }
32
- /**
33
- * Creates an Express server that runs from an immutable deploy snapshot.
34
- *
35
- * This is the local testing path: the CLI builds a snapshot and tests it
36
- * locally before deploying to the platform.
37
- */
38
18
  export declare function createSnapshotServer(config: SnapshotServerConfig): Promise<ServerInstance>;