@action-llama/action-llama 0.15.0 → 0.17.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 (447) hide show
  1. package/dist/agents/container-runner.d.ts +1 -1
  2. package/dist/agents/container-runner.d.ts.map +1 -1
  3. package/dist/agents/runner.d.ts +0 -4
  4. package/dist/agents/runner.d.ts.map +1 -1
  5. package/dist/agents/runner.js +0 -10
  6. package/dist/agents/runner.js.map +1 -1
  7. package/dist/build-info.json +1 -1
  8. package/dist/cli/commands/agent.d.ts.map +1 -1
  9. package/dist/cli/commands/agent.js +0 -46
  10. package/dist/cli/commands/agent.js.map +1 -1
  11. package/dist/cli/commands/doctor.d.ts +2 -0
  12. package/dist/cli/commands/doctor.d.ts.map +1 -1
  13. package/dist/cli/commands/doctor.js +128 -14
  14. package/dist/cli/commands/doctor.js.map +1 -1
  15. package/dist/cli/commands/new.d.ts +7 -1
  16. package/dist/cli/commands/new.d.ts.map +1 -1
  17. package/dist/cli/commands/new.js +54 -23
  18. package/dist/cli/commands/new.js.map +1 -1
  19. package/dist/cli/commands/push.d.ts.map +1 -1
  20. package/dist/cli/commands/push.js +1 -0
  21. package/dist/cli/commands/push.js.map +1 -1
  22. package/dist/cli/commands/webhook.d.ts +11 -0
  23. package/dist/cli/commands/webhook.d.ts.map +1 -0
  24. package/dist/cli/commands/webhook.js +271 -0
  25. package/dist/cli/commands/webhook.js.map +1 -0
  26. package/dist/cli/main.js +22 -2
  27. package/dist/cli/main.js.map +1 -1
  28. package/dist/{gateway → control}/api-key.d.ts.map +1 -1
  29. package/dist/{gateway → control}/api-key.js.map +1 -1
  30. package/dist/{gateway → control}/auth.d.ts.map +1 -1
  31. package/dist/{gateway → control}/auth.js.map +1 -1
  32. package/dist/control/index.d.ts +11 -0
  33. package/dist/control/index.d.ts.map +1 -0
  34. package/dist/control/index.js +8 -0
  35. package/dist/control/index.js.map +1 -0
  36. package/dist/{gateway → control}/routes/control.d.ts.map +1 -1
  37. package/dist/{gateway → control}/routes/control.js.map +1 -1
  38. package/dist/{gateway → control}/routes/dashboard.d.ts.map +1 -1
  39. package/dist/{gateway → control}/routes/dashboard.js +68 -35
  40. package/dist/control/routes/dashboard.js.map +1 -0
  41. package/dist/{gateway → control}/routes/logs.d.ts.map +1 -1
  42. package/dist/{gateway → control}/routes/logs.js.map +1 -1
  43. package/dist/{gateway → control}/routes/stats.d.ts.map +1 -1
  44. package/dist/{gateway → control}/routes/stats.js +13 -0
  45. package/dist/control/routes/stats.js.map +1 -0
  46. package/dist/{gateway → control}/session-store.d.ts.map +1 -1
  47. package/dist/{gateway → control}/session-store.js.map +1 -1
  48. package/dist/control/types.d.ts +6 -0
  49. package/dist/control/types.d.ts.map +1 -0
  50. package/dist/{gateway → control}/types.js.map +1 -1
  51. package/dist/{gateway → control}/views/agent-detail-page.d.ts +2 -2
  52. package/dist/control/views/agent-detail-page.d.ts.map +1 -0
  53. package/dist/{gateway → control}/views/agent-detail-page.js +137 -52
  54. package/dist/control/views/agent-detail-page.js.map +1 -0
  55. package/dist/control/views/agent-skill-page.d.ts +2 -0
  56. package/dist/control/views/agent-skill-page.d.ts.map +1 -0
  57. package/dist/control/views/agent-skill-page.js +32 -0
  58. package/dist/control/views/agent-skill-page.js.map +1 -0
  59. package/dist/control/views/dashboard-page.d.ts +4 -0
  60. package/dist/control/views/dashboard-page.d.ts.map +1 -0
  61. package/dist/{gateway → control}/views/dashboard-page.js +65 -1
  62. package/dist/{gateway → control}/views/dashboard-page.js.map +1 -1
  63. package/dist/{gateway → control}/views/instance-detail-page.d.ts +9 -0
  64. package/dist/{gateway → control}/views/instance-detail-page.d.ts.map +1 -1
  65. package/dist/{gateway → control}/views/instance-detail-page.js +28 -1
  66. package/dist/control/views/instance-detail-page.js.map +1 -0
  67. package/dist/{gateway → control}/views/layout.d.ts.map +1 -1
  68. package/dist/{gateway → control}/views/layout.js.map +1 -1
  69. package/dist/{gateway → control}/views/login-page.d.ts.map +1 -1
  70. package/dist/{gateway → control}/views/login-page.js.map +1 -1
  71. package/dist/control/views/markdown.d.ts +6 -0
  72. package/dist/control/views/markdown.d.ts.map +1 -0
  73. package/dist/control/views/markdown.js +119 -0
  74. package/dist/control/views/markdown.js.map +1 -0
  75. package/dist/{gateway → control}/views/project-config-page.d.ts +0 -4
  76. package/dist/control/views/project-config-page.d.ts.map +1 -0
  77. package/dist/{gateway → control}/views/project-config-page.js +0 -82
  78. package/dist/control/views/project-config-page.js.map +1 -0
  79. package/dist/control/views/trigger-history-page.d.ts +10 -0
  80. package/dist/control/views/trigger-history-page.d.ts.map +1 -0
  81. package/dist/control/views/trigger-history-page.js +89 -0
  82. package/dist/control/views/trigger-history-page.js.map +1 -0
  83. package/dist/credentials/providers/file.d.ts +13 -0
  84. package/dist/credentials/providers/file.d.ts.map +1 -0
  85. package/dist/credentials/providers/file.js +34 -0
  86. package/dist/credentials/providers/file.js.map +1 -0
  87. package/dist/credentials/providers/index.d.ts +13 -0
  88. package/dist/credentials/providers/index.d.ts.map +1 -0
  89. package/dist/credentials/providers/index.js +70 -0
  90. package/dist/credentials/providers/index.js.map +1 -0
  91. package/dist/credentials/providers/vault.d.ts +19 -0
  92. package/dist/credentials/providers/vault.d.ts.map +1 -0
  93. package/dist/credentials/providers/vault.js +94 -0
  94. package/dist/credentials/providers/vault.js.map +1 -0
  95. package/dist/docker/local-runtime.d.ts.map +1 -1
  96. package/dist/docker/local-runtime.js +36 -7
  97. package/dist/docker/local-runtime.js.map +1 -1
  98. package/dist/docker/providers/index.d.ts +13 -0
  99. package/dist/docker/providers/index.d.ts.map +1 -0
  100. package/dist/docker/providers/index.js +74 -0
  101. package/dist/docker/providers/index.js.map +1 -0
  102. package/dist/docker/runtime.d.ts +4 -0
  103. package/dist/docker/runtime.d.ts.map +1 -1
  104. package/dist/{scheduler → events}/cron-setup.d.ts +7 -12
  105. package/dist/events/cron-setup.d.ts.map +1 -0
  106. package/dist/{scheduler → events}/cron-setup.js +4 -33
  107. package/dist/events/cron-setup.js.map +1 -0
  108. package/dist/events/event-queue-sqlite.d.ts.map +1 -0
  109. package/dist/events/event-queue-sqlite.js.map +1 -0
  110. package/dist/events/event-queue-unified.d.ts +50 -0
  111. package/dist/events/event-queue-unified.d.ts.map +1 -0
  112. package/dist/events/event-queue-unified.js +280 -0
  113. package/dist/events/event-queue-unified.js.map +1 -0
  114. package/dist/{scheduler → events}/event-queue.d.ts +2 -16
  115. package/dist/events/event-queue.d.ts.map +1 -0
  116. package/dist/events/event-queue.js.map +1 -0
  117. package/dist/events/index.d.ts +9 -0
  118. package/dist/events/index.d.ts.map +1 -0
  119. package/dist/events/index.js +5 -0
  120. package/dist/events/index.js.map +1 -0
  121. package/dist/{gateway → events}/routes/webhooks.d.ts +3 -1
  122. package/dist/events/routes/webhooks.d.ts.map +1 -0
  123. package/dist/events/routes/webhooks.js +201 -0
  124. package/dist/events/routes/webhooks.js.map +1 -0
  125. package/dist/{scheduler → events}/webhook-setup.d.ts +9 -6
  126. package/dist/events/webhook-setup.d.ts.map +1 -0
  127. package/dist/{scheduler → events}/webhook-setup.js +16 -26
  128. package/dist/events/webhook-setup.js.map +1 -0
  129. package/dist/{scheduler → execution}/call-dispatcher.d.ts.map +1 -1
  130. package/dist/{scheduler → execution}/call-dispatcher.js.map +1 -1
  131. package/dist/execution/call-store.d.ts.map +1 -0
  132. package/dist/execution/call-store.js.map +1 -0
  133. package/dist/execution/container-registry.d.ts.map +1 -0
  134. package/dist/execution/container-registry.js.map +1 -0
  135. package/dist/{scheduler → execution}/execution.d.ts +6 -4
  136. package/dist/execution/execution.d.ts.map +1 -0
  137. package/dist/{scheduler → execution}/execution.js +49 -8
  138. package/dist/execution/execution.js.map +1 -0
  139. package/dist/{scheduler → execution}/image-builder.d.ts +1 -1
  140. package/dist/execution/image-builder.d.ts.map +1 -0
  141. package/dist/{scheduler → execution}/image-builder.js +2 -0
  142. package/dist/execution/image-builder.js.map +1 -0
  143. package/dist/execution/index.d.ts +21 -0
  144. package/dist/execution/index.d.ts.map +1 -0
  145. package/dist/execution/index.js +14 -0
  146. package/dist/execution/index.js.map +1 -0
  147. package/dist/execution/lifecycle/agent-lifecycle.d.ts +114 -0
  148. package/dist/execution/lifecycle/agent-lifecycle.d.ts.map +1 -0
  149. package/dist/execution/lifecycle/agent-lifecycle.js +236 -0
  150. package/dist/execution/lifecycle/agent-lifecycle.js.map +1 -0
  151. package/dist/execution/lifecycle/index.d.ts +60 -0
  152. package/dist/execution/lifecycle/index.d.ts.map +1 -0
  153. package/dist/execution/lifecycle/index.js +103 -0
  154. package/dist/execution/lifecycle/index.js.map +1 -0
  155. package/dist/execution/lifecycle/instance-lifecycle.d.ts +88 -0
  156. package/dist/execution/lifecycle/instance-lifecycle.d.ts.map +1 -0
  157. package/dist/execution/lifecycle/instance-lifecycle.js +142 -0
  158. package/dist/execution/lifecycle/instance-lifecycle.js.map +1 -0
  159. package/dist/execution/lock-store.d.ts.map +1 -0
  160. package/dist/execution/lock-store.js.map +1 -0
  161. package/dist/execution/routes/calls.d.ts.map +1 -0
  162. package/dist/execution/routes/calls.js.map +1 -0
  163. package/dist/execution/routes/locks.d.ts.map +1 -0
  164. package/dist/execution/routes/locks.js.map +1 -0
  165. package/dist/execution/routes/shutdown.d.ts.map +1 -0
  166. package/dist/execution/routes/shutdown.js.map +1 -0
  167. package/dist/execution/routes/signals.d.ts.map +1 -0
  168. package/dist/execution/routes/signals.js.map +1 -0
  169. package/dist/{scheduler → execution}/runner-pool.d.ts.map +1 -1
  170. package/dist/{scheduler → execution}/runner-pool.js.map +1 -1
  171. package/dist/{scheduler → execution}/runner-setup.d.ts +1 -1
  172. package/dist/execution/runner-setup.d.ts.map +1 -0
  173. package/dist/{scheduler → execution}/runner-setup.js.map +1 -1
  174. package/dist/{scheduler → execution}/runtime-factory.d.ts +1 -1
  175. package/dist/{scheduler → execution}/runtime-factory.d.ts.map +1 -1
  176. package/dist/execution/runtime-factory.js +46 -0
  177. package/dist/execution/runtime-factory.js.map +1 -0
  178. package/dist/{gateway → execution}/types.d.ts +0 -5
  179. package/dist/execution/types.d.ts.map +1 -0
  180. package/dist/execution/types.js +2 -0
  181. package/dist/execution/types.js.map +1 -0
  182. package/dist/extensions/index.d.ts +4 -0
  183. package/dist/extensions/index.d.ts.map +1 -0
  184. package/dist/extensions/index.js +5 -0
  185. package/dist/extensions/index.js.map +1 -0
  186. package/dist/extensions/loader.d.ts +15 -0
  187. package/dist/extensions/loader.d.ts.map +1 -0
  188. package/dist/extensions/loader.js +116 -0
  189. package/dist/extensions/loader.js.map +1 -0
  190. package/dist/extensions/registry.d.ts +32 -0
  191. package/dist/extensions/registry.d.ts.map +1 -0
  192. package/dist/extensions/registry.js +123 -0
  193. package/dist/extensions/registry.js.map +1 -0
  194. package/dist/extensions/types.d.ts +74 -0
  195. package/dist/extensions/types.d.ts.map +1 -0
  196. package/dist/extensions/types.js +2 -0
  197. package/dist/extensions/types.js.map +1 -0
  198. package/dist/gateway/index.d.ts +10 -8
  199. package/dist/gateway/index.d.ts.map +1 -1
  200. package/dist/gateway/index.js +16 -15
  201. package/dist/gateway/index.js.map +1 -1
  202. package/dist/models/providers/anthropic.d.ts +17 -0
  203. package/dist/models/providers/anthropic.d.ts.map +1 -0
  204. package/dist/models/providers/anthropic.js +74 -0
  205. package/dist/models/providers/anthropic.js.map +1 -0
  206. package/dist/models/providers/custom.d.ts +18 -0
  207. package/dist/models/providers/custom.d.ts.map +1 -0
  208. package/dist/models/providers/custom.js +104 -0
  209. package/dist/models/providers/custom.js.map +1 -0
  210. package/dist/models/providers/index.d.ts +17 -0
  211. package/dist/models/providers/index.d.ts.map +1 -0
  212. package/dist/models/providers/index.js +107 -0
  213. package/dist/models/providers/index.js.map +1 -0
  214. package/dist/models/providers/openai.d.ts +18 -0
  215. package/dist/models/providers/openai.d.ts.map +1 -0
  216. package/dist/models/providers/openai.js +94 -0
  217. package/dist/models/providers/openai.js.map +1 -0
  218. package/dist/models/types.d.ts +51 -0
  219. package/dist/models/types.d.ts.map +1 -0
  220. package/dist/models/types.js +5 -0
  221. package/dist/models/types.js.map +1 -0
  222. package/dist/remote/push.d.ts.map +1 -1
  223. package/dist/remote/push.js +35 -5
  224. package/dist/remote/push.js.map +1 -1
  225. package/dist/scheduler/gateway-setup.d.ts +2 -1
  226. package/dist/scheduler/gateway-setup.d.ts.map +1 -1
  227. package/dist/scheduler/gateway-setup.js +7 -6
  228. package/dist/scheduler/gateway-setup.js.map +1 -1
  229. package/dist/scheduler/index.d.ts +3 -3
  230. package/dist/scheduler/index.d.ts.map +1 -1
  231. package/dist/scheduler/index.js +62 -92
  232. package/dist/scheduler/index.js.map +1 -1
  233. package/dist/scheduler/shutdown.d.ts +1 -1
  234. package/dist/scheduler/shutdown.d.ts.map +1 -1
  235. package/dist/scheduler/state.d.ts +2 -2
  236. package/dist/scheduler/state.d.ts.map +1 -1
  237. package/dist/scheduler/types.d.ts +2 -0
  238. package/dist/scheduler/types.d.ts.map +1 -1
  239. package/dist/scheduler/validation.js +2 -2
  240. package/dist/scheduler/validation.js.map +1 -1
  241. package/dist/scheduler/watcher.d.ts +2 -2
  242. package/dist/scheduler/watcher.d.ts.map +1 -1
  243. package/dist/scheduler/watcher.js +36 -10
  244. package/dist/scheduler/watcher.js.map +1 -1
  245. package/dist/shared/config.d.ts +12 -13
  246. package/dist/shared/config.d.ts.map +1 -1
  247. package/dist/shared/config.js +59 -25
  248. package/dist/shared/config.js.map +1 -1
  249. package/dist/shared/constants.d.ts +8 -0
  250. package/dist/shared/constants.d.ts.map +1 -1
  251. package/dist/shared/constants.js +8 -0
  252. package/dist/shared/constants.js.map +1 -1
  253. package/dist/shared/environment.d.ts +7 -0
  254. package/dist/shared/environment.d.ts.map +1 -1
  255. package/dist/shared/environment.js +29 -0
  256. package/dist/shared/environment.js.map +1 -1
  257. package/dist/shared/persistence/adapters/state-store.d.ts +24 -0
  258. package/dist/shared/persistence/adapters/state-store.d.ts.map +1 -0
  259. package/dist/shared/persistence/adapters/state-store.js +32 -0
  260. package/dist/shared/persistence/adapters/state-store.js.map +1 -0
  261. package/dist/shared/persistence/adapters/stats-store.d.ts +49 -0
  262. package/dist/shared/persistence/adapters/stats-store.d.ts.map +1 -0
  263. package/dist/shared/persistence/adapters/stats-store.js +213 -0
  264. package/dist/shared/persistence/adapters/stats-store.js.map +1 -0
  265. package/dist/shared/persistence/backends/memory.d.ts +39 -0
  266. package/dist/shared/persistence/backends/memory.d.ts.map +1 -0
  267. package/dist/shared/persistence/backends/memory.js +214 -0
  268. package/dist/shared/persistence/backends/memory.js.map +1 -0
  269. package/dist/shared/persistence/backends/sqlite.d.ts +38 -0
  270. package/dist/shared/persistence/backends/sqlite.d.ts.map +1 -0
  271. package/dist/shared/persistence/backends/sqlite.js +250 -0
  272. package/dist/shared/persistence/backends/sqlite.js.map +1 -0
  273. package/dist/shared/persistence/event-store.d.ts +77 -0
  274. package/dist/shared/persistence/event-store.d.ts.map +1 -0
  275. package/dist/shared/persistence/event-store.js +139 -0
  276. package/dist/shared/persistence/event-store.js.map +1 -0
  277. package/dist/shared/persistence/index.d.ts +119 -0
  278. package/dist/shared/persistence/index.d.ts.map +1 -0
  279. package/dist/shared/persistence/index.js +93 -0
  280. package/dist/shared/persistence/index.js.map +1 -0
  281. package/dist/shared/persistence/migration.d.ts +47 -0
  282. package/dist/shared/persistence/migration.d.ts.map +1 -0
  283. package/dist/shared/persistence/migration.js +297 -0
  284. package/dist/shared/persistence/migration.js.map +1 -0
  285. package/dist/shared/validation.d.ts +54 -0
  286. package/dist/shared/validation.d.ts.map +1 -0
  287. package/dist/shared/validation.js +231 -0
  288. package/dist/shared/validation.js.map +1 -0
  289. package/dist/shared/work-queue.d.ts +17 -0
  290. package/dist/shared/work-queue.d.ts.map +1 -0
  291. package/dist/shared/work-queue.js +2 -0
  292. package/dist/shared/work-queue.js.map +1 -0
  293. package/dist/stats/event-store.d.ts +37 -0
  294. package/dist/stats/event-store.d.ts.map +1 -0
  295. package/dist/stats/event-store.js +366 -0
  296. package/dist/stats/event-store.js.map +1 -0
  297. package/dist/stats/index.d.ts +1 -1
  298. package/dist/stats/index.d.ts.map +1 -1
  299. package/dist/stats/store.d.ts +45 -0
  300. package/dist/stats/store.d.ts.map +1 -1
  301. package/dist/stats/store.js +118 -2
  302. package/dist/stats/store.js.map +1 -1
  303. package/dist/telemetry/index.d.ts.map +1 -1
  304. package/dist/telemetry/index.js +7 -9
  305. package/dist/telemetry/index.js.map +1 -1
  306. package/dist/telemetry/providers/index.d.ts +5 -0
  307. package/dist/telemetry/providers/index.d.ts.map +1 -0
  308. package/dist/telemetry/providers/index.js +5 -0
  309. package/dist/telemetry/providers/index.js.map +1 -0
  310. package/dist/telemetry/providers/otel.d.ts +5 -0
  311. package/dist/telemetry/providers/otel.d.ts.map +1 -1
  312. package/dist/telemetry/providers/otel.js +45 -0
  313. package/dist/telemetry/providers/otel.js.map +1 -1
  314. package/dist/tui/App.js +2 -2
  315. package/dist/tui/App.js.map +1 -1
  316. package/dist/tui/status-tracker.d.ts +19 -0
  317. package/dist/tui/status-tracker.d.ts.map +1 -1
  318. package/dist/tui/status-tracker.js +96 -1
  319. package/dist/tui/status-tracker.js.map +1 -1
  320. package/dist/webhooks/providers/github.d.ts +2 -1
  321. package/dist/webhooks/providers/github.d.ts.map +1 -1
  322. package/dist/webhooks/providers/github.js +5 -2
  323. package/dist/webhooks/providers/github.js.map +1 -1
  324. package/dist/webhooks/providers/index.d.ts +25 -0
  325. package/dist/webhooks/providers/index.d.ts.map +1 -0
  326. package/dist/webhooks/providers/index.js +144 -0
  327. package/dist/webhooks/providers/index.js.map +1 -0
  328. package/dist/webhooks/providers/linear.d.ts +1 -1
  329. package/dist/webhooks/providers/linear.d.ts.map +1 -1
  330. package/dist/webhooks/providers/linear.js +2 -2
  331. package/dist/webhooks/providers/linear.js.map +1 -1
  332. package/dist/webhooks/providers/mintlify.d.ts +1 -1
  333. package/dist/webhooks/providers/mintlify.d.ts.map +1 -1
  334. package/dist/webhooks/providers/mintlify.js +2 -2
  335. package/dist/webhooks/providers/mintlify.js.map +1 -1
  336. package/dist/webhooks/providers/sentry.d.ts +1 -1
  337. package/dist/webhooks/providers/sentry.d.ts.map +1 -1
  338. package/dist/webhooks/providers/sentry.js +2 -2
  339. package/dist/webhooks/providers/sentry.js.map +1 -1
  340. package/dist/webhooks/providers/test.d.ts +1 -1
  341. package/dist/webhooks/providers/test.d.ts.map +1 -1
  342. package/dist/webhooks/providers/test.js +1 -1
  343. package/dist/webhooks/providers/test.js.map +1 -1
  344. package/dist/webhooks/registry.d.ts +8 -2
  345. package/dist/webhooks/registry.d.ts.map +1 -1
  346. package/dist/webhooks/registry.js +159 -3
  347. package/dist/webhooks/registry.js.map +1 -1
  348. package/dist/webhooks/types.d.ts +30 -1
  349. package/dist/webhooks/types.d.ts.map +1 -1
  350. package/dist/webhooks/validation.d.ts +7 -6
  351. package/dist/webhooks/validation.d.ts.map +1 -1
  352. package/dist/webhooks/validation.js +11 -9
  353. package/dist/webhooks/validation.js.map +1 -1
  354. package/package.json +1 -1
  355. package/dist/agents/feedback-monitor.d.ts +0 -56
  356. package/dist/agents/feedback-monitor.d.ts.map +0 -1
  357. package/dist/agents/feedback-monitor.js +0 -176
  358. package/dist/agents/feedback-monitor.js.map +0 -1
  359. package/dist/agents/feedback-runner.d.ts +0 -28
  360. package/dist/agents/feedback-runner.d.ts.map +0 -1
  361. package/dist/agents/feedback-runner.js +0 -138
  362. package/dist/agents/feedback-runner.js.map +0 -1
  363. package/dist/gateway/call-store.d.ts.map +0 -1
  364. package/dist/gateway/call-store.js.map +0 -1
  365. package/dist/gateway/container-registry.d.ts.map +0 -1
  366. package/dist/gateway/container-registry.js.map +0 -1
  367. package/dist/gateway/lock-store.d.ts.map +0 -1
  368. package/dist/gateway/lock-store.js.map +0 -1
  369. package/dist/gateway/routes/calls.d.ts.map +0 -1
  370. package/dist/gateway/routes/calls.js.map +0 -1
  371. package/dist/gateway/routes/dashboard.js.map +0 -1
  372. package/dist/gateway/routes/locks.d.ts.map +0 -1
  373. package/dist/gateway/routes/locks.js.map +0 -1
  374. package/dist/gateway/routes/shutdown.d.ts.map +0 -1
  375. package/dist/gateway/routes/shutdown.js.map +0 -1
  376. package/dist/gateway/routes/signals.d.ts.map +0 -1
  377. package/dist/gateway/routes/signals.js.map +0 -1
  378. package/dist/gateway/routes/stats.js.map +0 -1
  379. package/dist/gateway/routes/webhooks.d.ts.map +0 -1
  380. package/dist/gateway/routes/webhooks.js +0 -64
  381. package/dist/gateway/routes/webhooks.js.map +0 -1
  382. package/dist/gateway/types.d.ts.map +0 -1
  383. package/dist/gateway/views/agent-detail-page.d.ts.map +0 -1
  384. package/dist/gateway/views/agent-detail-page.js.map +0 -1
  385. package/dist/gateway/views/dashboard-page.d.ts +0 -3
  386. package/dist/gateway/views/dashboard-page.d.ts.map +0 -1
  387. package/dist/gateway/views/instance-detail-page.js.map +0 -1
  388. package/dist/gateway/views/project-config-page.d.ts.map +0 -1
  389. package/dist/gateway/views/project-config-page.js.map +0 -1
  390. package/dist/scheduler/cron-setup.d.ts.map +0 -1
  391. package/dist/scheduler/cron-setup.js.map +0 -1
  392. package/dist/scheduler/event-queue-sqlite.d.ts.map +0 -1
  393. package/dist/scheduler/event-queue-sqlite.js.map +0 -1
  394. package/dist/scheduler/event-queue.d.ts.map +0 -1
  395. package/dist/scheduler/event-queue.js.map +0 -1
  396. package/dist/scheduler/execution.d.ts.map +0 -1
  397. package/dist/scheduler/execution.js.map +0 -1
  398. package/dist/scheduler/image-builder.d.ts.map +0 -1
  399. package/dist/scheduler/image-builder.js.map +0 -1
  400. package/dist/scheduler/runner-setup.d.ts.map +0 -1
  401. package/dist/scheduler/runtime-factory.js +0 -37
  402. package/dist/scheduler/runtime-factory.js.map +0 -1
  403. package/dist/scheduler/webhook-setup.d.ts.map +0 -1
  404. package/dist/scheduler/webhook-setup.js.map +0 -1
  405. package/dist/shared/default-feedback-agent.d.ts +0 -10
  406. package/dist/shared/default-feedback-agent.d.ts.map +0 -1
  407. package/dist/shared/default-feedback-agent.js +0 -114
  408. package/dist/shared/default-feedback-agent.js.map +0 -1
  409. /package/dist/{gateway → control}/api-key.d.ts +0 -0
  410. /package/dist/{gateway → control}/api-key.js +0 -0
  411. /package/dist/{gateway → control}/auth.d.ts +0 -0
  412. /package/dist/{gateway → control}/auth.js +0 -0
  413. /package/dist/{gateway → control}/routes/control.d.ts +0 -0
  414. /package/dist/{gateway → control}/routes/control.js +0 -0
  415. /package/dist/{gateway → control}/routes/dashboard.d.ts +0 -0
  416. /package/dist/{gateway → control}/routes/logs.d.ts +0 -0
  417. /package/dist/{gateway → control}/routes/logs.js +0 -0
  418. /package/dist/{gateway → control}/routes/stats.d.ts +0 -0
  419. /package/dist/{gateway → control}/session-store.d.ts +0 -0
  420. /package/dist/{gateway → control}/session-store.js +0 -0
  421. /package/dist/{gateway → control}/types.js +0 -0
  422. /package/dist/{gateway → control}/views/layout.d.ts +0 -0
  423. /package/dist/{gateway → control}/views/layout.js +0 -0
  424. /package/dist/{gateway → control}/views/login-page.d.ts +0 -0
  425. /package/dist/{gateway → control}/views/login-page.js +0 -0
  426. /package/dist/{scheduler → events}/event-queue-sqlite.d.ts +0 -0
  427. /package/dist/{scheduler → events}/event-queue-sqlite.js +0 -0
  428. /package/dist/{scheduler → events}/event-queue.js +0 -0
  429. /package/dist/{scheduler → execution}/call-dispatcher.d.ts +0 -0
  430. /package/dist/{scheduler → execution}/call-dispatcher.js +0 -0
  431. /package/dist/{gateway → execution}/call-store.d.ts +0 -0
  432. /package/dist/{gateway → execution}/call-store.js +0 -0
  433. /package/dist/{gateway → execution}/container-registry.d.ts +0 -0
  434. /package/dist/{gateway → execution}/container-registry.js +0 -0
  435. /package/dist/{gateway → execution}/lock-store.d.ts +0 -0
  436. /package/dist/{gateway → execution}/lock-store.js +0 -0
  437. /package/dist/{gateway → execution}/routes/calls.d.ts +0 -0
  438. /package/dist/{gateway → execution}/routes/calls.js +0 -0
  439. /package/dist/{gateway → execution}/routes/locks.d.ts +0 -0
  440. /package/dist/{gateway → execution}/routes/locks.js +0 -0
  441. /package/dist/{gateway → execution}/routes/shutdown.d.ts +0 -0
  442. /package/dist/{gateway → execution}/routes/shutdown.js +0 -0
  443. /package/dist/{gateway → execution}/routes/signals.d.ts +0 -0
  444. /package/dist/{gateway → execution}/routes/signals.js +0 -0
  445. /package/dist/{scheduler → execution}/runner-pool.d.ts +0 -0
  446. /package/dist/{scheduler → execution}/runner-pool.js +0 -0
  447. /package/dist/{scheduler → execution}/runner-setup.js +0 -0
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Event sourcing utilities and helpers.
3
+ *
4
+ * Provides event versioning, schema evolution helpers, and common event patterns
5
+ * used throughout the Action Llama system.
6
+ */
7
+ import type { Event, EventStream } from "./index.js";
8
+ /** Common event types used across the system */
9
+ export declare namespace EventTypes {
10
+ const RUN_STARTED = "run.started";
11
+ const RUN_COMPLETED = "run.completed";
12
+ const RUN_FAILED = "run.failed";
13
+ const CALL_INITIATED = "call.initiated";
14
+ const CALL_COMPLETED = "call.completed";
15
+ const CALL_FAILED = "call.failed";
16
+ const WORK_QUEUED = "work.queued";
17
+ const WORK_DEQUEUED = "work.dequeued";
18
+ const WORK_DROPPED = "work.dropped";
19
+ const LOCK_ACQUIRED = "lock.acquired";
20
+ const LOCK_RELEASED = "lock.released";
21
+ const LOCK_EXPIRED = "lock.expired";
22
+ const SESSION_CREATED = "session.created";
23
+ const SESSION_EXPIRED = "session.expired";
24
+ }
25
+ /** Event metadata standard fields */
26
+ export interface EventMetadata {
27
+ /** Source system/component that generated the event */
28
+ source?: string;
29
+ /** Correlation ID for tracing related events */
30
+ correlationId?: string;
31
+ /** User or system that triggered the event */
32
+ actor?: string;
33
+ /** Additional tags for filtering/grouping */
34
+ tags?: string[];
35
+ }
36
+ /** Helper for creating events with proper defaults */
37
+ export declare function createEvent(type: string, data: any, metadata?: EventMetadata, version?: number): Omit<Event, 'id' | 'timestamp'>;
38
+ /** Schema evolution helper */
39
+ export interface EventMigration {
40
+ fromVersion: number;
41
+ toVersion: number;
42
+ migrate: (event: Event) => Event;
43
+ }
44
+ export declare class EventMigrator {
45
+ private migrations;
46
+ addMigration(eventType: string, migration: EventMigration): void;
47
+ migrate(event: Event, targetVersion: number): Event;
48
+ }
49
+ /** Event stream wrapper with additional utilities */
50
+ export declare class EventStreamWrapper {
51
+ private stream;
52
+ constructor(stream: EventStream);
53
+ /** Append a typed event */
54
+ appendTyped<T>(type: string, data: T, metadata?: EventMetadata, version?: number): Promise<Event>;
55
+ /** Replay events from the stream */
56
+ replay(query?: import("./index.js").EventQuery): AsyncIterable<Event>;
57
+ /** Get snapshot from the stream */
58
+ getSnapshot<T>(type: string): Promise<T | null>;
59
+ /** Save snapshot to the stream */
60
+ saveSnapshot<T>(type: string, data: T, eventId: string): Promise<void>;
61
+ /** Replay events of a specific type */
62
+ replayType<T>(type: string, from?: number, to?: number): AsyncIterable<Event & {
63
+ data: T;
64
+ }>;
65
+ /** Build a projection from events */
66
+ buildProjection<T>(initialState: T, reducer: (state: T, event: Event) => T, from?: number): Promise<T>;
67
+ /** Get the latest event of a specific type */
68
+ getLatestEvent(type: string): Promise<Event | null>;
69
+ }
70
+ /** Common projection builders */
71
+ export declare namespace Projections {
72
+ /** Count events by type */
73
+ function eventCounts(events: AsyncIterable<Event>): Promise<Map<string, number>>;
74
+ /** Group events by time window */
75
+ function timeWindow(events: AsyncIterable<Event>, windowMs: number): Promise<Map<number, Event[]>>;
76
+ }
77
+ //# sourceMappingURL=event-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../../src/shared/persistence/event-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Event sourcing utilities and helpers.
3
+ *
4
+ * Provides event versioning, schema evolution helpers, and common event patterns
5
+ * used throughout the Action Llama system.
6
+ */
7
+ /** Common event types used across the system */
8
+ export var EventTypes;
9
+ (function (EventTypes) {
10
+ // Run lifecycle events
11
+ EventTypes.RUN_STARTED = "run.started";
12
+ EventTypes.RUN_COMPLETED = "run.completed";
13
+ EventTypes.RUN_FAILED = "run.failed";
14
+ // Call events
15
+ EventTypes.CALL_INITIATED = "call.initiated";
16
+ EventTypes.CALL_COMPLETED = "call.completed";
17
+ EventTypes.CALL_FAILED = "call.failed";
18
+ // Work queue events
19
+ EventTypes.WORK_QUEUED = "work.queued";
20
+ EventTypes.WORK_DEQUEUED = "work.dequeued";
21
+ EventTypes.WORK_DROPPED = "work.dropped";
22
+ // Lock events
23
+ EventTypes.LOCK_ACQUIRED = "lock.acquired";
24
+ EventTypes.LOCK_RELEASED = "lock.released";
25
+ EventTypes.LOCK_EXPIRED = "lock.expired";
26
+ // Session events
27
+ EventTypes.SESSION_CREATED = "session.created";
28
+ EventTypes.SESSION_EXPIRED = "session.expired";
29
+ })(EventTypes || (EventTypes = {}));
30
+ /** Helper for creating events with proper defaults */
31
+ export function createEvent(type, data, metadata, version = 1) {
32
+ return {
33
+ type,
34
+ data,
35
+ metadata: {
36
+ ...metadata,
37
+ source: "action-llama", // Always use consistent source for audit purposes
38
+ },
39
+ version,
40
+ };
41
+ }
42
+ export class EventMigrator {
43
+ migrations = new Map();
44
+ addMigration(eventType, migration) {
45
+ if (!this.migrations.has(eventType)) {
46
+ this.migrations.set(eventType, []);
47
+ }
48
+ this.migrations.get(eventType).push(migration);
49
+ }
50
+ migrate(event, targetVersion) {
51
+ const migrations = this.migrations.get(event.type) || [];
52
+ let currentEvent = { ...event };
53
+ while (currentEvent.version < targetVersion) {
54
+ const migration = migrations.find(m => m.fromVersion === currentEvent.version);
55
+ if (!migration) {
56
+ throw new Error(`No migration found for ${event.type} from version ${currentEvent.version}`);
57
+ }
58
+ currentEvent = migration.migrate(currentEvent);
59
+ }
60
+ return currentEvent;
61
+ }
62
+ }
63
+ /** Event stream wrapper with additional utilities */
64
+ export class EventStreamWrapper {
65
+ stream;
66
+ constructor(stream) {
67
+ this.stream = stream;
68
+ }
69
+ /** Append a typed event */
70
+ async appendTyped(type, data, metadata, version = 1) {
71
+ return this.stream.append(createEvent(type, data, metadata, version));
72
+ }
73
+ /** Replay events from the stream */
74
+ replay(query) {
75
+ return this.stream.replay(query);
76
+ }
77
+ /** Get snapshot from the stream */
78
+ getSnapshot(type) {
79
+ return this.stream.getSnapshot(type);
80
+ }
81
+ /** Save snapshot to the stream */
82
+ saveSnapshot(type, data, eventId) {
83
+ return this.stream.saveSnapshot(type, data, eventId);
84
+ }
85
+ /** Replay events of a specific type */
86
+ async *replayType(type, from, to) {
87
+ for await (const event of this.stream.replay({ type, from, to })) {
88
+ yield event;
89
+ }
90
+ }
91
+ /** Build a projection from events */
92
+ async buildProjection(initialState, reducer, from) {
93
+ let state = initialState;
94
+ for await (const event of this.stream.replay({ from })) {
95
+ state = reducer(state, event);
96
+ }
97
+ return state;
98
+ }
99
+ /** Get the latest event of a specific type */
100
+ async getLatestEvent(type) {
101
+ const events = [];
102
+ for await (const event of this.stream.replay({ type, limit: 1 })) {
103
+ events.push(event);
104
+ }
105
+ return events[0] || null;
106
+ }
107
+ }
108
+ /** Common projection builders */
109
+ export var Projections;
110
+ (function (Projections) {
111
+ /** Count events by type */
112
+ function eventCounts(events) {
113
+ return buildProjectionFromIterable(events, new Map(), (counts, event) => {
114
+ counts.set(event.type, (counts.get(event.type) || 0) + 1);
115
+ return counts;
116
+ });
117
+ }
118
+ Projections.eventCounts = eventCounts;
119
+ /** Group events by time window */
120
+ function timeWindow(events, windowMs) {
121
+ return buildProjectionFromIterable(events, new Map(), (windows, event) => {
122
+ const window = Math.floor(event.timestamp / windowMs) * windowMs;
123
+ if (!windows.has(window)) {
124
+ windows.set(window, []);
125
+ }
126
+ windows.get(window).push(event);
127
+ return windows;
128
+ });
129
+ }
130
+ Projections.timeWindow = timeWindow;
131
+ })(Projections || (Projections = {}));
132
+ async function buildProjectionFromIterable(events, initialState, reducer) {
133
+ let state = initialState;
134
+ for await (const event of events) {
135
+ state = reducer(state, event);
136
+ }
137
+ return state;
138
+ }
139
+ //# sourceMappingURL=event-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store.js","sourceRoot":"","sources":["../../../src/shared/persistence/event-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Unified persistence layer combining key-value storage, event sourcing, and query capabilities.
3
+ *
4
+ * Replaces the fragmented StateStore/StatsStore/WorkQueue pattern with a single abstraction
5
+ * that supports namespaces, TTL, and append-only event storage for features like replay,
6
+ * audit, and high availability.
7
+ */
8
+ export interface Event {
9
+ /** Unique event identifier */
10
+ id: string;
11
+ /** Event type/category */
12
+ type: string;
13
+ /** Event data payload */
14
+ data: any;
15
+ /** Event metadata (source, correlation id, etc.) */
16
+ metadata?: Record<string, any>;
17
+ /** Event timestamp (milliseconds since epoch) */
18
+ timestamp: number;
19
+ /** Event version for schema evolution */
20
+ version: number;
21
+ }
22
+ export interface EventQuery {
23
+ /** Event type filter */
24
+ type?: string;
25
+ /** Start timestamp (inclusive) */
26
+ from?: number;
27
+ /** End timestamp (exclusive) */
28
+ to?: number;
29
+ /** Maximum number of events to return */
30
+ limit?: number;
31
+ /** Offset for pagination */
32
+ offset?: number;
33
+ }
34
+ export interface EventStream {
35
+ /** Append an event to the stream */
36
+ append(event: Omit<Event, 'id' | 'timestamp'>): Promise<Event>;
37
+ /** Replay events from the stream */
38
+ replay(query?: EventQuery): AsyncIterable<Event>;
39
+ /** Get the latest snapshot for a given type */
40
+ getSnapshot<T>(type: string): Promise<T | null>;
41
+ /** Save a snapshot to optimize future replays */
42
+ saveSnapshot<T>(type: string, data: T, eventId: string): Promise<void>;
43
+ /** Subscribe to new events (optional - for real-time features) */
44
+ subscribe?(callback: (event: Event) => void): () => void;
45
+ }
46
+ export interface PersistenceStore {
47
+ /** Key-value operations with namespacing */
48
+ kv: {
49
+ /** Get a value by namespace and key */
50
+ get<T>(namespace: string, key: string): Promise<T | null>;
51
+ /** Set a value with optional TTL */
52
+ set<T>(namespace: string, key: string, value: T, opts?: {
53
+ ttl?: number;
54
+ }): Promise<void>;
55
+ /** Delete a single key */
56
+ delete(namespace: string, key: string): Promise<void>;
57
+ /** Delete all keys in a namespace */
58
+ deleteAll(namespace: string): Promise<void>;
59
+ /** List all non-expired entries in a namespace */
60
+ list<T>(namespace: string): Promise<Array<{
61
+ key: string;
62
+ value: T;
63
+ }>>;
64
+ };
65
+ /** Event sourcing operations */
66
+ events: {
67
+ /** Get or create an event stream */
68
+ stream(name: string): EventStream;
69
+ /** List available streams */
70
+ listStreams(): Promise<string[]>;
71
+ };
72
+ /** Query operations for analytics */
73
+ query: {
74
+ /** Execute a SQL query for analytics (backend-specific) */
75
+ sql<T>(query: string, params?: any[]): Promise<T[]>;
76
+ };
77
+ /** Transaction operations */
78
+ transaction<T>(fn: (store: PersistenceStore) => Promise<T>): Promise<T>;
79
+ /** Close the store and release resources */
80
+ close(): Promise<void>;
81
+ }
82
+ export interface PersistenceBackend {
83
+ /** Initialize the backend (create tables, etc.) */
84
+ init(): Promise<void>;
85
+ /** Implement the key-value operations */
86
+ kvGet<T>(namespace: string, key: string): Promise<T | null>;
87
+ kvSet<T>(namespace: string, key: string, value: T, ttlMs?: number): Promise<void>;
88
+ kvDelete(namespace: string, key: string): Promise<void>;
89
+ kvDeleteAll(namespace: string): Promise<void>;
90
+ kvList<T>(namespace: string): Promise<Array<{
91
+ key: string;
92
+ value: T;
93
+ }>>;
94
+ /** Implement the event operations */
95
+ eventAppend(stream: string, event: Omit<Event, 'id' | 'timestamp'>): Promise<Event>;
96
+ eventReplay(stream: string, query?: EventQuery): AsyncIterable<Event>;
97
+ eventGetSnapshot<T>(stream: string, type: string): Promise<T | null>;
98
+ eventSaveSnapshot<T>(stream: string, type: string, data: T, eventId: string): Promise<void>;
99
+ eventListStreams(): Promise<string[]>;
100
+ /** Implement query operations */
101
+ querySql<T>(query: string, params?: any[]): Promise<T[]>;
102
+ /** Implement transaction operations */
103
+ transactionBegin(): Promise<void>;
104
+ transactionCommit(): Promise<void>;
105
+ transactionRollback(): Promise<void>;
106
+ transactionRun<T>(fn: () => Promise<T>): Promise<T>;
107
+ /** Close and cleanup */
108
+ close(): Promise<void>;
109
+ }
110
+ export interface PersistenceConfig {
111
+ type: "sqlite" | "memory";
112
+ path?: string;
113
+ maxSize?: number;
114
+ }
115
+ /**
116
+ * Create a persistence store from configuration.
117
+ */
118
+ export declare function createPersistenceStore(config: PersistenceConfig): Promise<PersistenceStore>;
119
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/persistence/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Unified persistence layer combining key-value storage, event sourcing, and query capabilities.
3
+ *
4
+ * Replaces the fragmented StateStore/StatsStore/WorkQueue pattern with a single abstraction
5
+ * that supports namespaces, TTL, and append-only event storage for features like replay,
6
+ * audit, and high availability.
7
+ */
8
+ /**
9
+ * Create a persistence store from configuration.
10
+ */
11
+ export async function createPersistenceStore(config) {
12
+ let backend;
13
+ switch (config.type) {
14
+ case "sqlite":
15
+ const { SqliteBackend } = await import("./backends/sqlite.js");
16
+ backend = new SqliteBackend(config.path || ":memory:");
17
+ break;
18
+ case "memory":
19
+ const { MemoryBackend } = await import("./backends/memory.js");
20
+ backend = new MemoryBackend(config.maxSize);
21
+ break;
22
+ default:
23
+ throw new Error(`Unsupported persistence backend: ${config.type}`);
24
+ }
25
+ await backend.init();
26
+ return new PersistenceStoreImpl(backend);
27
+ }
28
+ /**
29
+ * Implementation of PersistenceStore that delegates to a backend.
30
+ */
31
+ class PersistenceStoreImpl {
32
+ backend;
33
+ streams = new Map();
34
+ constructor(backend) {
35
+ this.backend = backend;
36
+ }
37
+ get kv() {
38
+ return {
39
+ get: (namespace, key) => this.backend.kvGet(namespace, key),
40
+ set: (namespace, key, value, opts) => this.backend.kvSet(namespace, key, value, opts?.ttl ? opts.ttl * 1000 : undefined),
41
+ delete: (namespace, key) => this.backend.kvDelete(namespace, key),
42
+ deleteAll: (namespace) => this.backend.kvDeleteAll(namespace),
43
+ list: (namespace) => this.backend.kvList(namespace),
44
+ };
45
+ }
46
+ get events() {
47
+ return {
48
+ stream: (name) => {
49
+ if (!this.streams.has(name)) {
50
+ this.streams.set(name, new EventStreamImpl(name, this.backend));
51
+ }
52
+ return this.streams.get(name);
53
+ },
54
+ listStreams: () => this.backend.eventListStreams(),
55
+ };
56
+ }
57
+ get query() {
58
+ return {
59
+ sql: (query, params) => this.backend.querySql(query, params),
60
+ };
61
+ }
62
+ async transaction(fn) {
63
+ return this.backend.transactionRun(() => fn(this));
64
+ }
65
+ async close() {
66
+ await this.backend.close();
67
+ this.streams.clear();
68
+ }
69
+ }
70
+ /**
71
+ * Implementation of EventStream that delegates to a backend.
72
+ */
73
+ class EventStreamImpl {
74
+ name;
75
+ backend;
76
+ constructor(name, backend) {
77
+ this.name = name;
78
+ this.backend = backend;
79
+ }
80
+ append(event) {
81
+ return this.backend.eventAppend(this.name, event);
82
+ }
83
+ replay(query) {
84
+ return this.backend.eventReplay(this.name, query);
85
+ }
86
+ getSnapshot(type) {
87
+ return this.backend.eventGetSnapshot(this.name, type);
88
+ }
89
+ saveSnapshot(type, data, eventId) {
90
+ return this.backend.eventSaveSnapshot(this.name, type, data, eventId);
91
+ }
92
+ }
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/persistence/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6HH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAyB;IACpE,IAAI,OAA2B,CAAC;IAEhC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/D,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;YACvD,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/D,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,oBAAoB;IAGJ;IAFZ,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEjD,YAAoB,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;IAAG,CAAC;IAEnD,IAAI,EAAE;QACJ,OAAO;YACL,GAAG,EAAE,CAAI,SAAiB,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAI,SAAS,EAAE,GAAG,CAAC;YACjF,GAAG,EAAE,CAAI,SAAiB,EAAE,GAAW,EAAE,KAAQ,EAAE,IAAuB,EAAE,EAAE,CAC5E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,MAAM,EAAE,CAAC,SAAiB,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;YACjF,SAAS,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;YACrE,IAAI,EAAE,CAAI,SAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAI,SAAS,CAAC;SAClE,CAAC;IACJ,CAAC;IAED,IAAI,MAAM;QACR,OAAO;YACL,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YACjC,CAAC;YACD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO;YACL,GAAG,EAAE,CAAI,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAI,KAAK,EAAE,MAAM,CAAC;SACnF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,EAA2C;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,eAAe;IAET;IACA;IAFV,YACU,IAAY,EACZ,OAA2B;QAD3B,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAoB;IAClC,CAAC;IAEJ,MAAM,CAAC,KAAsC;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,WAAW,CAAI,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY,CAAI,IAAY,EAAE,IAAO,EAAE,OAAe;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Migration utilities for transitioning from legacy StateStore/StatsStore to unified persistence.
3
+ *
4
+ * Provides atomic migration with rollback support and progress reporting.
5
+ */
6
+ import type { StateStore } from "../state-store.js";
7
+ import type { StatsStore } from "../../stats/store.js";
8
+ import type { PersistenceStore } from "./index.js";
9
+ export interface MigrationProgress {
10
+ /** Current step being performed */
11
+ step: string;
12
+ /** Number of items processed */
13
+ processed: number;
14
+ /** Total items to process */
15
+ total: number;
16
+ /** Estimated completion percentage */
17
+ percentage: number;
18
+ }
19
+ export interface MigrationOptions {
20
+ /** Progress callback */
21
+ onProgress?: (progress: MigrationProgress) => void;
22
+ /** Batch size for processing large datasets */
23
+ batchSize?: number;
24
+ /** Whether to preserve original data after migration */
25
+ preserveOriginal?: boolean;
26
+ }
27
+ export declare class LegacyMigrator {
28
+ private newStore;
29
+ constructor(newStore: PersistenceStore);
30
+ /**
31
+ * Migrate from legacy StateStore to new persistence layer.
32
+ */
33
+ migrateStateStore(legacyStore: StateStore, options?: MigrationOptions): Promise<void>;
34
+ /**
35
+ * Migrate from legacy StatsStore to event-sourced analytics.
36
+ */
37
+ migrateStatsStore(legacyStore: StatsStore, options?: MigrationOptions): Promise<void>;
38
+ /**
39
+ * Perform complete migration from all legacy stores.
40
+ */
41
+ migrateAll(legacyStateStore?: StateStore, legacyStatsStore?: StatsStore, options?: MigrationOptions): Promise<void>;
42
+ }
43
+ /**
44
+ * Helper function to run migration with console progress reporting.
45
+ */
46
+ export declare function migrateFromLegacy(newStore: PersistenceStore, legacyStateStore?: StateStore, legacyStatsStore?: StatsStore, options?: Omit<MigrationOptions, 'onProgress'>): Promise<void>;
47
+ //# sourceMappingURL=migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/shared/persistence/migration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACnD,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,gBAAgB;IAE9C;;OAEG;IACG,iBAAiB,CACrB,WAAW,EAAE,UAAU,EACvB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC;IAiFhB;;OAEG;IACG,iBAAiB,CACrB,WAAW,EAAE,UAAU,EACvB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC;IAsLhB;;OAEG;IACG,UAAU,CACd,gBAAgB,CAAC,EAAE,UAAU,EAC7B,gBAAgB,CAAC,EAAE,UAAU,EAC7B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC;CA4EjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,gBAAgB,EAC1B,gBAAgB,CAAC,EAAE,UAAU,EAC7B,gBAAgB,CAAC,EAAE,UAAU,EAC7B,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAM,GACjD,OAAO,CAAC,IAAI,CAAC,CASf"}