pulseed 0.4.0 → 0.4.1

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 (335) hide show
  1. package/dist/base/state/state-manager-goal-write.d.ts +22 -0
  2. package/dist/base/state/state-manager-goal-write.d.ts.map +1 -0
  3. package/dist/base/state/state-manager-goal-write.js +74 -0
  4. package/dist/base/state/state-manager-goal-write.js.map +1 -0
  5. package/dist/base/state/state-manager-wal.d.ts +11 -0
  6. package/dist/base/state/state-manager-wal.d.ts.map +1 -0
  7. package/dist/base/state/state-manager-wal.js +89 -0
  8. package/dist/base/state/state-manager-wal.js.map +1 -0
  9. package/dist/base/state/state-manager.d.ts +1 -4
  10. package/dist/base/state/state-manager.d.ts.map +1 -1
  11. package/dist/base/state/state-manager.js +18 -127
  12. package/dist/base/state/state-manager.js.map +1 -1
  13. package/dist/interface/chat/chat-runner.d.ts +1 -1
  14. package/dist/interface/chat/event-subscriber.d.ts +4 -0
  15. package/dist/interface/chat/event-subscriber.d.ts.map +1 -1
  16. package/dist/interface/chat/event-subscriber.js +49 -2
  17. package/dist/interface/chat/event-subscriber.js.map +1 -1
  18. package/dist/interface/chat/tend-command.d.ts +1 -1
  19. package/dist/interface/cli/cli-command-registry.js +1 -1
  20. package/dist/interface/cli/cli-command-registry.js.map +1 -1
  21. package/dist/interface/cli/commands/chat.js +2 -2
  22. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  23. package/dist/interface/cli/commands/daemon.js +87 -44
  24. package/dist/interface/cli/commands/daemon.js.map +1 -1
  25. package/dist/interface/cli/commands/schedule.js +2 -2
  26. package/dist/interface/cli/commands/setup/steps-runtime.js +1 -1
  27. package/dist/interface/cli/ensure-api-key.d.ts +4 -1
  28. package/dist/interface/cli/ensure-api-key.d.ts.map +1 -1
  29. package/dist/interface/cli/ensure-api-key.js +52 -15
  30. package/dist/interface/cli/ensure-api-key.js.map +1 -1
  31. package/dist/interface/tui/app.d.ts +1 -1
  32. package/dist/interface/tui/chat/scroll.d.ts +14 -0
  33. package/dist/interface/tui/chat/scroll.d.ts.map +1 -0
  34. package/dist/interface/tui/chat/scroll.js +46 -0
  35. package/dist/interface/tui/chat/scroll.js.map +1 -0
  36. package/dist/interface/tui/chat/suggestions.d.ts +8 -0
  37. package/dist/interface/tui/chat/suggestions.d.ts.map +1 -0
  38. package/dist/interface/tui/chat/suggestions.js +112 -0
  39. package/dist/interface/tui/chat/suggestions.js.map +1 -0
  40. package/dist/interface/tui/chat/types.d.ts +31 -0
  41. package/dist/interface/tui/chat/types.d.ts.map +1 -0
  42. package/dist/interface/tui/chat/types.js +2 -0
  43. package/dist/interface/tui/chat/types.js.map +1 -0
  44. package/dist/interface/tui/chat/viewport.d.ts +3 -0
  45. package/dist/interface/tui/chat/viewport.d.ts.map +1 -0
  46. package/dist/interface/tui/chat/viewport.js +78 -0
  47. package/dist/interface/tui/chat/viewport.js.map +1 -0
  48. package/dist/interface/tui/chat.d.ts +5 -49
  49. package/dist/interface/tui/chat.d.ts.map +1 -1
  50. package/dist/interface/tui/chat.js +7 -236
  51. package/dist/interface/tui/chat.js.map +1 -1
  52. package/dist/interface/tui/entry.js +3 -3
  53. package/dist/interface/tui/use-loop.d.ts +1 -1
  54. package/dist/orchestrator/execution/task/task-lifecycle.d.ts +3 -0
  55. package/dist/orchestrator/execution/task/task-lifecycle.d.ts.map +1 -1
  56. package/dist/orchestrator/execution/task/task-lifecycle.js +3 -0
  57. package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
  58. package/dist/orchestrator/execution/task/task-verifier-rules.d.ts.map +1 -1
  59. package/dist/orchestrator/execution/task/task-verifier-rules.js +34 -2
  60. package/dist/orchestrator/execution/task/task-verifier-rules.js.map +1 -1
  61. package/dist/orchestrator/execution/task/task-verifier-types.d.ts +2 -0
  62. package/dist/orchestrator/execution/task/task-verifier-types.d.ts.map +1 -1
  63. package/dist/orchestrator/loop/checkpoint-manager-loop.d.ts +1 -1
  64. package/dist/orchestrator/loop/checkpoint-manager-loop.d.ts.map +1 -1
  65. package/dist/orchestrator/loop/core-loop/capability.d.ts +22 -0
  66. package/dist/orchestrator/loop/core-loop/capability.d.ts.map +1 -0
  67. package/dist/orchestrator/loop/core-loop/capability.js +151 -0
  68. package/dist/orchestrator/loop/core-loop/capability.js.map +1 -0
  69. package/dist/orchestrator/loop/core-loop/contracts.d.ts +245 -0
  70. package/dist/orchestrator/loop/core-loop/contracts.d.ts.map +1 -0
  71. package/dist/orchestrator/loop/core-loop/contracts.js +40 -0
  72. package/dist/orchestrator/loop/core-loop/contracts.js.map +1 -0
  73. package/dist/orchestrator/loop/core-loop/control.d.ts +27 -0
  74. package/dist/orchestrator/loop/core-loop/control.d.ts.map +1 -0
  75. package/dist/orchestrator/loop/core-loop/control.js +72 -0
  76. package/dist/orchestrator/loop/core-loop/control.js.map +1 -0
  77. package/dist/orchestrator/loop/core-loop/learning.d.ts +31 -0
  78. package/dist/orchestrator/loop/core-loop/learning.d.ts.map +1 -0
  79. package/dist/orchestrator/loop/core-loop/learning.js +92 -0
  80. package/dist/orchestrator/loop/core-loop/learning.js.map +1 -0
  81. package/dist/orchestrator/loop/core-loop/preparation.d.ts +63 -0
  82. package/dist/orchestrator/loop/core-loop/preparation.d.ts.map +1 -0
  83. package/dist/orchestrator/loop/core-loop/preparation.js +362 -0
  84. package/dist/orchestrator/loop/core-loop/preparation.js.map +1 -0
  85. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts +29 -0
  86. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts.map +1 -0
  87. package/dist/orchestrator/loop/core-loop/task-cycle.js +674 -0
  88. package/dist/orchestrator/loop/core-loop/task-cycle.js.map +1 -0
  89. package/dist/orchestrator/loop/core-loop-capability.d.ts +1 -24
  90. package/dist/orchestrator/loop/core-loop-capability.d.ts.map +1 -1
  91. package/dist/orchestrator/loop/core-loop-capability.js +1 -153
  92. package/dist/orchestrator/loop/core-loop-capability.js.map +1 -1
  93. package/dist/orchestrator/loop/core-loop-learning.d.ts +1 -34
  94. package/dist/orchestrator/loop/core-loop-learning.d.ts.map +1 -1
  95. package/dist/orchestrator/loop/core-loop-learning.js +1 -95
  96. package/dist/orchestrator/loop/core-loop-learning.js.map +1 -1
  97. package/dist/orchestrator/loop/core-loop-phases-b.d.ts +1 -31
  98. package/dist/orchestrator/loop/core-loop-phases-b.d.ts.map +1 -1
  99. package/dist/orchestrator/loop/core-loop-phases-b.js +1 -669
  100. package/dist/orchestrator/loop/core-loop-phases-b.js.map +1 -1
  101. package/dist/orchestrator/loop/core-loop-phases-c.d.ts +1 -26
  102. package/dist/orchestrator/loop/core-loop-phases-c.d.ts.map +1 -1
  103. package/dist/orchestrator/loop/core-loop-phases-c.js +1 -71
  104. package/dist/orchestrator/loop/core-loop-phases-c.js.map +1 -1
  105. package/dist/orchestrator/loop/core-loop-phases.d.ts +1 -68
  106. package/dist/orchestrator/loop/core-loop-phases.d.ts.map +1 -1
  107. package/dist/orchestrator/loop/core-loop-phases.js +1 -367
  108. package/dist/orchestrator/loop/core-loop-phases.js.map +1 -1
  109. package/dist/orchestrator/loop/core-loop-types.d.ts +1 -244
  110. package/dist/orchestrator/loop/core-loop-types.d.ts.map +1 -1
  111. package/dist/orchestrator/loop/core-loop-types.js +1 -39
  112. package/dist/orchestrator/loop/core-loop-types.js.map +1 -1
  113. package/dist/orchestrator/loop/core-loop.d.ts +3 -3
  114. package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
  115. package/dist/orchestrator/loop/core-loop.js +6 -6
  116. package/dist/orchestrator/loop/core-loop.js.map +1 -1
  117. package/dist/orchestrator/loop/loop-report-helper.d.ts +1 -1
  118. package/dist/orchestrator/loop/loop-report-helper.d.ts.map +1 -1
  119. package/dist/orchestrator/loop/parallel-dispatch.d.ts +2 -2
  120. package/dist/orchestrator/loop/parallel-dispatch.d.ts.map +1 -1
  121. package/dist/orchestrator/loop/post-loop-hooks.d.ts +1 -1
  122. package/dist/orchestrator/loop/post-loop-hooks.d.ts.map +1 -1
  123. package/dist/orchestrator/loop/tree-loop-runner.d.ts +1 -1
  124. package/dist/orchestrator/loop/tree-loop-runner.d.ts.map +1 -1
  125. package/dist/orchestrator/loop/tree-loop-runner.js +1 -1
  126. package/dist/orchestrator/loop/tree-loop-runner.js.map +1 -1
  127. package/dist/platform/dream/dream-schedule-suggestions.d.ts +1 -1
  128. package/dist/platform/drive/drive-system.d.ts +8 -0
  129. package/dist/platform/drive/drive-system.d.ts.map +1 -1
  130. package/dist/platform/drive/drive-system.js +39 -22
  131. package/dist/platform/drive/drive-system.js.map +1 -1
  132. package/dist/platform/observation/engine/observe-context.d.ts +4 -0
  133. package/dist/platform/observation/engine/observe-context.d.ts.map +1 -0
  134. package/dist/platform/observation/engine/observe-context.js +26 -0
  135. package/dist/platform/observation/engine/observe-context.js.map +1 -0
  136. package/dist/platform/observation/engine/observe-datasource-stage.d.ts +33 -0
  137. package/dist/platform/observation/engine/observe-datasource-stage.d.ts.map +1 -0
  138. package/dist/platform/observation/engine/observe-datasource-stage.js +66 -0
  139. package/dist/platform/observation/engine/observe-datasource-stage.js.map +1 -0
  140. package/dist/platform/observation/engine/observe-llm-stage.d.ts +25 -0
  141. package/dist/platform/observation/engine/observe-llm-stage.d.ts.map +1 -0
  142. package/dist/platform/observation/engine/observe-llm-stage.js +79 -0
  143. package/dist/platform/observation/engine/observe-llm-stage.js.map +1 -0
  144. package/dist/platform/observation/engine/observe-precheck.d.ts +21 -0
  145. package/dist/platform/observation/engine/observe-precheck.d.ts.map +1 -0
  146. package/dist/platform/observation/engine/observe-precheck.js +51 -0
  147. package/dist/platform/observation/engine/observe-precheck.js.map +1 -0
  148. package/dist/platform/observation/engine/observe-self-report.d.ts +18 -0
  149. package/dist/platform/observation/engine/observe-self-report.d.ts.map +1 -0
  150. package/dist/platform/observation/engine/observe-self-report.js +26 -0
  151. package/dist/platform/observation/engine/observe-self-report.js.map +1 -0
  152. package/dist/platform/observation/engine/observe-tool-stage.d.ts +21 -0
  153. package/dist/platform/observation/engine/observe-tool-stage.d.ts.map +1 -0
  154. package/dist/platform/observation/engine/observe-tool-stage.js +49 -0
  155. package/dist/platform/observation/engine/observe-tool-stage.js.map +1 -0
  156. package/dist/platform/observation/observation-engine.d.ts.map +1 -1
  157. package/dist/platform/observation/observation-engine.js +67 -246
  158. package/dist/platform/observation/observation-engine.js.map +1 -1
  159. package/dist/prompt/context-assembler.d.ts +61 -13
  160. package/dist/prompt/context-assembler.d.ts.map +1 -1
  161. package/dist/prompt/context-assembler.js +18 -3
  162. package/dist/prompt/context-assembler.js.map +1 -1
  163. package/dist/runtime/approval-broker.d.ts.map +1 -1
  164. package/dist/runtime/approval-broker.js +1 -0
  165. package/dist/runtime/approval-broker.js.map +1 -1
  166. package/dist/runtime/command-dispatcher.d.ts +35 -0
  167. package/dist/runtime/command-dispatcher.d.ts.map +1 -0
  168. package/dist/runtime/command-dispatcher.js +145 -0
  169. package/dist/runtime/command-dispatcher.js.map +1 -0
  170. package/dist/runtime/daemon/client.d.ts +67 -0
  171. package/dist/runtime/daemon/client.d.ts.map +1 -0
  172. package/dist/runtime/daemon/client.js +330 -0
  173. package/dist/runtime/daemon/client.js.map +1 -0
  174. package/dist/runtime/daemon/health.d.ts +31 -0
  175. package/dist/runtime/daemon/health.d.ts.map +1 -0
  176. package/dist/runtime/daemon/health.js +113 -0
  177. package/dist/runtime/daemon/health.js.map +1 -0
  178. package/dist/runtime/daemon/index.d.ts +9 -0
  179. package/dist/runtime/daemon/index.d.ts.map +1 -0
  180. package/dist/runtime/daemon/index.js +8 -0
  181. package/dist/runtime/daemon/index.js.map +1 -0
  182. package/dist/runtime/daemon/maintenance.d.ts +47 -0
  183. package/dist/runtime/daemon/maintenance.d.ts.map +1 -0
  184. package/dist/runtime/daemon/maintenance.js +230 -0
  185. package/dist/runtime/daemon/maintenance.js.map +1 -0
  186. package/dist/runtime/daemon/persistence.d.ts +20 -0
  187. package/dist/runtime/daemon/persistence.d.ts.map +1 -0
  188. package/dist/runtime/daemon/persistence.js +112 -0
  189. package/dist/runtime/daemon/persistence.js.map +1 -0
  190. package/dist/runtime/daemon/runner-lifecycle.d.ts +29 -0
  191. package/dist/runtime/daemon/runner-lifecycle.d.ts.map +1 -0
  192. package/dist/runtime/daemon/runner-lifecycle.js +56 -0
  193. package/dist/runtime/daemon/runner-lifecycle.js.map +1 -0
  194. package/dist/runtime/daemon/runner.d.ts +229 -0
  195. package/dist/runtime/daemon/runner.d.ts.map +1 -0
  196. package/dist/runtime/daemon/runner.js +875 -0
  197. package/dist/runtime/daemon/runner.js.map +1 -0
  198. package/dist/runtime/daemon/runtime-ownership.d.ts +30 -0
  199. package/dist/runtime/daemon/runtime-ownership.d.ts.map +1 -0
  200. package/dist/runtime/daemon/runtime-ownership.js +132 -0
  201. package/dist/runtime/daemon/runtime-ownership.js.map +1 -0
  202. package/dist/runtime/daemon/signals.d.ts +17 -0
  203. package/dist/runtime/daemon/signals.d.ts.map +1 -0
  204. package/dist/runtime/daemon/signals.js +31 -0
  205. package/dist/runtime/daemon/signals.js.map +1 -0
  206. package/dist/runtime/daemon/types.d.ts +8 -0
  207. package/dist/runtime/daemon/types.d.ts.map +1 -0
  208. package/dist/runtime/daemon/types.js +2 -0
  209. package/dist/runtime/daemon/types.js.map +1 -0
  210. package/dist/runtime/daemon-client.d.ts +1 -55
  211. package/dist/runtime/daemon-client.d.ts.map +1 -1
  212. package/dist/runtime/daemon-client.js +1 -297
  213. package/dist/runtime/daemon-client.js.map +1 -1
  214. package/dist/runtime/daemon-health.d.ts +1 -30
  215. package/dist/runtime/daemon-health.d.ts.map +1 -1
  216. package/dist/runtime/daemon-health.js +1 -112
  217. package/dist/runtime/daemon-health.js.map +1 -1
  218. package/dist/runtime/daemon-runner-lifecycle.d.ts +2 -0
  219. package/dist/runtime/daemon-runner-lifecycle.d.ts.map +1 -0
  220. package/dist/runtime/daemon-runner-lifecycle.js +2 -0
  221. package/dist/runtime/daemon-runner-lifecycle.js.map +1 -0
  222. package/dist/runtime/daemon-runner.d.ts +1 -231
  223. package/dist/runtime/daemon-runner.d.ts.map +1 -1
  224. package/dist/runtime/daemon-runner.js +1 -1042
  225. package/dist/runtime/daemon-runner.js.map +1 -1
  226. package/dist/runtime/daemon-runtime-ownership.d.ts +2 -0
  227. package/dist/runtime/daemon-runtime-ownership.d.ts.map +1 -0
  228. package/dist/runtime/daemon-runtime-ownership.js +2 -0
  229. package/dist/runtime/daemon-runtime-ownership.js.map +1 -0
  230. package/dist/runtime/daemon-signals.d.ts +1 -16
  231. package/dist/runtime/daemon-signals.d.ts.map +1 -1
  232. package/dist/runtime/daemon-signals.js +1 -30
  233. package/dist/runtime/daemon-signals.js.map +1 -1
  234. package/dist/runtime/event/dispatcher.d.ts +34 -0
  235. package/dist/runtime/event/dispatcher.d.ts.map +1 -0
  236. package/dist/runtime/event/dispatcher.js +124 -0
  237. package/dist/runtime/event/dispatcher.js.map +1 -0
  238. package/dist/runtime/event/index.d.ts +5 -0
  239. package/dist/runtime/event/index.d.ts.map +1 -0
  240. package/dist/runtime/event/index.js +5 -0
  241. package/dist/runtime/event/index.js.map +1 -0
  242. package/dist/runtime/event/server-snapshot-reader.d.ts +31 -0
  243. package/dist/runtime/event/server-snapshot-reader.d.ts.map +1 -0
  244. package/dist/runtime/event/server-snapshot-reader.js +94 -0
  245. package/dist/runtime/event/server-snapshot-reader.js.map +1 -0
  246. package/dist/runtime/event/server-sse.d.ts +25 -0
  247. package/dist/runtime/event/server-sse.d.ts.map +1 -0
  248. package/dist/runtime/event/server-sse.js +149 -0
  249. package/dist/runtime/event/server-sse.js.map +1 -0
  250. package/dist/runtime/event/server.d.ts +114 -0
  251. package/dist/runtime/event/server.d.ts.map +1 -0
  252. package/dist/runtime/event/server.js +651 -0
  253. package/dist/runtime/event/server.js.map +1 -0
  254. package/dist/runtime/event-dispatcher.d.ts +2 -0
  255. package/dist/runtime/event-dispatcher.d.ts.map +1 -0
  256. package/dist/runtime/event-dispatcher.js +2 -0
  257. package/dist/runtime/event-dispatcher.js.map +1 -0
  258. package/dist/runtime/event-server-snapshot-reader.d.ts +2 -0
  259. package/dist/runtime/event-server-snapshot-reader.d.ts.map +1 -0
  260. package/dist/runtime/event-server-snapshot-reader.js +2 -0
  261. package/dist/runtime/event-server-snapshot-reader.js.map +1 -0
  262. package/dist/runtime/event-server-sse.d.ts +2 -0
  263. package/dist/runtime/event-server-sse.d.ts.map +1 -0
  264. package/dist/runtime/event-server-sse.js +2 -0
  265. package/dist/runtime/event-server-sse.js.map +1 -0
  266. package/dist/runtime/event-server.d.ts +1 -91
  267. package/dist/runtime/event-server.d.ts.map +1 -1
  268. package/dist/runtime/event-server.js +1 -698
  269. package/dist/runtime/event-server.js.map +1 -1
  270. package/dist/runtime/executor/loop-supervisor.d.ts +9 -5
  271. package/dist/runtime/executor/loop-supervisor.d.ts.map +1 -1
  272. package/dist/runtime/executor/loop-supervisor.js +59 -76
  273. package/dist/runtime/executor/loop-supervisor.js.map +1 -1
  274. package/dist/runtime/gateway/http-channel-adapter.d.ts +1 -1
  275. package/dist/runtime/plugin-loader.d.ts +1 -1
  276. package/dist/runtime/queue/index.d.ts +0 -4
  277. package/dist/runtime/queue/index.d.ts.map +1 -1
  278. package/dist/runtime/queue/index.js +0 -2
  279. package/dist/runtime/queue/index.js.map +1 -1
  280. package/dist/runtime/queue/journal-backed-queue.d.ts.map +1 -1
  281. package/dist/runtime/queue/journal-backed-queue.js +2 -0
  282. package/dist/runtime/queue/journal-backed-queue.js.map +1 -1
  283. package/dist/runtime/schedule/engine-layers.d.ts +44 -0
  284. package/dist/runtime/schedule/engine-layers.d.ts.map +1 -0
  285. package/dist/runtime/schedule/engine-layers.js +433 -0
  286. package/dist/runtime/schedule/engine-layers.js.map +1 -0
  287. package/dist/runtime/schedule/engine.d.ts +82 -0
  288. package/dist/runtime/schedule/engine.d.ts.map +1 -0
  289. package/dist/runtime/schedule/engine.js +480 -0
  290. package/dist/runtime/schedule/engine.js.map +1 -0
  291. package/dist/runtime/schedule/index.d.ts +5 -0
  292. package/dist/runtime/schedule/index.d.ts.map +1 -0
  293. package/dist/runtime/schedule/index.js +5 -0
  294. package/dist/runtime/schedule/index.js.map +1 -0
  295. package/dist/runtime/schedule/presets.d.ts +536 -0
  296. package/dist/runtime/schedule/presets.d.ts.map +1 -0
  297. package/dist/runtime/schedule/presets.js +166 -0
  298. package/dist/runtime/schedule/presets.js.map +1 -0
  299. package/dist/runtime/schedule/source.d.ts +65 -0
  300. package/dist/runtime/schedule/source.d.ts.map +1 -0
  301. package/dist/runtime/schedule/source.js +16 -0
  302. package/dist/runtime/schedule/source.js.map +1 -0
  303. package/dist/runtime/schedule-engine-layers.d.ts +1 -43
  304. package/dist/runtime/schedule-engine-layers.d.ts.map +1 -1
  305. package/dist/runtime/schedule-engine-layers.js +1 -432
  306. package/dist/runtime/schedule-engine-layers.js.map +1 -1
  307. package/dist/runtime/schedule-engine.d.ts +1 -81
  308. package/dist/runtime/schedule-engine.d.ts.map +1 -1
  309. package/dist/runtime/schedule-engine.js +1 -479
  310. package/dist/runtime/schedule-engine.js.map +1 -1
  311. package/dist/runtime/schedule-presets.d.ts +1 -535
  312. package/dist/runtime/schedule-presets.d.ts.map +1 -1
  313. package/dist/runtime/schedule-presets.js +1 -165
  314. package/dist/runtime/schedule-presets.js.map +1 -1
  315. package/dist/runtime/schedule-source.d.ts +1 -64
  316. package/dist/runtime/schedule-source.d.ts.map +1 -1
  317. package/dist/runtime/schedule-source.js +1 -15
  318. package/dist/runtime/schedule-source.js.map +1 -1
  319. package/dist/runtime/types/daemon.d.ts.map +1 -1
  320. package/dist/runtime/types/daemon.js +2 -1
  321. package/dist/runtime/types/daemon.js.map +1 -1
  322. package/dist/runtime/watchdog.d.ts +44 -0
  323. package/dist/runtime/watchdog.d.ts.map +1 -0
  324. package/dist/runtime/watchdog.js +185 -0
  325. package/dist/runtime/watchdog.js.map +1 -0
  326. package/dist/tools/builtin/index.d.ts +1 -1
  327. package/dist/tools/schedule/CreateScheduleTool/CreateScheduleTool.d.ts +1 -1
  328. package/dist/tools/schedule/CreateScheduleTool/CreateScheduleTool.js +1 -1
  329. package/dist/tools/schedule/GetScheduleTool/GetScheduleTool.d.ts +1 -1
  330. package/dist/tools/schedule/ListSchedulesTool/ListSchedulesTool.d.ts +1 -1
  331. package/dist/tools/schedule/PauseScheduleTool/PauseScheduleTool.d.ts +1 -1
  332. package/dist/tools/schedule/RemoveScheduleTool/RemoveScheduleTool.d.ts +1 -1
  333. package/dist/tools/schedule/ResumeScheduleTool/ResumeScheduleTool.d.ts +1 -1
  334. package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.d.ts +1 -1
  335. package/package.json +1 -1
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Phase 3 layer executors: Cron and GoalTrigger.
3
+ * Extracted to keep schedule-engine.ts under 500 lines.
4
+ */
5
+ import { type ScheduleEntry, type ScheduleResult } from "../types/schedule.js";
6
+ import type { IDataSourceAdapter } from "../../platform/observation/data-source-adapter.js";
7
+ import type { DataSourceRegistry } from "../../platform/observation/data-source-adapter.js";
8
+ import type { ILLMClient } from "../../base/llm/llm-client.js";
9
+ import type { StateManager } from "../../base/state/state-manager.js";
10
+ import type { HookManager } from "../hook-manager.js";
11
+ import type { MemoryLifecycleManager } from "../../platform/knowledge/memory/memory-lifecycle.js";
12
+ import type { KnowledgeManager } from "../../platform/knowledge/knowledge-manager.js";
13
+ interface LayerDeps {
14
+ baseDir?: string;
15
+ dataSourceRegistry?: Map<string, IDataSourceAdapter> | DataSourceRegistry;
16
+ llmClient?: ILLMClient;
17
+ notificationDispatcher?: {
18
+ dispatch(report: Record<string, unknown>): Promise<any>;
19
+ };
20
+ coreLoop?: {
21
+ run(goalId: string, options?: {
22
+ maxIterations?: number;
23
+ }): Promise<any>;
24
+ };
25
+ stateManager?: StateManager;
26
+ reportingEngine?: {
27
+ generateNotification(type: string, context: Record<string, unknown>): Promise<any>;
28
+ };
29
+ hookManager?: HookManager;
30
+ memoryLifecycle?: MemoryLifecycleManager;
31
+ knowledgeManager?: KnowledgeManager;
32
+ logger: {
33
+ info: (msg: string, ctx?: Record<string, unknown>) => void;
34
+ warn: (msg: string, ctx?: Record<string, unknown>) => void;
35
+ error: (msg: string, ctx?: Record<string, unknown>) => void;
36
+ };
37
+ /** Callback for probe to update baseline_results on the owning entry. */
38
+ updateBaseline?: (entryId: string, value: unknown, windowSize: number) => void;
39
+ }
40
+ export declare function executeCron(entry: ScheduleEntry, deps: LayerDeps): Promise<ScheduleResult>;
41
+ export declare function executeGoalTrigger(entry: ScheduleEntry, deps: LayerDeps): Promise<ScheduleResult>;
42
+ export declare function executeProbe(entry: ScheduleEntry, deps: LayerDeps): Promise<ScheduleResult>;
43
+ export {};
44
+ //# sourceMappingURL=engine-layers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-layers.d.ts","sourceRoot":"","sources":["../../../src/runtime/schedule/engine-layers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAStF,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;IAC1E,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,sBAAsB,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;IACrF,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;IACvF,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,CAAC,EAAE;QAAE,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;IACzG,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC3D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC3D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KAC7D,CAAC;IACF,yEAAyE;IACzE,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAChF;AA+ID,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAkIhG;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAiFvG;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAgHjG"}
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Phase 3 layer executors: Cron and GoalTrigger.
3
+ * Extracted to keep schedule-engine.ts under 500 lines.
4
+ */
5
+ import { ScheduleResultSchema, } from "../types/schedule.js";
6
+ import { detectChange } from "../change-detector.js";
7
+ import { runDreamConsolidation, runEveningCatchup, runMorningPlanning, runWeeklyReview, } from "../../reflection/index.js";
8
+ async function getAdapter(sourceId, registry) {
9
+ if (!registry)
10
+ return undefined;
11
+ if (registry instanceof Map)
12
+ return registry.get(sourceId);
13
+ try {
14
+ return registry.getSource(sourceId);
15
+ }
16
+ catch {
17
+ return undefined;
18
+ }
19
+ }
20
+ function summarizeReflection(kind, report) {
21
+ switch (kind) {
22
+ case "morning_planning":
23
+ return `Morning planning completed (${report["goals_reviewed"] ?? 0} goals reviewed)`;
24
+ case "evening_catchup":
25
+ return `Evening catch-up completed (${report["goals_reviewed"] ?? 0} goals reviewed)`;
26
+ case "weekly_review":
27
+ return `Weekly review completed (${report["goals_reviewed"] ?? 0} goals reviewed)`;
28
+ case "dream_consolidation":
29
+ return `Dream consolidation completed (${report["goals_consolidated"] ?? 0} goals consolidated)`;
30
+ }
31
+ }
32
+ function withTokenAccountingClient(llmClient, recordTokens) {
33
+ return {
34
+ async sendMessage(messages, options) {
35
+ const response = await llmClient.sendMessage(messages, options);
36
+ recordTokens((response.usage?.input_tokens ?? 0) + (response.usage?.output_tokens ?? 0));
37
+ return response;
38
+ },
39
+ async sendMessageStream(messages, options, handlers) {
40
+ if (!llmClient.sendMessageStream) {
41
+ return llmClient.sendMessage(messages, options);
42
+ }
43
+ const response = await llmClient.sendMessageStream(messages, options, handlers);
44
+ recordTokens((response.usage?.input_tokens ?? 0) + (response.usage?.output_tokens ?? 0));
45
+ return response;
46
+ },
47
+ parseJSON: ((content, schema, options) => {
48
+ if (options === undefined) {
49
+ return llmClient.parseJSON(content, schema);
50
+ }
51
+ return llmClient.parseJSON(content, schema, options);
52
+ }),
53
+ supportsToolCalling() {
54
+ return llmClient.supportsToolCalling?.() ?? true;
55
+ },
56
+ };
57
+ }
58
+ async function executeReflectionCron(entry, deps, firedAt, start, kind) {
59
+ if (!deps.baseDir || !deps.stateManager) {
60
+ return ScheduleResultSchema.parse({
61
+ entry_id: entry.id,
62
+ status: "error",
63
+ duration_ms: 0,
64
+ error_message: "Reflection cron requires baseDir and stateManager",
65
+ fired_at: firedAt,
66
+ });
67
+ }
68
+ try {
69
+ let report;
70
+ let tokensUsed = 0;
71
+ const recordTokens = (tokens) => {
72
+ tokensUsed += tokens;
73
+ };
74
+ switch (kind) {
75
+ case "morning_planning":
76
+ if (!deps.llmClient)
77
+ throw new Error("Reflection cron requires llmClient for morning_planning");
78
+ report = await runMorningPlanning({
79
+ stateManager: deps.stateManager,
80
+ llmClient: withTokenAccountingClient(deps.llmClient, recordTokens),
81
+ baseDir: deps.baseDir,
82
+ notificationDispatcher: deps.notificationDispatcher,
83
+ hookManager: deps.hookManager,
84
+ });
85
+ break;
86
+ case "evening_catchup":
87
+ if (!deps.llmClient)
88
+ throw new Error("Reflection cron requires llmClient for evening_catchup");
89
+ report = await runEveningCatchup({
90
+ stateManager: deps.stateManager,
91
+ llmClient: withTokenAccountingClient(deps.llmClient, recordTokens),
92
+ baseDir: deps.baseDir,
93
+ notificationDispatcher: deps.notificationDispatcher,
94
+ hookManager: deps.hookManager,
95
+ });
96
+ break;
97
+ case "weekly_review":
98
+ if (!deps.llmClient)
99
+ throw new Error("Reflection cron requires llmClient for weekly_review");
100
+ report = await runWeeklyReview({
101
+ stateManager: deps.stateManager,
102
+ llmClient: withTokenAccountingClient(deps.llmClient, recordTokens),
103
+ baseDir: deps.baseDir,
104
+ notificationDispatcher: deps.notificationDispatcher,
105
+ });
106
+ break;
107
+ case "dream_consolidation":
108
+ report = await runDreamConsolidation({
109
+ stateManager: deps.stateManager,
110
+ memoryLifecycle: deps.memoryLifecycle,
111
+ knowledgeManager: deps.knowledgeManager,
112
+ baseDir: deps.baseDir,
113
+ });
114
+ break;
115
+ }
116
+ return ScheduleResultSchema.parse({
117
+ entry_id: entry.id,
118
+ status: "ok",
119
+ duration_ms: Date.now() - start,
120
+ fired_at: firedAt,
121
+ tokens_used: tokensUsed,
122
+ output_summary: summarizeReflection(kind, report),
123
+ });
124
+ }
125
+ catch (err) {
126
+ const msg = err instanceof Error ? err.message : String(err);
127
+ deps.logger.error(`Cron "${entry.name}" reflection failed: ${msg}`);
128
+ return ScheduleResultSchema.parse({
129
+ entry_id: entry.id,
130
+ status: "error",
131
+ duration_ms: Date.now() - start,
132
+ error_message: msg,
133
+ fired_at: firedAt,
134
+ });
135
+ }
136
+ }
137
+ export async function executeCron(entry, deps) {
138
+ const firedAt = new Date().toISOString();
139
+ const start = Date.now();
140
+ const cfg = entry.cron;
141
+ if (!cfg) {
142
+ return ScheduleResultSchema.parse({
143
+ entry_id: entry.id,
144
+ status: "error",
145
+ duration_ms: 0,
146
+ error_message: "No cron config",
147
+ fired_at: firedAt,
148
+ });
149
+ }
150
+ // Check daily budget
151
+ if ((entry.tokens_used_today ?? 0) >= entry.max_tokens_per_day) {
152
+ deps.logger.info(`Cron "${entry.name}" skipped: daily budget exceeded`);
153
+ return ScheduleResultSchema.parse({
154
+ entry_id: entry.id,
155
+ status: "skipped",
156
+ duration_ms: 0,
157
+ error_message: "daily budget exceeded",
158
+ fired_at: firedAt,
159
+ });
160
+ }
161
+ try {
162
+ if (cfg.job_kind === "reflection") {
163
+ if (!cfg.reflection_kind) {
164
+ return ScheduleResultSchema.parse({
165
+ entry_id: entry.id,
166
+ status: "error",
167
+ duration_ms: 0,
168
+ error_message: "Reflection cron is missing reflection_kind",
169
+ fired_at: firedAt,
170
+ });
171
+ }
172
+ return executeReflectionCron(entry, deps, firedAt, start, cfg.reflection_kind);
173
+ }
174
+ // Gather context from data sources
175
+ const contextMap = {};
176
+ for (const sourceId of cfg.context_sources) {
177
+ const adapter = await getAdapter(sourceId, deps.dataSourceRegistry);
178
+ if (adapter) {
179
+ try {
180
+ const result = await adapter.query({
181
+ timeout_ms: 10000,
182
+ dimension_name: sourceId,
183
+ });
184
+ contextMap[sourceId] = JSON.stringify(result.value ?? result.raw);
185
+ }
186
+ catch (err) {
187
+ deps.logger.warn(`Cron "${entry.name}" context source "${sourceId}" failed: ${err instanceof Error ? err.message : String(err)}`);
188
+ contextMap[sourceId] = "";
189
+ }
190
+ }
191
+ else {
192
+ deps.logger.warn(`Cron "${entry.name}" context source "${sourceId}" not found`);
193
+ contextMap[sourceId] = "";
194
+ }
195
+ }
196
+ // Interpolate prompt template
197
+ let prompt = cfg.prompt_template;
198
+ for (const [key, value] of Object.entries(contextMap)) {
199
+ prompt = prompt.replace(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value);
200
+ }
201
+ // Call LLM
202
+ let tokensUsed = 0;
203
+ let outputSummary;
204
+ if (deps.llmClient) {
205
+ const llmResponse = await deps.llmClient.sendMessage([{ role: "user", content: prompt }], { model_tier: "light", max_tokens: cfg.max_tokens });
206
+ tokensUsed = (llmResponse.usage?.input_tokens ?? 0) + (llmResponse.usage?.output_tokens ?? 0);
207
+ outputSummary = llmResponse.content;
208
+ }
209
+ // Report output via ReportingEngine
210
+ // output_format "report" intentionally skips notificationDispatcher —
211
+ // report output is delivered only through ReportingEngine
212
+ if (cfg.output_format === "report" || cfg.output_format === "both") {
213
+ if (deps.reportingEngine) {
214
+ await deps.reportingEngine.generateNotification("schedule_report", {
215
+ entry_name: entry.name,
216
+ entry_id: entry.id,
217
+ output: outputSummary,
218
+ report_type: cfg.report_type || "schedule_cron",
219
+ });
220
+ }
221
+ else {
222
+ deps.logger.warn('ReportingEngine not available for output_format report');
223
+ }
224
+ }
225
+ // Dispatch notification if configured
226
+ if ((cfg.output_format === "notification" || cfg.output_format === "both") && deps.notificationDispatcher) {
227
+ try {
228
+ await deps.notificationDispatcher.dispatch({
229
+ report_type: "schedule_report_ready",
230
+ entry_id: entry.id,
231
+ entry_name: entry.name,
232
+ output_summary: outputSummary,
233
+ });
234
+ }
235
+ catch (err) {
236
+ deps.logger.warn(`Cron "${entry.name}" notification dispatch failed: ${err instanceof Error ? err.message : String(err)}`);
237
+ }
238
+ }
239
+ return ScheduleResultSchema.parse({
240
+ entry_id: entry.id,
241
+ status: "ok",
242
+ duration_ms: Date.now() - start,
243
+ fired_at: firedAt,
244
+ tokens_used: tokensUsed,
245
+ output_summary: outputSummary,
246
+ });
247
+ }
248
+ catch (err) {
249
+ const msg = err instanceof Error ? err.message : String(err);
250
+ deps.logger.error(`Cron "${entry.name}" failed: ${msg}`);
251
+ return ScheduleResultSchema.parse({
252
+ entry_id: entry.id,
253
+ status: "error",
254
+ duration_ms: Date.now() - start,
255
+ error_message: msg,
256
+ fired_at: firedAt,
257
+ });
258
+ }
259
+ }
260
+ export async function executeGoalTrigger(entry, deps) {
261
+ const firedAt = new Date().toISOString();
262
+ const start = Date.now();
263
+ const cfg = entry.goal_trigger;
264
+ if (!cfg) {
265
+ return ScheduleResultSchema.parse({
266
+ entry_id: entry.id,
267
+ status: "error",
268
+ duration_ms: 0,
269
+ error_message: "No goal_trigger config",
270
+ fired_at: firedAt,
271
+ });
272
+ }
273
+ // Check daily budget
274
+ if ((entry.tokens_used_today ?? 0) >= entry.max_tokens_per_day) {
275
+ deps.logger.info(`GoalTrigger "${entry.name}" skipped: daily budget exceeded`);
276
+ return ScheduleResultSchema.parse({
277
+ entry_id: entry.id,
278
+ status: "skipped",
279
+ duration_ms: 0,
280
+ error_message: "daily budget exceeded",
281
+ fired_at: firedAt,
282
+ });
283
+ }
284
+ // Check if goal is already active
285
+ if (cfg.skip_if_active && deps.stateManager) {
286
+ try {
287
+ const goal = await deps.stateManager.loadGoal(cfg.goal_id);
288
+ if (goal && goal.status === "active") {
289
+ deps.logger.info(`GoalTrigger "${entry.name}" skipped: goal ${cfg.goal_id} is already active`);
290
+ return ScheduleResultSchema.parse({
291
+ entry_id: entry.id,
292
+ status: "skipped",
293
+ duration_ms: 0,
294
+ error_message: `goal ${cfg.goal_id} is already active`,
295
+ fired_at: firedAt,
296
+ });
297
+ }
298
+ }
299
+ catch (err) {
300
+ deps.logger.warn(`GoalTrigger "${entry.name}" could not check goal state: ${err instanceof Error ? err.message : String(err)}`);
301
+ }
302
+ }
303
+ if (!deps.coreLoop) {
304
+ return ScheduleResultSchema.parse({
305
+ entry_id: entry.id,
306
+ status: "error",
307
+ duration_ms: 0,
308
+ error_message: "No coreLoop provided",
309
+ fired_at: firedAt,
310
+ });
311
+ }
312
+ try {
313
+ const result = await deps.coreLoop.run(cfg.goal_id, { maxIterations: cfg.max_iterations });
314
+ const tokensUsed = result?.tokensUsed ?? 0;
315
+ if (result) {
316
+ deps.logger.info(`GoalTrigger "${entry.name}" completed: status=${result.finalStatus}, iterations=${result.totalIterations}`);
317
+ }
318
+ return ScheduleResultSchema.parse({
319
+ entry_id: entry.id,
320
+ status: "ok",
321
+ duration_ms: Date.now() - start,
322
+ fired_at: firedAt,
323
+ tokens_used: tokensUsed,
324
+ });
325
+ }
326
+ catch (err) {
327
+ const msg = err instanceof Error ? err.message : String(err);
328
+ deps.logger.error(`GoalTrigger "${entry.name}" failed: ${msg}`);
329
+ return ScheduleResultSchema.parse({
330
+ entry_id: entry.id,
331
+ status: "error",
332
+ duration_ms: Date.now() - start,
333
+ error_message: msg,
334
+ fired_at: firedAt,
335
+ });
336
+ }
337
+ }
338
+ export async function executeProbe(entry, deps) {
339
+ const firedAt = new Date().toISOString();
340
+ const start = Date.now();
341
+ const cfg = entry.probe;
342
+ if (!cfg) {
343
+ return ScheduleResultSchema.parse({
344
+ entry_id: entry.id,
345
+ status: "error",
346
+ duration_ms: 0,
347
+ error_message: "No probe config",
348
+ fired_at: firedAt,
349
+ });
350
+ }
351
+ // Look up data source adapter
352
+ const adapter = await getAdapter(cfg.data_source_id, deps.dataSourceRegistry);
353
+ if (!adapter) {
354
+ return ScheduleResultSchema.parse({
355
+ entry_id: entry.id,
356
+ status: "error",
357
+ duration_ms: 0,
358
+ error_message: `Data source not found: ${cfg.data_source_id}`,
359
+ fired_at: firedAt,
360
+ });
361
+ }
362
+ try {
363
+ const dimensionName = cfg.probe_dimension
364
+ ?? (typeof cfg.query_params.dimension_name === "string" ? cfg.query_params.dimension_name : undefined)
365
+ ?? cfg.data_source_id;
366
+ // Execute probe query
367
+ const queryResult = await adapter.query({
368
+ timeout_ms: 10000,
369
+ ...cfg.query_params,
370
+ dimension_name: dimensionName,
371
+ });
372
+ const currentValue = queryResult.value ?? queryResult.raw;
373
+ // Detect change
374
+ const { changed, details } = detectChange(cfg.change_detector.mode, currentValue, entry.baseline_results, cfg.change_detector.threshold_value);
375
+ deps.logger.info(`Probe "${entry.name}": ${details}`);
376
+ let tokensUsed = 0;
377
+ let outputSummary;
378
+ // Optional LLM analysis on change
379
+ if (changed && cfg.llm_on_change && deps.llmClient) {
380
+ const prompt = cfg.llm_prompt_template
381
+ ? cfg.llm_prompt_template.replace("{{result}}", JSON.stringify(currentValue))
382
+ : `A scheduled probe detected a change. Current result: ${JSON.stringify(currentValue)}. Previous baselines: ${JSON.stringify(entry.baseline_results.slice(-3))}. Is this change significant? Respond concisely.`;
383
+ try {
384
+ const llmResponse = await deps.llmClient.sendMessage([{ role: "user", content: prompt }], { model_tier: "light" });
385
+ tokensUsed = (llmResponse.usage?.input_tokens ?? 0) + (llmResponse.usage?.output_tokens ?? 0);
386
+ outputSummary = llmResponse.content;
387
+ }
388
+ catch (err) {
389
+ deps.logger.warn(`Probe "${entry.name}" LLM analysis failed: ${err instanceof Error ? err.message : String(err)}`);
390
+ }
391
+ }
392
+ // Update baseline_results via callback
393
+ if (deps.updateBaseline) {
394
+ deps.updateBaseline(entry.id, currentValue, cfg.change_detector.baseline_window);
395
+ }
396
+ // Dispatch change notification
397
+ if (changed && deps.notificationDispatcher) {
398
+ try {
399
+ await deps.notificationDispatcher.dispatch({
400
+ report_type: "schedule_change",
401
+ entry_id: entry.id,
402
+ entry_name: entry.name,
403
+ details,
404
+ output_summary: outputSummary,
405
+ });
406
+ }
407
+ catch (err) {
408
+ deps.logger.warn(`Probe "${entry.name}" notification dispatch failed: ${err instanceof Error ? err.message : String(err)}`);
409
+ }
410
+ }
411
+ return ScheduleResultSchema.parse({
412
+ entry_id: entry.id,
413
+ status: "ok",
414
+ duration_ms: Date.now() - start,
415
+ fired_at: firedAt,
416
+ tokens_used: tokensUsed,
417
+ change_detected: changed,
418
+ output_summary: outputSummary,
419
+ });
420
+ }
421
+ catch (err) {
422
+ const msg = err instanceof Error ? err.message : String(err);
423
+ deps.logger.error(`Probe "${entry.name}" failed: ${msg}`);
424
+ return ScheduleResultSchema.parse({
425
+ entry_id: entry.id,
426
+ status: "error",
427
+ duration_ms: Date.now() - start,
428
+ error_message: msg,
429
+ fired_at: firedAt,
430
+ });
431
+ }
432
+ }
433
+ //# sourceMappingURL=engine-layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-layers.js","sourceRoot":"","sources":["../../../src/runtime/schedule/engine-layers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { StateManager } from "../../base/state/state-manager.js";
2
+ import { type CronConfig, type EscalationConfig, type GoalTriggerConfig, type HeartbeatConfig, type ProbeConfig, type ScheduleEntry, type ScheduleEntryInput, type ScheduleResult, type ScheduleTriggerInput } from "../types/schedule.js";
3
+ import type { IDataSourceAdapter } from "../../platform/observation/data-source-adapter.js";
4
+ import type { DataSourceRegistry } from "../../platform/observation/data-source-adapter.js";
5
+ import type { ILLMClient } from "../../base/llm/llm-client.js";
6
+ import type { HookManager } from "../hook-manager.js";
7
+ import type { MemoryLifecycleManager } from "../../platform/knowledge/memory/memory-lifecycle.js";
8
+ import type { KnowledgeManager } from "../../platform/knowledge/knowledge-manager.js";
9
+ interface ScheduleEngineDeps {
10
+ baseDir: string;
11
+ logger?: {
12
+ info: (message: string, context?: Record<string, unknown>) => void;
13
+ warn: (message: string, context?: Record<string, unknown>) => void;
14
+ error: (message: string, context?: Record<string, unknown>) => void;
15
+ };
16
+ dataSourceRegistry?: Map<string, IDataSourceAdapter> | DataSourceRegistry;
17
+ llmClient?: ILLMClient;
18
+ notificationDispatcher?: {
19
+ dispatch(report: Record<string, unknown>): Promise<any>;
20
+ };
21
+ coreLoop?: {
22
+ run(goalId: string, options?: {
23
+ maxIterations?: number;
24
+ }): Promise<any>;
25
+ };
26
+ stateManager?: StateManager;
27
+ reportingEngine?: {
28
+ generateNotification(type: string, context: Record<string, unknown>): Promise<any>;
29
+ };
30
+ hookManager?: HookManager;
31
+ memoryLifecycle?: MemoryLifecycleManager;
32
+ knowledgeManager?: KnowledgeManager;
33
+ }
34
+ export type ScheduleEntryUpdateInput = Partial<{
35
+ name: string;
36
+ enabled: boolean;
37
+ trigger: ScheduleTriggerInput;
38
+ heartbeat: HeartbeatConfig;
39
+ probe: ProbeConfig;
40
+ cron: CronConfig;
41
+ goal_trigger: GoalTriggerConfig;
42
+ escalation: EscalationConfig | null;
43
+ }>;
44
+ export declare class ScheduleEngine {
45
+ private entries;
46
+ private baseDir;
47
+ private schedulesPath;
48
+ private logger;
49
+ private dataSourceRegistry?;
50
+ private llmClient?;
51
+ private notificationDispatcher?;
52
+ private coreLoop?;
53
+ private stateManager?;
54
+ private reportingEngine?;
55
+ private hookManager?;
56
+ private memoryLifecycle?;
57
+ private knowledgeManager?;
58
+ constructor(deps: ScheduleEngineDeps);
59
+ loadEntries(): Promise<ScheduleEntry[]>;
60
+ saveEntries(): Promise<void>;
61
+ getEntries(): ScheduleEntry[];
62
+ addEntry(input: Omit<ScheduleEntryInput, "id" | "created_at" | "updated_at" | "last_fired_at" | "next_fire_at" | "consecutive_failures" | "last_escalation_at" | "baseline_results" | "total_executions" | "total_tokens_used" | "max_tokens_per_day" | "tokens_used_today" | "budget_reset_at" | "escalation_timestamps">): Promise<ScheduleEntry>;
63
+ removeEntry(id: string): Promise<boolean>;
64
+ updateEntry(id: string, patch: ScheduleEntryUpdateInput): Promise<ScheduleEntry | null>;
65
+ getDueEntries(): Promise<ScheduleEntry[]>;
66
+ tick(): Promise<ScheduleResult[]>;
67
+ executeProbe(entry: ScheduleEntry): Promise<ScheduleResult>;
68
+ executeCron(entry: ScheduleEntry): Promise<ScheduleResult>;
69
+ executeGoalTrigger(entry: ScheduleEntry): Promise<ScheduleResult>;
70
+ private layerDeps;
71
+ private checkEscalation;
72
+ private dispatchNotification;
73
+ private executeHeartbeat;
74
+ private checkHttp;
75
+ private checkTcp;
76
+ private checkProcess;
77
+ private checkCustom;
78
+ private checkDisk;
79
+ private computeNextFireAt;
80
+ }
81
+ export {};
82
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtime/schedule/engine.ts"],"names":[],"mappings":"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"}