@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
@@ -0,0 +1,364 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Session Builder.
8
+ *
9
+ * Translates an AgentBundle (repo config) into SessionComponents: the
10
+ * LLMProvider, ToolRegistry, PermissionChecker, system prompt, and
11
+ * ToolContextFactory needed to create a session.
12
+ *
13
+ * Replaces the 150-line initialization sequence in the old SessionManager.create().
14
+ * The builder is pure — no async callbacks, no platform awareness. The route
15
+ * handler fetches the bundle and passes it here.
16
+ */
17
+ import { z } from 'zod';
18
+ import { buildConnectionsMap, buildAccessConfigs } from '@amodalai/core';
19
+ import { createProvider } from '../providers/create-provider.js';
20
+ import { createToolRegistry } from '../tools/registry.js';
21
+ import { registerStoreTools } from '../tools/store-tools.js';
22
+ import { createRequestTool, REQUEST_TOOL_NAME } from '../tools/request-tool.js';
23
+ import { createCustomToolDefinition } from '../tools/custom-tool-adapter.js';
24
+ import { registerMcpTools } from '../tools/mcp-tool-adapter.js';
25
+ import { registerAdminFileTools } from '../tools/admin-file-tools.js';
26
+ import { AccessJsonPermissionChecker, } from '../security/permission-checker.js';
27
+ import { compileContext } from '../context/compiler.js';
28
+ import { createToolContextFactory } from './tool-context-factory.js';
29
+ import { LOCAL_APP_ID } from '../constants.js';
30
+ import { StoreError } from '../errors.js';
31
+ import { createDispatchTool, DISPATCH_TOOL_NAME } from '../tools/dispatch-tool.js';
32
+ // ---------------------------------------------------------------------------
33
+ // Present tool (system tool)
34
+ // ---------------------------------------------------------------------------
35
+ const PRESENT_TOOL_NAME = 'present';
36
+ const WIDGET_TYPES = [
37
+ 'entity-card', 'entity-list', 'scope-map', 'alert-card', 'timeline',
38
+ 'comparison', 'data-table', 'score-breakdown', 'status-board',
39
+ 'credential-input', 'document-preview', 'info-card', 'metric',
40
+ ];
41
+ function createPresentTool() {
42
+ return {
43
+ description: `Show a visual widget inline in the conversation. Use to display entities, maps, alerts, timelines, score breakdowns, status boards, credential input forms, document previews, and other structured data visually instead of describing them in text.
44
+
45
+ Before first use in a session, load knowledge tagged widget_schemas for the correct data format for each widget type.
46
+
47
+ Widget selection:
48
+ - entity-card: Single entity profile or lookup result
49
+ - entity-list: Multiple entities in table format
50
+ - alert-card: Individual finding or alert with severity
51
+ - timeline: Chronological event sequence
52
+ - data-table: Structured data, comparisons, lists
53
+ - scope-map: Spatial/scope visualization
54
+ - comparison: Side-by-side entity or metric comparison
55
+ - score-breakdown: Risk/severity score with factor breakdown
56
+ - status-board: Overview of all active findings with severity
57
+ - credential-input: Securely capture connection credentials
58
+ - document-preview: Show proposed resources for approval
59
+ - info-card: Generic entity/object profile with key-value fields
60
+ - metric: Single highlighted metric with optional trend`,
61
+ parameters: z.object({
62
+ widget: z.enum(WIDGET_TYPES),
63
+ data: z.record(z.unknown()),
64
+ }),
65
+ readOnly: true,
66
+ metadata: { category: 'system' },
67
+ async execute(params) {
68
+ // The present tool's result is consumed by the SSE layer to emit a
69
+ // Widget event. The execute function just passes the data through.
70
+ return { widget: params.widget, data: params.data, rendered: true };
71
+ },
72
+ };
73
+ }
74
+ // ---------------------------------------------------------------------------
75
+ // Stop execution tool (system tool)
76
+ // ---------------------------------------------------------------------------
77
+ const STOP_EXECUTION_TOOL_NAME = 'stop_execution';
78
+ function createStopExecutionTool() {
79
+ return {
80
+ description: 'Stop the current task. Call this when the task is complete, impossible, or when you need the user to take action before you can continue. Provide a reason explaining why you are stopping.',
81
+ parameters: z.object({
82
+ reason: z.string().describe('Why execution is stopping'),
83
+ }),
84
+ readOnly: true,
85
+ metadata: { category: 'system' },
86
+ async execute(params) {
87
+ // The __stop sentinel is checked by the EXECUTING state handler.
88
+ // When detected, it transitions to DONE(model_stop) instead of continuing.
89
+ return { __stop: true, reason: params.reason };
90
+ },
91
+ };
92
+ }
93
+ // ---------------------------------------------------------------------------
94
+ // Bundle → CompilerConnection mapping
95
+ // ---------------------------------------------------------------------------
96
+ function bundleConnectionToCompilerConnection(name, conn) {
97
+ return {
98
+ name,
99
+ description: undefined,
100
+ endpoints: conn.surface
101
+ .filter((e) => e.included)
102
+ .map((e) => ({ method: e.method, path: e.path, description: e.description })),
103
+ entities: conn.entities,
104
+ rules: conn.rules,
105
+ fieldRestrictions: conn.access.fieldRestrictions?.map((fr) => ({
106
+ entity: fr.entity,
107
+ field: fr.field,
108
+ policy: fr.policy,
109
+ reason: fr.reason,
110
+ allowedRoles: fr.allowedRoles,
111
+ })),
112
+ rowScoping: conn.access.rowScoping,
113
+ alternativeLookups: conn.access.alternativeLookups,
114
+ };
115
+ }
116
+ // ---------------------------------------------------------------------------
117
+ // Custom tool session context bridge
118
+ // ---------------------------------------------------------------------------
119
+ function buildCustomToolSessionContext(bundle, connectionsMap, storeBackend, appId) {
120
+ // Adapt StoreBackend.put (returns StorePutResult) to CustomToolSessionContext.storeBackend.put (returns void)
121
+ const adaptedBackend = storeBackend
122
+ ? {
123
+ async put(a, s, k, p, m) {
124
+ await storeBackend.put(a, s, k, p, m);
125
+ },
126
+ }
127
+ : undefined;
128
+ return {
129
+ config: {
130
+ getConnections() {
131
+ // Return processed connections map (with base_url, _request_config)
132
+ // not raw LoadedConnection objects
133
+ return connectionsMap;
134
+ },
135
+ getStores() {
136
+ return bundle.stores.map((s) => ({
137
+ name: s.name,
138
+ entity: { key: s.entity.key, schema: s.entity.schema },
139
+ }));
140
+ },
141
+ },
142
+ storeBackend: adaptedBackend,
143
+ appId,
144
+ };
145
+ }
146
+ // ---------------------------------------------------------------------------
147
+ // Env allowlist
148
+ // ---------------------------------------------------------------------------
149
+ function collectEnvAllowlist(bundle) {
150
+ const allowlist = {};
151
+ for (const tool of bundle.tools) {
152
+ for (const envVar of tool.env) {
153
+ allowlist[envVar] = process.env[envVar];
154
+ }
155
+ }
156
+ return allowlist;
157
+ }
158
+ // ---------------------------------------------------------------------------
159
+ // Builder
160
+ // ---------------------------------------------------------------------------
161
+ /**
162
+ * Build all session components from a bundle.
163
+ *
164
+ * This is the single entry point for translating repo config into runtime
165
+ * components. The caller (route handler or session manager) provides the
166
+ * bundle and shared resources; the builder returns everything needed to
167
+ * create a session.
168
+ */
169
+ export function buildSessionComponents(opts) {
170
+ const { bundle, storeBackend, mcpManager, sessionType = 'chat', userRoles = [], pinnedModel, logger, appId = LOCAL_APP_ID, toolExecutor, adminContent, repoRoot, getPort, sessionId = 'pending', tenantId = 'local', fieldScrubber, } = opts;
171
+ // -------------------------------------------------------------------------
172
+ // 1. Create LLM provider
173
+ // -------------------------------------------------------------------------
174
+ const bundleModel = bundle.config.models.main;
175
+ const providerConfig = {
176
+ provider: pinnedModel?.provider ?? bundleModel.provider,
177
+ model: pinnedModel?.model ?? bundleModel.model,
178
+ apiKey: resolveApiKey(pinnedModel ?? bundleModel, bundle),
179
+ baseUrl: pinnedModel ? undefined : bundleModel.baseUrl,
180
+ region: pinnedModel ? undefined : bundleModel.region,
181
+ };
182
+ const provider = createProvider(providerConfig);
183
+ // -------------------------------------------------------------------------
184
+ // 2. Create tool registry
185
+ // -------------------------------------------------------------------------
186
+ const registry = createToolRegistry();
187
+ // -------------------------------------------------------------------------
188
+ // 3. Register store tools
189
+ // -------------------------------------------------------------------------
190
+ if (storeBackend && bundle.stores.length > 0) {
191
+ registerStoreTools(registry, bundle.stores, storeBackend, appId);
192
+ }
193
+ // -------------------------------------------------------------------------
194
+ // 4. Register request tool
195
+ // -------------------------------------------------------------------------
196
+ const connectionsMap = buildConnectionsMap(bundle.connections, bundle.resolvedCredentials);
197
+ const accessConfigs = buildAccessConfigs(bundle.connections);
198
+ const connectionNames = [...bundle.connections.keys()].filter((name) => bundle.connections.get(name)?.spec.protocol !== 'mcp');
199
+ if (connectionNames.length > 0) {
200
+ registry.register(REQUEST_TOOL_NAME, createRequestTool({
201
+ connectionsMap,
202
+ permissionChecker: new AccessJsonPermissionChecker({
203
+ accessConfigs,
204
+ isDelegated: false,
205
+ }),
206
+ }));
207
+ }
208
+ // -------------------------------------------------------------------------
209
+ // 5. Register custom tools
210
+ // -------------------------------------------------------------------------
211
+ if (toolExecutor) {
212
+ const customToolSessionCtx = buildCustomToolSessionContext(bundle, connectionsMap, storeBackend, appId);
213
+ for (const tool of bundle.tools) {
214
+ // Skip tools with confirm: 'never' — they exist but are not callable
215
+ if (tool.confirm === 'never')
216
+ continue;
217
+ registry.register(tool.name, createCustomToolDefinition(tool, toolExecutor, customToolSessionCtx));
218
+ }
219
+ }
220
+ // -------------------------------------------------------------------------
221
+ // 6. Register MCP tools
222
+ // -------------------------------------------------------------------------
223
+ if (mcpManager) {
224
+ registerMcpTools(registry, mcpManager, logger);
225
+ }
226
+ // -------------------------------------------------------------------------
227
+ // 7. Register admin file tools (admin sessions only)
228
+ // -------------------------------------------------------------------------
229
+ if (sessionType === 'admin' && repoRoot) {
230
+ registerAdminFileTools(registry, repoRoot, getPort ?? (() => null));
231
+ }
232
+ // -------------------------------------------------------------------------
233
+ // 8. Register present tool
234
+ // -------------------------------------------------------------------------
235
+ registry.register(PRESENT_TOOL_NAME, createPresentTool());
236
+ // -------------------------------------------------------------------------
237
+ // 9. Register stop_execution tool
238
+ // -------------------------------------------------------------------------
239
+ registry.register(STOP_EXECUTION_TOOL_NAME, createStopExecutionTool());
240
+ // -------------------------------------------------------------------------
241
+ // 10. Register dispatch_task tool (sub-agent dispatch)
242
+ // -------------------------------------------------------------------------
243
+ registry.register(DISPATCH_TOOL_NAME, createDispatchTool());
244
+ // -------------------------------------------------------------------------
245
+ // 11. Build permission checker (session-level)
246
+ // -------------------------------------------------------------------------
247
+ const sessionPermissionChecker = new AccessJsonPermissionChecker({
248
+ accessConfigs,
249
+ isDelegated: sessionType === 'automation',
250
+ });
251
+ // -------------------------------------------------------------------------
252
+ // 11. Compile system prompt
253
+ // -------------------------------------------------------------------------
254
+ const isAdmin = sessionType === 'admin';
255
+ const skills = isAdmin && adminContent ? adminContent.skills : bundle.skills;
256
+ const knowledge = isAdmin && adminContent ? adminContent.knowledge : bundle.knowledge;
257
+ const agentOverride = isAdmin && adminContent ? (adminContent.agentPrompt ?? undefined) : bundle.agents.main;
258
+ const compilerConnections = [];
259
+ for (const [name, conn] of bundle.connections) {
260
+ if (conn.spec.protocol === 'mcp')
261
+ continue;
262
+ compilerConnections.push(bundleConnectionToCompilerConnection(name, conn));
263
+ }
264
+ const compilerInput = {
265
+ name: bundle.config.name,
266
+ description: bundle.config.description,
267
+ userContext: bundle.config.userContext,
268
+ agentOverride,
269
+ basePrompt: bundle.config.basePrompt,
270
+ connections: compilerConnections,
271
+ skills: skills.map((s) => ({
272
+ name: s.name,
273
+ description: s.description,
274
+ trigger: s.trigger,
275
+ body: s.body,
276
+ })),
277
+ knowledge: knowledge.map((k) => ({
278
+ name: k.name,
279
+ title: k.title,
280
+ body: k.body,
281
+ })),
282
+ stores: bundle.stores.map((s) => ({
283
+ name: s.name,
284
+ entity: {
285
+ name: s.entity.name,
286
+ key: s.entity.key,
287
+ schema: s.entity.schema,
288
+ },
289
+ })),
290
+ userRoles,
291
+ };
292
+ const compiled = compileContext(compilerInput);
293
+ if (compiled.warnings.length > 0) {
294
+ for (const warning of compiled.warnings) {
295
+ logger.warn('compiler_warning', { warning });
296
+ }
297
+ }
298
+ // -------------------------------------------------------------------------
299
+ // 12. Build tool context factory
300
+ // -------------------------------------------------------------------------
301
+ const envAllowlist = collectEnvAllowlist(bundle);
302
+ const factoryOpts = {
303
+ connectionsMap,
304
+ storeBackend: storeBackend ?? makeThrowingStoreBackend(),
305
+ storeDefinitions: bundle.stores,
306
+ appId,
307
+ envAllowlist,
308
+ logger,
309
+ fieldScrubber,
310
+ sessionId,
311
+ tenantId,
312
+ user: { roles: userRoles },
313
+ };
314
+ const toolContextFactory = createToolContextFactory(factoryOpts);
315
+ // -------------------------------------------------------------------------
316
+ // Return components
317
+ // -------------------------------------------------------------------------
318
+ return {
319
+ provider,
320
+ toolRegistry: registry,
321
+ permissionChecker: sessionPermissionChecker,
322
+ systemPrompt: compiled.systemPrompt,
323
+ toolContextFactory,
324
+ userRoles,
325
+ };
326
+ }
327
+ // ---------------------------------------------------------------------------
328
+ // Helpers
329
+ // ---------------------------------------------------------------------------
330
+ /** Stub backend that throws on every operation — used when no real backend is available. */
331
+ function makeThrowingStoreBackend() {
332
+ const fail = () => { throw new StoreError('Store backend not available', { store: '', operation: 'init', context: {} }); };
333
+ return {
334
+ initialize: () => Promise.reject(fail()),
335
+ get: () => Promise.reject(fail()),
336
+ put: () => Promise.reject(fail()),
337
+ list: () => Promise.reject(fail()),
338
+ delete: () => Promise.reject(fail()),
339
+ history: () => Promise.reject(fail()),
340
+ purgeExpired: () => Promise.reject(fail()),
341
+ close: () => Promise.resolve(),
342
+ };
343
+ }
344
+ function resolveApiKey(modelConfig, bundle) {
345
+ // Check model-level credentials first
346
+ if (modelConfig.credentials) {
347
+ const key = modelConfig.credentials['apiKey'] ?? modelConfig.credentials['api_key'];
348
+ if (key)
349
+ return key;
350
+ }
351
+ // Check resolved credentials from the bundle
352
+ if (bundle.resolvedCredentials) {
353
+ const providerEnvKey = `${modelConfig.provider.toUpperCase()}_API_KEY`;
354
+ if (bundle.resolvedCredentials[providerEnvKey]) {
355
+ return bundle.resolvedCredentials[providerEnvKey];
356
+ }
357
+ }
358
+ // Fall back to environment variable
359
+ const envKey = `${modelConfig.provider.toUpperCase()}_API_KEY`;
360
+ return process.env[envKey];
361
+ }
362
+ // Re-export constants for use in tests and state handlers
363
+ export { PRESENT_TOOL_NAME, STOP_EXECUTION_TOOL_NAME, DISPATCH_TOOL_NAME };
364
+ //# sourceMappingURL=session-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-builder.js","sourceRoot":"","sources":["../../../src/session/session-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export {};