@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
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/webhooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAKjD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIxD,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMjD,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,cAAc;CAoGlB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/webhooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAkB,cAAc,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AACrI,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAKjD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIxD,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMjD,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;KAAE,EACjF,SAAS,CAAC,EAAE,MAAM,GACjB,cAAc;IA6GjB,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,YAAY;IAqHf,OAAO,CAAC,gBAAgB;CA2DzB"}
@@ -21,16 +21,18 @@ export class WebhookRegistry {
21
21
  this.bindings = this.bindings.filter(b => b.agentName !== agentName);
22
22
  return before - this.bindings.length;
23
23
  }
24
- dispatch(source, headers, rawBody, secrets) {
24
+ dispatch(source, headers, rawBody, webhookConfig, receiptId) {
25
25
  const provider = this.providers.get(source);
26
26
  if (!provider) {
27
27
  this.logger.warn({ source }, "dispatch: no provider for source");
28
28
  return { ok: false, matched: 0, skipped: 0, errors: [`unknown source: ${source}`] };
29
29
  }
30
+ const { secrets } = webhookConfig;
31
+ const allowUnsigned = webhookConfig.config?.allowUnsigned ?? false;
30
32
  // Validate request signature — returns the matched instance name or null
31
- const matchedSource = provider.validateRequest(headers, rawBody, secrets);
33
+ const matchedSource = provider.validateRequest(headers, rawBody, secrets, allowUnsigned);
32
34
  if (matchedSource === null) {
33
- this.logger.warn({ source, secretCount: secrets ? Object.keys(secrets).length : 0 }, "webhook signature validation failed");
35
+ this.logger.warn({ source, secretCount: secrets ? Object.keys(secrets).length : 0, allowUnsigned }, "webhook signature validation failed");
34
36
  return { ok: false, matched: 0, skipped: 0, errors: ["signature validation failed"] };
35
37
  }
36
38
  // Parse the event — handle both JSON and form-encoded payloads
@@ -59,6 +61,10 @@ export class WebhookRegistry {
59
61
  this.logger.warn({ source }, "webhook event could not be parsed (parseEvent returned null)");
60
62
  return { ok: true, matched: 0, skipped: 0, matchedSource };
61
63
  }
64
+ // Attach receiptId to context so downstream consumers can link runs to receipts
65
+ if (receiptId) {
66
+ context.receiptId = receiptId;
67
+ }
62
68
  this.logger.debug({ source, event: context.event, action: context.action, repo: context.repo, sender: context.sender, matchedSource }, "webhook event parsed");
63
69
  // Match against bindings and trigger
64
70
  let matched = 0;
@@ -96,5 +102,155 @@ export class WebhookRegistry {
96
102
  }
97
103
  return { ok: true, matched, skipped, matchedSource };
98
104
  }
105
+ dryRunDispatch(source, headers, rawBody, secrets) {
106
+ const provider = this.providers.get(source);
107
+ if (!provider) {
108
+ return {
109
+ ok: false,
110
+ context: null,
111
+ validationResult: null,
112
+ parseError: `unknown source: ${source}`,
113
+ bindings: []
114
+ };
115
+ }
116
+ // Validate request signature — returns the matched instance name or null
117
+ const matchedSource = provider.validateRequest(headers, rawBody, secrets);
118
+ if (matchedSource === null) {
119
+ return {
120
+ ok: false,
121
+ context: null,
122
+ validationResult: "signature validation failed",
123
+ bindings: []
124
+ };
125
+ }
126
+ // Parse the event — handle both JSON and form-encoded payloads
127
+ let body;
128
+ const contentType = headers["content-type"] || "";
129
+ try {
130
+ if (contentType.includes("application/x-www-form-urlencoded")) {
131
+ const params = new URLSearchParams(rawBody);
132
+ const payload = params.get("payload");
133
+ if (!payload) {
134
+ return {
135
+ ok: false,
136
+ context: null,
137
+ validationResult: matchedSource,
138
+ parseError: "missing payload in form body",
139
+ bindings: []
140
+ };
141
+ }
142
+ body = JSON.parse(payload);
143
+ }
144
+ else {
145
+ body = JSON.parse(rawBody);
146
+ }
147
+ }
148
+ catch (err) {
149
+ return {
150
+ ok: false,
151
+ context: null,
152
+ validationResult: matchedSource,
153
+ parseError: `invalid JSON body: ${err.message}`,
154
+ bindings: []
155
+ };
156
+ }
157
+ const context = provider.parseEvent(headers, body);
158
+ if (!context) {
159
+ return {
160
+ ok: true,
161
+ context: null,
162
+ validationResult: matchedSource,
163
+ parseError: "webhook event could not be parsed (parseEvent returned null)",
164
+ bindings: []
165
+ };
166
+ }
167
+ // Check all bindings and collect detailed match information
168
+ const bindings = [];
169
+ for (const binding of this.bindings) {
170
+ const result = {
171
+ agentName: binding.agentName,
172
+ matched: false,
173
+ reasons: []
174
+ };
175
+ // Check if binding is for this provider type
176
+ if (binding.type !== source) {
177
+ result.reasons.push(`Type mismatch: binding expects '${binding.type}', webhook is '${source}'`);
178
+ bindings.push(result);
179
+ continue;
180
+ }
181
+ // Check if binding source matches the validated credential instance
182
+ if (binding.source && binding.source !== matchedSource) {
183
+ result.reasons.push(`Source mismatch: binding expects '${binding.source}', webhook matched '${matchedSource}'`);
184
+ bindings.push(result);
185
+ continue;
186
+ }
187
+ // Check filter match with detailed breakdown
188
+ if (binding.filter) {
189
+ const filterMatches = provider.matchesFilter(context, binding.filter);
190
+ // Create detailed filter breakdown
191
+ result.filterDetails = this.getFilterDetails(context, binding.filter, provider);
192
+ if (!filterMatches) {
193
+ result.reasons.push("Filter conditions not met");
194
+ bindings.push(result);
195
+ continue;
196
+ }
197
+ }
198
+ // If we get here, the binding matches
199
+ result.matched = true;
200
+ result.reasons.push("All conditions satisfied");
201
+ bindings.push(result);
202
+ }
203
+ return {
204
+ ok: true,
205
+ context,
206
+ validationResult: matchedSource,
207
+ bindings,
208
+ matchedSource
209
+ };
210
+ }
211
+ getFilterDetails(context, filter, provider) {
212
+ const details = {
213
+ type: true, // Provider type already matched at this point
214
+ source: true // Source already matched at this point
215
+ };
216
+ // Check specific filter conditions based on the filter properties
217
+ if ('events' in filter && filter.events) {
218
+ details.event = filter.events.includes(context.event);
219
+ }
220
+ if ('actions' in filter && filter.actions) {
221
+ details.action = context.action ? filter.actions.includes(context.action) : false;
222
+ }
223
+ if ('repos' in filter && filter.repos) {
224
+ details.repo = filter.repos.includes(context.repo);
225
+ }
226
+ if ('org' in filter && filter.org) {
227
+ details.org = context.repo.startsWith(`${filter.org}/`);
228
+ }
229
+ if ('orgs' in filter && filter.orgs) {
230
+ details.org = filter.orgs.some((org) => context.repo.startsWith(`${org}/`));
231
+ }
232
+ if ('organizations' in filter && filter.organizations) {
233
+ details.org = filter.organizations.some((org) => context.repo.startsWith(`${org}/`));
234
+ }
235
+ if ('labels' in filter && filter.labels && context.labels) {
236
+ details.label = filter.labels.some((label) => context.labels?.includes(label));
237
+ }
238
+ if ('assignee' in filter && filter.assignee) {
239
+ details.assignee = context.assignee === filter.assignee;
240
+ }
241
+ if ('author' in filter && filter.author) {
242
+ details.author = context.author === filter.author;
243
+ }
244
+ if ('branches' in filter && filter.branches) {
245
+ details.branch = context.branch ? filter.branches.includes(context.branch) : false;
246
+ }
247
+ if ('conclusions' in filter && filter.conclusions) {
248
+ details.conclusion = context.conclusion ? filter.conclusions.includes(context.conclusion) : false;
249
+ }
250
+ if ('resources' in filter && filter.resources) {
251
+ details.resource = filter.resources.some((resource) => context.event?.includes(resource) || context.action?.includes(resource));
252
+ }
253
+ return details;
254
+ }
99
255
  }
100
256
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/webhooks/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/webhooks/registry.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export interface WebhookContext {
15
15
  comment?: string;
16
16
  sender: string;
17
17
  timestamp: string;
18
+ receiptId?: string;
18
19
  }
19
20
  export interface GitHubWebhookFilter {
20
21
  repos?: string[];
@@ -62,9 +63,10 @@ export interface WebhookTrigger {
62
63
  }
63
64
  export interface WebhookProvider {
64
65
  source: string;
65
- validateRequest(headers: Record<string, string | undefined>, rawBody: string, secrets?: Record<string, string>): string | null;
66
+ validateRequest(headers: Record<string, string | undefined>, rawBody: string, secrets?: Record<string, string>, allowUnsigned?: boolean): string | null;
66
67
  parseEvent(headers: Record<string, string | undefined>, body: any): WebhookContext | null;
67
68
  matchesFilter(context: WebhookContext, filter: WebhookFilter): boolean;
69
+ getDeliveryId?(headers: Record<string, string | undefined>): string | null;
68
70
  }
69
71
  export interface WebhookBinding {
70
72
  agentName: string;
@@ -80,4 +82,31 @@ export interface DispatchResult {
80
82
  errors?: string[];
81
83
  matchedSource?: string;
82
84
  }
85
+ export interface DryRunBindingResult {
86
+ agentName: string;
87
+ matched: boolean;
88
+ reasons: string[];
89
+ filterDetails?: {
90
+ type: boolean;
91
+ source: boolean;
92
+ event?: boolean;
93
+ action?: boolean;
94
+ repo?: boolean;
95
+ org?: boolean;
96
+ label?: boolean;
97
+ assignee?: boolean;
98
+ author?: boolean;
99
+ branch?: boolean;
100
+ conclusion?: boolean;
101
+ resource?: boolean;
102
+ };
103
+ }
104
+ export interface DryRunResult {
105
+ ok: boolean;
106
+ context: WebhookContext | null;
107
+ validationResult: string | null;
108
+ parseError?: string;
109
+ bindings: DryRunBindingResult[];
110
+ matchedSource?: string;
111
+ }
83
112
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,13 @@ export declare function truncateEventText(text: string | undefined | null, max?:
6
6
  * Validate an HMAC-SHA256 webhook signature against one or more secrets.
7
7
  *
8
8
  * Returns the instance name of the matching secret, "_unsigned" if no secrets
9
- * are configured (unsigned webhooks allowed), or null if validation fails.
9
+ * are configured and allowUnsigned is true, or null if validation fails.
10
10
  *
11
- * @param rawBody - The raw request body string
12
- * @param signature - The signature header value (e.g. "sha256=abc123" or just "abc123")
13
- * @param secrets - Map of instance name → secret value
14
- * @param prefix - Optional prefix the provider prepends to the HMAC hex (e.g. "sha256=" for GitHub)
11
+ * @param rawBody - The raw request body string
12
+ * @param signature - The signature header value (e.g. "sha256=abc123" or just "abc123")
13
+ * @param secrets - Map of instance name → secret value
14
+ * @param prefix - Optional prefix the provider prepends to the HMAC hex (e.g. "sha256=" for GitHub)
15
+ * @param allowUnsigned - Allow unsigned webhooks when no secrets configured (default: false)
15
16
  */
16
- export declare function validateHmacSignature(rawBody: string, signature: string | undefined, secrets: Record<string, string> | undefined, prefix?: string): string | null;
17
+ export declare function validateHmacSignature(rawBody: string, signature: string | undefined, secrets: Record<string, string> | undefined, prefix?: string, allowUnsigned?: boolean): string | null;
17
18
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/webhooks/validation.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG,SAAkB,GAAG,MAAM,GAAG,SAAS,CAG5G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,MAAM,SAAK,GACV,MAAM,GAAG,IAAI,CAef"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/webhooks/validation.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG,SAAkB,GAAG,MAAM,GAAG,SAAS,CAG5G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,MAAM,SAAK,EACX,aAAa,UAAQ,GACpB,MAAM,GAAG,IAAI,CAiBf"}
@@ -12,17 +12,19 @@ export function truncateEventText(text, max = MAX_TEXT_LENGTH) {
12
12
  * Validate an HMAC-SHA256 webhook signature against one or more secrets.
13
13
  *
14
14
  * Returns the instance name of the matching secret, "_unsigned" if no secrets
15
- * are configured (unsigned webhooks allowed), or null if validation fails.
15
+ * are configured and allowUnsigned is true, or null if validation fails.
16
16
  *
17
- * @param rawBody - The raw request body string
18
- * @param signature - The signature header value (e.g. "sha256=abc123" or just "abc123")
19
- * @param secrets - Map of instance name → secret value
20
- * @param prefix - Optional prefix the provider prepends to the HMAC hex (e.g. "sha256=" for GitHub)
17
+ * @param rawBody - The raw request body string
18
+ * @param signature - The signature header value (e.g. "sha256=abc123" or just "abc123")
19
+ * @param secrets - Map of instance name → secret value
20
+ * @param prefix - Optional prefix the provider prepends to the HMAC hex (e.g. "sha256=" for GitHub)
21
+ * @param allowUnsigned - Allow unsigned webhooks when no secrets configured (default: false)
21
22
  */
22
- export function validateHmacSignature(rawBody, signature, secrets, prefix = "") {
23
- // If no secrets configured, skip validation (allow unsigned webhooks)
24
- if (!secrets || Object.keys(secrets).length === 0)
25
- return "_unsigned";
23
+ export function validateHmacSignature(rawBody, signature, secrets, prefix = "", allowUnsigned = false) {
24
+ // If no secrets configured, check allowUnsigned policy
25
+ if (!secrets || Object.keys(secrets).length === 0) {
26
+ return allowUnsigned ? "_unsigned" : null;
27
+ }
26
28
  if (!signature)
27
29
  return null;
28
30
  // Try each configured secret — different orgs/repos may use different secrets
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/webhooks/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAErD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA+B,EAAE,GAAG,GAAG,eAAe;IACtF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,SAA6B,EAC7B,OAA2C,EAC3C,MAAM,GAAG,EAAE;IAEX,sEAAsE;IACtE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAEtE,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,8EAA8E;IAC9E,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC3G,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/webhooks/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAErD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA+B,EAAE,GAAG,GAAG,eAAe;IACtF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,SAA6B,EAC7B,OAA2C,EAC3C,MAAM,GAAG,EAAE,EACX,aAAa,GAAG,KAAK;IAErB,uDAAuD;IACvD,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,8EAA8E;IAC9E,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC3G,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@action-llama/action-llama",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "description": "Automated development agents triggered by cron or webhooks. BYOM — bring your own model.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,56 +0,0 @@
1
- import { EventEmitter } from "events";
2
- import type { GlobalConfig } from "../shared/config.js";
3
- import type { Logger } from "../shared/logger.js";
4
- import type { StatusTracker } from "../tui/status-tracker.js";
5
- export interface FeedbackTriggerEvent {
6
- agentName: string;
7
- error: string;
8
- context: string[];
9
- timestamp: Date;
10
- }
11
- export declare class FeedbackMonitor extends EventEmitter {
12
- private globalConfig;
13
- private logger;
14
- private statusTracker?;
15
- private watchedAgents;
16
- private intervalId?;
17
- private readonly pollInterval;
18
- constructor(globalConfig: GlobalConfig, logger: Logger, statusTracker?: StatusTracker);
19
- /**
20
- * Start monitoring all agents' log files for errors
21
- */
22
- start(projectPath: string): void;
23
- /**
24
- * Stop monitoring
25
- */
26
- stop(): void;
27
- /**
28
- * Watch a specific agent's logs for errors
29
- */
30
- watchAgent(agentName: string): void;
31
- /**
32
- * Stop watching a specific agent
33
- */
34
- unwatchAgent(agentName: string): void;
35
- /**
36
- * Check if feedback is enabled for the given agent
37
- */
38
- private isFeedbackEnabled;
39
- /**
40
- * Get the error patterns to search for
41
- */
42
- private getErrorPatterns;
43
- /**
44
- * Get the number of context lines to include
45
- */
46
- private getContextLines;
47
- /**
48
- * Poll log files for new content and check for errors
49
- */
50
- private pollLogFiles;
51
- /**
52
- * Process log lines looking for error patterns
53
- */
54
- private processLogLines;
55
- }
56
- //# sourceMappingURL=feedback-monitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-monitor.d.ts","sourceRoot":"","sources":["../../src/agents/feedback-monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAiE;IACtF,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;gBAEzB,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa;IAOrF;;OAEG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAYhC;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOnC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmDpB;;OAEG;IACH,OAAO,CAAC,eAAe;CA+CxB"}
@@ -1,176 +0,0 @@
1
- import { existsSync, readFileSync, statSync } from "fs";
2
- import { resolve } from "path";
3
- import { EventEmitter } from "events";
4
- import { logsDir } from "../shared/paths.js";
5
- export class FeedbackMonitor extends EventEmitter {
6
- globalConfig;
7
- logger;
8
- statusTracker;
9
- watchedAgents = new Map();
10
- intervalId;
11
- pollInterval = 5000; // 5 seconds
12
- constructor(globalConfig, logger, statusTracker) {
13
- super();
14
- this.globalConfig = globalConfig;
15
- this.logger = logger;
16
- this.statusTracker = statusTracker;
17
- }
18
- /**
19
- * Start monitoring all agents' log files for errors
20
- */
21
- start(projectPath) {
22
- if (this.intervalId) {
23
- this.logger.warn("FeedbackMonitor is already running");
24
- return;
25
- }
26
- this.logger.info("Starting feedback monitor");
27
- this.intervalId = setInterval(() => {
28
- this.pollLogFiles(projectPath);
29
- }, this.pollInterval);
30
- }
31
- /**
32
- * Stop monitoring
33
- */
34
- stop() {
35
- if (this.intervalId) {
36
- clearInterval(this.intervalId);
37
- this.intervalId = undefined;
38
- this.logger.info("Stopped feedback monitor");
39
- }
40
- }
41
- /**
42
- * Watch a specific agent's logs for errors
43
- */
44
- watchAgent(agentName) {
45
- if (!this.watchedAgents.has(agentName)) {
46
- this.watchedAgents.set(agentName, { lastPosition: 0, lastSize: 0 });
47
- this.logger.debug(`Now watching agent: ${agentName}`);
48
- }
49
- }
50
- /**
51
- * Stop watching a specific agent
52
- */
53
- unwatchAgent(agentName) {
54
- if (this.watchedAgents.delete(agentName)) {
55
- this.logger.debug(`Stopped watching agent: ${agentName}`);
56
- }
57
- }
58
- /**
59
- * Check if feedback is enabled for the given agent
60
- */
61
- isFeedbackEnabled(agentConfig) {
62
- // Check global feedback setting
63
- if (!this.globalConfig.feedback?.enabled) {
64
- return false;
65
- }
66
- // Check per-agent override
67
- if (agentConfig.feedback?.enabled !== undefined) {
68
- return agentConfig.feedback.enabled;
69
- }
70
- // Default to enabled if global feedback is enabled and no agent override
71
- return true;
72
- }
73
- /**
74
- * Get the error patterns to search for
75
- */
76
- getErrorPatterns() {
77
- return this.globalConfig.feedback?.errorPatterns || ["error", "fail"];
78
- }
79
- /**
80
- * Get the number of context lines to include
81
- */
82
- getContextLines() {
83
- return this.globalConfig.feedback?.contextLines || 2;
84
- }
85
- /**
86
- * Poll log files for new content and check for errors
87
- */
88
- pollLogFiles(projectPath) {
89
- const today = new Date().toISOString().slice(0, 10);
90
- const logsDirPath = logsDir(projectPath);
91
- for (const [agentName, watchState] of this.watchedAgents) {
92
- const logFile = resolve(logsDirPath, `${agentName}-${today}.log`);
93
- if (!existsSync(logFile)) {
94
- continue;
95
- }
96
- try {
97
- const stats = statSync(logFile);
98
- const currentSize = stats.size;
99
- // Only process if file has grown
100
- if (currentSize <= watchState.lastSize) {
101
- continue;
102
- }
103
- // Read new content
104
- const content = readFileSync(logFile, "utf-8");
105
- const lines = content.split("\n");
106
- // Find starting line based on last position
107
- let startLine = 0;
108
- if (watchState.lastPosition > 0) {
109
- // Find the line that contains data after our last position
110
- let bytesRead = 0;
111
- for (let i = 0; i < lines.length; i++) {
112
- bytesRead += Buffer.byteLength(lines[i] + "\n", "utf-8");
113
- if (bytesRead > watchState.lastPosition) {
114
- startLine = i;
115
- break;
116
- }
117
- }
118
- }
119
- // Process new lines for errors
120
- this.processLogLines(agentName, lines, startLine, projectPath);
121
- // Update tracking state
122
- watchState.lastPosition = currentSize;
123
- watchState.lastSize = currentSize;
124
- }
125
- catch (err) {
126
- this.logger.error({ err, agentName, logFile }, "Error reading log file for feedback monitoring");
127
- }
128
- }
129
- }
130
- /**
131
- * Process log lines looking for error patterns
132
- */
133
- processLogLines(agentName, lines, startLine, projectPath) {
134
- const errorPatterns = this.getErrorPatterns();
135
- const contextLines = this.getContextLines();
136
- for (let i = startLine; i < lines.length; i++) {
137
- const line = lines[i];
138
- if (!line.trim())
139
- continue;
140
- // Check if line matches any error pattern
141
- const matchesError = errorPatterns.some(pattern => {
142
- try {
143
- const regex = new RegExp(pattern, "i");
144
- return regex.test(line);
145
- }
146
- catch (err) {
147
- this.logger.warn({ pattern, err }, "Invalid error pattern regex");
148
- return line.toLowerCase().includes(pattern.toLowerCase());
149
- }
150
- });
151
- if (matchesError) {
152
- // Extract context lines around the error
153
- const startContext = Math.max(0, i - contextLines);
154
- const endContext = Math.min(lines.length - 1, i + contextLines);
155
- const context = lines.slice(startContext, endContext + 1);
156
- // Check if feedback is enabled for this agent
157
- try {
158
- // This is a simplified check - in a real implementation we'd need
159
- // to load the agent config to check per-agent settings
160
- this.logger.info({ agentName, error: line.substring(0, 200) }, "Error detected, triggering feedback");
161
- const event = {
162
- agentName,
163
- error: line,
164
- context,
165
- timestamp: new Date(),
166
- };
167
- this.emit("feedback-trigger", event);
168
- }
169
- catch (err) {
170
- this.logger.error({ err, agentName }, "Error checking feedback configuration");
171
- }
172
- }
173
- }
174
- }
175
- }
176
- //# sourceMappingURL=feedback-monitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-monitor.js","sourceRoot":"","sources":["../../src/agents/feedback-monitor.ts"],"names":[],"mappings":"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"}