@roackb2/heddle 1.4.0 → 1.6.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 (825) hide show
  1. package/README.md +10 -2
  2. package/dist/examples/conversation-engine.js +11 -11
  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 +17 -13
  7. package/dist/examples/heartbeat-scheduler.js.map +1 -1
  8. package/dist/examples/heartbeat.js +7 -7
  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 +7 -8
  13. package/dist/examples/programmatic-loop.js.map +1 -1
  14. package/dist/examples/repo-investigator.js +4 -4
  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 +7 -7
  19. package/dist/src/cli/ask.js.map +1 -1
  20. package/dist/src/cli/auth.d.ts +14 -7
  21. package/dist/src/cli/auth.d.ts.map +1 -1
  22. package/dist/src/cli/auth.js +75 -70
  23. package/dist/src/cli/auth.js.map +1 -1
  24. package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts +1 -1
  25. package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts.map +1 -1
  26. package/dist/src/cli/chat/adapters/conversation-activity-adapter.js +29 -19
  27. package/dist/src/cli/chat/adapters/conversation-activity-adapter.js.map +1 -1
  28. package/dist/src/cli/chat/adapters/slash-command-context.d.ts.map +1 -1
  29. package/dist/src/cli/chat/adapters/slash-command-context.js +9 -9
  30. package/dist/src/cli/chat/adapters/slash-command-context.js.map +1 -1
  31. package/dist/src/cli/chat/components/ModelPickerPanel.d.ts +1 -1
  32. package/dist/src/cli/chat/components/ModelPickerPanel.js +1 -1
  33. package/dist/src/cli/chat/components/RuntimeHostInterstitial.d.ts +1 -1
  34. package/dist/src/cli/chat/components/RuntimeHostInterstitial.d.ts.map +1 -1
  35. package/dist/src/cli/chat/debug/tui-debug-snapshot.d.ts +1 -1
  36. package/dist/src/cli/chat/debug/tui-debug-snapshot.js +1 -1
  37. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js +3 -3
  38. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js.map +1 -1
  39. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.d.ts +1 -2
  40. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.d.ts.map +1 -1
  41. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js +8 -9
  42. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js.map +1 -1
  43. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts +1 -1
  44. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts.map +1 -1
  45. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js +3 -3
  46. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js.map +1 -1
  47. package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.d.ts.map +1 -1
  48. package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.js +7 -8
  49. package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.js.map +1 -1
  50. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.d.ts.map +1 -1
  51. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js +24 -14
  52. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js.map +1 -1
  53. package/dist/src/cli/chat/hooks/controllers/useChatAppController.d.ts.map +1 -1
  54. package/dist/src/cli/chat/hooks/controllers/useChatAppController.js +9 -10
  55. package/dist/src/cli/chat/hooks/controllers/useChatAppController.js.map +1 -1
  56. package/dist/src/cli/chat/hooks/controllers/usePromptSubmissionController.d.ts +1 -1
  57. package/dist/src/cli/chat/hooks/useChatPickers.d.ts +1 -1
  58. package/dist/src/cli/chat/hooks/useChatPickers.d.ts.map +1 -1
  59. package/dist/src/cli/chat/hooks/useChatPickers.js +7 -8
  60. package/dist/src/cli/chat/hooks/useChatPickers.js.map +1 -1
  61. package/dist/src/cli/chat/hooks/useChatSessions.js +2 -2
  62. package/dist/src/cli/chat/hooks/useChatSessions.js.map +1 -1
  63. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts +1 -1
  64. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -1
  65. package/dist/src/cli/chat/hooks/useChatStatusSummary.js +3 -4
  66. package/dist/src/cli/chat/hooks/useChatStatusSummary.js.map +1 -1
  67. package/dist/src/cli/chat/hooks/useProjectApprovals.d.ts +2 -2
  68. package/dist/src/cli/chat/hooks/useProjectApprovals.d.ts.map +1 -1
  69. package/dist/src/cli/chat/hooks/useProjectApprovals.js +17 -8
  70. package/dist/src/cli/chat/hooks/useProjectApprovals.js.map +1 -1
  71. package/dist/src/cli/chat/state/local-commands.d.ts +1 -1
  72. package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
  73. package/dist/src/cli/chat/utils/format.d.ts +0 -1
  74. package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
  75. package/dist/src/cli/chat/utils/format.js +0 -1
  76. package/dist/src/cli/chat/utils/format.js.map +1 -1
  77. package/dist/src/cli/chat/utils/runtime.d.ts +2 -2
  78. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
  79. package/dist/src/cli/chat/utils/runtime.js +12 -12
  80. package/dist/src/cli/chat/utils/runtime.js.map +1 -1
  81. package/dist/src/cli/heartbeat/output.d.ts +2 -2
  82. package/dist/src/cli/heartbeat/output.d.ts.map +1 -1
  83. package/dist/src/cli/heartbeat/output.js +7 -5
  84. package/dist/src/cli/heartbeat/output.js.map +1 -1
  85. package/dist/src/cli/heartbeat/store.js +2 -2
  86. package/dist/src/cli/heartbeat/store.js.map +1 -1
  87. package/dist/src/cli/heartbeat/task-commands.js +42 -30
  88. package/dist/src/cli/heartbeat/task-commands.js.map +1 -1
  89. package/dist/src/cli/heartbeat/types.d.ts +1 -1
  90. package/dist/src/cli/heartbeat/types.d.ts.map +1 -1
  91. package/dist/src/cli/heartbeat/worker.d.ts.map +1 -1
  92. package/dist/src/cli/heartbeat/worker.js +26 -17
  93. package/dist/src/cli/heartbeat/worker.js.map +1 -1
  94. package/dist/src/cli/main.js +22 -19
  95. package/dist/src/cli/main.js.map +1 -1
  96. package/dist/src/cli/remote/control-plane-client.d.ts +10 -10
  97. package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
  98. package/dist/src/core/agent/constants.d.ts +4 -0
  99. package/dist/src/core/agent/constants.d.ts.map +1 -0
  100. package/dist/src/core/agent/constants.js +4 -0
  101. package/dist/src/core/agent/constants.js.map +1 -0
  102. package/dist/src/core/agent/context/index.d.ts +3 -0
  103. package/dist/src/core/agent/context/index.d.ts.map +1 -0
  104. package/dist/src/core/agent/context/index.js +2 -0
  105. package/dist/src/core/agent/context/index.js.map +1 -0
  106. package/dist/src/core/agent/context/run-context-builder.d.ts +11 -0
  107. package/dist/src/core/agent/context/run-context-builder.d.ts.map +1 -0
  108. package/dist/src/core/agent/context/run-context-builder.js +76 -0
  109. package/dist/src/core/agent/context/run-context-builder.js.map +1 -0
  110. package/dist/src/core/agent/context/types.d.ts +11 -0
  111. package/dist/src/core/agent/context/types.d.ts.map +1 -0
  112. package/dist/src/core/agent/context/types.js +2 -0
  113. package/dist/src/core/agent/context/types.js.map +1 -0
  114. package/dist/src/core/agent/finish/index.d.ts +3 -0
  115. package/dist/src/core/agent/finish/index.d.ts.map +1 -0
  116. package/dist/src/core/agent/finish/index.js +2 -0
  117. package/dist/src/core/agent/finish/index.js.map +1 -0
  118. package/dist/src/core/agent/finish/run-finisher.d.ts +16 -0
  119. package/dist/src/core/agent/finish/run-finisher.d.ts.map +1 -0
  120. package/dist/src/core/agent/finish/run-finisher.js +67 -0
  121. package/dist/src/core/agent/finish/run-finisher.js.map +1 -0
  122. package/dist/src/core/agent/finish/types.d.ts +23 -0
  123. package/dist/src/core/agent/finish/types.d.ts.map +1 -0
  124. package/dist/src/core/agent/finish/types.js +2 -0
  125. package/dist/src/core/agent/finish/types.js.map +1 -0
  126. package/dist/src/core/agent/history/history-sanitizer.d.ts +15 -0
  127. package/dist/src/core/agent/history/history-sanitizer.d.ts.map +1 -0
  128. package/dist/src/core/agent/history/history-sanitizer.js +40 -0
  129. package/dist/src/core/agent/history/history-sanitizer.js.map +1 -0
  130. package/dist/src/core/agent/history/index.d.ts +3 -0
  131. package/dist/src/core/agent/history/index.d.ts.map +1 -0
  132. package/dist/src/core/agent/history/index.js +2 -0
  133. package/dist/src/core/agent/history/index.js.map +1 -0
  134. package/dist/src/core/agent/history/types.d.ts +16 -0
  135. package/dist/src/core/agent/history/types.d.ts.map +1 -0
  136. package/dist/src/core/agent/history/types.js +2 -0
  137. package/dist/src/core/agent/history/types.js.map +1 -0
  138. package/dist/src/core/agent/index.d.ts +3 -0
  139. package/dist/src/core/agent/index.d.ts.map +1 -0
  140. package/dist/src/core/agent/index.js +2 -0
  141. package/dist/src/core/agent/index.js.map +1 -0
  142. package/dist/src/core/agent/memory/index.d.ts +3 -0
  143. package/dist/src/core/agent/memory/index.d.ts.map +1 -0
  144. package/dist/src/core/agent/memory/index.js +2 -0
  145. package/dist/src/core/agent/memory/index.js.map +1 -0
  146. package/dist/src/core/agent/memory/memory-checkpoint-tracker.d.ts +16 -0
  147. package/dist/src/core/agent/memory/memory-checkpoint-tracker.d.ts.map +1 -0
  148. package/dist/src/core/agent/memory/memory-checkpoint-tracker.js +92 -0
  149. package/dist/src/core/agent/memory/memory-checkpoint-tracker.js.map +1 -0
  150. package/dist/src/core/agent/memory/types.d.ts +13 -0
  151. package/dist/src/core/agent/memory/types.d.ts.map +1 -0
  152. package/dist/src/core/agent/memory/types.js +2 -0
  153. package/dist/src/core/agent/memory/types.js.map +1 -0
  154. package/dist/src/core/agent/model/index.d.ts +3 -0
  155. package/dist/src/core/agent/model/index.d.ts.map +1 -0
  156. package/dist/src/core/agent/model/index.js +2 -0
  157. package/dist/src/core/agent/model/index.js.map +1 -0
  158. package/dist/src/core/agent/model/model-turn-service.d.ts +12 -0
  159. package/dist/src/core/agent/model/model-turn-service.d.ts.map +1 -0
  160. package/dist/src/core/agent/model/model-turn-service.js +103 -0
  161. package/dist/src/core/agent/model/model-turn-service.js.map +1 -0
  162. package/dist/src/core/agent/model/types.d.ts +12 -0
  163. package/dist/src/core/agent/model/types.d.ts.map +1 -0
  164. package/dist/src/core/agent/model/types.js +2 -0
  165. package/dist/src/core/agent/model/types.js.map +1 -0
  166. package/dist/src/core/agent/mutation/index.d.ts +3 -0
  167. package/dist/src/core/agent/mutation/index.d.ts.map +1 -0
  168. package/dist/src/core/agent/mutation/index.js +2 -0
  169. package/dist/src/core/agent/mutation/index.js.map +1 -0
  170. package/dist/src/core/agent/mutation/mutation-tracker.d.ts +20 -0
  171. package/dist/src/core/agent/mutation/mutation-tracker.d.ts.map +1 -0
  172. package/dist/src/core/agent/mutation/mutation-tracker.js +75 -0
  173. package/dist/src/core/agent/mutation/mutation-tracker.js.map +1 -0
  174. package/dist/src/core/agent/mutation/types.d.ts +13 -0
  175. package/dist/src/core/agent/mutation/types.d.ts.map +1 -0
  176. package/dist/src/core/agent/mutation/types.js +2 -0
  177. package/dist/src/core/agent/mutation/types.js.map +1 -0
  178. package/dist/src/core/agent/planning/index.d.ts +3 -0
  179. package/dist/src/core/agent/planning/index.d.ts.map +1 -0
  180. package/dist/src/core/agent/planning/index.js +2 -0
  181. package/dist/src/core/agent/planning/index.js.map +1 -0
  182. package/dist/src/core/agent/planning/plan-state-parser.d.ts +9 -0
  183. package/dist/src/core/agent/planning/plan-state-parser.d.ts.map +1 -0
  184. package/dist/src/core/agent/planning/plan-state-parser.js +35 -0
  185. package/dist/src/core/agent/planning/plan-state-parser.js.map +1 -0
  186. package/dist/src/core/agent/planning/types.d.ts +7 -0
  187. package/dist/src/core/agent/planning/types.d.ts.map +1 -0
  188. package/dist/src/core/agent/planning/types.js +2 -0
  189. package/dist/src/core/agent/planning/types.js.map +1 -0
  190. package/dist/src/core/agent/service.d.ts +10 -0
  191. package/dist/src/core/agent/service.d.ts.map +1 -0
  192. package/dist/src/core/agent/service.js +44 -0
  193. package/dist/src/core/agent/service.js.map +1 -0
  194. package/dist/src/core/agent/tools/index.d.ts +4 -0
  195. package/dist/src/core/agent/tools/index.d.ts.map +1 -0
  196. package/dist/src/core/agent/tools/index.js +3 -0
  197. package/dist/src/core/agent/tools/index.js.map +1 -0
  198. package/dist/src/core/agent/tools/tool-dispatcher.d.ts +47 -0
  199. package/dist/src/core/agent/tools/tool-dispatcher.d.ts.map +1 -0
  200. package/dist/src/core/agent/tools/tool-dispatcher.js +123 -0
  201. package/dist/src/core/agent/tools/tool-dispatcher.js.map +1 -0
  202. package/dist/src/core/agent/tools/tool-turn-service.d.ts +13 -0
  203. package/dist/src/core/agent/tools/tool-turn-service.d.ts.map +1 -0
  204. package/dist/src/core/agent/tools/tool-turn-service.js +129 -0
  205. package/dist/src/core/agent/tools/tool-turn-service.js.map +1 -0
  206. package/dist/src/core/agent/tools/types.d.ts +19 -0
  207. package/dist/src/core/agent/tools/types.d.ts.map +1 -0
  208. package/dist/src/core/agent/tools/types.js +2 -0
  209. package/dist/src/core/agent/tools/types.js.map +1 -0
  210. package/dist/src/core/agent/types.d.ts +83 -0
  211. package/dist/src/core/agent/types.d.ts.map +1 -0
  212. package/dist/src/core/agent/types.js +2 -0
  213. package/dist/src/core/agent/types.js.map +1 -0
  214. package/dist/src/core/agent/utils/abort.d.ts +2 -0
  215. package/dist/src/core/agent/utils/abort.d.ts.map +1 -0
  216. package/dist/src/core/agent/utils/abort.js +9 -0
  217. package/dist/src/core/agent/utils/abort.js.map +1 -0
  218. package/dist/src/core/agent/utils/index.d.ts +4 -0
  219. package/dist/src/core/agent/utils/index.d.ts.map +1 -0
  220. package/dist/src/core/agent/utils/index.js +4 -0
  221. package/dist/src/core/agent/utils/index.js.map +1 -0
  222. package/dist/src/core/agent/utils/serialization.d.ts +2 -0
  223. package/dist/src/core/agent/utils/serialization.d.ts.map +1 -0
  224. package/dist/src/core/agent/utils/serialization.js +11 -0
  225. package/dist/src/core/agent/utils/serialization.js.map +1 -0
  226. package/dist/src/core/agent/utils/tool-input.d.ts +3 -0
  227. package/dist/src/core/agent/utils/tool-input.d.ts.map +1 -0
  228. package/dist/src/core/agent/{util.js → utils/tool-input.js} +1 -28
  229. package/dist/src/core/agent/utils/tool-input.js.map +1 -0
  230. package/dist/src/core/approvals/index.d.ts +5 -0
  231. package/dist/src/core/approvals/index.d.ts.map +1 -0
  232. package/dist/src/core/approvals/index.js +4 -0
  233. package/dist/src/core/approvals/index.js.map +1 -0
  234. package/dist/src/core/approvals/pending-approval.d.ts +17 -0
  235. package/dist/src/core/approvals/pending-approval.d.ts.map +1 -0
  236. package/dist/src/core/approvals/pending-approval.js +27 -0
  237. package/dist/src/core/approvals/pending-approval.js.map +1 -0
  238. package/dist/src/core/approvals/policies.d.ts +20 -0
  239. package/dist/src/core/approvals/policies.d.ts.map +1 -0
  240. package/dist/src/core/approvals/policies.js +56 -0
  241. package/dist/src/core/approvals/policies.js.map +1 -0
  242. package/dist/src/core/approvals/remembered-rules/codec.d.ts +17 -0
  243. package/dist/src/core/approvals/remembered-rules/codec.d.ts.map +1 -0
  244. package/dist/src/core/approvals/remembered-rules/codec.js +117 -0
  245. package/dist/src/core/approvals/remembered-rules/codec.js.map +1 -0
  246. package/dist/src/core/approvals/remembered-rules/index.d.ts +5 -0
  247. package/dist/src/core/approvals/remembered-rules/index.d.ts.map +1 -0
  248. package/dist/src/core/approvals/remembered-rules/index.js +4 -0
  249. package/dist/src/core/approvals/remembered-rules/index.js.map +1 -0
  250. package/dist/src/core/approvals/remembered-rules/repository.d.ts +11 -0
  251. package/dist/src/core/approvals/remembered-rules/repository.d.ts.map +1 -0
  252. package/dist/src/core/approvals/remembered-rules/repository.js +29 -0
  253. package/dist/src/core/approvals/remembered-rules/repository.js.map +1 -0
  254. package/dist/src/core/approvals/remembered-rules/schemas.d.ts +55 -0
  255. package/dist/src/core/approvals/remembered-rules/schemas.d.ts.map +1 -0
  256. package/dist/src/core/approvals/remembered-rules/schemas.js +24 -0
  257. package/dist/src/core/approvals/remembered-rules/schemas.js.map +1 -0
  258. package/dist/src/core/approvals/remembered-rules/service.d.ts +28 -0
  259. package/dist/src/core/approvals/remembered-rules/service.d.ts.map +1 -0
  260. package/dist/src/core/approvals/remembered-rules/service.js +200 -0
  261. package/dist/src/core/approvals/remembered-rules/service.js.map +1 -0
  262. package/dist/src/core/approvals/remembered-rules/types.d.ts +12 -0
  263. package/dist/src/core/approvals/remembered-rules/types.d.ts.map +1 -0
  264. package/dist/src/core/approvals/remembered-rules/types.js +2 -0
  265. package/dist/src/core/approvals/remembered-rules/types.js.map +1 -0
  266. package/dist/src/core/approvals/service.d.ts +13 -0
  267. package/dist/src/core/approvals/service.d.ts.map +1 -0
  268. package/dist/src/core/approvals/service.js +45 -0
  269. package/dist/src/core/approvals/service.js.map +1 -0
  270. package/dist/src/core/approvals/types.d.ts +24 -1
  271. package/dist/src/core/approvals/types.d.ts.map +1 -1
  272. package/dist/src/core/auth/index.d.ts +4 -0
  273. package/dist/src/core/auth/index.d.ts.map +1 -0
  274. package/dist/src/core/auth/index.js +3 -0
  275. package/dist/src/core/auth/index.js.map +1 -0
  276. package/dist/src/core/auth/openai-oauth.d.ts +41 -61
  277. package/dist/src/core/auth/openai-oauth.d.ts.map +1 -1
  278. package/dist/src/core/auth/openai-oauth.js +264 -258
  279. package/dist/src/core/auth/openai-oauth.js.map +1 -1
  280. package/dist/src/core/auth/provider-credentials.d.ts +23 -51
  281. package/dist/src/core/auth/provider-credentials.d.ts.map +1 -1
  282. package/dist/src/core/auth/provider-credentials.js +69 -134
  283. package/dist/src/core/auth/provider-credentials.js.map +1 -1
  284. package/dist/src/core/auth/schemas.d.ts +54 -0
  285. package/dist/src/core/auth/schemas.d.ts.map +1 -0
  286. package/dist/src/core/auth/schemas.js +63 -0
  287. package/dist/src/core/auth/schemas.js.map +1 -0
  288. package/dist/src/core/auth/types.d.ts +80 -0
  289. package/dist/src/core/auth/types.d.ts.map +1 -0
  290. package/dist/src/core/auth/types.js +2 -0
  291. package/dist/src/core/auth/types.js.map +1 -0
  292. package/dist/src/core/chat/engine/compaction/service.js +2 -2
  293. package/dist/src/core/chat/engine/compaction/service.js.map +1 -1
  294. package/dist/src/core/chat/engine/compaction/summarizer/service.d.ts.map +1 -1
  295. package/dist/src/core/chat/engine/compaction/summarizer/service.js +12 -9
  296. package/dist/src/core/chat/engine/compaction/summarizer/service.js.map +1 -1
  297. package/dist/src/core/chat/engine/compaction/transcript-renderer.js +2 -2
  298. package/dist/src/core/chat/engine/compaction/transcript-renderer.js.map +1 -1
  299. package/dist/src/core/chat/engine/compaction/types.d.ts +1 -1
  300. package/dist/src/core/chat/engine/compaction/types.d.ts.map +1 -1
  301. package/dist/src/core/chat/engine/config.d.ts +2 -2
  302. package/dist/src/core/chat/engine/config.d.ts.map +1 -1
  303. package/dist/src/core/chat/engine/sessions/preferences/service.js +3 -3
  304. package/dist/src/core/chat/engine/sessions/preferences/service.js.map +1 -1
  305. package/dist/src/core/chat/engine/sessions/records/records.js +3 -3
  306. package/dist/src/core/chat/engine/sessions/records/records.js.map +1 -1
  307. package/dist/src/core/chat/engine/sessions/records/types.d.ts +2 -2
  308. package/dist/src/core/chat/engine/sessions/records/types.d.ts.map +1 -1
  309. package/dist/src/core/chat/engine/turns/context/turn-context-builder.js +2 -2
  310. package/dist/src/core/chat/engine/turns/context/turn-context-builder.js.map +1 -1
  311. package/dist/src/core/chat/engine/turns/host/host-normalizer.d.ts.map +1 -1
  312. package/dist/src/core/chat/engine/turns/host/host-normalizer.js +4 -4
  313. package/dist/src/core/chat/engine/turns/host/host-normalizer.js.map +1 -1
  314. package/dist/src/core/chat/engine/turns/host/types.d.ts +2 -2
  315. package/dist/src/core/chat/engine/turns/host/types.d.ts.map +1 -1
  316. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.d.ts +1 -1
  317. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.js +2 -2
  318. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.js.map +1 -1
  319. package/dist/src/core/chat/engine/turns/memory/types.d.ts +2 -2
  320. package/dist/src/core/chat/engine/turns/memory/types.d.ts.map +1 -1
  321. package/dist/src/core/chat/engine/turns/persistence/types.d.ts +5 -5
  322. package/dist/src/core/chat/engine/turns/persistence/types.d.ts.map +1 -1
  323. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.d.ts.map +1 -1
  324. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js +15 -12
  325. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js.map +1 -1
  326. package/dist/src/core/chat/engine/turns/runtime/types.d.ts +1 -1
  327. package/dist/src/core/chat/engine/turns/runtime/types.d.ts.map +1 -1
  328. package/dist/src/core/chat/engine/turns/service.js +2 -2
  329. package/dist/src/core/chat/engine/turns/service.js.map +1 -1
  330. package/dist/src/core/chat/engine/turns/types.d.ts +6 -7
  331. package/dist/src/core/chat/engine/turns/types.d.ts.map +1 -1
  332. package/dist/src/core/chat/engine/types.d.ts +5 -6
  333. package/dist/src/core/chat/engine/types.d.ts.map +1 -1
  334. package/dist/src/core/commands/slash/modules/context.d.ts +2 -2
  335. package/dist/src/core/commands/slash/modules/context.d.ts.map +1 -1
  336. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.d.ts +1 -1
  337. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.d.ts.map +1 -1
  338. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js +20 -18
  339. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js.map +1 -1
  340. package/dist/src/core/commands/slash/modules/model/model-commands.d.ts.map +1 -1
  341. package/dist/src/core/commands/slash/modules/model/model-commands.js +6 -7
  342. package/dist/src/core/commands/slash/modules/model/model-commands.js.map +1 -1
  343. package/dist/src/core/heartbeat/checkpoint/index.d.ts +4 -0
  344. package/dist/src/core/heartbeat/checkpoint/index.d.ts.map +1 -0
  345. package/dist/src/core/heartbeat/checkpoint/index.js +3 -0
  346. package/dist/src/core/heartbeat/checkpoint/index.js.map +1 -0
  347. package/dist/src/core/heartbeat/checkpoint/repository.d.ts +9 -0
  348. package/dist/src/core/heartbeat/checkpoint/repository.d.ts.map +1 -0
  349. package/dist/src/core/heartbeat/checkpoint/repository.js +33 -0
  350. package/dist/src/core/heartbeat/checkpoint/repository.js.map +1 -0
  351. package/dist/src/core/heartbeat/checkpoint/service.d.ts +5 -0
  352. package/dist/src/core/heartbeat/checkpoint/service.d.ts.map +1 -0
  353. package/dist/src/core/heartbeat/checkpoint/service.js +24 -0
  354. package/dist/src/core/heartbeat/checkpoint/service.js.map +1 -0
  355. package/dist/src/core/heartbeat/checkpoint/types.d.ts +17 -0
  356. package/dist/src/core/heartbeat/checkpoint/types.d.ts.map +1 -0
  357. package/dist/src/core/heartbeat/checkpoint/types.js +2 -0
  358. package/dist/src/core/heartbeat/checkpoint/types.js.map +1 -0
  359. package/dist/src/core/heartbeat/index.d.ts +11 -0
  360. package/dist/src/core/heartbeat/index.d.ts.map +1 -0
  361. package/dist/src/core/heartbeat/index.js +6 -0
  362. package/dist/src/core/heartbeat/index.js.map +1 -0
  363. package/dist/src/core/heartbeat/scheduler/index.d.ts +4 -0
  364. package/dist/src/core/heartbeat/scheduler/index.d.ts.map +1 -0
  365. package/dist/src/core/heartbeat/scheduler/index.js +3 -0
  366. package/dist/src/core/heartbeat/scheduler/index.js.map +1 -0
  367. package/dist/src/core/heartbeat/scheduler/runner.d.ts +19 -0
  368. package/dist/src/core/heartbeat/scheduler/runner.d.ts.map +1 -0
  369. package/dist/src/core/heartbeat/scheduler/runner.js +16 -0
  370. package/dist/src/core/heartbeat/scheduler/runner.js.map +1 -0
  371. package/dist/src/core/heartbeat/scheduler/service.d.ts +8 -0
  372. package/dist/src/core/heartbeat/scheduler/service.d.ts.map +1 -0
  373. package/dist/src/core/heartbeat/scheduler/service.js +125 -0
  374. package/dist/src/core/heartbeat/scheduler/service.js.map +1 -0
  375. package/dist/src/core/{runtime/heartbeat-scheduler.d.ts → heartbeat/scheduler/types.d.ts} +5 -18
  376. package/dist/src/core/heartbeat/scheduler/types.d.ts.map +1 -0
  377. package/dist/src/core/heartbeat/scheduler/types.js +2 -0
  378. package/dist/src/core/heartbeat/scheduler/types.js.map +1 -0
  379. package/dist/src/core/heartbeat/tasks/index.d.ts +4 -0
  380. package/dist/src/core/heartbeat/tasks/index.d.ts.map +1 -0
  381. package/dist/src/core/heartbeat/tasks/index.js +3 -0
  382. package/dist/src/core/heartbeat/tasks/index.js.map +1 -0
  383. package/dist/src/core/heartbeat/tasks/repository.d.ts +24 -0
  384. package/dist/src/core/heartbeat/tasks/repository.d.ts.map +1 -0
  385. package/dist/src/core/heartbeat/tasks/repository.js +116 -0
  386. package/dist/src/core/heartbeat/tasks/repository.js.map +1 -0
  387. package/dist/src/core/heartbeat/tasks/schemas.d.ts +212 -0
  388. package/dist/src/core/heartbeat/tasks/schemas.d.ts.map +1 -0
  389. package/dist/src/core/heartbeat/tasks/schemas.js +78 -0
  390. package/dist/src/core/heartbeat/tasks/schemas.js.map +1 -0
  391. package/dist/src/core/heartbeat/tasks/task-state.d.ts +33 -0
  392. package/dist/src/core/heartbeat/tasks/task-state.d.ts.map +1 -0
  393. package/dist/src/core/heartbeat/tasks/task-state.js +122 -0
  394. package/dist/src/core/heartbeat/tasks/task-state.js.map +1 -0
  395. package/dist/src/core/{runtime/heartbeat-task-store.d.ts → heartbeat/tasks/types.d.ts} +24 -29
  396. package/dist/src/core/heartbeat/tasks/types.d.ts.map +1 -0
  397. package/dist/src/core/heartbeat/tasks/types.js +2 -0
  398. package/dist/src/core/heartbeat/tasks/types.js.map +1 -0
  399. package/dist/src/core/heartbeat/views/index.d.ts +4 -0
  400. package/dist/src/core/heartbeat/views/index.d.ts.map +1 -0
  401. package/dist/src/core/heartbeat/views/index.js +3 -0
  402. package/dist/src/core/heartbeat/views/index.js.map +1 -0
  403. package/dist/src/core/heartbeat/views/lucid-presenter.d.ts +20 -0
  404. package/dist/src/core/heartbeat/views/lucid-presenter.d.ts.map +1 -0
  405. package/dist/src/core/heartbeat/views/lucid-presenter.js +112 -0
  406. package/dist/src/core/heartbeat/views/lucid-presenter.js.map +1 -0
  407. package/dist/src/core/heartbeat/views/presenter.d.ts +22 -0
  408. package/dist/src/core/heartbeat/views/presenter.d.ts.map +1 -0
  409. package/dist/src/core/heartbeat/views/presenter.js +50 -0
  410. package/dist/src/core/heartbeat/views/presenter.js.map +1 -0
  411. package/dist/src/core/{runtime/heartbeat-lucid.d.ts → heartbeat/views/types.d.ts} +24 -8
  412. package/dist/src/core/heartbeat/views/types.d.ts.map +1 -0
  413. package/dist/src/core/heartbeat/views/types.js +2 -0
  414. package/dist/src/core/heartbeat/views/types.js.map +1 -0
  415. package/dist/src/core/heartbeat/wake/decision.d.ts +13 -0
  416. package/dist/src/core/heartbeat/wake/decision.d.ts.map +1 -0
  417. package/dist/src/core/heartbeat/wake/decision.js +24 -0
  418. package/dist/src/core/heartbeat/wake/decision.js.map +1 -0
  419. package/dist/src/core/heartbeat/wake/index.d.ts +5 -0
  420. package/dist/src/core/heartbeat/wake/index.d.ts.map +1 -0
  421. package/dist/src/core/heartbeat/wake/index.js +4 -0
  422. package/dist/src/core/heartbeat/wake/index.js.map +1 -0
  423. package/dist/src/core/heartbeat/wake/prompt.d.ts +11 -0
  424. package/dist/src/core/heartbeat/wake/prompt.d.ts.map +1 -0
  425. package/dist/src/core/heartbeat/wake/prompt.js +39 -0
  426. package/dist/src/core/heartbeat/wake/prompt.js.map +1 -0
  427. package/dist/src/core/heartbeat/wake/service.d.ts +6 -0
  428. package/dist/src/core/heartbeat/wake/service.d.ts.map +1 -0
  429. package/dist/src/core/heartbeat/wake/service.js +75 -0
  430. package/dist/src/core/heartbeat/wake/service.js.map +1 -0
  431. package/dist/src/core/heartbeat/wake/types.d.ts +33 -0
  432. package/dist/src/core/heartbeat/wake/types.d.ts.map +1 -0
  433. package/dist/src/core/heartbeat/wake/types.js +2 -0
  434. package/dist/src/core/heartbeat/wake/types.js.map +1 -0
  435. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.d.ts +21 -0
  436. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.d.ts.map +1 -0
  437. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.js +66 -0
  438. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.js.map +1 -0
  439. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.d.ts +16 -0
  440. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.d.ts.map +1 -0
  441. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.js +64 -0
  442. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.js.map +1 -0
  443. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.d.ts +17 -0
  444. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.d.ts.map +1 -0
  445. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.js +20 -0
  446. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.js.map +1 -0
  447. package/dist/src/core/llm/adapters/anthropic/index.d.ts +4 -0
  448. package/dist/src/core/llm/adapters/anthropic/index.d.ts.map +1 -0
  449. package/dist/src/core/llm/adapters/anthropic/index.js +3 -0
  450. package/dist/src/core/llm/adapters/anthropic/index.js.map +1 -0
  451. package/dist/src/core/llm/adapters/openai/index.d.ts +4 -0
  452. package/dist/src/core/llm/adapters/openai/index.d.ts.map +1 -0
  453. package/dist/src/core/llm/adapters/openai/index.js +3 -0
  454. package/dist/src/core/llm/adapters/openai/index.js.map +1 -0
  455. package/dist/src/core/llm/adapters/openai/openai-adapter.d.ts +53 -0
  456. package/dist/src/core/llm/adapters/openai/openai-adapter.d.ts.map +1 -0
  457. package/dist/src/core/llm/adapters/openai/openai-adapter.js +266 -0
  458. package/dist/src/core/llm/adapters/openai/openai-adapter.js.map +1 -0
  459. package/dist/src/core/llm/adapters/openai/openai-codec.d.ts +41 -0
  460. package/dist/src/core/llm/adapters/openai/openai-codec.d.ts.map +1 -0
  461. package/dist/src/core/llm/adapters/openai/openai-codec.js +169 -0
  462. package/dist/src/core/llm/adapters/openai/openai-codec.js.map +1 -0
  463. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.d.ts +17 -0
  464. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.d.ts.map +1 -0
  465. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.js +20 -0
  466. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.js.map +1 -0
  467. package/dist/src/core/llm/index.d.ts +9 -0
  468. package/dist/src/core/llm/index.d.ts.map +1 -0
  469. package/dist/src/core/llm/index.js +5 -0
  470. package/dist/src/core/llm/index.js.map +1 -0
  471. package/dist/src/core/llm/models/index.d.ts +5 -0
  472. package/dist/src/core/llm/models/index.d.ts.map +1 -0
  473. package/dist/src/core/llm/models/index.js +3 -0
  474. package/dist/src/core/llm/models/index.js.map +1 -0
  475. package/dist/src/core/llm/models/model-catalog.d.ts +23 -0
  476. package/dist/src/core/llm/models/model-catalog.d.ts.map +1 -0
  477. package/dist/src/core/llm/models/model-catalog.js +132 -0
  478. package/dist/src/core/llm/models/model-catalog.js.map +1 -0
  479. package/dist/src/core/llm/models/model-policy-service.d.ts +70 -0
  480. package/dist/src/core/llm/models/model-policy-service.d.ts.map +1 -0
  481. package/dist/src/core/llm/models/model-policy-service.js +137 -0
  482. package/dist/src/core/llm/models/model-policy-service.js.map +1 -0
  483. package/dist/src/core/llm/registry/builtin-llm-providers.d.ts +5 -0
  484. package/dist/src/core/llm/registry/builtin-llm-providers.d.ts.map +1 -0
  485. package/dist/src/core/llm/registry/builtin-llm-providers.js +16 -0
  486. package/dist/src/core/llm/registry/builtin-llm-providers.js.map +1 -0
  487. package/dist/src/core/llm/registry/index.d.ts +5 -0
  488. package/dist/src/core/llm/registry/index.d.ts.map +1 -0
  489. package/dist/src/core/llm/registry/index.js +4 -0
  490. package/dist/src/core/llm/registry/index.js.map +1 -0
  491. package/dist/src/core/llm/registry/llm-provider-registry.d.ts +17 -0
  492. package/dist/src/core/llm/registry/llm-provider-registry.d.ts.map +1 -0
  493. package/dist/src/core/llm/registry/llm-provider-registry.js +51 -0
  494. package/dist/src/core/llm/registry/llm-provider-registry.js.map +1 -0
  495. package/dist/src/core/llm/registry/provider-inference.d.ts +18 -0
  496. package/dist/src/core/llm/registry/provider-inference.d.ts.map +1 -0
  497. package/dist/src/core/llm/registry/provider-inference.js +41 -0
  498. package/dist/src/core/llm/registry/provider-inference.js.map +1 -0
  499. package/dist/src/core/llm/registry/types.d.ts +16 -0
  500. package/dist/src/core/llm/registry/types.d.ts.map +1 -0
  501. package/dist/src/core/llm/registry/types.js +2 -0
  502. package/dist/src/core/llm/registry/types.js.map +1 -0
  503. package/dist/src/core/llm/service.d.ts +15 -0
  504. package/dist/src/core/llm/service.d.ts.map +1 -0
  505. package/dist/src/core/llm/service.js +44 -0
  506. package/dist/src/core/llm/service.js.map +1 -0
  507. package/dist/src/core/llm/types.d.ts +18 -1
  508. package/dist/src/core/llm/types.d.ts.map +1 -1
  509. package/dist/src/core/memory/maintainer.js +2 -2
  510. package/dist/src/core/memory/maintainer.js.map +1 -1
  511. package/dist/src/core/observability/activity/conversation-activity-projector.d.ts +24 -0
  512. package/dist/src/core/observability/activity/conversation-activity-projector.d.ts.map +1 -0
  513. package/dist/src/core/observability/activity/conversation-activity-projector.js +146 -0
  514. package/dist/src/core/observability/activity/conversation-activity-projector.js.map +1 -0
  515. package/dist/src/core/observability/activity/index.d.ts +4 -0
  516. package/dist/src/core/observability/activity/index.d.ts.map +1 -0
  517. package/dist/src/core/observability/activity/index.js +3 -0
  518. package/dist/src/core/observability/activity/index.js.map +1 -0
  519. package/dist/src/core/observability/activity/tool-activity-summarizer.d.ts +15 -0
  520. package/dist/src/core/observability/activity/tool-activity-summarizer.d.ts.map +1 -0
  521. package/dist/src/core/observability/activity/tool-activity-summarizer.js +92 -0
  522. package/dist/src/core/observability/activity/tool-activity-summarizer.js.map +1 -0
  523. package/dist/src/core/observability/activity/types.d.ts +87 -0
  524. package/dist/src/core/observability/activity/types.d.ts.map +1 -0
  525. package/dist/src/core/observability/activity/types.js +2 -0
  526. package/dist/src/core/observability/activity/types.js.map +1 -0
  527. package/dist/src/core/observability/index.d.ts +6 -0
  528. package/dist/src/core/observability/index.d.ts.map +1 -0
  529. package/dist/src/core/observability/index.js +4 -0
  530. package/dist/src/core/observability/index.js.map +1 -0
  531. package/dist/src/core/observability/semantics/index.d.ts +2 -0
  532. package/dist/src/core/observability/semantics/index.d.ts.map +1 -0
  533. package/dist/src/core/observability/semantics/index.js +2 -0
  534. package/dist/src/core/observability/semantics/index.js.map +1 -0
  535. package/dist/src/core/observability/{semantic-conventions.d.ts → semantics/trace-semantics.d.ts} +1 -1
  536. package/dist/src/core/observability/semantics/trace-semantics.d.ts.map +1 -0
  537. package/dist/src/core/observability/{semantic-conventions.js → semantics/trace-semantics.js} +1 -1
  538. package/dist/src/core/observability/semantics/trace-semantics.js.map +1 -0
  539. package/dist/src/core/observability/summaries/default-trace-summarizers.d.ts +3 -0
  540. package/dist/src/core/observability/summaries/default-trace-summarizers.d.ts.map +1 -0
  541. package/dist/src/core/observability/summaries/default-trace-summarizers.js +29 -0
  542. package/dist/src/core/observability/summaries/default-trace-summarizers.js.map +1 -0
  543. package/dist/src/core/observability/summaries/index.d.ts +4 -0
  544. package/dist/src/core/observability/summaries/index.d.ts.map +1 -0
  545. package/dist/src/core/observability/summaries/index.js +3 -0
  546. package/dist/src/core/observability/summaries/index.js.map +1 -0
  547. package/dist/src/core/observability/summaries/trace-summary-service.d.ts +17 -0
  548. package/dist/src/core/observability/summaries/trace-summary-service.d.ts.map +1 -0
  549. package/dist/src/core/observability/summaries/trace-summary-service.js +32 -0
  550. package/dist/src/core/observability/summaries/trace-summary-service.js.map +1 -0
  551. package/dist/src/core/observability/summaries/types.d.ts +15 -0
  552. package/dist/src/core/observability/summaries/types.d.ts.map +1 -0
  553. package/dist/src/core/observability/summaries/types.js +2 -0
  554. package/dist/src/core/observability/summaries/types.js.map +1 -0
  555. package/dist/src/core/runtime/credentials/index.d.ts +3 -0
  556. package/dist/src/core/runtime/credentials/index.d.ts.map +1 -0
  557. package/dist/src/core/runtime/credentials/index.js +2 -0
  558. package/dist/src/core/runtime/credentials/index.js.map +1 -0
  559. package/dist/src/core/runtime/credentials/service.d.ts +22 -0
  560. package/dist/src/core/runtime/credentials/service.d.ts.map +1 -0
  561. package/dist/src/core/runtime/credentials/service.js +85 -0
  562. package/dist/src/core/runtime/credentials/service.js.map +1 -0
  563. package/dist/src/core/runtime/credentials/types.d.ts +22 -0
  564. package/dist/src/core/runtime/credentials/types.d.ts.map +1 -0
  565. package/dist/src/core/runtime/credentials/types.js +2 -0
  566. package/dist/src/core/runtime/credentials/types.js.map +1 -0
  567. package/dist/src/core/runtime/daemon/host-resolver.d.ts +7 -0
  568. package/dist/src/core/runtime/daemon/host-resolver.d.ts.map +1 -0
  569. package/dist/src/core/runtime/daemon/host-resolver.js +61 -0
  570. package/dist/src/core/runtime/daemon/host-resolver.js.map +1 -0
  571. package/dist/src/core/runtime/daemon/index.d.ts +6 -0
  572. package/dist/src/core/runtime/daemon/index.d.ts.map +1 -0
  573. package/dist/src/core/runtime/daemon/index.js +5 -0
  574. package/dist/src/core/runtime/daemon/index.js.map +1 -0
  575. package/dist/src/core/runtime/daemon/messages.d.ts +13 -0
  576. package/dist/src/core/runtime/daemon/messages.d.ts.map +1 -0
  577. package/dist/src/core/runtime/daemon/messages.js +43 -0
  578. package/dist/src/core/runtime/daemon/messages.js.map +1 -0
  579. package/dist/src/core/runtime/daemon/registry-repository.d.ts +12 -0
  580. package/dist/src/core/runtime/daemon/registry-repository.d.ts.map +1 -0
  581. package/dist/src/core/runtime/daemon/registry-repository.js +33 -0
  582. package/dist/src/core/runtime/daemon/registry-repository.js.map +1 -0
  583. package/dist/src/core/runtime/daemon/registry-service.d.ts +16 -0
  584. package/dist/src/core/runtime/daemon/registry-service.d.ts.map +1 -0
  585. package/dist/src/core/runtime/daemon/registry-service.js +141 -0
  586. package/dist/src/core/runtime/daemon/registry-service.js.map +1 -0
  587. package/dist/src/core/runtime/daemon/schemas.d.ts +96 -0
  588. package/dist/src/core/runtime/daemon/schemas.d.ts.map +1 -0
  589. package/dist/src/core/runtime/daemon/schemas.js +36 -0
  590. package/dist/src/core/runtime/daemon/schemas.js.map +1 -0
  591. package/dist/src/core/runtime/daemon/types.d.ts +66 -0
  592. package/dist/src/core/runtime/daemon/types.d.ts.map +1 -0
  593. package/dist/src/core/runtime/daemon/types.js +2 -0
  594. package/dist/src/core/runtime/daemon/types.js.map +1 -0
  595. package/dist/src/core/runtime/loop/checkpoint.d.ts +33 -0
  596. package/dist/src/core/runtime/loop/checkpoint.d.ts.map +1 -0
  597. package/dist/src/core/runtime/loop/checkpoint.js +69 -0
  598. package/dist/src/core/runtime/loop/checkpoint.js.map +1 -0
  599. package/dist/src/core/runtime/loop/index.d.ts +4 -0
  600. package/dist/src/core/runtime/loop/index.d.ts.map +1 -0
  601. package/dist/src/core/runtime/loop/index.js +3 -0
  602. package/dist/src/core/runtime/loop/index.js.map +1 -0
  603. package/dist/src/core/runtime/loop/service.d.ts +11 -0
  604. package/dist/src/core/runtime/loop/service.d.ts.map +1 -0
  605. package/dist/src/core/runtime/loop/service.js +187 -0
  606. package/dist/src/core/runtime/loop/service.js.map +1 -0
  607. package/dist/src/core/runtime/{events.d.ts → loop/types.d.ts} +38 -38
  608. package/dist/src/core/runtime/loop/types.d.ts.map +1 -0
  609. package/dist/src/core/runtime/loop/types.js +2 -0
  610. package/dist/src/core/runtime/loop/types.js.map +1 -0
  611. package/dist/src/core/runtime/tools/index.d.ts +3 -0
  612. package/dist/src/core/runtime/tools/index.d.ts.map +1 -0
  613. package/dist/src/core/runtime/tools/index.js +2 -0
  614. package/dist/src/core/runtime/tools/index.js.map +1 -0
  615. package/dist/src/core/runtime/tools/service.d.ts +11 -0
  616. package/dist/src/core/runtime/tools/service.d.ts.map +1 -0
  617. package/dist/src/core/runtime/tools/service.js +54 -0
  618. package/dist/src/core/runtime/tools/service.js.map +1 -0
  619. package/dist/src/core/runtime/{default-tools.d.ts → tools/types.d.ts} +2 -4
  620. package/dist/src/core/runtime/tools/types.d.ts.map +1 -0
  621. package/dist/src/core/runtime/tools/types.js +2 -0
  622. package/dist/src/core/runtime/tools/types.js.map +1 -0
  623. package/dist/src/core/runtime/workspaces/index.d.ts +5 -0
  624. package/dist/src/core/runtime/workspaces/index.d.ts.map +1 -0
  625. package/dist/src/core/runtime/workspaces/index.js +4 -0
  626. package/dist/src/core/runtime/workspaces/index.js.map +1 -0
  627. package/dist/src/core/runtime/workspaces/repository.d.ts +14 -0
  628. package/dist/src/core/runtime/workspaces/repository.d.ts.map +1 -0
  629. package/dist/src/core/runtime/workspaces/repository.js +38 -0
  630. package/dist/src/core/runtime/workspaces/repository.js.map +1 -0
  631. package/dist/src/core/runtime/workspaces/schemas.d.ts +42 -0
  632. package/dist/src/core/runtime/workspaces/schemas.d.ts.map +1 -0
  633. package/dist/src/core/runtime/workspaces/schemas.js +26 -0
  634. package/dist/src/core/runtime/workspaces/schemas.js.map +1 -0
  635. package/dist/src/core/runtime/workspaces/service.d.ts +15 -0
  636. package/dist/src/core/runtime/workspaces/service.d.ts.map +1 -0
  637. package/dist/src/core/runtime/workspaces/service.js +177 -0
  638. package/dist/src/core/runtime/workspaces/service.js.map +1 -0
  639. package/dist/src/core/runtime/workspaces/types.d.ts +42 -0
  640. package/dist/src/core/runtime/workspaces/types.d.ts.map +1 -0
  641. package/dist/src/core/runtime/workspaces/types.js +2 -0
  642. package/dist/src/core/runtime/workspaces/types.js.map +1 -0
  643. package/dist/src/core/tools/toolkit.d.ts +1 -1
  644. package/dist/src/core/tools/toolkit.d.ts.map +1 -1
  645. package/dist/src/core/tools/toolkits/external-context/view-image.d.ts +1 -1
  646. package/dist/src/core/tools/toolkits/external-context/view-image.d.ts.map +1 -1
  647. package/dist/src/core/tools/toolkits/external-context/view-image.js +17 -11
  648. package/dist/src/core/tools/toolkits/external-context/view-image.js.map +1 -1
  649. package/dist/src/core/tools/toolkits/external-context/web-search.d.ts +1 -1
  650. package/dist/src/core/tools/toolkits/external-context/web-search.d.ts.map +1 -1
  651. package/dist/src/core/tools/toolkits/external-context/web-search.js +17 -11
  652. package/dist/src/core/tools/toolkits/external-context/web-search.js.map +1 -1
  653. package/dist/src/core/types.d.ts +1 -1
  654. package/dist/src/index.d.ts +32 -40
  655. package/dist/src/index.d.ts.map +1 -1
  656. package/dist/src/index.js +16 -21
  657. package/dist/src/index.js.map +1 -1
  658. package/dist/src/integrations/cyberloop.d.ts +5 -4
  659. package/dist/src/integrations/cyberloop.d.ts.map +1 -1
  660. package/dist/src/integrations/cyberloop.js.map +1 -1
  661. package/dist/src/server/app.js +5 -5
  662. package/dist/src/server/app.js.map +1 -1
  663. package/dist/src/server/features/control-plane/controllers/ask.d.ts.map +1 -1
  664. package/dist/src/server/features/control-plane/controllers/ask.js +7 -4
  665. package/dist/src/server/features/control-plane/controllers/ask.js.map +1 -1
  666. package/dist/src/server/features/control-plane/controllers/chat-session-events.d.ts +1 -1
  667. package/dist/src/server/features/control-plane/controllers/chat-session-events.d.ts.map +1 -1
  668. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.d.ts.map +1 -1
  669. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js +11 -11
  670. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js.map +1 -1
  671. package/dist/src/server/features/control-plane/controllers/control-plane-state.js +7 -7
  672. package/dist/src/server/features/control-plane/controllers/control-plane-state.js.map +1 -1
  673. package/dist/src/server/features/control-plane/controllers/heartbeat.d.ts +6 -5
  674. package/dist/src/server/features/control-plane/controllers/heartbeat.d.ts.map +1 -1
  675. package/dist/src/server/features/control-plane/controllers/heartbeat.js +31 -19
  676. package/dist/src/server/features/control-plane/controllers/heartbeat.js.map +1 -1
  677. package/dist/src/server/features/control-plane/router.d.ts +7 -7
  678. package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
  679. package/dist/src/server/features/control-plane/router.js +13 -14
  680. package/dist/src/server/features/control-plane/router.js.map +1 -1
  681. package/dist/src/server/features/control-plane/types.d.ts +5 -5
  682. package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
  683. package/dist/src/server/index.d.ts.map +1 -1
  684. package/dist/src/server/index.js +7 -7
  685. package/dist/src/server/index.js.map +1 -1
  686. package/dist/src/server/router.d.ts +9 -9
  687. package/dist/src/server/types.d.ts +2 -2
  688. package/dist/src/server/types.d.ts.map +1 -1
  689. package/dist/src/web/assets/{MonacoDiffViewer-F3AOHIps.js → MonacoDiffViewer-D_Fh9ndN.js} +1 -1
  690. package/dist/src/web/assets/index-B1wQ0pS4.js +87 -0
  691. package/dist/src/web/index.html +1 -1
  692. package/package.json +1 -1
  693. package/dist/src/cli/chat/state/approval-rules.d.ts +0 -3
  694. package/dist/src/cli/chat/state/approval-rules.d.ts.map +0 -1
  695. package/dist/src/cli/chat/state/approval-rules.js +0 -2
  696. package/dist/src/cli/chat/state/approval-rules.js.map +0 -1
  697. package/dist/src/core/agent/history.d.ts +0 -3
  698. package/dist/src/core/agent/history.d.ts.map +0 -1
  699. package/dist/src/core/agent/history.js +0 -36
  700. package/dist/src/core/agent/history.js.map +0 -1
  701. package/dist/src/core/agent/mutation-tracking.d.ts +0 -13
  702. package/dist/src/core/agent/mutation-tracking.d.ts.map +0 -1
  703. package/dist/src/core/agent/mutation-tracking.js +0 -71
  704. package/dist/src/core/agent/mutation-tracking.js.map +0 -1
  705. package/dist/src/core/agent/post-mutation.d.ts +0 -8
  706. package/dist/src/core/agent/post-mutation.d.ts.map +0 -1
  707. package/dist/src/core/agent/post-mutation.js +0 -9
  708. package/dist/src/core/agent/post-mutation.js.map +0 -1
  709. package/dist/src/core/agent/progress-reminders.d.ts +0 -10
  710. package/dist/src/core/agent/progress-reminders.d.ts.map +0 -1
  711. package/dist/src/core/agent/progress-reminders.js +0 -13
  712. package/dist/src/core/agent/progress-reminders.js.map +0 -1
  713. package/dist/src/core/agent/run-agent.d.ts +0 -41
  714. package/dist/src/core/agent/run-agent.d.ts.map +0 -1
  715. package/dist/src/core/agent/run-agent.js +0 -490
  716. package/dist/src/core/agent/run-agent.js.map +0 -1
  717. package/dist/src/core/agent/tool-dispatch.d.ts +0 -36
  718. package/dist/src/core/agent/tool-dispatch.d.ts.map +0 -1
  719. package/dist/src/core/agent/tool-dispatch.js +0 -120
  720. package/dist/src/core/agent/tool-dispatch.js.map +0 -1
  721. package/dist/src/core/agent/util.d.ts +0 -6
  722. package/dist/src/core/agent/util.d.ts.map +0 -1
  723. package/dist/src/core/agent/util.js.map +0 -1
  724. package/dist/src/core/approvals/default-policies.d.ts +0 -10
  725. package/dist/src/core/approvals/default-policies.d.ts.map +0 -1
  726. package/dist/src/core/approvals/default-policies.js +0 -37
  727. package/dist/src/core/approvals/default-policies.js.map +0 -1
  728. package/dist/src/core/approvals/policy-chain.d.ts +0 -9
  729. package/dist/src/core/approvals/policy-chain.d.ts.map +0 -1
  730. package/dist/src/core/approvals/policy-chain.js +0 -36
  731. package/dist/src/core/approvals/policy-chain.js.map +0 -1
  732. package/dist/src/core/approvals/remembered-rules.d.ts +0 -22
  733. package/dist/src/core/approvals/remembered-rules.d.ts.map +0 -1
  734. package/dist/src/core/approvals/remembered-rules.js +0 -284
  735. package/dist/src/core/approvals/remembered-rules.js.map +0 -1
  736. package/dist/src/core/approvals/surface.d.ts +0 -20
  737. package/dist/src/core/approvals/surface.d.ts.map +0 -1
  738. package/dist/src/core/approvals/surface.js +0 -22
  739. package/dist/src/core/approvals/surface.js.map +0 -1
  740. package/dist/src/core/llm/anthropic.d.ts +0 -7
  741. package/dist/src/core/llm/anthropic.d.ts.map +0 -1
  742. package/dist/src/core/llm/anthropic.js +0 -115
  743. package/dist/src/core/llm/anthropic.js.map +0 -1
  744. package/dist/src/core/llm/factory.d.ts +0 -14
  745. package/dist/src/core/llm/factory.d.ts.map +0 -1
  746. package/dist/src/core/llm/factory.js +0 -46
  747. package/dist/src/core/llm/factory.js.map +0 -1
  748. package/dist/src/core/llm/model-policy.d.ts +0 -63
  749. package/dist/src/core/llm/model-policy.d.ts.map +0 -1
  750. package/dist/src/core/llm/model-policy.js +0 -131
  751. package/dist/src/core/llm/model-policy.js.map +0 -1
  752. package/dist/src/core/llm/openai-models.d.ts +0 -17
  753. package/dist/src/core/llm/openai-models.d.ts.map +0 -1
  754. package/dist/src/core/llm/openai-models.js +0 -127
  755. package/dist/src/core/llm/openai-models.js.map +0 -1
  756. package/dist/src/core/llm/openai.d.ts +0 -31
  757. package/dist/src/core/llm/openai.d.ts.map +0 -1
  758. package/dist/src/core/llm/openai.js +0 -405
  759. package/dist/src/core/llm/openai.js.map +0 -1
  760. package/dist/src/core/llm/providers.d.ts +0 -3
  761. package/dist/src/core/llm/providers.d.ts.map +0 -1
  762. package/dist/src/core/llm/providers.js +0 -21
  763. package/dist/src/core/llm/providers.js.map +0 -1
  764. package/dist/src/core/observability/conversation-activity.d.ts +0 -116
  765. package/dist/src/core/observability/conversation-activity.d.ts.map +0 -1
  766. package/dist/src/core/observability/conversation-activity.js +0 -255
  767. package/dist/src/core/observability/conversation-activity.js.map +0 -1
  768. package/dist/src/core/observability/semantic-conventions.d.ts.map +0 -1
  769. package/dist/src/core/observability/semantic-conventions.js.map +0 -1
  770. package/dist/src/core/observability/trace-summarizers.d.ts +0 -23
  771. package/dist/src/core/observability/trace-summarizers.d.ts.map +0 -1
  772. package/dist/src/core/observability/trace-summarizers.js +0 -60
  773. package/dist/src/core/observability/trace-summarizers.js.map +0 -1
  774. package/dist/src/core/runtime/agent-loop.d.ts +0 -45
  775. package/dist/src/core/runtime/agent-loop.d.ts.map +0 -1
  776. package/dist/src/core/runtime/agent-loop.js +0 -200
  777. package/dist/src/core/runtime/agent-loop.js.map +0 -1
  778. package/dist/src/core/runtime/api-keys.d.ts +0 -35
  779. package/dist/src/core/runtime/api-keys.d.ts.map +0 -1
  780. package/dist/src/core/runtime/api-keys.js +0 -78
  781. package/dist/src/core/runtime/api-keys.js.map +0 -1
  782. package/dist/src/core/runtime/daemon-registry.d.ts +0 -44
  783. package/dist/src/core/runtime/daemon-registry.d.ts.map +0 -1
  784. package/dist/src/core/runtime/daemon-registry.js +0 -147
  785. package/dist/src/core/runtime/daemon-registry.js.map +0 -1
  786. package/dist/src/core/runtime/default-tools.d.ts.map +0 -1
  787. package/dist/src/core/runtime/default-tools.js +0 -49
  788. package/dist/src/core/runtime/default-tools.js.map +0 -1
  789. package/dist/src/core/runtime/events.d.ts.map +0 -1
  790. package/dist/src/core/runtime/events.js +0 -41
  791. package/dist/src/core/runtime/events.js.map +0 -1
  792. package/dist/src/core/runtime/heartbeat-lucid.d.ts.map +0 -1
  793. package/dist/src/core/runtime/heartbeat-lucid.js +0 -188
  794. package/dist/src/core/runtime/heartbeat-lucid.js.map +0 -1
  795. package/dist/src/core/runtime/heartbeat-scheduler.d.ts.map +0 -1
  796. package/dist/src/core/runtime/heartbeat-scheduler.js +0 -135
  797. package/dist/src/core/runtime/heartbeat-scheduler.js.map +0 -1
  798. package/dist/src/core/runtime/heartbeat-store.d.ts +0 -20
  799. package/dist/src/core/runtime/heartbeat-store.d.ts.map +0 -1
  800. package/dist/src/core/runtime/heartbeat-store.js +0 -42
  801. package/dist/src/core/runtime/heartbeat-store.js.map +0 -1
  802. package/dist/src/core/runtime/heartbeat-task-state.d.ts +0 -5
  803. package/dist/src/core/runtime/heartbeat-task-state.d.ts.map +0 -1
  804. package/dist/src/core/runtime/heartbeat-task-state.js +0 -81
  805. package/dist/src/core/runtime/heartbeat-task-state.js.map +0 -1
  806. package/dist/src/core/runtime/heartbeat-task-store.d.ts.map +0 -1
  807. package/dist/src/core/runtime/heartbeat-task-store.js +0 -96
  808. package/dist/src/core/runtime/heartbeat-task-store.js.map +0 -1
  809. package/dist/src/core/runtime/heartbeat-views.d.ts +0 -52
  810. package/dist/src/core/runtime/heartbeat-views.d.ts.map +0 -1
  811. package/dist/src/core/runtime/heartbeat-views.js +0 -62
  812. package/dist/src/core/runtime/heartbeat-views.js.map +0 -1
  813. package/dist/src/core/runtime/heartbeat.d.ts +0 -41
  814. package/dist/src/core/runtime/heartbeat.d.ts.map +0 -1
  815. package/dist/src/core/runtime/heartbeat.js +0 -113
  816. package/dist/src/core/runtime/heartbeat.js.map +0 -1
  817. package/dist/src/core/runtime/runtime-hosts.d.ts +0 -30
  818. package/dist/src/core/runtime/runtime-hosts.d.ts.map +0 -1
  819. package/dist/src/core/runtime/runtime-hosts.js +0 -95
  820. package/dist/src/core/runtime/runtime-hosts.js.map +0 -1
  821. package/dist/src/core/runtime/workspaces.d.ts +0 -55
  822. package/dist/src/core/runtime/workspaces.d.ts.map +0 -1
  823. package/dist/src/core/runtime/workspaces.js +0 -168
  824. package/dist/src/core/runtime/workspaces.js.map +0 -1
  825. package/dist/src/web/assets/index-D6aK1OFb.js +0 -81
@@ -1,113 +0,0 @@
1
- import { resolve } from 'node:path';
2
- import { appendMemoryCatalogSystemContext } from '../memory/catalog.js';
3
- import { runAgentLoop } from './agent-loop.js';
4
- import { createAgentLoopCheckpoint } from './events.js';
5
- const DEFAULT_HEARTBEAT_MAX_STEPS = 80;
6
- export async function runAgentHeartbeat(options) {
7
- const memoryDir = options.memoryDir ?? resolve(options.workspaceRoot ?? process.cwd(), options.stateDir ?? '.heddle', 'memory');
8
- const systemContext = appendHeartbeatSystemContext(appendMemoryCatalogSystemContext({
9
- systemContext: options.systemContext,
10
- memoryRoot: memoryDir,
11
- }));
12
- const result = await runAgentLoop({
13
- goal: buildHeartbeatGoal(options.task),
14
- model: options.model,
15
- apiKey: options.apiKey,
16
- maxSteps: options.maxSteps ?? DEFAULT_HEARTBEAT_MAX_STEPS,
17
- workspaceRoot: options.workspaceRoot,
18
- stateDir: options.stateDir,
19
- memoryDir,
20
- searchIgnoreDirs: options.searchIgnoreDirs,
21
- systemContext,
22
- history: options.history,
23
- resumeFrom: options.checkpoint,
24
- llm: options.llm,
25
- tools: options.tools,
26
- extraTools: options.extraTools,
27
- includeDefaultTools: options.includeDefaultTools,
28
- includePlanTool: options.includePlanTool,
29
- logger: options.logger,
30
- onEvent: options.onEvent,
31
- approvalPolicies: options.approvalPolicies,
32
- approveToolCall: options.approveToolCall,
33
- shouldStop: options.shouldStop,
34
- abortSignal: options.abortSignal,
35
- });
36
- const decision = inferHeartbeatDecision(result.summary, result.outcome);
37
- const runId = result.state.runId;
38
- const checkpoint = createAgentLoopCheckpoint(result.state);
39
- const now = () => new Date().toISOString();
40
- options.onEvent?.({
41
- type: 'heartbeat.decision',
42
- runId,
43
- decision,
44
- outcome: result.outcome,
45
- summary: result.summary,
46
- timestamp: now(),
47
- });
48
- if (decision === 'escalate') {
49
- options.onEvent?.({
50
- type: 'escalation.required',
51
- runId,
52
- task: options.task,
53
- outcome: result.outcome,
54
- summary: result.summary,
55
- step: result.trace.length,
56
- timestamp: now(),
57
- });
58
- }
59
- options.onEvent?.({
60
- type: 'checkpoint.saved',
61
- runId,
62
- checkpoint,
63
- step: result.trace.length,
64
- timestamp: now(),
65
- });
66
- return {
67
- decision,
68
- summary: result.summary,
69
- checkpoint,
70
- state: result.state,
71
- };
72
- }
73
- function buildHeartbeatGoal(task) {
74
- return [
75
- 'Heartbeat wake cycle.',
76
- '',
77
- 'Durable task:',
78
- task,
79
- '',
80
- 'Work autonomously on the task if there is useful, safe progress to make now.',
81
- 'Do not wait for a chat message.',
82
- 'If blocked, risky, or user input is required, escalate clearly instead of guessing.',
83
- '',
84
- 'End your response with exactly one decision line:',
85
- 'HEARTBEAT_DECISION: continue | pause | complete | escalate',
86
- ].join('\n');
87
- }
88
- function appendHeartbeatSystemContext(systemContext) {
89
- const heartbeatContext = [
90
- '## Heartbeat Mode',
91
- '',
92
- 'This run was started by an autonomous heartbeat, not by a live chat message.',
93
- 'Operate within the available tools and approval policy.',
94
- 'There may be no live approval handler. Prefer read-only tools and simple run_shell_inspect commands without cd, &&, redirects, or subshells.',
95
- 'The shell already runs from the workspace root. For git inspection, use commands such as `git status -sb` directly instead of `cd <path> && git status`.',
96
- 'Use memory-note tools for durable observations when useful.',
97
- 'Make bounded useful progress, update durable memory when appropriate, and stop cleanly.',
98
- 'Escalate only when human input, credentials, policy approval, or risky judgment is required.',
99
- 'The required final decision line is: HEARTBEAT_DECISION: continue | pause | complete | escalate',
100
- ].join('\n');
101
- return systemContext ? `${systemContext}\n\n${heartbeatContext}` : heartbeatContext;
102
- }
103
- function inferHeartbeatDecision(summary, outcome) {
104
- const match = summary.match(/HEARTBEAT_DECISION:\s*(continue|pause|complete|escalate)\b/i);
105
- if (match) {
106
- return match[1].toLowerCase();
107
- }
108
- if (outcome === 'done') {
109
- return 'pause';
110
- }
111
- return 'escalate';
112
- }
113
- //# sourceMappingURL=heartbeat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../../../src/core/runtime/heartbeat.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- export type ResolvedRuntimeHost = {
2
- kind: 'none';
3
- registryPath: string;
4
- workspaceId: string;
5
- } | {
6
- kind: 'daemon';
7
- registryPath: string;
8
- workspaceId: string;
9
- ownerId: string;
10
- endpoint: {
11
- host: string;
12
- port: number;
13
- };
14
- startedAt: string;
15
- lastSeenAt: string;
16
- stale: boolean;
17
- ageMs: number;
18
- };
19
- export declare function resolveWorkspaceRuntimeHost(options: {
20
- workspaceRoot: string;
21
- stateRoot: string;
22
- registryPath?: string;
23
- now?: number;
24
- staleAfterMs?: number;
25
- isPidAlive?: (pid: number) => boolean;
26
- }): ResolvedRuntimeHost;
27
- export declare function formatRuntimeHostNotice(command: string, host: ResolvedRuntimeHost): string | undefined;
28
- export declare function embeddedCommandConflictMessage(command: string, host: ResolvedRuntimeHost): string | undefined;
29
- export declare function daemonStartConflictMessage(host: ResolvedRuntimeHost): string | undefined;
30
- //# sourceMappingURL=runtime-hosts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-hosts.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime/runtime-hosts.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,mBAAmB,GAC3B;IACE,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC,GAAG,mBAAmB,CAsCtB;AAkBD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAmBtG;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAW7G;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAWxF"}
@@ -1,95 +0,0 @@
1
- import { readDaemonWorkspaceRegistration, resolveDaemonRegistryPath } from './daemon-registry.js';
2
- import { resolveWorkspaceContext } from './workspaces.js';
3
- const DEFAULT_STALE_AFTER_MS = 45_000;
4
- export function resolveWorkspaceRuntimeHost(options) {
5
- const workspace = resolveWorkspaceContext({
6
- workspaceRoot: options.workspaceRoot,
7
- stateRoot: options.stateRoot,
8
- }).activeWorkspace;
9
- const registryPath = options.registryPath ?? resolveDaemonRegistryPath();
10
- const registration = readDaemonWorkspaceRegistration(registryPath, workspace.id, workspace.stateRoot);
11
- const owner = registration?.owner;
12
- if (!owner) {
13
- return {
14
- kind: 'none',
15
- registryPath,
16
- workspaceId: workspace.id,
17
- };
18
- }
19
- const now = options.now ?? Date.now();
20
- const lastSeenAt = Date.parse(owner.lastSeenAt);
21
- const ageMs = Number.isFinite(lastSeenAt) ? Math.max(0, now - lastSeenAt) : Number.POSITIVE_INFINITY;
22
- const staleByAge = ageMs > (options.staleAfterMs ?? DEFAULT_STALE_AFTER_MS);
23
- const pidAlive = owner.pid > 0 ? (options.isPidAlive ?? isPidAlive)(owner.pid) : true;
24
- const stale = staleByAge || !pidAlive;
25
- return {
26
- kind: 'daemon',
27
- registryPath,
28
- workspaceId: workspace.id,
29
- ownerId: owner.ownerId,
30
- endpoint: {
31
- host: owner.host,
32
- port: owner.port,
33
- },
34
- startedAt: owner.startedAt,
35
- lastSeenAt: owner.lastSeenAt,
36
- stale,
37
- ageMs,
38
- };
39
- }
40
- function isPidAlive(pid) {
41
- try {
42
- process.kill(pid, 0);
43
- return true;
44
- }
45
- catch (error) {
46
- if (isNodeError(error) && error.code === 'EPERM') {
47
- return true;
48
- }
49
- return false;
50
- }
51
- }
52
- function isNodeError(error) {
53
- return typeof error === 'object' && error !== null && 'code' in error;
54
- }
55
- export function formatRuntimeHostNotice(command, host) {
56
- if (host.kind !== 'daemon' || host.stale) {
57
- return undefined;
58
- }
59
- if (command === 'chat') {
60
- return [
61
- 'Heddle notice: a live daemon is attached to this workspace.',
62
- `daemon=http://${host.endpoint.host}:${host.endpoint.port}`,
63
- `workspace=${host.workspaceId}`,
64
- 'Embedded chat still works here; avoid writing to the same session from multiple clients.',
65
- ].join(' ');
66
- }
67
- return [
68
- `Heddle notice: workspace is currently owned by a daemon for \`${command}\`.`,
69
- `daemon=http://${host.endpoint.host}:${host.endpoint.port}`,
70
- `workspace=${host.workspaceId}`,
71
- ].join(' ');
72
- }
73
- export function embeddedCommandConflictMessage(command, host) {
74
- if (host.kind !== 'daemon' || host.stale) {
75
- return undefined;
76
- }
77
- return [
78
- `Workspace ${host.workspaceId} is currently owned by a live Heddle daemon.`,
79
- `Refusing embedded \`${command}\` to avoid conflicting runtime owners.`,
80
- `daemon=http://${host.endpoint.host}:${host.endpoint.port}`,
81
- 'Use the daemon-backed control plane, stop the daemon, or rerun with `--force-owner-conflict`.',
82
- ].join(' ');
83
- }
84
- export function daemonStartConflictMessage(host) {
85
- if (host.kind !== 'daemon' || host.stale) {
86
- return undefined;
87
- }
88
- return [
89
- `Workspace ${host.workspaceId} is already owned by a live Heddle daemon.`,
90
- `Refusing to start a second daemon.`,
91
- `daemon=http://${host.endpoint.host}:${host.endpoint.port}`,
92
- 'Stop the existing daemon first or rerun with `--force-owner-conflict`.',
93
- ].join(' ');
94
- }
95
- //# sourceMappingURL=runtime-hosts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-hosts.js","sourceRoot":"","sources":["../../../../src/core/runtime/runtime-hosts.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- export declare const DEFAULT_WORKSPACE_ID = "default";
2
- export type WorkspaceDescriptor = {
3
- id: string;
4
- name: string;
5
- anchorRoot: string;
6
- repoRoots: string[];
7
- stateRoot: string;
8
- createdAt: string;
9
- updatedAt: string;
10
- };
11
- export type WorkspaceCatalog = {
12
- version: 1;
13
- activeWorkspaceId: string;
14
- workspaces: WorkspaceDescriptor[];
15
- };
16
- export type ResolvedWorkspaceContext = {
17
- catalogPath: string;
18
- catalog: WorkspaceCatalog;
19
- activeWorkspaceId: string;
20
- activeWorkspace: WorkspaceDescriptor;
21
- workspaces: WorkspaceDescriptor[];
22
- };
23
- export declare function ensureWorkspaceCatalog(options: {
24
- workspaceRoot: string;
25
- stateRoot: string;
26
- }): WorkspaceCatalog;
27
- export declare function resolveWorkspaceContext(options: {
28
- workspaceRoot: string;
29
- stateRoot: string;
30
- }): ResolvedWorkspaceContext;
31
- export declare function resolveWorkspaceCatalogPath(stateRoot: string): string;
32
- export declare function setActiveWorkspace(options: {
33
- workspaceRoot: string;
34
- stateRoot: string;
35
- workspaceId: string;
36
- }): ResolvedWorkspaceContext;
37
- export declare function renameWorkspaceDescriptor(options: {
38
- workspaceRoot: string;
39
- stateRoot: string;
40
- workspaceId: string;
41
- name: string;
42
- }): ResolvedWorkspaceContext;
43
- export declare function createWorkspaceDescriptor(options: {
44
- workspaceRoot: string;
45
- stateRoot: string;
46
- name: string;
47
- anchorRoot: string;
48
- repoRoots?: string[];
49
- nextId?: string;
50
- setActive?: boolean;
51
- workspaceStateRoot?: string;
52
- }): ResolvedWorkspaceContext;
53
- export declare function readWorkspaceCatalog(catalogPath: string): WorkspaceCatalog;
54
- export declare function saveWorkspaceCatalog(catalogPath: string, catalog: WorkspaceCatalog): void;
55
- //# sourceMappingURL=workspaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime/workspaces.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,mBAAmB,CAAC;IACrC,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,gBAAgB,CAiBnB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,wBAAwB,CAgB3B;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,wBAAwB,CAY3B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,wBAAwB,CAmB3B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,wBAAwB,CAsC3B;AA0BD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAE1E;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,QAGlF"}
@@ -1,168 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { basename, dirname, join, resolve } from 'node:path';
3
- export const DEFAULT_WORKSPACE_ID = 'default';
4
- export function ensureWorkspaceCatalog(options) {
5
- const workspaceRoot = resolve(options.workspaceRoot);
6
- const stateRoot = resolve(options.stateRoot);
7
- const catalogPath = resolveWorkspaceCatalogPath(stateRoot);
8
- if (!existsSync(catalogPath)) {
9
- const catalog = createDefaultWorkspaceCatalog(workspaceRoot, stateRoot);
10
- saveWorkspaceCatalog(catalogPath, catalog);
11
- return catalog;
12
- }
13
- const parsed = readWorkspaceCatalog(catalogPath);
14
- const normalized = normalizeWorkspaceCatalog(parsed, workspaceRoot, stateRoot);
15
- if (JSON.stringify(parsed) !== JSON.stringify(normalized)) {
16
- saveWorkspaceCatalog(catalogPath, normalized);
17
- }
18
- return normalized;
19
- }
20
- export function resolveWorkspaceContext(options) {
21
- const catalog = ensureWorkspaceCatalog(options);
22
- const activeWorkspace = catalog.workspaces.find((workspace) => workspace.id === catalog.activeWorkspaceId)
23
- ?? catalog.workspaces[0];
24
- if (!activeWorkspace) {
25
- throw new Error('Failed to resolve active workspace descriptor.');
26
- }
27
- return {
28
- catalogPath: resolveWorkspaceCatalogPath(options.stateRoot),
29
- catalog,
30
- activeWorkspaceId: activeWorkspace.id,
31
- activeWorkspace,
32
- workspaces: catalog.workspaces,
33
- };
34
- }
35
- export function resolveWorkspaceCatalogPath(stateRoot) {
36
- return join(stateRoot, 'workspaces.catalog.json');
37
- }
38
- export function setActiveWorkspace(options) {
39
- const resolved = resolveWorkspaceContext(options);
40
- if (!resolved.workspaces.some((workspace) => workspace.id === options.workspaceId)) {
41
- throw new Error(`Workspace not found: ${options.workspaceId}`);
42
- }
43
- const nextCatalog = {
44
- ...resolved.catalog,
45
- activeWorkspaceId: options.workspaceId,
46
- };
47
- saveWorkspaceCatalog(resolved.catalogPath, nextCatalog);
48
- return resolveWorkspaceContext(options);
49
- }
50
- export function renameWorkspaceDescriptor(options) {
51
- const resolved = resolveWorkspaceContext(options);
52
- const name = options.name.trim();
53
- if (!name) {
54
- throw new Error('Workspace name is required.');
55
- }
56
- if (!resolved.workspaces.some((workspace) => workspace.id === options.workspaceId)) {
57
- throw new Error(`Workspace not found: ${options.workspaceId}`);
58
- }
59
- const now = new Date().toISOString();
60
- const nextCatalog = {
61
- ...resolved.catalog,
62
- workspaces: resolved.workspaces.map((workspace) => (workspace.id === options.workspaceId ? { ...workspace, name, updatedAt: now } : workspace)),
63
- };
64
- saveWorkspaceCatalog(resolved.catalogPath, nextCatalog);
65
- return resolveWorkspaceContext(options);
66
- }
67
- export function createWorkspaceDescriptor(options) {
68
- const resolved = resolveWorkspaceContext(options);
69
- const now = new Date().toISOString();
70
- const anchorRoot = resolve(options.anchorRoot);
71
- const workspaceStateRoot = resolve(options.workspaceStateRoot ?? join(anchorRoot, basename(options.stateRoot)));
72
- const existing = resolved.workspaces.find((workspace) => (resolve(workspace.stateRoot) === workspaceStateRoot || resolve(workspace.anchorRoot) === anchorRoot));
73
- if (existing) {
74
- const nextCatalog = {
75
- ...resolved.catalog,
76
- activeWorkspaceId: options.setActive === false ? resolved.activeWorkspaceId : existing.id,
77
- workspaces: resolved.workspaces,
78
- };
79
- saveWorkspaceCatalog(resolved.catalogPath, nextCatalog);
80
- return resolveWorkspaceContext(options);
81
- }
82
- const repoRoots = options.repoRoots && options.repoRoots.length > 0 ?
83
- options.repoRoots.map((root) => resolve(root))
84
- : [anchorRoot];
85
- const nextWorkspace = {
86
- id: options.nextId ?? `workspace-${Date.now()}`,
87
- name: options.name.trim() || deriveDefaultWorkspaceName(anchorRoot),
88
- anchorRoot,
89
- repoRoots,
90
- stateRoot: workspaceStateRoot,
91
- createdAt: now,
92
- updatedAt: now,
93
- };
94
- const nextCatalog = {
95
- ...resolved.catalog,
96
- activeWorkspaceId: options.setActive === false ? resolved.activeWorkspaceId : nextWorkspace.id,
97
- workspaces: [...resolved.workspaces, nextWorkspace],
98
- };
99
- saveWorkspaceCatalog(resolved.catalogPath, nextCatalog);
100
- return resolveWorkspaceContext(options);
101
- }
102
- function createDefaultWorkspaceCatalog(workspaceRoot, stateRoot) {
103
- const now = new Date().toISOString();
104
- return {
105
- version: 1,
106
- activeWorkspaceId: DEFAULT_WORKSPACE_ID,
107
- workspaces: [
108
- {
109
- id: DEFAULT_WORKSPACE_ID,
110
- name: deriveDefaultWorkspaceName(workspaceRoot),
111
- anchorRoot: workspaceRoot,
112
- repoRoots: [workspaceRoot],
113
- stateRoot,
114
- createdAt: now,
115
- updatedAt: now,
116
- },
117
- ],
118
- };
119
- }
120
- function deriveDefaultWorkspaceName(workspaceRoot) {
121
- const name = basename(workspaceRoot);
122
- return name && name !== '/' ? name : 'Workspace';
123
- }
124
- export function readWorkspaceCatalog(catalogPath) {
125
- return JSON.parse(readFileSync(catalogPath, 'utf8'));
126
- }
127
- export function saveWorkspaceCatalog(catalogPath, catalog) {
128
- mkdirSync(dirname(catalogPath), { recursive: true });
129
- writeFileSync(catalogPath, `${JSON.stringify(catalog, null, 2)}\n`, 'utf8');
130
- }
131
- function normalizeWorkspaceCatalog(catalog, workspaceRoot, stateRoot) {
132
- const fallback = createDefaultWorkspaceCatalog(workspaceRoot, stateRoot);
133
- const workspaces = Array.isArray(catalog.workspaces) && catalog.workspaces.length > 0 ?
134
- catalog.workspaces.map((workspace, index) => normalizeWorkspaceDescriptor(workspace, {
135
- fallbackId: index === 0 ? DEFAULT_WORKSPACE_ID : `workspace-${index + 1}`,
136
- workspaceRoot,
137
- stateRoot,
138
- }))
139
- : fallback.workspaces;
140
- const activeWorkspaceId = typeof catalog.activeWorkspaceId === 'string' && workspaces.some((workspace) => workspace.id === catalog.activeWorkspaceId) ?
141
- catalog.activeWorkspaceId
142
- : workspaces[0]?.id ?? DEFAULT_WORKSPACE_ID;
143
- return {
144
- version: 1,
145
- activeWorkspaceId,
146
- workspaces,
147
- };
148
- }
149
- function normalizeWorkspaceDescriptor(workspace, options) {
150
- const now = new Date().toISOString();
151
- const anchorRoot = resolve(workspace.anchorRoot ?? options.workspaceRoot);
152
- const stateRoot = resolve(workspace.stateRoot ?? join(anchorRoot, basename(options.stateRoot)));
153
- const repoRoots = Array.isArray(workspace.repoRoots) && workspace.repoRoots.length > 0 ?
154
- workspace.repoRoots.map((root) => resolve(root))
155
- : [anchorRoot];
156
- return {
157
- id: typeof workspace.id === 'string' && workspace.id.trim() ? workspace.id : options.fallbackId,
158
- name: typeof workspace.name === 'string' && workspace.name.trim() ?
159
- workspace.name
160
- : deriveDefaultWorkspaceName(anchorRoot),
161
- anchorRoot,
162
- repoRoots,
163
- stateRoot,
164
- createdAt: workspace.createdAt ?? now,
165
- updatedAt: workspace.updatedAt ?? now,
166
- };
167
- }
168
- //# sourceMappingURL=workspaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/core/runtime/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AA0B9C,MAAM,UAAU,sBAAsB,CAAC,OAGtC;IACC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,6BAA6B,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACxE,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAGvC;IACC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,eAAe,GACnB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC;WAC/E,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACL,WAAW,EAAE,2BAA2B,CAAC,OAAO,CAAC,SAAS,CAAC;QAC3D,OAAO;QACP,iBAAiB,EAAE,eAAe,CAAC,EAAE;QACrC,eAAe;QACf,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,SAAiB;IAC3D,OAAO,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAIlC;IACC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,WAAW,GAAqB;QACpC,GAAG,QAAQ,CAAC,OAAO;QACnB,iBAAiB,EAAE,OAAO,CAAC,WAAW;KACvC,CAAC;IACF,oBAAoB,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAKzC;IACC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,WAAW,GAAqB;QACpC,GAAG,QAAQ,CAAC,OAAO;QACnB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CACjD,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAC1F,CAAC;KACH,CAAC;IACF,oBAAoB,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OASzC;IACC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAChH,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CACvD,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,kBAAkB,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,UAAU,CACpG,CAAC,CAAC;IACH,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAqB;YACpC,GAAG,QAAQ,CAAC,OAAO;YACnB,iBAAiB,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;YACzF,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC;QACF,oBAAoB,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACxD,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,SAAS,GACb,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACjB,MAAM,aAAa,GAAwB;QACzC,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE;QAC/C,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,0BAA0B,CAAC,UAAU,CAAC;QACnE,UAAU;QACV,SAAS;QACT,SAAS,EAAE,kBAAkB;QAC7B,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC;IACF,MAAM,WAAW,GAAqB;QACpC,GAAG,QAAQ,CAAC,OAAO;QACnB,iBAAiB,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;QAC9F,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACpD,CAAC;IACF,oBAAoB,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAqB,EAAE,SAAiB;IAC7E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,OAAO,EAAE,CAAC;QACV,iBAAiB,EAAE,oBAAoB;QACvC,UAAU,EAAE;YACV;gBACE,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,0BAA0B,CAAC,aAAa,CAAC;gBAC/C,UAAU,EAAE,aAAa;gBACzB,SAAS,EAAE,CAAC,aAAa,CAAC;gBAC1B,SAAS;gBACT,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,aAAqB;IACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrC,OAAO,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAqB,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,OAAyB;IACjF,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAyB,EACzB,aAAqB,EACrB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,6BAA6B,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,UAAU,GACd,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,4BAA4B,CAAC,SAAS,EAAE;YACnF,UAAU,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,KAAK,GAAG,CAAC,EAAE;YACzE,aAAa;YACb,SAAS;SACV,CAAC,CAAC;QACL,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IACxB,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3H,OAAO,CAAC,iBAAiB;QAC3B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,oBAAoB,CAAC;IAE9C,OAAO;QACL,OAAO,EAAE,CAAC;QACV,iBAAiB;QACjB,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,SAAuC,EACvC,OAAyE;IAEzE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,SAAS,GACb,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpE,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAEjB,OAAO;QACL,EAAE,EAAE,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU;QAC/F,IAAI,EACF,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,SAAS,CAAC,IAAI;YAChB,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC;QAC1C,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,GAAG;QACrC,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,GAAG;KACtC,CAAC;AACJ,CAAC"}