@roackb2/heddle 1.4.0 → 1.5.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 (600) hide show
  1. package/README.md +10 -2
  2. package/dist/examples/conversation-engine.js +2 -2
  3. package/dist/examples/conversation-engine.js.map +1 -1
  4. package/dist/examples/cyberloop-observer.js +2 -2
  5. package/dist/examples/cyberloop-observer.js.map +1 -1
  6. package/dist/examples/heartbeat-scheduler.js +15 -11
  7. package/dist/examples/heartbeat-scheduler.js.map +1 -1
  8. package/dist/examples/heartbeat.js +5 -5
  9. package/dist/examples/heartbeat.js.map +1 -1
  10. package/dist/examples/host-events.js +4 -4
  11. package/dist/examples/host-events.js.map +1 -1
  12. package/dist/examples/programmatic-loop.js +5 -6
  13. package/dist/examples/programmatic-loop.js.map +1 -1
  14. package/dist/examples/repo-investigator.js +2 -2
  15. package/dist/examples/repo-investigator.js.map +1 -1
  16. package/dist/src/cli/ask.d.ts +1 -1
  17. package/dist/src/cli/ask.d.ts.map +1 -1
  18. package/dist/src/cli/ask.js +6 -6
  19. package/dist/src/cli/ask.js.map +1 -1
  20. package/dist/src/cli/chat/adapters/slash-command-context.d.ts.map +1 -1
  21. package/dist/src/cli/chat/adapters/slash-command-context.js +5 -5
  22. package/dist/src/cli/chat/adapters/slash-command-context.js.map +1 -1
  23. package/dist/src/cli/chat/components/RuntimeHostInterstitial.d.ts +1 -1
  24. package/dist/src/cli/chat/components/RuntimeHostInterstitial.d.ts.map +1 -1
  25. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.d.ts +1 -2
  26. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.d.ts.map +1 -1
  27. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js +6 -7
  28. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js.map +1 -1
  29. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts +1 -1
  30. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts.map +1 -1
  31. package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.d.ts.map +1 -1
  32. package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.js +7 -8
  33. package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.js.map +1 -1
  34. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.d.ts.map +1 -1
  35. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js +9 -9
  36. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js.map +1 -1
  37. package/dist/src/cli/chat/hooks/useChatSessions.js +2 -2
  38. package/dist/src/cli/chat/hooks/useChatSessions.js.map +1 -1
  39. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts +1 -1
  40. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -1
  41. package/dist/src/cli/chat/hooks/useProjectApprovals.d.ts +2 -2
  42. package/dist/src/cli/chat/hooks/useProjectApprovals.d.ts.map +1 -1
  43. package/dist/src/cli/chat/hooks/useProjectApprovals.js +17 -8
  44. package/dist/src/cli/chat/hooks/useProjectApprovals.js.map +1 -1
  45. package/dist/src/cli/chat/utils/runtime.d.ts +2 -2
  46. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
  47. package/dist/src/cli/chat/utils/runtime.js +8 -8
  48. package/dist/src/cli/chat/utils/runtime.js.map +1 -1
  49. package/dist/src/cli/heartbeat/output.d.ts +2 -2
  50. package/dist/src/cli/heartbeat/output.d.ts.map +1 -1
  51. package/dist/src/cli/heartbeat/output.js +7 -5
  52. package/dist/src/cli/heartbeat/output.js.map +1 -1
  53. package/dist/src/cli/heartbeat/store.js +2 -2
  54. package/dist/src/cli/heartbeat/store.js.map +1 -1
  55. package/dist/src/cli/heartbeat/task-commands.js +42 -30
  56. package/dist/src/cli/heartbeat/task-commands.js.map +1 -1
  57. package/dist/src/cli/heartbeat/types.d.ts +1 -1
  58. package/dist/src/cli/heartbeat/types.d.ts.map +1 -1
  59. package/dist/src/cli/heartbeat/worker.d.ts.map +1 -1
  60. package/dist/src/cli/heartbeat/worker.js +26 -17
  61. package/dist/src/cli/heartbeat/worker.js.map +1 -1
  62. package/dist/src/cli/main.js +12 -12
  63. package/dist/src/cli/main.js.map +1 -1
  64. package/dist/src/cli/remote/control-plane-client.d.ts +10 -10
  65. package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
  66. package/dist/src/core/agent/constants.d.ts +4 -0
  67. package/dist/src/core/agent/constants.d.ts.map +1 -0
  68. package/dist/src/core/agent/constants.js +4 -0
  69. package/dist/src/core/agent/constants.js.map +1 -0
  70. package/dist/src/core/agent/context/index.d.ts +3 -0
  71. package/dist/src/core/agent/context/index.d.ts.map +1 -0
  72. package/dist/src/core/agent/context/index.js +2 -0
  73. package/dist/src/core/agent/context/index.js.map +1 -0
  74. package/dist/src/core/agent/context/run-context-builder.d.ts +11 -0
  75. package/dist/src/core/agent/context/run-context-builder.d.ts.map +1 -0
  76. package/dist/src/core/agent/context/run-context-builder.js +76 -0
  77. package/dist/src/core/agent/context/run-context-builder.js.map +1 -0
  78. package/dist/src/core/agent/context/types.d.ts +11 -0
  79. package/dist/src/core/agent/context/types.d.ts.map +1 -0
  80. package/dist/src/core/agent/context/types.js +2 -0
  81. package/dist/src/core/agent/context/types.js.map +1 -0
  82. package/dist/src/core/agent/finish/index.d.ts +3 -0
  83. package/dist/src/core/agent/finish/index.d.ts.map +1 -0
  84. package/dist/src/core/agent/finish/index.js +2 -0
  85. package/dist/src/core/agent/finish/index.js.map +1 -0
  86. package/dist/src/core/agent/finish/run-finisher.d.ts +16 -0
  87. package/dist/src/core/agent/finish/run-finisher.d.ts.map +1 -0
  88. package/dist/src/core/agent/finish/run-finisher.js +67 -0
  89. package/dist/src/core/agent/finish/run-finisher.js.map +1 -0
  90. package/dist/src/core/agent/finish/types.d.ts +23 -0
  91. package/dist/src/core/agent/finish/types.d.ts.map +1 -0
  92. package/dist/src/core/agent/finish/types.js +2 -0
  93. package/dist/src/core/agent/finish/types.js.map +1 -0
  94. package/dist/src/core/agent/history/history-sanitizer.d.ts +15 -0
  95. package/dist/src/core/agent/history/history-sanitizer.d.ts.map +1 -0
  96. package/dist/src/core/agent/history/history-sanitizer.js +40 -0
  97. package/dist/src/core/agent/history/history-sanitizer.js.map +1 -0
  98. package/dist/src/core/agent/history/index.d.ts +3 -0
  99. package/dist/src/core/agent/history/index.d.ts.map +1 -0
  100. package/dist/src/core/agent/history/index.js +2 -0
  101. package/dist/src/core/agent/history/index.js.map +1 -0
  102. package/dist/src/core/agent/history/types.d.ts +16 -0
  103. package/dist/src/core/agent/history/types.d.ts.map +1 -0
  104. package/dist/src/core/agent/history/types.js +2 -0
  105. package/dist/src/core/agent/history/types.js.map +1 -0
  106. package/dist/src/core/agent/index.d.ts +3 -0
  107. package/dist/src/core/agent/index.d.ts.map +1 -0
  108. package/dist/src/core/agent/index.js +2 -0
  109. package/dist/src/core/agent/index.js.map +1 -0
  110. package/dist/src/core/agent/memory/index.d.ts +3 -0
  111. package/dist/src/core/agent/memory/index.d.ts.map +1 -0
  112. package/dist/src/core/agent/memory/index.js +2 -0
  113. package/dist/src/core/agent/memory/index.js.map +1 -0
  114. package/dist/src/core/agent/memory/memory-checkpoint-tracker.d.ts +16 -0
  115. package/dist/src/core/agent/memory/memory-checkpoint-tracker.d.ts.map +1 -0
  116. package/dist/src/core/agent/memory/memory-checkpoint-tracker.js +92 -0
  117. package/dist/src/core/agent/memory/memory-checkpoint-tracker.js.map +1 -0
  118. package/dist/src/core/agent/memory/types.d.ts +13 -0
  119. package/dist/src/core/agent/memory/types.d.ts.map +1 -0
  120. package/dist/src/core/agent/memory/types.js +2 -0
  121. package/dist/src/core/agent/memory/types.js.map +1 -0
  122. package/dist/src/core/agent/model/index.d.ts +3 -0
  123. package/dist/src/core/agent/model/index.d.ts.map +1 -0
  124. package/dist/src/core/agent/model/index.js +2 -0
  125. package/dist/src/core/agent/model/index.js.map +1 -0
  126. package/dist/src/core/agent/model/model-turn-service.d.ts +12 -0
  127. package/dist/src/core/agent/model/model-turn-service.d.ts.map +1 -0
  128. package/dist/src/core/agent/model/model-turn-service.js +103 -0
  129. package/dist/src/core/agent/model/model-turn-service.js.map +1 -0
  130. package/dist/src/core/agent/model/types.d.ts +12 -0
  131. package/dist/src/core/agent/model/types.d.ts.map +1 -0
  132. package/dist/src/core/agent/model/types.js +2 -0
  133. package/dist/src/core/agent/model/types.js.map +1 -0
  134. package/dist/src/core/agent/mutation/index.d.ts +3 -0
  135. package/dist/src/core/agent/mutation/index.d.ts.map +1 -0
  136. package/dist/src/core/agent/mutation/index.js +2 -0
  137. package/dist/src/core/agent/mutation/index.js.map +1 -0
  138. package/dist/src/core/agent/mutation/mutation-tracker.d.ts +20 -0
  139. package/dist/src/core/agent/mutation/mutation-tracker.d.ts.map +1 -0
  140. package/dist/src/core/agent/mutation/mutation-tracker.js +75 -0
  141. package/dist/src/core/agent/mutation/mutation-tracker.js.map +1 -0
  142. package/dist/src/core/agent/mutation/types.d.ts +13 -0
  143. package/dist/src/core/agent/mutation/types.d.ts.map +1 -0
  144. package/dist/src/core/agent/mutation/types.js +2 -0
  145. package/dist/src/core/agent/mutation/types.js.map +1 -0
  146. package/dist/src/core/agent/planning/index.d.ts +3 -0
  147. package/dist/src/core/agent/planning/index.d.ts.map +1 -0
  148. package/dist/src/core/agent/planning/index.js +2 -0
  149. package/dist/src/core/agent/planning/index.js.map +1 -0
  150. package/dist/src/core/agent/planning/plan-state-parser.d.ts +9 -0
  151. package/dist/src/core/agent/planning/plan-state-parser.d.ts.map +1 -0
  152. package/dist/src/core/agent/planning/plan-state-parser.js +35 -0
  153. package/dist/src/core/agent/planning/plan-state-parser.js.map +1 -0
  154. package/dist/src/core/agent/planning/types.d.ts +7 -0
  155. package/dist/src/core/agent/planning/types.d.ts.map +1 -0
  156. package/dist/src/core/agent/planning/types.js +2 -0
  157. package/dist/src/core/agent/planning/types.js.map +1 -0
  158. package/dist/src/core/agent/service.d.ts +10 -0
  159. package/dist/src/core/agent/service.d.ts.map +1 -0
  160. package/dist/src/core/agent/service.js +44 -0
  161. package/dist/src/core/agent/service.js.map +1 -0
  162. package/dist/src/core/agent/tools/index.d.ts +4 -0
  163. package/dist/src/core/agent/tools/index.d.ts.map +1 -0
  164. package/dist/src/core/agent/tools/index.js +3 -0
  165. package/dist/src/core/agent/tools/index.js.map +1 -0
  166. package/dist/src/core/agent/tools/tool-dispatcher.d.ts +47 -0
  167. package/dist/src/core/agent/tools/tool-dispatcher.d.ts.map +1 -0
  168. package/dist/src/core/agent/tools/tool-dispatcher.js +123 -0
  169. package/dist/src/core/agent/tools/tool-dispatcher.js.map +1 -0
  170. package/dist/src/core/agent/tools/tool-turn-service.d.ts +13 -0
  171. package/dist/src/core/agent/tools/tool-turn-service.d.ts.map +1 -0
  172. package/dist/src/core/agent/tools/tool-turn-service.js +129 -0
  173. package/dist/src/core/agent/tools/tool-turn-service.js.map +1 -0
  174. package/dist/src/core/agent/tools/types.d.ts +19 -0
  175. package/dist/src/core/agent/tools/types.d.ts.map +1 -0
  176. package/dist/src/core/agent/tools/types.js +2 -0
  177. package/dist/src/core/agent/tools/types.js.map +1 -0
  178. package/dist/src/core/agent/types.d.ts +83 -0
  179. package/dist/src/core/agent/types.d.ts.map +1 -0
  180. package/dist/src/core/agent/types.js +2 -0
  181. package/dist/src/core/agent/types.js.map +1 -0
  182. package/dist/src/core/agent/utils/abort.d.ts +2 -0
  183. package/dist/src/core/agent/utils/abort.d.ts.map +1 -0
  184. package/dist/src/core/agent/utils/abort.js +9 -0
  185. package/dist/src/core/agent/utils/abort.js.map +1 -0
  186. package/dist/src/core/agent/utils/index.d.ts +4 -0
  187. package/dist/src/core/agent/utils/index.d.ts.map +1 -0
  188. package/dist/src/core/agent/utils/index.js +4 -0
  189. package/dist/src/core/agent/utils/index.js.map +1 -0
  190. package/dist/src/core/agent/utils/serialization.d.ts +2 -0
  191. package/dist/src/core/agent/utils/serialization.d.ts.map +1 -0
  192. package/dist/src/core/agent/utils/serialization.js +11 -0
  193. package/dist/src/core/agent/utils/serialization.js.map +1 -0
  194. package/dist/src/core/agent/utils/tool-input.d.ts +3 -0
  195. package/dist/src/core/agent/utils/tool-input.d.ts.map +1 -0
  196. package/dist/src/core/agent/{util.js → utils/tool-input.js} +1 -28
  197. package/dist/src/core/agent/utils/tool-input.js.map +1 -0
  198. package/dist/src/core/approvals/index.d.ts +5 -0
  199. package/dist/src/core/approvals/index.d.ts.map +1 -0
  200. package/dist/src/core/approvals/index.js +4 -0
  201. package/dist/src/core/approvals/index.js.map +1 -0
  202. package/dist/src/core/approvals/pending-approval.d.ts +17 -0
  203. package/dist/src/core/approvals/pending-approval.d.ts.map +1 -0
  204. package/dist/src/core/approvals/pending-approval.js +27 -0
  205. package/dist/src/core/approvals/pending-approval.js.map +1 -0
  206. package/dist/src/core/approvals/policies.d.ts +20 -0
  207. package/dist/src/core/approvals/policies.d.ts.map +1 -0
  208. package/dist/src/core/approvals/policies.js +56 -0
  209. package/dist/src/core/approvals/policies.js.map +1 -0
  210. package/dist/src/core/approvals/remembered-rules/codec.d.ts +17 -0
  211. package/dist/src/core/approvals/remembered-rules/codec.d.ts.map +1 -0
  212. package/dist/src/core/approvals/remembered-rules/codec.js +117 -0
  213. package/dist/src/core/approvals/remembered-rules/codec.js.map +1 -0
  214. package/dist/src/core/approvals/remembered-rules/index.d.ts +5 -0
  215. package/dist/src/core/approvals/remembered-rules/index.d.ts.map +1 -0
  216. package/dist/src/core/approvals/remembered-rules/index.js +4 -0
  217. package/dist/src/core/approvals/remembered-rules/index.js.map +1 -0
  218. package/dist/src/core/approvals/remembered-rules/repository.d.ts +11 -0
  219. package/dist/src/core/approvals/remembered-rules/repository.d.ts.map +1 -0
  220. package/dist/src/core/approvals/remembered-rules/repository.js +29 -0
  221. package/dist/src/core/approvals/remembered-rules/repository.js.map +1 -0
  222. package/dist/src/core/approvals/remembered-rules/schemas.d.ts +55 -0
  223. package/dist/src/core/approvals/remembered-rules/schemas.d.ts.map +1 -0
  224. package/dist/src/core/approvals/remembered-rules/schemas.js +24 -0
  225. package/dist/src/core/approvals/remembered-rules/schemas.js.map +1 -0
  226. package/dist/src/core/approvals/remembered-rules/service.d.ts +28 -0
  227. package/dist/src/core/approvals/remembered-rules/service.d.ts.map +1 -0
  228. package/dist/src/core/approvals/remembered-rules/service.js +200 -0
  229. package/dist/src/core/approvals/remembered-rules/service.js.map +1 -0
  230. package/dist/src/core/approvals/remembered-rules/types.d.ts +12 -0
  231. package/dist/src/core/approvals/remembered-rules/types.d.ts.map +1 -0
  232. package/dist/src/core/approvals/remembered-rules/types.js +2 -0
  233. package/dist/src/core/approvals/remembered-rules/types.js.map +1 -0
  234. package/dist/src/core/approvals/service.d.ts +13 -0
  235. package/dist/src/core/approvals/service.d.ts.map +1 -0
  236. package/dist/src/core/approvals/service.js +45 -0
  237. package/dist/src/core/approvals/service.js.map +1 -0
  238. package/dist/src/core/approvals/types.d.ts +24 -1
  239. package/dist/src/core/approvals/types.d.ts.map +1 -1
  240. package/dist/src/core/chat/engine/compaction/summarizer/service.d.ts.map +1 -1
  241. package/dist/src/core/chat/engine/compaction/summarizer/service.js +4 -4
  242. package/dist/src/core/chat/engine/compaction/summarizer/service.js.map +1 -1
  243. package/dist/src/core/chat/engine/compaction/types.d.ts +1 -1
  244. package/dist/src/core/chat/engine/compaction/types.d.ts.map +1 -1
  245. package/dist/src/core/chat/engine/turns/context/turn-context-builder.js +2 -2
  246. package/dist/src/core/chat/engine/turns/context/turn-context-builder.js.map +1 -1
  247. package/dist/src/core/chat/engine/turns/host/types.d.ts +2 -2
  248. package/dist/src/core/chat/engine/turns/host/types.d.ts.map +1 -1
  249. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.d.ts +1 -1
  250. package/dist/src/core/chat/engine/turns/memory/types.d.ts +2 -2
  251. package/dist/src/core/chat/engine/turns/memory/types.d.ts.map +1 -1
  252. package/dist/src/core/chat/engine/turns/persistence/types.d.ts +2 -2
  253. package/dist/src/core/chat/engine/turns/persistence/types.d.ts.map +1 -1
  254. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.d.ts.map +1 -1
  255. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js +5 -5
  256. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js.map +1 -1
  257. package/dist/src/core/chat/engine/turns/runtime/types.d.ts +1 -1
  258. package/dist/src/core/chat/engine/turns/runtime/types.d.ts.map +1 -1
  259. package/dist/src/core/chat/engine/turns/service.js +2 -2
  260. package/dist/src/core/chat/engine/turns/service.js.map +1 -1
  261. package/dist/src/core/chat/engine/turns/types.d.ts +4 -4
  262. package/dist/src/core/chat/engine/turns/types.d.ts.map +1 -1
  263. package/dist/src/core/chat/engine/types.d.ts +1 -1
  264. package/dist/src/core/commands/slash/modules/context.d.ts +2 -2
  265. package/dist/src/core/commands/slash/modules/context.d.ts.map +1 -1
  266. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.d.ts +1 -1
  267. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.d.ts.map +1 -1
  268. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js +20 -18
  269. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js.map +1 -1
  270. package/dist/src/core/heartbeat/checkpoint/index.d.ts +4 -0
  271. package/dist/src/core/heartbeat/checkpoint/index.d.ts.map +1 -0
  272. package/dist/src/core/heartbeat/checkpoint/index.js +3 -0
  273. package/dist/src/core/heartbeat/checkpoint/index.js.map +1 -0
  274. package/dist/src/core/heartbeat/checkpoint/repository.d.ts +9 -0
  275. package/dist/src/core/heartbeat/checkpoint/repository.d.ts.map +1 -0
  276. package/dist/src/core/heartbeat/checkpoint/repository.js +33 -0
  277. package/dist/src/core/heartbeat/checkpoint/repository.js.map +1 -0
  278. package/dist/src/core/heartbeat/checkpoint/service.d.ts +5 -0
  279. package/dist/src/core/heartbeat/checkpoint/service.d.ts.map +1 -0
  280. package/dist/src/core/heartbeat/checkpoint/service.js +24 -0
  281. package/dist/src/core/heartbeat/checkpoint/service.js.map +1 -0
  282. package/dist/src/core/heartbeat/checkpoint/types.d.ts +17 -0
  283. package/dist/src/core/heartbeat/checkpoint/types.d.ts.map +1 -0
  284. package/dist/src/core/heartbeat/checkpoint/types.js +2 -0
  285. package/dist/src/core/heartbeat/checkpoint/types.js.map +1 -0
  286. package/dist/src/core/heartbeat/index.d.ts +11 -0
  287. package/dist/src/core/heartbeat/index.d.ts.map +1 -0
  288. package/dist/src/core/heartbeat/index.js +6 -0
  289. package/dist/src/core/heartbeat/index.js.map +1 -0
  290. package/dist/src/core/heartbeat/scheduler/index.d.ts +4 -0
  291. package/dist/src/core/heartbeat/scheduler/index.d.ts.map +1 -0
  292. package/dist/src/core/heartbeat/scheduler/index.js +3 -0
  293. package/dist/src/core/heartbeat/scheduler/index.js.map +1 -0
  294. package/dist/src/core/heartbeat/scheduler/runner.d.ts +19 -0
  295. package/dist/src/core/heartbeat/scheduler/runner.d.ts.map +1 -0
  296. package/dist/src/core/heartbeat/scheduler/runner.js +16 -0
  297. package/dist/src/core/heartbeat/scheduler/runner.js.map +1 -0
  298. package/dist/src/core/heartbeat/scheduler/service.d.ts +8 -0
  299. package/dist/src/core/heartbeat/scheduler/service.d.ts.map +1 -0
  300. package/dist/src/core/heartbeat/scheduler/service.js +125 -0
  301. package/dist/src/core/heartbeat/scheduler/service.js.map +1 -0
  302. package/dist/src/core/{runtime/heartbeat-scheduler.d.ts → heartbeat/scheduler/types.d.ts} +5 -18
  303. package/dist/src/core/heartbeat/scheduler/types.d.ts.map +1 -0
  304. package/dist/src/core/heartbeat/scheduler/types.js +2 -0
  305. package/dist/src/core/heartbeat/scheduler/types.js.map +1 -0
  306. package/dist/src/core/heartbeat/tasks/index.d.ts +4 -0
  307. package/dist/src/core/heartbeat/tasks/index.d.ts.map +1 -0
  308. package/dist/src/core/heartbeat/tasks/index.js +3 -0
  309. package/dist/src/core/heartbeat/tasks/index.js.map +1 -0
  310. package/dist/src/core/heartbeat/tasks/repository.d.ts +24 -0
  311. package/dist/src/core/heartbeat/tasks/repository.d.ts.map +1 -0
  312. package/dist/src/core/heartbeat/tasks/repository.js +116 -0
  313. package/dist/src/core/heartbeat/tasks/repository.js.map +1 -0
  314. package/dist/src/core/heartbeat/tasks/schemas.d.ts +212 -0
  315. package/dist/src/core/heartbeat/tasks/schemas.d.ts.map +1 -0
  316. package/dist/src/core/heartbeat/tasks/schemas.js +78 -0
  317. package/dist/src/core/heartbeat/tasks/schemas.js.map +1 -0
  318. package/dist/src/core/heartbeat/tasks/task-state.d.ts +33 -0
  319. package/dist/src/core/heartbeat/tasks/task-state.d.ts.map +1 -0
  320. package/dist/src/core/heartbeat/tasks/task-state.js +122 -0
  321. package/dist/src/core/heartbeat/tasks/task-state.js.map +1 -0
  322. package/dist/src/core/{runtime/heartbeat-task-store.d.ts → heartbeat/tasks/types.d.ts} +24 -29
  323. package/dist/src/core/heartbeat/tasks/types.d.ts.map +1 -0
  324. package/dist/src/core/heartbeat/tasks/types.js +2 -0
  325. package/dist/src/core/heartbeat/tasks/types.js.map +1 -0
  326. package/dist/src/core/heartbeat/views/index.d.ts +4 -0
  327. package/dist/src/core/heartbeat/views/index.d.ts.map +1 -0
  328. package/dist/src/core/heartbeat/views/index.js +3 -0
  329. package/dist/src/core/heartbeat/views/index.js.map +1 -0
  330. package/dist/src/core/heartbeat/views/lucid-presenter.d.ts +20 -0
  331. package/dist/src/core/heartbeat/views/lucid-presenter.d.ts.map +1 -0
  332. package/dist/src/core/heartbeat/views/lucid-presenter.js +112 -0
  333. package/dist/src/core/heartbeat/views/lucid-presenter.js.map +1 -0
  334. package/dist/src/core/heartbeat/views/presenter.d.ts +22 -0
  335. package/dist/src/core/heartbeat/views/presenter.d.ts.map +1 -0
  336. package/dist/src/core/heartbeat/views/presenter.js +50 -0
  337. package/dist/src/core/heartbeat/views/presenter.js.map +1 -0
  338. package/dist/src/core/{runtime/heartbeat-lucid.d.ts → heartbeat/views/types.d.ts} +24 -8
  339. package/dist/src/core/heartbeat/views/types.d.ts.map +1 -0
  340. package/dist/src/core/heartbeat/views/types.js +2 -0
  341. package/dist/src/core/heartbeat/views/types.js.map +1 -0
  342. package/dist/src/core/heartbeat/wake/decision.d.ts +13 -0
  343. package/dist/src/core/heartbeat/wake/decision.d.ts.map +1 -0
  344. package/dist/src/core/heartbeat/wake/decision.js +24 -0
  345. package/dist/src/core/heartbeat/wake/decision.js.map +1 -0
  346. package/dist/src/core/heartbeat/wake/index.d.ts +5 -0
  347. package/dist/src/core/heartbeat/wake/index.d.ts.map +1 -0
  348. package/dist/src/core/heartbeat/wake/index.js +4 -0
  349. package/dist/src/core/heartbeat/wake/index.js.map +1 -0
  350. package/dist/src/core/heartbeat/wake/prompt.d.ts +11 -0
  351. package/dist/src/core/heartbeat/wake/prompt.d.ts.map +1 -0
  352. package/dist/src/core/heartbeat/wake/prompt.js +39 -0
  353. package/dist/src/core/heartbeat/wake/prompt.js.map +1 -0
  354. package/dist/src/core/heartbeat/wake/service.d.ts +6 -0
  355. package/dist/src/core/heartbeat/wake/service.d.ts.map +1 -0
  356. package/dist/src/core/heartbeat/wake/service.js +75 -0
  357. package/dist/src/core/heartbeat/wake/service.js.map +1 -0
  358. package/dist/src/core/heartbeat/wake/types.d.ts +33 -0
  359. package/dist/src/core/heartbeat/wake/types.d.ts.map +1 -0
  360. package/dist/src/core/heartbeat/wake/types.js +2 -0
  361. package/dist/src/core/heartbeat/wake/types.js.map +1 -0
  362. package/dist/src/core/llm/factory.js +2 -2
  363. package/dist/src/core/llm/factory.js.map +1 -1
  364. package/dist/src/core/llm/model-policy.d.ts +1 -1
  365. package/dist/src/core/llm/model-policy.d.ts.map +1 -1
  366. package/dist/src/core/memory/maintainer.js +2 -2
  367. package/dist/src/core/memory/maintainer.js.map +1 -1
  368. package/dist/src/core/observability/conversation-activity.d.ts +1 -1
  369. package/dist/src/core/observability/conversation-activity.d.ts.map +1 -1
  370. package/dist/src/core/runtime/credentials/index.d.ts +3 -0
  371. package/dist/src/core/runtime/credentials/index.d.ts.map +1 -0
  372. package/dist/src/core/runtime/credentials/index.js +2 -0
  373. package/dist/src/core/runtime/credentials/index.js.map +1 -0
  374. package/dist/src/core/runtime/credentials/service.d.ts +22 -0
  375. package/dist/src/core/runtime/credentials/service.d.ts.map +1 -0
  376. package/dist/src/core/runtime/credentials/service.js +83 -0
  377. package/dist/src/core/runtime/credentials/service.js.map +1 -0
  378. package/dist/src/core/runtime/credentials/types.d.ts +22 -0
  379. package/dist/src/core/runtime/credentials/types.d.ts.map +1 -0
  380. package/dist/src/core/runtime/credentials/types.js +2 -0
  381. package/dist/src/core/runtime/credentials/types.js.map +1 -0
  382. package/dist/src/core/runtime/daemon/host-resolver.d.ts +7 -0
  383. package/dist/src/core/runtime/daemon/host-resolver.d.ts.map +1 -0
  384. package/dist/src/core/runtime/daemon/host-resolver.js +61 -0
  385. package/dist/src/core/runtime/daemon/host-resolver.js.map +1 -0
  386. package/dist/src/core/runtime/daemon/index.d.ts +6 -0
  387. package/dist/src/core/runtime/daemon/index.d.ts.map +1 -0
  388. package/dist/src/core/runtime/daemon/index.js +5 -0
  389. package/dist/src/core/runtime/daemon/index.js.map +1 -0
  390. package/dist/src/core/runtime/daemon/messages.d.ts +13 -0
  391. package/dist/src/core/runtime/daemon/messages.d.ts.map +1 -0
  392. package/dist/src/core/runtime/daemon/messages.js +43 -0
  393. package/dist/src/core/runtime/daemon/messages.js.map +1 -0
  394. package/dist/src/core/runtime/daemon/registry-repository.d.ts +12 -0
  395. package/dist/src/core/runtime/daemon/registry-repository.d.ts.map +1 -0
  396. package/dist/src/core/runtime/daemon/registry-repository.js +33 -0
  397. package/dist/src/core/runtime/daemon/registry-repository.js.map +1 -0
  398. package/dist/src/core/runtime/daemon/registry-service.d.ts +16 -0
  399. package/dist/src/core/runtime/daemon/registry-service.d.ts.map +1 -0
  400. package/dist/src/core/runtime/daemon/registry-service.js +141 -0
  401. package/dist/src/core/runtime/daemon/registry-service.js.map +1 -0
  402. package/dist/src/core/runtime/daemon/schemas.d.ts +96 -0
  403. package/dist/src/core/runtime/daemon/schemas.d.ts.map +1 -0
  404. package/dist/src/core/runtime/daemon/schemas.js +36 -0
  405. package/dist/src/core/runtime/daemon/schemas.js.map +1 -0
  406. package/dist/src/core/runtime/daemon/types.d.ts +66 -0
  407. package/dist/src/core/runtime/daemon/types.d.ts.map +1 -0
  408. package/dist/src/core/runtime/daemon/types.js +2 -0
  409. package/dist/src/core/runtime/daemon/types.js.map +1 -0
  410. package/dist/src/core/runtime/loop/checkpoint.d.ts +33 -0
  411. package/dist/src/core/runtime/loop/checkpoint.d.ts.map +1 -0
  412. package/dist/src/core/runtime/loop/checkpoint.js +69 -0
  413. package/dist/src/core/runtime/loop/checkpoint.js.map +1 -0
  414. package/dist/src/core/runtime/loop/index.d.ts +4 -0
  415. package/dist/src/core/runtime/loop/index.d.ts.map +1 -0
  416. package/dist/src/core/runtime/loop/index.js +3 -0
  417. package/dist/src/core/runtime/loop/index.js.map +1 -0
  418. package/dist/src/core/runtime/loop/service.d.ts +11 -0
  419. package/dist/src/core/runtime/loop/service.d.ts.map +1 -0
  420. package/dist/src/core/runtime/loop/service.js +179 -0
  421. package/dist/src/core/runtime/loop/service.js.map +1 -0
  422. package/dist/src/core/runtime/{events.d.ts → loop/types.d.ts} +38 -38
  423. package/dist/src/core/runtime/loop/types.d.ts.map +1 -0
  424. package/dist/src/core/runtime/loop/types.js +2 -0
  425. package/dist/src/core/runtime/loop/types.js.map +1 -0
  426. package/dist/src/core/runtime/tools/index.d.ts +3 -0
  427. package/dist/src/core/runtime/tools/index.d.ts.map +1 -0
  428. package/dist/src/core/runtime/tools/index.js +2 -0
  429. package/dist/src/core/runtime/tools/index.js.map +1 -0
  430. package/dist/src/core/runtime/tools/service.d.ts +11 -0
  431. package/dist/src/core/runtime/tools/service.d.ts.map +1 -0
  432. package/dist/src/core/runtime/tools/service.js +54 -0
  433. package/dist/src/core/runtime/tools/service.js.map +1 -0
  434. package/dist/src/core/runtime/{default-tools.d.ts → tools/types.d.ts} +2 -4
  435. package/dist/src/core/runtime/tools/types.d.ts.map +1 -0
  436. package/dist/src/core/runtime/tools/types.js +2 -0
  437. package/dist/src/core/runtime/tools/types.js.map +1 -0
  438. package/dist/src/core/runtime/workspaces/index.d.ts +5 -0
  439. package/dist/src/core/runtime/workspaces/index.d.ts.map +1 -0
  440. package/dist/src/core/runtime/workspaces/index.js +4 -0
  441. package/dist/src/core/runtime/workspaces/index.js.map +1 -0
  442. package/dist/src/core/runtime/workspaces/repository.d.ts +14 -0
  443. package/dist/src/core/runtime/workspaces/repository.d.ts.map +1 -0
  444. package/dist/src/core/runtime/workspaces/repository.js +38 -0
  445. package/dist/src/core/runtime/workspaces/repository.js.map +1 -0
  446. package/dist/src/core/runtime/workspaces/schemas.d.ts +42 -0
  447. package/dist/src/core/runtime/workspaces/schemas.d.ts.map +1 -0
  448. package/dist/src/core/runtime/workspaces/schemas.js +26 -0
  449. package/dist/src/core/runtime/workspaces/schemas.js.map +1 -0
  450. package/dist/src/core/runtime/workspaces/service.d.ts +15 -0
  451. package/dist/src/core/runtime/workspaces/service.d.ts.map +1 -0
  452. package/dist/src/core/runtime/workspaces/service.js +177 -0
  453. package/dist/src/core/runtime/workspaces/service.js.map +1 -0
  454. package/dist/src/core/runtime/workspaces/types.d.ts +42 -0
  455. package/dist/src/core/runtime/workspaces/types.d.ts.map +1 -0
  456. package/dist/src/core/runtime/workspaces/types.js +2 -0
  457. package/dist/src/core/runtime/workspaces/types.js.map +1 -0
  458. package/dist/src/core/tools/toolkit.d.ts +1 -1
  459. package/dist/src/core/tools/toolkit.d.ts.map +1 -1
  460. package/dist/src/core/tools/toolkits/external-context/view-image.d.ts +1 -1
  461. package/dist/src/core/tools/toolkits/external-context/view-image.d.ts.map +1 -1
  462. package/dist/src/core/tools/toolkits/external-context/view-image.js +2 -2
  463. package/dist/src/core/tools/toolkits/external-context/view-image.js.map +1 -1
  464. package/dist/src/core/tools/toolkits/external-context/web-search.d.ts +1 -1
  465. package/dist/src/core/tools/toolkits/external-context/web-search.d.ts.map +1 -1
  466. package/dist/src/core/tools/toolkits/external-context/web-search.js +2 -2
  467. package/dist/src/core/tools/toolkits/external-context/web-search.js.map +1 -1
  468. package/dist/src/core/types.d.ts +1 -1
  469. package/dist/src/index.d.ts +24 -26
  470. package/dist/src/index.d.ts.map +1 -1
  471. package/dist/src/index.js +12 -14
  472. package/dist/src/index.js.map +1 -1
  473. package/dist/src/integrations/cyberloop.d.ts +5 -4
  474. package/dist/src/integrations/cyberloop.d.ts.map +1 -1
  475. package/dist/src/integrations/cyberloop.js.map +1 -1
  476. package/dist/src/server/app.js +5 -5
  477. package/dist/src/server/app.js.map +1 -1
  478. package/dist/src/server/features/control-plane/controllers/ask.js +3 -3
  479. package/dist/src/server/features/control-plane/controllers/ask.js.map +1 -1
  480. package/dist/src/server/features/control-plane/controllers/chat-session-events.d.ts +1 -1
  481. package/dist/src/server/features/control-plane/controllers/chat-session-events.d.ts.map +1 -1
  482. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.d.ts.map +1 -1
  483. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js +7 -7
  484. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js.map +1 -1
  485. package/dist/src/server/features/control-plane/controllers/control-plane-state.js +7 -7
  486. package/dist/src/server/features/control-plane/controllers/control-plane-state.js.map +1 -1
  487. package/dist/src/server/features/control-plane/controllers/heartbeat.d.ts +6 -5
  488. package/dist/src/server/features/control-plane/controllers/heartbeat.d.ts.map +1 -1
  489. package/dist/src/server/features/control-plane/controllers/heartbeat.js +31 -19
  490. package/dist/src/server/features/control-plane/controllers/heartbeat.js.map +1 -1
  491. package/dist/src/server/features/control-plane/router.d.ts +7 -7
  492. package/dist/src/server/features/control-plane/router.js +9 -9
  493. package/dist/src/server/features/control-plane/router.js.map +1 -1
  494. package/dist/src/server/features/control-plane/types.d.ts +5 -5
  495. package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
  496. package/dist/src/server/index.d.ts.map +1 -1
  497. package/dist/src/server/index.js +7 -7
  498. package/dist/src/server/index.js.map +1 -1
  499. package/dist/src/server/router.d.ts +9 -9
  500. package/dist/src/server/types.d.ts +2 -2
  501. package/dist/src/server/types.d.ts.map +1 -1
  502. package/package.json +1 -1
  503. package/dist/src/cli/chat/state/approval-rules.d.ts +0 -3
  504. package/dist/src/cli/chat/state/approval-rules.d.ts.map +0 -1
  505. package/dist/src/cli/chat/state/approval-rules.js +0 -2
  506. package/dist/src/cli/chat/state/approval-rules.js.map +0 -1
  507. package/dist/src/core/agent/history.d.ts +0 -3
  508. package/dist/src/core/agent/history.d.ts.map +0 -1
  509. package/dist/src/core/agent/history.js +0 -36
  510. package/dist/src/core/agent/history.js.map +0 -1
  511. package/dist/src/core/agent/mutation-tracking.d.ts +0 -13
  512. package/dist/src/core/agent/mutation-tracking.d.ts.map +0 -1
  513. package/dist/src/core/agent/mutation-tracking.js +0 -71
  514. package/dist/src/core/agent/mutation-tracking.js.map +0 -1
  515. package/dist/src/core/agent/post-mutation.d.ts +0 -8
  516. package/dist/src/core/agent/post-mutation.d.ts.map +0 -1
  517. package/dist/src/core/agent/post-mutation.js +0 -9
  518. package/dist/src/core/agent/post-mutation.js.map +0 -1
  519. package/dist/src/core/agent/progress-reminders.d.ts +0 -10
  520. package/dist/src/core/agent/progress-reminders.d.ts.map +0 -1
  521. package/dist/src/core/agent/progress-reminders.js +0 -13
  522. package/dist/src/core/agent/progress-reminders.js.map +0 -1
  523. package/dist/src/core/agent/run-agent.d.ts +0 -41
  524. package/dist/src/core/agent/run-agent.d.ts.map +0 -1
  525. package/dist/src/core/agent/run-agent.js +0 -490
  526. package/dist/src/core/agent/run-agent.js.map +0 -1
  527. package/dist/src/core/agent/tool-dispatch.d.ts +0 -36
  528. package/dist/src/core/agent/tool-dispatch.d.ts.map +0 -1
  529. package/dist/src/core/agent/tool-dispatch.js +0 -120
  530. package/dist/src/core/agent/tool-dispatch.js.map +0 -1
  531. package/dist/src/core/agent/util.d.ts +0 -6
  532. package/dist/src/core/agent/util.d.ts.map +0 -1
  533. package/dist/src/core/agent/util.js.map +0 -1
  534. package/dist/src/core/approvals/default-policies.d.ts +0 -10
  535. package/dist/src/core/approvals/default-policies.d.ts.map +0 -1
  536. package/dist/src/core/approvals/default-policies.js +0 -37
  537. package/dist/src/core/approvals/default-policies.js.map +0 -1
  538. package/dist/src/core/approvals/policy-chain.d.ts +0 -9
  539. package/dist/src/core/approvals/policy-chain.d.ts.map +0 -1
  540. package/dist/src/core/approvals/policy-chain.js +0 -36
  541. package/dist/src/core/approvals/policy-chain.js.map +0 -1
  542. package/dist/src/core/approvals/remembered-rules.d.ts +0 -22
  543. package/dist/src/core/approvals/remembered-rules.d.ts.map +0 -1
  544. package/dist/src/core/approvals/remembered-rules.js +0 -284
  545. package/dist/src/core/approvals/remembered-rules.js.map +0 -1
  546. package/dist/src/core/approvals/surface.d.ts +0 -20
  547. package/dist/src/core/approvals/surface.d.ts.map +0 -1
  548. package/dist/src/core/approvals/surface.js +0 -22
  549. package/dist/src/core/approvals/surface.js.map +0 -1
  550. package/dist/src/core/runtime/agent-loop.d.ts +0 -45
  551. package/dist/src/core/runtime/agent-loop.d.ts.map +0 -1
  552. package/dist/src/core/runtime/agent-loop.js +0 -200
  553. package/dist/src/core/runtime/agent-loop.js.map +0 -1
  554. package/dist/src/core/runtime/api-keys.d.ts +0 -35
  555. package/dist/src/core/runtime/api-keys.d.ts.map +0 -1
  556. package/dist/src/core/runtime/api-keys.js +0 -78
  557. package/dist/src/core/runtime/api-keys.js.map +0 -1
  558. package/dist/src/core/runtime/daemon-registry.d.ts +0 -44
  559. package/dist/src/core/runtime/daemon-registry.d.ts.map +0 -1
  560. package/dist/src/core/runtime/daemon-registry.js +0 -147
  561. package/dist/src/core/runtime/daemon-registry.js.map +0 -1
  562. package/dist/src/core/runtime/default-tools.d.ts.map +0 -1
  563. package/dist/src/core/runtime/default-tools.js +0 -49
  564. package/dist/src/core/runtime/default-tools.js.map +0 -1
  565. package/dist/src/core/runtime/events.d.ts.map +0 -1
  566. package/dist/src/core/runtime/events.js +0 -41
  567. package/dist/src/core/runtime/events.js.map +0 -1
  568. package/dist/src/core/runtime/heartbeat-lucid.d.ts.map +0 -1
  569. package/dist/src/core/runtime/heartbeat-lucid.js +0 -188
  570. package/dist/src/core/runtime/heartbeat-lucid.js.map +0 -1
  571. package/dist/src/core/runtime/heartbeat-scheduler.d.ts.map +0 -1
  572. package/dist/src/core/runtime/heartbeat-scheduler.js +0 -135
  573. package/dist/src/core/runtime/heartbeat-scheduler.js.map +0 -1
  574. package/dist/src/core/runtime/heartbeat-store.d.ts +0 -20
  575. package/dist/src/core/runtime/heartbeat-store.d.ts.map +0 -1
  576. package/dist/src/core/runtime/heartbeat-store.js +0 -42
  577. package/dist/src/core/runtime/heartbeat-store.js.map +0 -1
  578. package/dist/src/core/runtime/heartbeat-task-state.d.ts +0 -5
  579. package/dist/src/core/runtime/heartbeat-task-state.d.ts.map +0 -1
  580. package/dist/src/core/runtime/heartbeat-task-state.js +0 -81
  581. package/dist/src/core/runtime/heartbeat-task-state.js.map +0 -1
  582. package/dist/src/core/runtime/heartbeat-task-store.d.ts.map +0 -1
  583. package/dist/src/core/runtime/heartbeat-task-store.js +0 -96
  584. package/dist/src/core/runtime/heartbeat-task-store.js.map +0 -1
  585. package/dist/src/core/runtime/heartbeat-views.d.ts +0 -52
  586. package/dist/src/core/runtime/heartbeat-views.d.ts.map +0 -1
  587. package/dist/src/core/runtime/heartbeat-views.js +0 -62
  588. package/dist/src/core/runtime/heartbeat-views.js.map +0 -1
  589. package/dist/src/core/runtime/heartbeat.d.ts +0 -41
  590. package/dist/src/core/runtime/heartbeat.d.ts.map +0 -1
  591. package/dist/src/core/runtime/heartbeat.js +0 -113
  592. package/dist/src/core/runtime/heartbeat.js.map +0 -1
  593. package/dist/src/core/runtime/runtime-hosts.d.ts +0 -30
  594. package/dist/src/core/runtime/runtime-hosts.d.ts.map +0 -1
  595. package/dist/src/core/runtime/runtime-hosts.js +0 -95
  596. package/dist/src/core/runtime/runtime-hosts.js.map +0 -1
  597. package/dist/src/core/runtime/workspaces.d.ts +0 -55
  598. package/dist/src/core/runtime/workspaces.d.ts.map +0 -1
  599. package/dist/src/core/runtime/workspaces.js +0 -168
  600. package/dist/src/core/runtime/workspaces.js.map +0 -1
@@ -0,0 +1,179 @@
1
+ import { resolve } from 'node:path';
2
+ import { resolveProviderCredentialStorePath } from '../../../core/auth/provider-credentials.js';
3
+ import { DEFAULT_OPENAI_MODEL } from '../../../core/config.js';
4
+ import { AgentRunService } from '../../../core/agent/index.js';
5
+ import { inferProviderFromModel } from '../../../core/llm/providers.js';
6
+ import { createLogger } from '../../../core/utils/logger.js';
7
+ import { RuntimeCredentialService } from '../credentials/index.js';
8
+ import { RuntimeToolService } from '../tools/index.js';
9
+ import { AgentLoopCheckpointService } from './checkpoint.js';
10
+ /**
11
+ * Main programmatic runtime boundary for one evented agent loop execution.
12
+ */
13
+ export class AgentLoopRuntimeService {
14
+ static async run(options) {
15
+ const runId = AgentLoopCheckpointService.generateRunId();
16
+ const model = options.model ?? options.llm?.info?.model ?? process.env.OPENAI_MODEL ?? process.env.ANTHROPIC_MODEL ?? DEFAULT_OPENAI_MODEL;
17
+ const provider = inferProviderFromModel(model);
18
+ const workspaceRoot = resolve(options.workspaceRoot ?? process.cwd());
19
+ const apiKey = options.apiKey ?? RuntimeCredentialService.resolveApiKeyForModel(model);
20
+ const credentialStorePath = this.resolveCredentialStorePath({ workspaceRoot, stateDir: options.stateDir });
21
+ const providerCredentialSource = RuntimeCredentialService.resolveCredentialSourceForModel(model, {
22
+ apiKey,
23
+ apiKeyProvider: options.apiKey ? 'explicit' : apiKey ? provider : undefined,
24
+ credentialStorePath,
25
+ });
26
+ const llm = options.llm ?? await this.createLoopLlmAdapter({
27
+ model,
28
+ apiKey,
29
+ credentialStorePath,
30
+ reasoningEffort: options.reasoningEffort,
31
+ });
32
+ const logger = options.logger ?? createLogger({ pretty: false, level: 'info', console: false });
33
+ const tools = this.resolveTools(options, {
34
+ model,
35
+ apiKey,
36
+ providerCredentialSource,
37
+ workspaceRoot,
38
+ credentialStorePath,
39
+ });
40
+ const now = () => new Date().toISOString();
41
+ const startedAt = now();
42
+ logger.info({
43
+ model,
44
+ provider,
45
+ credentialSource: providerCredentialSource.type,
46
+ credentialProvider: 'provider' in providerCredentialSource ? providerCredentialSource.provider : undefined,
47
+ }, 'Agent runtime configured');
48
+ const resumeMetadata = AgentLoopCheckpointService.resolveResumeMetadata(options.resumeFrom);
49
+ options.onEvent?.({
50
+ type: 'loop.started',
51
+ runId,
52
+ goal: options.goal,
53
+ model,
54
+ provider,
55
+ workspaceRoot,
56
+ resumedFromCheckpoint: resumeMetadata?.checkpointRunId,
57
+ timestamp: startedAt,
58
+ });
59
+ if (resumeMetadata) {
60
+ options.onEvent?.({
61
+ type: 'loop.resumed',
62
+ runId,
63
+ fromCheckpoint: resumeMetadata.checkpointRunId,
64
+ priorTraceEvents: resumeMetadata.priorTraceEvents,
65
+ timestamp: now(),
66
+ });
67
+ }
68
+ const result = await AgentRunService.run({
69
+ goal: options.goal,
70
+ llm,
71
+ tools,
72
+ workspaceRoot,
73
+ maxSteps: options.maxSteps,
74
+ logger,
75
+ history: AgentLoopCheckpointService.resolveHistory(options),
76
+ systemContext: options.systemContext,
77
+ onAssistantStream: (update) => {
78
+ options.onEvent?.({
79
+ type: 'assistant.stream',
80
+ runId,
81
+ ...update,
82
+ timestamp: now(),
83
+ });
84
+ options.onAssistantStream?.(update);
85
+ },
86
+ onEvent: (event) => {
87
+ options.onEvent?.({ type: 'trace', runId, event, timestamp: now() });
88
+ options.onTraceEvent?.(event);
89
+ },
90
+ onToolCalling: (call, step, toolDef) => {
91
+ options.onEvent?.({
92
+ type: 'tool.calling',
93
+ runId,
94
+ step,
95
+ tool: call.tool,
96
+ toolCallId: call.id,
97
+ input: call.input,
98
+ requiresApproval: toolDef.requiresApproval ?? false,
99
+ timestamp: now(),
100
+ });
101
+ },
102
+ onToolCompleted: (call, result, step, durationMs) => {
103
+ options.onEvent?.({
104
+ type: 'tool.completed',
105
+ runId,
106
+ step,
107
+ tool: call.tool,
108
+ toolCallId: call.id,
109
+ result: { ok: result.ok, output: result.output, error: result.error },
110
+ durationMs,
111
+ timestamp: now(),
112
+ });
113
+ },
114
+ approvalPolicies: options.approvalPolicies,
115
+ approveToolCall: options.approveToolCall,
116
+ shouldStop: options.shouldStop,
117
+ abortSignal: options.abortSignal,
118
+ });
119
+ const finishedAt = now();
120
+ const state = AgentLoopCheckpointService.createFinishedState({
121
+ runId,
122
+ goal: options.goal,
123
+ model,
124
+ provider,
125
+ workspaceRoot,
126
+ startedAt,
127
+ finishedAt,
128
+ result,
129
+ });
130
+ options.onEvent?.({
131
+ type: 'loop.finished',
132
+ runId,
133
+ outcome: result.outcome,
134
+ summary: result.summary,
135
+ usage: result.usage,
136
+ state,
137
+ timestamp: finishedAt,
138
+ });
139
+ return {
140
+ ...result,
141
+ model,
142
+ provider,
143
+ workspaceRoot,
144
+ state,
145
+ };
146
+ }
147
+ static resolveCredentialStorePath(args) {
148
+ return args.stateDir
149
+ ? resolveProviderCredentialStorePath(resolve(args.workspaceRoot, args.stateDir))
150
+ : undefined;
151
+ }
152
+ static async createLoopLlmAdapter(options) {
153
+ const { createLlmAdapter } = await import('../../../core/llm/factory.js');
154
+ return createLlmAdapter(options);
155
+ }
156
+ static resolveTools(options, runtime) {
157
+ const providedTools = options.tools ?? [];
158
+ const extraTools = options.extraTools ?? [];
159
+ if (options.includeDefaultTools === false) {
160
+ return [...providedTools, ...extraTools];
161
+ }
162
+ return [
163
+ ...RuntimeToolService.createDefaultAgentTools({
164
+ model: runtime.model,
165
+ apiKey: runtime.apiKey,
166
+ providerCredentialSource: runtime.providerCredentialSource,
167
+ credentialStorePath: runtime.credentialStorePath,
168
+ workspaceRoot: runtime.workspaceRoot,
169
+ stateDir: options.stateDir,
170
+ memoryDir: options.memoryDir,
171
+ searchIgnoreDirs: options.searchIgnoreDirs,
172
+ includePlanTool: options.includePlanTool,
173
+ }),
174
+ ...providedTools,
175
+ ...extraTools,
176
+ ];
177
+ }
178
+ }
179
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../../src/core/runtime/loop/service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import type { ChatMessage, LlmProvider, LlmUsage } from '../llm/types.js';
2
- import type { RunResult, StopReason, TraceEvent } from '../types.js';
1
+ import type { Logger } from 'pino';
2
+ import type { ToolApprovalPolicy } from '../../../core/approvals/types.js';
3
+ import type { RunAgentOptions } from '../../../core/agent/index.js';
4
+ import type { ChatMessage, LlmAdapter, LlmProvider, LlmUsage, ReasoningEffort } from '../../../core/llm/types.js';
5
+ import type { RunResult, StopReason, ToolCall, ToolDefinition, TraceEvent } from '../../../core/types.js';
3
6
  export type AgentLoopStatus = 'finished';
4
7
  export type AgentLoopState = {
5
8
  status: AgentLoopStatus;
@@ -22,10 +25,6 @@ export type AgentLoopCheckpoint = {
22
25
  createdAt: string;
23
26
  state: AgentLoopState;
24
27
  };
25
- /**
26
- * Host-facing agent loop events.
27
- * Stable payload shapes for external integration (CyberLoop, Lucid, etc.)
28
- */
29
28
  export type AgentLoopEvent = {
30
29
  type: 'loop.started';
31
30
  runId: string;
@@ -81,21 +80,6 @@ export type AgentLoopEvent = {
81
80
  checkpoint: AgentLoopCheckpoint;
82
81
  step: number;
83
82
  timestamp: string;
84
- } | {
85
- type: 'escalation.required';
86
- runId: string;
87
- task: string;
88
- outcome: StopReason;
89
- summary: string;
90
- step: number;
91
- timestamp: string;
92
- } | {
93
- type: 'heartbeat.decision';
94
- runId: string;
95
- decision: 'continue' | 'pause' | 'complete' | 'escalate';
96
- outcome: StopReason;
97
- summary: string;
98
- timestamp: string;
99
83
  } | {
100
84
  type: 'loop.finished';
101
85
  runId: string;
@@ -105,24 +89,40 @@ export type AgentLoopEvent = {
105
89
  state: AgentLoopState;
106
90
  timestamp: string;
107
91
  };
108
- export declare function createFinishedAgentLoopState(args: {
109
- runId: string;
92
+ export type RunAgentLoopOptions = {
110
93
  goal: string;
94
+ model?: string;
95
+ reasoningEffort?: ReasoningEffort;
96
+ apiKey?: string;
97
+ maxSteps?: number;
98
+ workspaceRoot?: string;
99
+ stateDir?: string;
100
+ memoryDir?: string;
101
+ searchIgnoreDirs?: string[];
102
+ systemContext?: string;
103
+ history?: ChatMessage[];
104
+ resumeFrom?: AgentLoopState | AgentLoopCheckpoint;
105
+ llm?: LlmAdapter;
106
+ tools?: ToolDefinition[];
107
+ extraTools?: ToolDefinition[];
108
+ includeDefaultTools?: boolean;
109
+ includePlanTool?: boolean;
110
+ logger?: Logger;
111
+ onEvent?: (event: AgentLoopEvent) => void;
112
+ onTraceEvent?: (event: TraceEvent) => void;
113
+ onAssistantStream?: RunAgentOptions['onAssistantStream'];
114
+ approvalPolicies?: ToolApprovalPolicy[];
115
+ approveToolCall?: (call: ToolCall, tool: ToolDefinition) => Promise<{
116
+ approved: boolean;
117
+ reason?: string;
118
+ }>;
119
+ shouldStop?: () => boolean;
120
+ abortSignal?: AbortSignal;
121
+ };
122
+ export type AgentLoopResult = RunResult & {
111
123
  model: string;
112
124
  provider: LlmProvider;
113
125
  workspaceRoot: string;
114
- startedAt: string;
115
- finishedAt: string;
116
- result: RunResult;
117
- }): AgentLoopState;
118
- export declare function createAgentLoopCheckpoint(state: AgentLoopState, options?: {
119
- createdAt?: string;
120
- }): AgentLoopCheckpoint;
121
- /**
122
- * Generate a unique run ID for event correlation.
123
- * Format: run_<timestamp>_<random>
124
- */
125
- export declare function generateRunId(): string;
126
- export declare function getHistoryFromAgentLoopState(state: AgentLoopState): ChatMessage[];
127
- export declare function getHistoryFromAgentLoopCheckpoint(checkpoint: AgentLoopCheckpoint): ChatMessage[];
128
- //# sourceMappingURL=events.d.ts.map
126
+ state: AgentLoopState;
127
+ };
128
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/loop/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/runtime/loop/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { RuntimeToolService } from './service.js';
2
+ export type { DefaultAgentToolsOptions } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { RuntimeToolService } from './service.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/runtime/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ToolDefinition } from '../../../core/types.js';
2
+ import type { DefaultAgentToolsOptions } from './types.js';
3
+ /**
4
+ * Owns the default tool bundle policy for generic runtime execution.
5
+ */
6
+ export declare class RuntimeToolService {
7
+ static createDefaultAgentTools(options: DefaultAgentToolsOptions): ToolDefinition[];
8
+ private static createDefaultToolkits;
9
+ private static createDefaultInternalToolkit;
10
+ }
11
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/tools/service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,cAAc,EAAE;IAsBnF,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAapC,OAAO,CAAC,MAAM,CAAC,4BAA4B;CAc5C"}
@@ -0,0 +1,54 @@
1
+ import { join } from 'node:path';
2
+ import { codingAwarenessToolkit } from '../../../core/tools/toolkits/coding-awareness/toolkit.js';
3
+ import { codingFilesToolkit } from '../../../core/tools/toolkits/coding-files/toolkit.js';
4
+ import { externalContextToolkit } from '../../../core/tools/toolkits/external-context/toolkit.js';
5
+ import { internalToolkit } from '../../../core/tools/toolkits/internal/toolkit.js';
6
+ import { knowledgeToolkit } from '../../../core/tools/toolkits/knowledge/toolkit.js';
7
+ import { shellProcessToolkit } from '../../../core/tools/toolkits/shell-process/toolkit.js';
8
+ import { createToolkitToolBundle } from '../../../core/tools/toolkit.js';
9
+ /**
10
+ * Owns the default tool bundle policy for generic runtime execution.
11
+ */
12
+ export class RuntimeToolService {
13
+ static createDefaultAgentTools(options) {
14
+ const workspaceRoot = options.workspaceRoot ?? process.cwd();
15
+ const memoryDir = options.memoryDir ??
16
+ join(workspaceRoot, options.stateDir ?? '.heddle', 'memory');
17
+ const memoryMode = options.memoryMode ?? 'read-and-record';
18
+ return createToolkitToolBundle({
19
+ toolkits: this.createDefaultToolkits({ includePlanTool: options.includePlanTool }),
20
+ context: {
21
+ workspaceRoot,
22
+ model: options.model,
23
+ apiKey: options.apiKey,
24
+ providerCredentialSource: options.providerCredentialSource,
25
+ credentialStorePath: options.credentialStorePath,
26
+ memoryDir,
27
+ memoryMode,
28
+ searchIgnoreDirs: options.searchIgnoreDirs,
29
+ },
30
+ });
31
+ }
32
+ static createDefaultToolkits(args) {
33
+ return [
34
+ codingAwarenessToolkit,
35
+ codingFilesToolkit,
36
+ externalContextToolkit,
37
+ knowledgeToolkit,
38
+ this.createDefaultInternalToolkit({ includePlanTool: args.includePlanTool }),
39
+ shellProcessToolkit,
40
+ ];
41
+ }
42
+ static createDefaultInternalToolkit(args) {
43
+ if (args.includePlanTool ?? true) {
44
+ return internalToolkit;
45
+ }
46
+ return {
47
+ id: internalToolkit.id,
48
+ createTools(context) {
49
+ return internalToolkit.createTools(context).filter((tool) => tool.name !== 'update_plan');
50
+ },
51
+ };
52
+ }
53
+ }
54
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../../src/core/runtime/tools/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAoB,MAAM,yBAAyB,CAAC;AAIpF;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAC,uBAAuB,CAAC,OAAiC;QAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,SAAS,GACb,OAAO,CAAC,SAAS;YACjB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;QAE3D,OAAO,uBAAuB,CAAC;YAC7B,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;YAClF,OAAO,EAAE;gBACP,aAAa;gBACb,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;gBAC1D,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,SAAS;gBACT,UAAU;gBACV,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC3C;SACF,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,IAEpC;QACC,OAAO;YACL,sBAAsB;YACtB,kBAAkB;YAClB,sBAAsB;YACtB,gBAAgB;YAChB,IAAI,CAAC,4BAA4B,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5E,mBAAmB;SACpB,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,4BAA4B,CAAC,IAE3C;QACC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YACjC,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,OAAO;YACL,EAAE,EAAE,eAAe,CAAC,EAAE;YACtB,WAAW,CAAC,OAAO;gBACjB,OAAO,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YAC5F,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
- import type { ToolDefinition } from '../types.js';
2
- import type { ProviderCredentialSource } from './api-keys.js';
1
+ import type { ProviderCredentialSource } from '../../../core/runtime/credentials/index.js';
3
2
  export type DefaultAgentToolsOptions = {
4
3
  model: string;
5
4
  apiKey?: string;
@@ -12,5 +11,4 @@ export type DefaultAgentToolsOptions = {
12
11
  searchIgnoreDirs?: string[];
13
12
  includePlanTool?: boolean;
14
13
  };
15
- export declare function createDefaultAgentTools(options: DefaultAgentToolsOptions): ToolDefinition[];
16
- //# sourceMappingURL=default-tools.d.ts.map
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAEpF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,CAAC;IACvE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/runtime/tools/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export { FileWorkspaceRepository } from './repository.js';
2
+ export { RuntimeWorkspaceService } from './service.js';
3
+ export type { CreateWorkspaceDescriptorInput, RenameWorkspaceDescriptorInput, ResolvedWorkspaceContext, SetActiveWorkspaceInput, WorkspaceCatalog, WorkspaceDescriptor, WorkspaceRootConfig, } from './types.js';
4
+ export { DEFAULT_WORKSPACE_ID } from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/workspaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,8BAA8B,EAC9B,8BAA8B,EAC9B,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { FileWorkspaceRepository } from './repository.js';
2
+ export { RuntimeWorkspaceService } from './service.js';
3
+ export { DEFAULT_WORKSPACE_ID } from './types.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/runtime/workspaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAUvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { WorkspaceCatalog } from './types.js';
2
+ export declare class FileWorkspaceRepository {
3
+ private readonly catalogPath;
4
+ constructor(args: {
5
+ catalogPath: string;
6
+ });
7
+ static resolveCatalogPath(stateRoot: string): string;
8
+ exists(): boolean;
9
+ readRaw(): unknown;
10
+ save(catalog: WorkspaceCatalog): void;
11
+ path(): string;
12
+ static forStateRoot(stateRoot: string): FileWorkspaceRepository;
13
+ }
14
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/workspaces/repository.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;IAIzC,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIpD,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,OAAO;IAIlB,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAKrC,IAAI,IAAI,MAAM;IAId,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB;CAKhE"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * File-backed runtime workspace repository.
3
+ *
4
+ * Owns catalog paths and JSON file I/O. Workspace semantics live in
5
+ * `RuntimeWorkspaceService`; callers should not read or write workspace catalog
6
+ * files directly.
7
+ */
8
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
9
+ import { dirname, join, resolve } from 'node:path';
10
+ import { WorkspaceCatalogSchema } from './schemas.js';
11
+ export class FileWorkspaceRepository {
12
+ catalogPath;
13
+ constructor(args) {
14
+ this.catalogPath = args.catalogPath;
15
+ }
16
+ static resolveCatalogPath(stateRoot) {
17
+ return join(stateRoot, 'workspaces.catalog.json');
18
+ }
19
+ exists() {
20
+ return existsSync(this.catalogPath);
21
+ }
22
+ readRaw() {
23
+ return JSON.parse(readFileSync(this.catalogPath, 'utf8'));
24
+ }
25
+ save(catalog) {
26
+ mkdirSync(dirname(this.catalogPath), { recursive: true });
27
+ writeFileSync(this.catalogPath, `${JSON.stringify(WorkspaceCatalogSchema.parse(catalog), null, 2)}\n`, 'utf8');
28
+ }
29
+ path() {
30
+ return this.catalogPath;
31
+ }
32
+ static forStateRoot(stateRoot) {
33
+ return new FileWorkspaceRepository({
34
+ catalogPath: FileWorkspaceRepository.resolveCatalogPath(resolve(stateRoot)),
35
+ });
36
+ }
37
+ }
38
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../src/core/runtime/workspaces/repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,MAAM,OAAO,uBAAuB;IACjB,WAAW,CAAS;IAErC,YAAY,IAA6B;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,SAAiB;QACzC,OAAO,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACpD,CAAC;IAED,MAAM;QACJ,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAY,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,OAAyB;QAC5B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,SAAiB;QACnC,OAAO,IAAI,uBAAuB,CAAC;YACjC,WAAW,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC5E,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Zod schemas for runtime workspace catalog persistence.
3
+ *
4
+ * This file is the human-readable JSON contract for `.heddle/workspaces.catalog.json`.
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const WorkspaceDescriptorSchema: z.ZodObject<{
8
+ id: z.ZodString;
9
+ name: z.ZodString;
10
+ anchorRoot: z.ZodString;
11
+ repoRoots: z.ZodArray<z.ZodString>;
12
+ stateRoot: z.ZodString;
13
+ createdAt: z.ZodString;
14
+ updatedAt: z.ZodString;
15
+ }, z.core.$strip>;
16
+ export declare const WorkspaceCatalogSchema: z.ZodObject<{
17
+ version: z.ZodLiteral<1>;
18
+ activeWorkspaceId: z.ZodString;
19
+ workspaces: z.ZodArray<z.ZodObject<{
20
+ id: z.ZodString;
21
+ name: z.ZodString;
22
+ anchorRoot: z.ZodString;
23
+ repoRoots: z.ZodArray<z.ZodString>;
24
+ stateRoot: z.ZodString;
25
+ createdAt: z.ZodString;
26
+ updatedAt: z.ZodString;
27
+ }, z.core.$strip>>;
28
+ }, z.core.$strip>;
29
+ export declare const WorkspaceCatalogReadSchema: z.ZodObject<{
30
+ version: z.ZodCatch<z.ZodOptional<z.ZodLiteral<1>>>;
31
+ activeWorkspaceId: z.ZodCatch<z.ZodOptional<z.ZodString>>;
32
+ workspaces: z.ZodCatch<z.ZodOptional<z.ZodArray<z.ZodObject<{
33
+ id: z.ZodOptional<z.ZodString>;
34
+ name: z.ZodOptional<z.ZodString>;
35
+ anchorRoot: z.ZodOptional<z.ZodString>;
36
+ repoRoots: z.ZodOptional<z.ZodArray<z.ZodString>>;
37
+ stateRoot: z.ZodOptional<z.ZodString>;
38
+ createdAt: z.ZodOptional<z.ZodString>;
39
+ updatedAt: z.ZodOptional<z.ZodString>;
40
+ }, z.core.$strip>>>>;
41
+ }, z.core.$strip>;
42
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/workspaces/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yBAAyB;;;;;;;;iBAQpC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAIjC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAIrC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Zod schemas for runtime workspace catalog persistence.
3
+ *
4
+ * This file is the human-readable JSON contract for `.heddle/workspaces.catalog.json`.
5
+ */
6
+ import { z } from 'zod';
7
+ export const WorkspaceDescriptorSchema = z.object({
8
+ id: z.string().describe('Stable workspace identifier used by host surfaces and daemon registration.'),
9
+ name: z.string().describe('Human-facing workspace name shown in control-plane workspace lists.'),
10
+ anchorRoot: z.string().describe('Primary filesystem root represented by this workspace.'),
11
+ repoRoots: z.array(z.string()).describe('Repository roots grouped into this workspace.'),
12
+ stateRoot: z.string().describe('Heddle state directory for this workspace.'),
13
+ createdAt: z.string().describe('Timestamp when this workspace descriptor was created.'),
14
+ updatedAt: z.string().describe('Timestamp when this workspace descriptor was last changed.'),
15
+ });
16
+ export const WorkspaceCatalogSchema = z.object({
17
+ version: z.literal(1).describe('Workspace catalog format version.'),
18
+ activeWorkspaceId: z.string().describe('Workspace identifier currently selected by host surfaces.'),
19
+ workspaces: z.array(WorkspaceDescriptorSchema).describe('Known workspace descriptors.'),
20
+ });
21
+ export const WorkspaceCatalogReadSchema = z.object({
22
+ version: z.literal(1).optional().catch(1),
23
+ activeWorkspaceId: z.string().optional().catch(undefined),
24
+ workspaces: z.array(WorkspaceDescriptorSchema.partial()).optional().catch(undefined),
25
+ });
26
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../../src/core/runtime/workspaces/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;IACrG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IACzF,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACxF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC5E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACvF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CAC7F,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACnE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACnG,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CACxF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACzD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;CACrF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type CreateWorkspaceDescriptorInput, type RenameWorkspaceDescriptorInput, type ResolvedWorkspaceContext, type SetActiveWorkspaceInput, type WorkspaceCatalog, type WorkspaceRootConfig } from './types.js';
2
+ export declare class RuntimeWorkspaceService {
3
+ static ensureCatalog(config: WorkspaceRootConfig): WorkspaceCatalog;
4
+ static resolveContext(config: WorkspaceRootConfig): ResolvedWorkspaceContext;
5
+ static setActive(input: SetActiveWorkspaceInput): ResolvedWorkspaceContext;
6
+ static rename(input: RenameWorkspaceDescriptorInput): ResolvedWorkspaceContext;
7
+ static createDescriptor(input: CreateWorkspaceDescriptorInput): ResolvedWorkspaceContext;
8
+ static readCatalog(catalogPath: string, config: WorkspaceRootConfig): WorkspaceCatalog;
9
+ private static saveResolvedCatalog;
10
+ private static createDefaultCatalog;
11
+ private static deriveDefaultWorkspaceName;
12
+ private static normalizeCatalog;
13
+ private static normalizeDescriptor;
14
+ }
15
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/core/runtime/workspaces/service.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AAEpB,qBAAa,uBAAuB;IAClC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,gBAAgB;IAmBnE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,wBAAwB;IAkB5E,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,uBAAuB,GAAG,wBAAwB;IAa1E,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,8BAA8B,GAAG,wBAAwB;IAoB9E,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,8BAA8B,GAAG,wBAAwB;IAuCxF,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,gBAAgB;IAStF,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmBnC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAKzC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA+B/B,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAsBnC"}