@roackb2/heddle 0.0.13 → 0.0.15

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 (413) hide show
  1. package/README.md +284 -217
  2. package/dist/examples/heartbeat-scheduler.js +3 -3
  3. package/dist/examples/heartbeat-scheduler.js.map +1 -1
  4. package/dist/examples/heartbeat.js +3 -3
  5. package/dist/examples/heartbeat.js.map +1 -1
  6. package/dist/examples/host-events.js +1 -1
  7. package/dist/examples/host-events.js.map +1 -1
  8. package/dist/examples/programmatic-loop.js +4 -4
  9. package/dist/examples/programmatic-loop.js.map +1 -1
  10. package/dist/src/cli/ask.js +1 -1
  11. package/dist/src/cli/ask.js.map +1 -1
  12. package/dist/src/cli/chat/App.d.ts.map +1 -1
  13. package/dist/src/cli/chat/App.js +3 -3
  14. package/dist/src/cli/chat/App.js.map +1 -1
  15. package/dist/src/cli/chat/components/ActivityPanel.d.ts +1 -1
  16. package/dist/src/cli/chat/components/ActivityPanel.d.ts.map +1 -1
  17. package/dist/src/cli/chat/components/ActivityPanel.js +1 -1
  18. package/dist/src/cli/chat/components/ActivityPanel.js.map +1 -1
  19. package/dist/src/cli/chat/components/ConversationPanel.d.ts +1 -1
  20. package/dist/src/cli/chat/components/ConversationPanel.d.ts.map +1 -1
  21. package/dist/src/cli/chat/hooks/useAgentRun.d.ts +2 -2
  22. package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
  23. package/dist/src/cli/chat/hooks/useAgentRun.js +2 -2
  24. package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
  25. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts +2 -2
  26. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts.map +1 -1
  27. package/dist/src/cli/chat/state/approval-rules.d.ts +1 -1
  28. package/dist/src/cli/chat/state/approval-rules.d.ts.map +1 -1
  29. package/dist/src/cli/chat/state/approval-rules.js +1 -1
  30. package/dist/src/cli/chat/state/approval-rules.js.map +1 -1
  31. package/dist/src/cli/chat/state/compaction.d.ts +1 -16
  32. package/dist/src/cli/chat/state/compaction.d.ts.map +1 -1
  33. package/dist/src/cli/chat/state/compaction.js +1 -158
  34. package/dist/src/cli/chat/state/compaction.js.map +1 -1
  35. package/dist/src/cli/chat/state/local-commands.js +2 -2
  36. package/dist/src/cli/chat/state/local-commands.js.map +1 -1
  37. package/dist/src/cli/chat/state/storage.d.ts +1 -13
  38. package/dist/src/cli/chat/state/storage.d.ts.map +1 -1
  39. package/dist/src/cli/chat/state/storage.js +1 -146
  40. package/dist/src/cli/chat/state/storage.js.map +1 -1
  41. package/dist/src/cli/chat/state/types.d.ts +1 -76
  42. package/dist/src/cli/chat/state/types.d.ts.map +1 -1
  43. package/dist/src/cli/chat/utils/file-mentions.js +1 -1
  44. package/dist/src/cli/chat/utils/file-mentions.js.map +1 -1
  45. package/dist/src/cli/chat/utils/format.d.ts +3 -7
  46. package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
  47. package/dist/src/cli/chat/utils/format.js +3 -181
  48. package/dist/src/cli/chat/utils/format.js.map +1 -1
  49. package/dist/src/cli/chat/utils/runtime.d.ts +2 -2
  50. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
  51. package/dist/src/cli/chat/utils/runtime.js +4 -9
  52. package/dist/src/cli/chat/utils/runtime.js.map +1 -1
  53. package/dist/src/cli/daemon.d.ts +14 -0
  54. package/dist/src/cli/daemon.d.ts.map +1 -0
  55. package/dist/src/cli/daemon.js +61 -0
  56. package/dist/src/cli/daemon.js.map +1 -0
  57. package/dist/src/cli/heartbeat.js +1 -1
  58. package/dist/src/cli/heartbeat.js.map +1 -1
  59. package/dist/src/cli/main.js +8 -2
  60. package/dist/src/cli/main.js.map +1 -1
  61. package/dist/src/core/agent/history.d.ts.map +1 -0
  62. package/dist/src/core/agent/history.js.map +1 -0
  63. package/dist/src/core/agent/mutation-tracking.d.ts.map +1 -0
  64. package/dist/src/{run-agent → core/agent}/mutation-tracking.js +12 -5
  65. package/dist/src/core/agent/mutation-tracking.js.map +1 -0
  66. package/dist/src/core/agent/post-mutation.d.ts.map +1 -0
  67. package/dist/src/core/agent/post-mutation.js.map +1 -0
  68. package/dist/src/core/agent/progress-reminders.d.ts.map +1 -0
  69. package/dist/src/core/agent/progress-reminders.js.map +1 -0
  70. package/dist/src/{run-agent.d.ts → core/agent/run-agent.d.ts} +2 -2
  71. package/dist/src/core/agent/run-agent.d.ts.map +1 -0
  72. package/dist/src/{run-agent.js → core/agent/run-agent.js} +12 -16
  73. package/dist/src/core/agent/run-agent.js.map +1 -0
  74. package/dist/src/{run-agent → core/agent}/tool-dispatch.d.ts +1 -1
  75. package/dist/src/core/agent/tool-dispatch.d.ts.map +1 -0
  76. package/dist/src/core/agent/tool-dispatch.js.map +1 -0
  77. package/dist/src/core/agent/util.d.ts.map +1 -0
  78. package/dist/src/core/agent/util.js.map +1 -0
  79. package/dist/src/core/chat/compaction.d.ts +17 -0
  80. package/dist/src/core/chat/compaction.d.ts.map +1 -0
  81. package/dist/src/core/chat/compaction.js +159 -0
  82. package/dist/src/core/chat/compaction.js.map +1 -0
  83. package/dist/src/core/chat/format.d.ts +12 -0
  84. package/dist/src/core/chat/format.d.ts.map +1 -0
  85. package/dist/src/core/chat/format.js +139 -0
  86. package/dist/src/core/chat/format.js.map +1 -0
  87. package/dist/src/core/chat/session-submit.d.ts +14 -0
  88. package/dist/src/core/chat/session-submit.d.ts.map +1 -0
  89. package/dist/src/core/chat/session-submit.js +80 -0
  90. package/dist/src/core/chat/session-submit.js.map +1 -0
  91. package/dist/src/core/chat/storage.d.ts +14 -0
  92. package/dist/src/core/chat/storage.d.ts.map +1 -0
  93. package/dist/src/core/chat/storage.js +147 -0
  94. package/dist/src/core/chat/storage.js.map +1 -0
  95. package/dist/src/core/chat/trace.d.ts +3 -0
  96. package/dist/src/core/chat/trace.d.ts.map +1 -0
  97. package/dist/src/core/chat/trace.js +9 -0
  98. package/dist/src/core/chat/trace.js.map +1 -0
  99. package/dist/src/core/chat/types.d.ts +77 -0
  100. package/dist/src/core/chat/types.d.ts.map +1 -0
  101. package/dist/src/core/chat/types.js +2 -0
  102. package/dist/src/core/chat/types.js.map +1 -0
  103. package/dist/src/core/config.d.ts.map +1 -0
  104. package/dist/src/core/config.js.map +1 -0
  105. package/dist/src/core/llm/anthropic.d.ts.map +1 -0
  106. package/dist/src/core/llm/anthropic.js.map +1 -0
  107. package/dist/src/core/llm/factory.d.ts.map +1 -0
  108. package/dist/src/core/llm/factory.js.map +1 -0
  109. package/dist/src/core/llm/openai-models.d.ts.map +1 -0
  110. package/dist/src/core/llm/openai-models.js.map +1 -0
  111. package/dist/src/core/llm/openai.d.ts.map +1 -0
  112. package/dist/src/core/llm/openai.js.map +1 -0
  113. package/dist/src/core/llm/providers.d.ts.map +1 -0
  114. package/dist/src/core/llm/providers.js.map +1 -0
  115. package/dist/src/core/llm/types.d.ts.map +1 -0
  116. package/dist/src/core/llm/types.js.map +1 -0
  117. package/dist/src/core/prompts/system-prompt.d.ts.map +1 -0
  118. package/dist/src/core/prompts/system-prompt.js.map +1 -0
  119. package/dist/src/{runtime → core/runtime}/agent-loop.d.ts +1 -1
  120. package/dist/src/core/runtime/agent-loop.d.ts.map +1 -0
  121. package/dist/src/{runtime → core/runtime}/agent-loop.js +1 -1
  122. package/dist/src/core/runtime/agent-loop.js.map +1 -0
  123. package/dist/src/core/runtime/api-keys.d.ts.map +1 -0
  124. package/dist/src/core/runtime/api-keys.js.map +1 -0
  125. package/dist/src/core/runtime/default-tools.d.ts.map +1 -0
  126. package/dist/src/core/runtime/default-tools.js.map +1 -0
  127. package/dist/src/core/runtime/events.d.ts.map +1 -0
  128. package/dist/src/core/runtime/events.js.map +1 -0
  129. package/dist/src/core/runtime/heartbeat-lucid.d.ts.map +1 -0
  130. package/dist/src/core/runtime/heartbeat-lucid.js.map +1 -0
  131. package/dist/src/core/runtime/heartbeat-scheduler.d.ts.map +1 -0
  132. package/dist/src/core/runtime/heartbeat-scheduler.js.map +1 -0
  133. package/dist/src/core/runtime/heartbeat-store.d.ts.map +1 -0
  134. package/dist/src/core/runtime/heartbeat-store.js.map +1 -0
  135. package/dist/src/core/runtime/heartbeat-views.d.ts.map +1 -0
  136. package/dist/src/core/runtime/heartbeat-views.js.map +1 -0
  137. package/dist/src/core/runtime/heartbeat.d.ts.map +1 -0
  138. package/dist/src/{runtime → core/runtime}/heartbeat.js +0 -15
  139. package/dist/src/core/runtime/heartbeat.js.map +1 -0
  140. package/dist/src/core/tools/edit-file.d.ts.map +1 -0
  141. package/dist/src/core/tools/edit-file.js.map +1 -0
  142. package/dist/src/core/tools/execute-tool.d.ts.map +1 -0
  143. package/dist/src/core/tools/execute-tool.js.map +1 -0
  144. package/dist/src/core/tools/file-edit-core.d.ts.map +1 -0
  145. package/dist/src/core/tools/file-edit-core.js.map +1 -0
  146. package/dist/src/core/tools/list-files.d.ts.map +1 -0
  147. package/dist/src/core/tools/list-files.js.map +1 -0
  148. package/dist/src/core/tools/memory-notes.d.ts.map +1 -0
  149. package/dist/src/core/tools/memory-notes.js.map +1 -0
  150. package/dist/src/core/tools/read-file.d.ts.map +1 -0
  151. package/dist/src/core/tools/read-file.js.map +1 -0
  152. package/dist/src/core/tools/registry.d.ts.map +1 -0
  153. package/dist/src/core/tools/registry.js.map +1 -0
  154. package/dist/src/core/tools/report-state.d.ts.map +1 -0
  155. package/dist/src/core/tools/report-state.js.map +1 -0
  156. package/dist/src/core/tools/run-shell.d.ts.map +1 -0
  157. package/dist/src/core/tools/run-shell.js.map +1 -0
  158. package/dist/src/core/tools/search-files.d.ts.map +1 -0
  159. package/dist/src/core/tools/search-files.js.map +1 -0
  160. package/dist/src/core/tools/update-plan.d.ts.map +1 -0
  161. package/dist/src/core/tools/update-plan.js.map +1 -0
  162. package/dist/src/core/tools/view-image.d.ts.map +1 -0
  163. package/dist/src/core/tools/view-image.js.map +1 -0
  164. package/dist/src/core/tools/web-search.d.ts.map +1 -0
  165. package/dist/src/core/tools/web-search.js.map +1 -0
  166. package/dist/src/core/trace/format.d.ts.map +1 -0
  167. package/dist/src/core/trace/format.js.map +1 -0
  168. package/dist/src/core/trace/recorder.d.ts.map +1 -0
  169. package/dist/src/core/trace/recorder.js.map +1 -0
  170. package/dist/src/core/types.d.ts.map +1 -0
  171. package/dist/src/core/types.js.map +1 -0
  172. package/dist/src/core/utils/budget.d.ts.map +1 -0
  173. package/dist/src/core/utils/budget.js.map +1 -0
  174. package/dist/src/core/utils/errors.d.ts.map +1 -0
  175. package/dist/src/core/utils/errors.js.map +1 -0
  176. package/dist/src/core/utils/logger.d.ts.map +1 -0
  177. package/dist/src/core/utils/logger.js.map +1 -0
  178. package/dist/src/index.d.ts +59 -59
  179. package/dist/src/index.d.ts.map +1 -1
  180. package/dist/src/index.js +34 -34
  181. package/dist/src/index.js.map +1 -1
  182. package/dist/src/integrations/cyberloop-kinematics.d.ts +1 -1
  183. package/dist/src/integrations/cyberloop-kinematics.d.ts.map +1 -1
  184. package/dist/src/integrations/cyberloop-kinematics.js +1 -1
  185. package/dist/src/integrations/cyberloop-kinematics.js.map +1 -1
  186. package/dist/src/integrations/cyberloop.d.ts +1 -1
  187. package/dist/src/integrations/cyberloop.d.ts.map +1 -1
  188. package/dist/src/server/app.d.ts +6 -0
  189. package/dist/src/server/app.d.ts.map +1 -0
  190. package/dist/src/server/app.js +36 -0
  191. package/dist/src/server/app.js.map +1 -0
  192. package/dist/src/server/dev.d.ts +2 -0
  193. package/dist/src/server/dev.d.ts.map +1 -0
  194. package/dist/src/server/dev.js +39 -0
  195. package/dist/src/server/dev.js.map +1 -0
  196. package/dist/src/server/features/control-plane/router.d.ts +64 -0
  197. package/dist/src/server/features/control-plane/router.d.ts.map +1 -0
  198. package/dist/src/server/features/control-plane/router.js +60 -0
  199. package/dist/src/server/features/control-plane/router.js.map +1 -0
  200. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts +20 -0
  201. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -0
  202. package/dist/src/server/features/control-plane/services/chat-sessions.js +279 -0
  203. package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -0
  204. package/dist/src/server/features/control-plane/services/control-plane-state.d.ts +4 -0
  205. package/dist/src/server/features/control-plane/services/control-plane-state.d.ts.map +1 -0
  206. package/dist/src/server/features/control-plane/services/control-plane-state.js +19 -0
  207. package/dist/src/server/features/control-plane/services/control-plane-state.js.map +1 -0
  208. package/dist/src/server/features/control-plane/services/heartbeat.d.ts +7 -0
  209. package/dist/src/server/features/control-plane/services/heartbeat.d.ts.map +1 -0
  210. package/dist/src/server/features/control-plane/services/heartbeat.js +12 -0
  211. package/dist/src/server/features/control-plane/services/heartbeat.js.map +1 -0
  212. package/dist/src/server/features/control-plane/types.d.ts +75 -0
  213. package/dist/src/server/features/control-plane/types.d.ts.map +1 -0
  214. package/dist/src/server/features/control-plane/types.js +2 -0
  215. package/dist/src/server/features/control-plane/types.js.map +1 -0
  216. package/dist/src/server/index.d.ts +8 -0
  217. package/dist/src/server/index.d.ts.map +1 -0
  218. package/dist/src/server/index.js +42 -0
  219. package/dist/src/server/index.js.map +1 -0
  220. package/dist/src/server/logger.d.ts +8 -0
  221. package/dist/src/server/logger.d.ts.map +1 -0
  222. package/dist/src/server/logger.js +11 -0
  223. package/dist/src/server/logger.js.map +1 -0
  224. package/dist/src/server/middleware/request-logging.d.ts +4 -0
  225. package/dist/src/server/middleware/request-logging.d.ts.map +1 -0
  226. package/dist/src/server/middleware/request-logging.js +15 -0
  227. package/dist/src/server/middleware/request-logging.js.map +1 -0
  228. package/dist/src/server/router.d.ts +82 -0
  229. package/dist/src/server/router.d.ts.map +1 -0
  230. package/dist/src/server/router.js +14 -0
  231. package/dist/src/server/router.js.map +1 -0
  232. package/dist/src/server/static.d.ts +4 -0
  233. package/dist/src/server/static.d.ts.map +1 -0
  234. package/dist/src/server/static.js +25 -0
  235. package/dist/src/server/static.js.map +1 -0
  236. package/dist/src/server/trpc.d.ts +9 -0
  237. package/dist/src/server/trpc.d.ts.map +1 -0
  238. package/dist/src/server/trpc.js +5 -0
  239. package/dist/src/server/trpc.js.map +1 -0
  240. package/dist/src/server/types.d.ts +17 -0
  241. package/dist/src/server/types.d.ts.map +1 -0
  242. package/dist/src/server/types.js +2 -0
  243. package/dist/src/server/types.js.map +1 -0
  244. package/dist/src/web/assets/favicon-CT3fFV8g.jpeg +0 -0
  245. package/dist/src/web/assets/index-DH9iWMSO.js +9 -0
  246. package/dist/src/web/assets/index-DyCJ7Ml4.css +1 -0
  247. package/dist/src/web/index.html +14 -0
  248. package/package.json +26 -3
  249. package/dist/src/config.d.ts.map +0 -1
  250. package/dist/src/config.js.map +0 -1
  251. package/dist/src/llm/anthropic.d.ts.map +0 -1
  252. package/dist/src/llm/anthropic.js.map +0 -1
  253. package/dist/src/llm/factory.d.ts.map +0 -1
  254. package/dist/src/llm/factory.js.map +0 -1
  255. package/dist/src/llm/openai-models.d.ts.map +0 -1
  256. package/dist/src/llm/openai-models.js.map +0 -1
  257. package/dist/src/llm/openai.d.ts.map +0 -1
  258. package/dist/src/llm/openai.js.map +0 -1
  259. package/dist/src/llm/providers.d.ts.map +0 -1
  260. package/dist/src/llm/providers.js.map +0 -1
  261. package/dist/src/llm/types.d.ts.map +0 -1
  262. package/dist/src/llm/types.js.map +0 -1
  263. package/dist/src/prompts/system-prompt.d.ts.map +0 -1
  264. package/dist/src/prompts/system-prompt.js.map +0 -1
  265. package/dist/src/run-agent/history.d.ts.map +0 -1
  266. package/dist/src/run-agent/history.js.map +0 -1
  267. package/dist/src/run-agent/mutation-tracking.d.ts.map +0 -1
  268. package/dist/src/run-agent/mutation-tracking.js.map +0 -1
  269. package/dist/src/run-agent/post-mutation.d.ts.map +0 -1
  270. package/dist/src/run-agent/post-mutation.js.map +0 -1
  271. package/dist/src/run-agent/progress-reminders.d.ts.map +0 -1
  272. package/dist/src/run-agent/progress-reminders.js.map +0 -1
  273. package/dist/src/run-agent/tool-dispatch.d.ts.map +0 -1
  274. package/dist/src/run-agent/tool-dispatch.js.map +0 -1
  275. package/dist/src/run-agent/util.d.ts.map +0 -1
  276. package/dist/src/run-agent/util.js.map +0 -1
  277. package/dist/src/run-agent.d.ts.map +0 -1
  278. package/dist/src/run-agent.js.map +0 -1
  279. package/dist/src/runtime/agent-loop.d.ts.map +0 -1
  280. package/dist/src/runtime/agent-loop.js.map +0 -1
  281. package/dist/src/runtime/api-keys.d.ts.map +0 -1
  282. package/dist/src/runtime/api-keys.js.map +0 -1
  283. package/dist/src/runtime/default-tools.d.ts.map +0 -1
  284. package/dist/src/runtime/default-tools.js.map +0 -1
  285. package/dist/src/runtime/events.d.ts.map +0 -1
  286. package/dist/src/runtime/events.js.map +0 -1
  287. package/dist/src/runtime/heartbeat-lucid.d.ts.map +0 -1
  288. package/dist/src/runtime/heartbeat-lucid.js.map +0 -1
  289. package/dist/src/runtime/heartbeat-scheduler.d.ts.map +0 -1
  290. package/dist/src/runtime/heartbeat-scheduler.js.map +0 -1
  291. package/dist/src/runtime/heartbeat-store.d.ts.map +0 -1
  292. package/dist/src/runtime/heartbeat-store.js.map +0 -1
  293. package/dist/src/runtime/heartbeat-views.d.ts.map +0 -1
  294. package/dist/src/runtime/heartbeat-views.js.map +0 -1
  295. package/dist/src/runtime/heartbeat.d.ts.map +0 -1
  296. package/dist/src/runtime/heartbeat.js.map +0 -1
  297. package/dist/src/tools/edit-file.d.ts.map +0 -1
  298. package/dist/src/tools/edit-file.js.map +0 -1
  299. package/dist/src/tools/execute-tool.d.ts.map +0 -1
  300. package/dist/src/tools/execute-tool.js.map +0 -1
  301. package/dist/src/tools/file-edit-core.d.ts.map +0 -1
  302. package/dist/src/tools/file-edit-core.js.map +0 -1
  303. package/dist/src/tools/list-files.d.ts.map +0 -1
  304. package/dist/src/tools/list-files.js.map +0 -1
  305. package/dist/src/tools/memory-notes.d.ts.map +0 -1
  306. package/dist/src/tools/memory-notes.js.map +0 -1
  307. package/dist/src/tools/read-file.d.ts.map +0 -1
  308. package/dist/src/tools/read-file.js.map +0 -1
  309. package/dist/src/tools/registry.d.ts.map +0 -1
  310. package/dist/src/tools/registry.js.map +0 -1
  311. package/dist/src/tools/report-state.d.ts.map +0 -1
  312. package/dist/src/tools/report-state.js.map +0 -1
  313. package/dist/src/tools/run-shell.d.ts.map +0 -1
  314. package/dist/src/tools/run-shell.js.map +0 -1
  315. package/dist/src/tools/search-files.d.ts.map +0 -1
  316. package/dist/src/tools/search-files.js.map +0 -1
  317. package/dist/src/tools/update-plan.d.ts.map +0 -1
  318. package/dist/src/tools/update-plan.js.map +0 -1
  319. package/dist/src/tools/view-image.d.ts.map +0 -1
  320. package/dist/src/tools/view-image.js.map +0 -1
  321. package/dist/src/tools/web-search.d.ts.map +0 -1
  322. package/dist/src/tools/web-search.js.map +0 -1
  323. package/dist/src/trace/format.d.ts.map +0 -1
  324. package/dist/src/trace/format.js.map +0 -1
  325. package/dist/src/trace/recorder.d.ts.map +0 -1
  326. package/dist/src/trace/recorder.js.map +0 -1
  327. package/dist/src/types.d.ts.map +0 -1
  328. package/dist/src/types.js.map +0 -1
  329. package/dist/src/utils/budget.d.ts.map +0 -1
  330. package/dist/src/utils/budget.js.map +0 -1
  331. package/dist/src/utils/errors.d.ts.map +0 -1
  332. package/dist/src/utils/errors.js.map +0 -1
  333. package/dist/src/utils/logger.d.ts.map +0 -1
  334. package/dist/src/utils/logger.js.map +0 -1
  335. /package/dist/src/{run-agent → core/agent}/history.d.ts +0 -0
  336. /package/dist/src/{run-agent → core/agent}/history.js +0 -0
  337. /package/dist/src/{run-agent → core/agent}/mutation-tracking.d.ts +0 -0
  338. /package/dist/src/{run-agent → core/agent}/post-mutation.d.ts +0 -0
  339. /package/dist/src/{run-agent → core/agent}/post-mutation.js +0 -0
  340. /package/dist/src/{run-agent → core/agent}/progress-reminders.d.ts +0 -0
  341. /package/dist/src/{run-agent → core/agent}/progress-reminders.js +0 -0
  342. /package/dist/src/{run-agent → core/agent}/tool-dispatch.js +0 -0
  343. /package/dist/src/{run-agent → core/agent}/util.d.ts +0 -0
  344. /package/dist/src/{run-agent → core/agent}/util.js +0 -0
  345. /package/dist/src/{config.d.ts → core/config.d.ts} +0 -0
  346. /package/dist/src/{config.js → core/config.js} +0 -0
  347. /package/dist/src/{llm → core/llm}/anthropic.d.ts +0 -0
  348. /package/dist/src/{llm → core/llm}/anthropic.js +0 -0
  349. /package/dist/src/{llm → core/llm}/factory.d.ts +0 -0
  350. /package/dist/src/{llm → core/llm}/factory.js +0 -0
  351. /package/dist/src/{llm → core/llm}/openai-models.d.ts +0 -0
  352. /package/dist/src/{llm → core/llm}/openai-models.js +0 -0
  353. /package/dist/src/{llm → core/llm}/openai.d.ts +0 -0
  354. /package/dist/src/{llm → core/llm}/openai.js +0 -0
  355. /package/dist/src/{llm → core/llm}/providers.d.ts +0 -0
  356. /package/dist/src/{llm → core/llm}/providers.js +0 -0
  357. /package/dist/src/{llm → core/llm}/types.d.ts +0 -0
  358. /package/dist/src/{llm → core/llm}/types.js +0 -0
  359. /package/dist/src/{prompts → core/prompts}/system-prompt.d.ts +0 -0
  360. /package/dist/src/{prompts → core/prompts}/system-prompt.js +0 -0
  361. /package/dist/src/{runtime → core/runtime}/api-keys.d.ts +0 -0
  362. /package/dist/src/{runtime → core/runtime}/api-keys.js +0 -0
  363. /package/dist/src/{runtime → core/runtime}/default-tools.d.ts +0 -0
  364. /package/dist/src/{runtime → core/runtime}/default-tools.js +0 -0
  365. /package/dist/src/{runtime → core/runtime}/events.d.ts +0 -0
  366. /package/dist/src/{runtime → core/runtime}/events.js +0 -0
  367. /package/dist/src/{runtime → core/runtime}/heartbeat-lucid.d.ts +0 -0
  368. /package/dist/src/{runtime → core/runtime}/heartbeat-lucid.js +0 -0
  369. /package/dist/src/{runtime → core/runtime}/heartbeat-scheduler.d.ts +0 -0
  370. /package/dist/src/{runtime → core/runtime}/heartbeat-scheduler.js +0 -0
  371. /package/dist/src/{runtime → core/runtime}/heartbeat-store.d.ts +0 -0
  372. /package/dist/src/{runtime → core/runtime}/heartbeat-store.js +0 -0
  373. /package/dist/src/{runtime → core/runtime}/heartbeat-views.d.ts +0 -0
  374. /package/dist/src/{runtime → core/runtime}/heartbeat-views.js +0 -0
  375. /package/dist/src/{runtime → core/runtime}/heartbeat.d.ts +0 -0
  376. /package/dist/src/{tools → core/tools}/edit-file.d.ts +0 -0
  377. /package/dist/src/{tools → core/tools}/edit-file.js +0 -0
  378. /package/dist/src/{tools → core/tools}/execute-tool.d.ts +0 -0
  379. /package/dist/src/{tools → core/tools}/execute-tool.js +0 -0
  380. /package/dist/src/{tools → core/tools}/file-edit-core.d.ts +0 -0
  381. /package/dist/src/{tools → core/tools}/file-edit-core.js +0 -0
  382. /package/dist/src/{tools → core/tools}/list-files.d.ts +0 -0
  383. /package/dist/src/{tools → core/tools}/list-files.js +0 -0
  384. /package/dist/src/{tools → core/tools}/memory-notes.d.ts +0 -0
  385. /package/dist/src/{tools → core/tools}/memory-notes.js +0 -0
  386. /package/dist/src/{tools → core/tools}/read-file.d.ts +0 -0
  387. /package/dist/src/{tools → core/tools}/read-file.js +0 -0
  388. /package/dist/src/{tools → core/tools}/registry.d.ts +0 -0
  389. /package/dist/src/{tools → core/tools}/registry.js +0 -0
  390. /package/dist/src/{tools → core/tools}/report-state.d.ts +0 -0
  391. /package/dist/src/{tools → core/tools}/report-state.js +0 -0
  392. /package/dist/src/{tools → core/tools}/run-shell.d.ts +0 -0
  393. /package/dist/src/{tools → core/tools}/run-shell.js +0 -0
  394. /package/dist/src/{tools → core/tools}/search-files.d.ts +0 -0
  395. /package/dist/src/{tools → core/tools}/search-files.js +0 -0
  396. /package/dist/src/{tools → core/tools}/update-plan.d.ts +0 -0
  397. /package/dist/src/{tools → core/tools}/update-plan.js +0 -0
  398. /package/dist/src/{tools → core/tools}/view-image.d.ts +0 -0
  399. /package/dist/src/{tools → core/tools}/view-image.js +0 -0
  400. /package/dist/src/{tools → core/tools}/web-search.d.ts +0 -0
  401. /package/dist/src/{tools → core/tools}/web-search.js +0 -0
  402. /package/dist/src/{trace → core/trace}/format.d.ts +0 -0
  403. /package/dist/src/{trace → core/trace}/format.js +0 -0
  404. /package/dist/src/{trace → core/trace}/recorder.d.ts +0 -0
  405. /package/dist/src/{trace → core/trace}/recorder.js +0 -0
  406. /package/dist/src/{types.d.ts → core/types.d.ts} +0 -0
  407. /package/dist/src/{types.js → core/types.js} +0 -0
  408. /package/dist/src/{utils → core/utils}/budget.d.ts +0 -0
  409. /package/dist/src/{utils → core/utils}/budget.js +0 -0
  410. /package/dist/src/{utils → core/utils}/errors.d.ts +0 -0
  411. /package/dist/src/{utils → core/utils}/errors.js +0 -0
  412. /package/dist/src/{utils → core/utils}/logger.d.ts +0 -0
  413. /package/dist/src/{utils → core/utils}/logger.js +0 -0
package/README.md CHANGED
@@ -10,6 +10,19 @@ Heddle is designed to make live agent runs more observable, not just easier to l
10
10
 
11
11
  If you are interested in the underlying methodology, Heddle's drift telemetry is powered by [CyberLoop on npm](https://www.npmjs.com/package/cyberloop). See the [CyberLoop repository](https://github.com/roackb2/cyberloop) and [paper](https://zenodo.org/records/18138161) for the geometric-control and trajectory-based details.
12
12
 
13
+ ## Agenda
14
+
15
+ - [Chat And CLI Usage](#chat-and-cli-usage)
16
+ - [Control Plane](#control-plane)
17
+ - [Knowledge Persistence](#knowledge-persistence)
18
+ - [Semantic Drift](#semantic-drift)
19
+ - [Heartbeat](#heartbeat)
20
+ - [Programmatic Use](#programmatic-use)
21
+ - [Capability Details](#capability-details)
22
+ - [Supported Providers And Models](#supported-providers-and-models)
23
+ - [Project Config](#project-config)
24
+ - [Design Direction](#design-direction)
25
+
13
26
  ## How Heddle Helps
14
27
 
15
28
  - daily development work in real coding projects
@@ -24,6 +37,8 @@ If you are interested in the underlying methodology, Heddle's drift telemetry is
24
37
  - provider-agnostic model support across OpenAI and Anthropic
25
38
  - embeddable `runAgentLoop` API for building non-CLI agent hosts
26
39
  - `runAgentHeartbeat` for scheduler-driven autonomous wake cycles without chat by default
40
+ - reorganized core runtime modules under `src/core` for agent, runtime, llm, tools, prompts, trace, and shared utilities
41
+ - native React/Vite control plane served by `heddle daemon` for local browser-based oversight
27
42
  - serializable checkpoints for resume, background execution, and hosted workers
28
43
  - host-facing heartbeat task/run views plus websocket-friendly status/progress/response adapters
29
44
  - provider-backed hosted web search through `web_search`
@@ -70,7 +85,9 @@ If you are developing inside the Heddle repo itself, `yarn install` also install
70
85
 
71
86
  For local development against the full CLI entrypoint, use `yarn cli:dev`. The `chat:dev` scripts intentionally start chat mode directly and do not route subcommands such as `heartbeat`.
72
87
 
73
- ## Quick Start
88
+ ## Chat And CLI Usage
89
+
90
+ ### Quick Start
74
91
 
75
92
  1. Set an API key for a supported provider.
76
93
 
@@ -96,34 +113,165 @@ Heddle uses the current directory as the workspace root unless you pass `--cwd`.
96
113
 
97
114
  The default workflow is interactive chat, not one-shot prompts. You keep a session open, inspect the repo, switch models, run direct shell commands when needed, and continue earlier sessions later.
98
115
 
99
- ## Core Capabilities
116
+ ### Chat Workflow
100
117
 
101
- Heddle currently supports:
118
+ Start chat in the current repo:
102
119
 
103
- - repository inspection with `list_files`, `read_file`, and `search_files`
104
- - code and doc changes with `edit_file`
105
- - provider-backed hosted web search through `web_search`
106
- - local screenshot and image inspection through `view_image`
107
- - inline `@file` mentions for file-priority context without pasting file contents into the prompt
108
- - shell execution with inspect vs approval-gated mutate behavior
109
- - multi-turn chat sessions with saved history under `.heddle/`
110
- - session management with create, switch, continue, rename, and close flows
111
- - automatic conversation compaction so longer chats preserve context instead of growing unbounded
112
- - manual `/compact` to shrink the current session transcript on demand
113
- - persistent workspace memory notes under `.heddle/memory/`
114
- - serializable run checkpoints for programmatic hosts and later continuation
115
- - short working-plan support through `update_plan` for substantial multi-step tasks
116
- - remembered per-project approvals for repeated commands and edits
117
- - interrupt and resume support for longer-running coding workflows
118
- - request-size aware context tracking in chat so the footer reflects model input usage, not only raw history size
120
+ ```bash
121
+ heddle
122
+ heddle chat
123
+ heddle --cwd /path/to/project
124
+ heddle chat --model gpt-5.4-mini --max-steps 20
125
+ ```
119
126
 
120
- The image workflow is intentionally simple for now: users can reference a local image path in chat, and the agent can decide whether to inspect it with `view_image`. Heddle does not require a full multimodal attachment model for this first version.
127
+ Typical chat use cases:
121
128
 
122
- The file-mention workflow is also intentionally lightweight: `@path/to/file` tells Heddle that the file is important context and should be inspected before answering, but it does not automatically inline the file contents into the prompt.
129
+ - ask Heddle to explain architecture, code paths, tests, or build setup
130
+ - iterate on a fix over multiple prompts instead of fitting everything into one request
131
+ - inspect files, search the repo, and edit code inside one persistent session
132
+ - keep a long coding conversation usable through saved sessions, `/continue`, automatic history compaction, and manual `/compact`
133
+ - let the agent create and update a short working plan for a multi-step implementation
134
+ - search official docs or other current external references with provider-backed `web_search`
135
+ - mention important repo files with `@path/to/file` so the agent treats them as first-pass context
136
+ - reference a local screenshot path and have the agent inspect it with `view_image`
137
+ - run direct shell commands from chat with `!<command>`
138
+ - pause and later resume earlier sessions
123
139
 
124
- The planning workflow is also intentionally lightweight: Heddle does not force a heavyweight planner or a separate "plan mode," but it can automatically record and update a short plan when a task is substantial enough to benefit from visible progress tracking.
140
+ Useful chat commands:
125
141
 
126
- The web-search workflow is provider-backed rather than crawler-backed: OpenAI models use OpenAI-hosted web search, and Anthropic models use Anthropic-hosted web search when available through the selected model/tool path.
142
+ - `/help`: show local chat commands
143
+ - `/continue`: resume the current session from its last interrupted or prior run
144
+ - `/model`: show the active model
145
+ - `/model list`: show the built-in shortlist
146
+ - `/model set <query>`: open the interactive model picker
147
+ - `/model <name>`: switch models directly
148
+ - `/session list`: list recent saved sessions
149
+ - `/session choose <query>`: choose a recent session interactively
150
+ - `/session new [name]`: create a new session
151
+ - `/session switch <id>`: switch to another session
152
+ - `/session continue <id>`: switch and immediately continue that session
153
+ - `/session rename <name>`: rename the current session
154
+ - `/session close <id>`: remove a saved session
155
+ - `/clear`: clear the current transcript
156
+ - `/compact`: compact older session history immediately
157
+ - `/drift`: show CyberLoop semantic drift detection status
158
+ - `/drift on`: re-enable observe-only CyberLoop kinematics telemetry for chat runs
159
+ - `/drift off`: disable CyberLoop semantic drift detection
160
+ - `!<command>`: run a shell command directly in chat
161
+
162
+ Direct shell in chat:
163
+
164
+ ```bash
165
+ !pwd
166
+ !git status
167
+ !yarn test
168
+ ```
169
+
170
+ Read-oriented commands stay in inspect mode when possible. Workspace-changing or unclassified commands fall back to approval-gated execution.
171
+
172
+ Chat state is stored under `.heddle/`, including saved sessions, traces, approvals, and memory notes. The footer context indicator is an estimate of total request input against the active model's context window, not only the raw chat history length.
173
+
174
+ For local development against the sibling CyberLoop repo, run chat with the middleware module path:
175
+
176
+ ```bash
177
+ HEDDLE_CYBERLOOP_ADVANCED_MODULE=/Users/roackb2/Studio/projects/CyberLoop/src/advanced/kinematics-middleware.ts yarn chat:dev:openai
178
+ ```
179
+
180
+ Drift telemetry is enabled by default for new sessions. For installed usage, install the optional `cyberloop` peer dependency in the same environment as Heddle so it can dynamically import `cyberloop/advanced`.
181
+
182
+ ### CLI Commands
183
+
184
+ Supported commands:
185
+
186
+ - `heddle` or `heddle chat`: start interactive chat mode
187
+ - `heddle ask "<goal>"`: run a single prompt and exit
188
+ - `heddle heartbeat start [--every 30m] [--task "<durable task>"]`: create or enable the default heartbeat task and run the foreground scheduler
189
+ - `heddle heartbeat task add --id <id> --task "<durable task>" [--every 15m]`: create or update a scheduled heartbeat task
190
+ - `heddle heartbeat task list`: list local heartbeat tasks
191
+ - `heddle heartbeat task show <id>`: show a task's schedule, last decision, and last run summary
192
+ - `heddle heartbeat task enable <id>` / `heddle heartbeat task disable <id>`: toggle a heartbeat task
193
+ - `heddle heartbeat run --once`: run due heartbeat tasks once
194
+ - `heddle heartbeat run [--poll 60s]`: run the foreground heartbeat scheduler until interrupted; heartbeat runs print scheduler, agent, tool, decision, and checkpoint progress events
195
+ - `heddle heartbeat runs list [--task <id>] [--limit 10]`: list saved heartbeat run records
196
+ - `heddle heartbeat runs show <run-id|latest> [--task <id>]`: show the final agent output for a saved heartbeat run
197
+ - `heddle init`: create a `heddle.config.json` template in the current project
198
+
199
+ Common flags:
200
+
201
+ - `--cwd <path>`: run against another workspace root
202
+ - `--model <name>`: choose the active model
203
+ - `--max-steps <n>`: limit the agent loop length
204
+
205
+ ## Control Plane
206
+
207
+ Heddle includes a local browser control plane for workspace oversight when you want a native UI in addition to terminal chat.
208
+
209
+ The current control plane is still early, but it has moved beyond a placeholder dashboard into a workstation-style local UI for inspecting sessions, review evidence, heartbeat tasks, and run history.
210
+
211
+ Current stack:
212
+
213
+ - `src/server`: Express-hosted tRPC server
214
+ - `src/web`: React/Vite web client
215
+ - `src/server/features/control-plane`: control-plane-specific server feature logic
216
+ - pino logs written locally for debugging
217
+
218
+ Start the daemon from a workspace:
219
+
220
+ ```bash
221
+ heddle daemon
222
+ ```
223
+
224
+ By default, the daemon binds to `127.0.0.1:8765` and serves the built web app plus the tRPC API. The current browser UI surfaces:
225
+
226
+ - workspace and `.heddle/` state location
227
+ - saved chat sessions with sidebar navigation, conversation view, and review-oriented detail inspection
228
+ - heartbeat task status, scheduling state, selected task detail, and run history
229
+ - recent heartbeat run summaries and usage data
230
+
231
+ You can override host and port:
232
+
233
+ ```bash
234
+ heddle daemon --host 127.0.0.1 --port 8765
235
+ ```
236
+
237
+ For local development, run the server and client separately:
238
+
239
+ ```bash
240
+ yarn server:dev
241
+ yarn client:dev
242
+ ```
243
+
244
+ `yarn server:dev` starts the tRPC server at `127.0.0.1:8765`. `yarn client:dev` starts the Vite client and proxies `/trpc` to the server.
245
+
246
+ The server writes pino logs to `.heddle/logs/server.log` by default. Override the path with:
247
+
248
+ ```bash
249
+ HEDDLE_SERVER_LOG_FILE=/path/to/server.log yarn server:dev
250
+ ```
251
+
252
+ The control plane is still early and not yet a full browser-native chat/operator surface. The next milestones are browser-side `send message` and `continue` actions for sessions, heartbeat task actions, and richer live run updates.
253
+
254
+ ## Knowledge Persistence
255
+
256
+ Heddle can maintain durable workspace knowledge under `.heddle/memory/`.
257
+
258
+ The goal is to help Heddle learn from real project work over time instead of rediscovering the same stable facts every session.
259
+
260
+ Typical examples:
261
+
262
+ - architecture notes that future sessions should reuse
263
+ - recurring build, test, or environment quirks
264
+ - important repo conventions and command patterns
265
+ - durable findings from completed implementation work
266
+
267
+ The memory model is intentionally simple:
268
+
269
+ - memory is stored as readable markdown files in the project state directory
270
+ - Heddle can list, read, search, and edit those notes
271
+ - shell tools are still available when flexible retrieval or editing is needed
272
+ - memory is meant for stable, reusable knowledge, not scratch notes or speculative plans
273
+
274
+ This is one of Heddle's more distinctive host-side capabilities: the aim is not just to answer the current prompt, but to let the runtime accumulate project understanding from your operations and become more useful across sessions.
127
275
 
128
276
  ## Semantic Drift
129
277
 
@@ -257,200 +405,6 @@ const runs = await listHeartbeatRunViews(store, { taskId: 'repo-gardener', limit
257
405
 
258
406
  Those views are intentionally smaller than full checkpoints or traces. They expose stable operator-facing fields such as task ID, status, progress, decision, outcome, resumability, usage, and latest summary.
259
407
 
260
- ## Knowledge Persistence
261
-
262
- Heddle can maintain durable workspace knowledge under `.heddle/memory/`.
263
-
264
- The goal is to help Heddle learn from real project work over time instead of rediscovering the same stable facts every session.
265
-
266
- Typical examples:
267
-
268
- - architecture notes that future sessions should reuse
269
- - recurring build, test, or environment quirks
270
- - important repo conventions and command patterns
271
- - durable findings from completed implementation work
272
-
273
- The memory model is intentionally simple:
274
-
275
- - memory is stored as readable markdown files in the project state directory
276
- - Heddle can list, read, search, and edit those notes
277
- - shell tools are still available when flexible retrieval or editing is needed
278
- - memory is meant for stable, reusable knowledge, not scratch notes or speculative plans
279
-
280
- This is one of Heddle's more distinctive host-side capabilities: the aim is not just to answer the current prompt, but to let the runtime accumulate project understanding from your operations and become more useful across sessions.
281
-
282
- ## What Heddle Does
283
-
284
- Heddle runs an agent loop against your workspace:
285
-
286
- ```text
287
- goal
288
- -> send transcript + tool definitions to the model
289
- -> model answers or requests tool calls
290
- -> execute tools in the workspace
291
- -> append results to the transcript
292
- -> continue until done / max steps / error
293
- ```
294
-
295
- Current focus:
296
-
297
- - chat-first coding and repository workflows from the terminal
298
- - minimal runtime behavior instead of a large framework surface
299
- - traceability and operator control over hidden orchestration
300
-
301
- ## Chat Workflow
302
-
303
- Start chat in the current repo:
304
-
305
- ```bash
306
- heddle
307
- heddle chat
308
- heddle --cwd /path/to/project
309
- heddle chat --model gpt-5.4-mini --max-steps 20
310
- ```
311
-
312
- Typical chat use cases:
313
-
314
- - ask Heddle to explain architecture, code paths, tests, or build setup
315
- - iterate on a fix over multiple prompts instead of fitting everything into one request
316
- - inspect files, search the repo, and edit code inside one persistent session
317
- - keep a long coding conversation usable through saved sessions, `/continue`, automatic history compaction, and manual `/compact`
318
- - let the agent create and update a short working plan for a multi-step implementation
319
- - search official docs or other current external references with provider-backed `web_search`
320
- - mention important repo files with `@path/to/file` so the agent treats them as first-pass context
321
- - reference a local screenshot path and have the agent inspect it with `view_image`
322
- - run direct shell commands from chat with `!<command>`
323
- - pause and later resume earlier sessions
324
-
325
- Useful chat commands:
326
-
327
- - `/help`: show local chat commands
328
- - `/continue`: resume the current session from its last interrupted or prior run
329
- - `/model`: show the active model
330
- - `/model list`: show the built-in shortlist
331
- - `/model set <query>`: open the interactive model picker
332
- - `/model <name>`: switch models directly
333
- - `/session list`: list recent saved sessions
334
- - `/session choose <query>`: choose a recent session interactively
335
- - `/session new [name]`: create a new session
336
- - `/session switch <id>`: switch to another session
337
- - `/session continue <id>`: switch and immediately continue that session
338
- - `/session rename <name>`: rename the current session
339
- - `/session close <id>`: remove a saved session
340
- - `/clear`: clear the current transcript
341
- - `/compact`: compact older session history immediately
342
- - `/drift`: show CyberLoop semantic drift detection status
343
- - `/drift on`: re-enable observe-only CyberLoop kinematics telemetry for chat runs
344
- - `/drift off`: disable CyberLoop semantic drift detection
345
- - `!<command>`: run a shell command directly in chat
346
-
347
- Direct shell in chat:
348
-
349
- ```bash
350
- !pwd
351
- !git status
352
- !yarn test
353
- ```
354
-
355
- Read-oriented commands stay in inspect mode when possible. Workspace-changing or unclassified commands fall back to approval-gated execution.
356
-
357
- Chat state is stored under `.heddle/`, including saved sessions, traces, approvals, and memory notes. The footer context indicator is an estimate of total request input against the active model's context window, not only the raw chat history length.
358
-
359
- For local development against the sibling CyberLoop repo, run chat with the middleware module path:
360
-
361
- ```bash
362
- HEDDLE_CYBERLOOP_ADVANCED_MODULE=/Users/roackb2/Studio/projects/CyberLoop/src/advanced/kinematics-middleware.ts yarn chat:dev:openai
363
- ```
364
-
365
- Drift telemetry is enabled by default for new sessions. For installed usage, install the optional `cyberloop` peer dependency in the same environment as Heddle so it can dynamically import `cyberloop/advanced`.
366
-
367
- ## CLI Usage
368
-
369
- Supported commands:
370
-
371
- - `heddle` or `heddle chat`: start interactive chat mode
372
- - `heddle ask "<goal>"`: run a single prompt and exit
373
- - `heddle heartbeat start [--every 30m] [--task "<durable task>"]`: create or enable the default heartbeat task and run the foreground scheduler
374
- - `heddle heartbeat task add --id <id> --task "<durable task>" [--every 15m]`: create or update a scheduled heartbeat task
375
- - `heddle heartbeat task list`: list local heartbeat tasks
376
- - `heddle heartbeat task show <id>`: show a task's schedule, last decision, and last run summary
377
- - `heddle heartbeat task enable <id>` / `heddle heartbeat task disable <id>`: toggle a heartbeat task
378
- - `heddle heartbeat run --once`: run due heartbeat tasks once
379
- - `heddle heartbeat run [--poll 60s]`: run the foreground heartbeat scheduler until interrupted; heartbeat runs print scheduler, agent, tool, decision, and checkpoint progress events
380
- - `heddle heartbeat runs list [--task <id>] [--limit 10]`: list saved heartbeat run records
381
- - `heddle heartbeat runs show <run-id|latest> [--task <id>]`: show the final agent output for a saved heartbeat run
382
- - `heddle init`: create a `heddle.config.json` template in the current project
383
-
384
- Common flags:
385
-
386
- - `--cwd <path>`: run against another workspace root
387
- - `--model <name>`: choose the active model
388
- - `--max-steps <n>`: limit the agent loop length
389
-
390
- ## Supported Providers And Models
391
-
392
- Heddle currently has working adapters for:
393
-
394
- - OpenAI
395
- - Anthropic
396
-
397
- Environment variables:
398
-
399
- - `OPENAI_API_KEY` for OpenAI models
400
- - `ANTHROPIC_API_KEY` for Anthropic models
401
- - dev fallback env vars are also accepted: `PERSONAL_OPENAI_API_KEY` and `PERSONAL_ANTHROPIC_API_KEY`
402
-
403
- Default models:
404
-
405
- - OpenAI: `gpt-5.1-codex`
406
- - Anthropic: `claude-sonnet-4-6`
407
-
408
- Built-in model shortlist exposed by the CLI UI:
409
-
410
- - OpenAI: `gpt-5.4`, `gpt-5.4-pro`, `gpt-5.4-mini`, `gpt-5.4-nano`
411
- - OpenAI: `gpt-5`, `gpt-5-pro`, `gpt-5-mini`, `gpt-5-nano`
412
- - OpenAI: `gpt-5.2`, `gpt-5.2-pro`, `gpt-5.1`
413
- - OpenAI: `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`
414
- - OpenAI: `o3-pro`, `o3`, `o3-mini`, `o4-mini`
415
- - OpenAI coding models: `gpt-5.1-codex`, `gpt-5.1-codex-max`, `gpt-5.1-codex-mini`
416
- - Anthropic: `claude-opus-4-6`, `claude-sonnet-4-6`, `claude-haiku-4-5`
417
- - Anthropic: `claude-opus-4-1`, `claude-opus-4-0`, `claude-sonnet-4-0`
418
- - Anthropic: `claude-3-7-sonnet-latest`
419
- - Anthropic: `claude-3-5-sonnet-latest`, `claude-3-5-haiku-latest`
420
-
421
- Notes:
422
-
423
- - model selection is inferred from the model name prefix
424
- - Gemini model names are recognized by provider inference, but a Google adapter is not wired yet
425
- - you can pass another model name with `--model`, but it only works if the corresponding provider adapter supports it
426
-
427
- ## Project Config
428
-
429
- You can store project defaults in `heddle.config.json`:
430
-
431
- ```json
432
- {
433
- "model": "gpt-5.1-codex",
434
- "maxSteps": 40,
435
- "stateDir": ".heddle",
436
- "directShellApproval": "never",
437
- "searchIgnoreDirs": [".git", "dist", "node_modules", ".heddle"],
438
- "agentContextPaths": ["AGENTS.md"]
439
- }
440
- ```
441
-
442
- Precedence order:
443
-
444
- - CLI flags override `heddle.config.json`
445
- - `heddle.config.json` overrides environment-driven defaults
446
-
447
- Field notes:
448
-
449
- - `stateDir`: where traces, logs, approvals, and chat state are stored
450
- - `directShellApproval`: whether explicit `!command` input in chat still asks for approval
451
- - `searchIgnoreDirs`: directories excluded from `search_files`
452
- - `agentContextPaths`: project instruction files injected into the system prompt
453
-
454
408
  ## Programmatic Use
455
409
 
456
410
  The npm package exports a programmatic execution loop for building other agent hosts on top of Heddle.
@@ -623,6 +577,119 @@ yarn example:cyberloop-observer
623
577
 
624
578
  The public API lives in [src/index.ts](/Users/roackb2/Studio/projects/ProjectHeddle/heddle/src/index.ts).
625
579
 
580
+ ## Capability Details
581
+
582
+ Heddle currently supports:
583
+
584
+ - repository inspection with `list_files`, `read_file`, and `search_files`
585
+ - code and doc changes with `edit_file`
586
+ - provider-backed hosted web search through `web_search`
587
+ - local screenshot and image inspection through `view_image`
588
+ - native browser control plane through `heddle daemon`
589
+ - inline `@file` mentions for file-priority context without pasting file contents into the prompt
590
+ - shell execution with inspect vs approval-gated mutate behavior
591
+ - multi-turn chat sessions with saved history under `.heddle/`
592
+ - session management with create, switch, continue, rename, and close flows
593
+ - automatic conversation compaction so longer chats preserve context instead of growing unbounded
594
+ - manual `/compact` to shrink the current session transcript on demand
595
+ - persistent workspace memory notes under `.heddle/memory/`
596
+ - serializable run checkpoints for programmatic hosts and later continuation
597
+ - short working-plan support through `update_plan` for substantial multi-step tasks
598
+ - remembered per-project approvals for repeated commands and edits
599
+ - interrupt and resume support for longer-running coding workflows
600
+ - request-size aware context tracking in chat so the footer reflects model input usage, not only raw history size
601
+
602
+ The image workflow is intentionally simple for now: users can reference a local image path in chat, and the agent can decide whether to inspect it with `view_image`. Heddle does not require a full multimodal attachment model for this first version.
603
+
604
+ The file-mention workflow is also intentionally lightweight: `@path/to/file` tells Heddle that the file is important context and should be inspected before answering, but it does not automatically inline the file contents into the prompt.
605
+
606
+ The planning workflow is also intentionally lightweight: Heddle does not force a heavyweight planner or a separate "plan mode," but it can automatically record and update a short plan when a task is substantial enough to benefit from visible progress tracking.
607
+
608
+ The web-search workflow is provider-backed rather than crawler-backed: OpenAI models use OpenAI-hosted web search, and Anthropic models use Anthropic-hosted web search when available through the selected model/tool path.
609
+
610
+ ## What Heddle Does
611
+
612
+ Heddle runs an agent loop against your workspace:
613
+
614
+ ```text
615
+ goal
616
+ -> send transcript + tool definitions to the model
617
+ -> model answers or requests tool calls
618
+ -> execute tools in the workspace
619
+ -> append results to the transcript
620
+ -> continue until done / max steps / error
621
+ ```
622
+
623
+ Current focus:
624
+
625
+ - chat-first coding and repository workflows from the terminal
626
+ - minimal runtime behavior instead of a large framework surface
627
+ - traceability and operator control over hidden orchestration
628
+
629
+ ## Supported Providers And Models
630
+
631
+ Heddle currently has working adapters for:
632
+
633
+ - OpenAI
634
+ - Anthropic
635
+
636
+ Environment variables:
637
+
638
+ - `OPENAI_API_KEY` for OpenAI models
639
+ - `ANTHROPIC_API_KEY` for Anthropic models
640
+ - dev fallback env vars are also accepted: `PERSONAL_OPENAI_API_KEY` and `PERSONAL_ANTHROPIC_API_KEY`
641
+
642
+ Default models:
643
+
644
+ - OpenAI: `gpt-5.1-codex`
645
+ - Anthropic: `claude-sonnet-4-6`
646
+
647
+ Built-in model shortlist exposed by the CLI UI:
648
+
649
+ - OpenAI: `gpt-5.4`, `gpt-5.4-pro`, `gpt-5.4-mini`, `gpt-5.4-nano`
650
+ - OpenAI: `gpt-5`, `gpt-5-pro`, `gpt-5-mini`, `gpt-5-nano`
651
+ - OpenAI: `gpt-5.2`, `gpt-5.2-pro`, `gpt-5.1`
652
+ - OpenAI: `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`
653
+ - OpenAI: `o3-pro`, `o3`, `o3-mini`, `o4-mini`
654
+ - OpenAI coding models: `gpt-5.1-codex`, `gpt-5.1-codex-max`, `gpt-5.1-codex-mini`
655
+ - Anthropic: `claude-opus-4-6`, `claude-sonnet-4-6`, `claude-haiku-4-5`
656
+ - Anthropic: `claude-opus-4-1`, `claude-opus-4-0`, `claude-sonnet-4-0`
657
+ - Anthropic: `claude-3-7-sonnet-latest`
658
+ - Anthropic: `claude-3-5-sonnet-latest`, `claude-3-5-haiku-latest`
659
+
660
+ Notes:
661
+
662
+ - model selection is inferred from the model name prefix
663
+ - Gemini model names are recognized by provider inference, but a Google adapter is not wired yet
664
+ - you can pass another model name with `--model`, but it only works if the corresponding provider adapter supports it
665
+
666
+ ## Project Config
667
+
668
+ You can store project defaults in `heddle.config.json`:
669
+
670
+ ```json
671
+ {
672
+ "model": "gpt-5.1-codex",
673
+ "maxSteps": 100,
674
+ "stateDir": ".heddle",
675
+ "directShellApproval": "never",
676
+ "searchIgnoreDirs": [".git", "dist", "node_modules", ".heddle"],
677
+ "agentContextPaths": ["AGENTS.md"]
678
+ }
679
+ ```
680
+
681
+ Precedence order:
682
+
683
+ - CLI flags override `heddle.config.json`
684
+ - `heddle.config.json` overrides environment-driven defaults
685
+
686
+ Field notes:
687
+
688
+ - `stateDir`: where traces, logs, approvals, and chat state are stored
689
+ - `directShellApproval`: whether explicit `!command` input in chat still asks for approval
690
+ - `searchIgnoreDirs`: directories excluded from `search_files`
691
+ - `agentContextPaths`: project instruction files injected into the system prompt
692
+
626
693
  ## Design Direction
627
694
 
628
695
  Heddle is currently optimized for coding and terminal workflows, but the long-term goal is broader: an open, provider-agnostic runtime for tool-using agents in real working environments.
@@ -12,9 +12,9 @@
12
12
  // due tasks once, and persists task/checkpoint/run state for the next wake.
13
13
  // ---------------------------------------------------------------------------
14
14
  import { join } from 'node:path';
15
- import { inferProviderFromModel } from '../src/llm/providers.js';
16
- import { resolveProviderApiKey } from '../src/runtime/api-keys.js';
17
- import { createFileHeartbeatTaskStore, runDueHeartbeatTasks, } from '../src/runtime/heartbeat-scheduler.js';
15
+ import { inferProviderFromModel } from '../src/core/llm/providers.js';
16
+ import { resolveProviderApiKey } from '../src/core/runtime/api-keys.js';
17
+ import { createFileHeartbeatTaskStore, runDueHeartbeatTasks, } from '../src/core/runtime/heartbeat-scheduler.js';
18
18
  const DEFAULT_EXAMPLE_MODEL = 'gpt-5.1-codex-mini';
19
19
  const STORE_DIR = join(process.cwd(), '.heddle', 'examples', 'heartbeat-scheduler');
20
20
  const TASK_ID = 'demo-maintenance';
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat-scheduler.js","sourceRoot":"","sources":["../../examples/heartbeat-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat-scheduler.js","sourceRoot":"","sources":["../../examples/heartbeat-scheduler.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,9 @@
12
12
  // within a small step budget, then persists the next checkpoint.
13
13
  // ---------------------------------------------------------------------------
14
14
  import { join } from 'node:path';
15
- import { inferProviderFromModel } from '../src/llm/providers.js';
16
- import { resolveProviderApiKey } from '../src/runtime/api-keys.js';
17
- import { createFileHeartbeatCheckpointStore, runStoredHeartbeat } from '../src/runtime/heartbeat-store.js';
15
+ import { inferProviderFromModel } from '../src/core/llm/providers.js';
16
+ import { resolveProviderApiKey } from '../src/core/runtime/api-keys.js';
17
+ import { createFileHeartbeatCheckpointStore, runStoredHeartbeat } from '../src/core/runtime/heartbeat-store.js';
18
18
  const DEFAULT_EXAMPLE_MODEL = 'gpt-5.1-codex-mini';
19
19
  const CHECKPOINT_PATH = join(process.cwd(), '.heddle', 'examples', 'heartbeat-demo-checkpoint.json');
20
20
  async function main() {
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../examples/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../examples/heartbeat.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ const createMockLlm = (scenario) => {
28
28
  parallelToolCalls: true,
29
29
  },
30
30
  },
31
- async chat(messages) {
31
+ async chat() {
32
32
  turn++;
33
33
  if (scenario === 'success') {
34
34
  return { content: `Demo response turn ${turn}` };
@@ -1 +1 @@
1
- {"version":3,"file":"host-events.js","sourceRoot":"","sources":["../../examples/host-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-events.js","sourceRoot":"","sources":["../../examples/host-events.ts"],"names":[],"mappings":"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"}