@roackb2/heddle 1.5.0 → 1.7.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 (462) hide show
  1. package/README.md +5 -0
  2. package/dist/examples/conversation-engine.js +10 -10
  3. package/dist/examples/conversation-engine.js.map +1 -1
  4. package/dist/examples/heartbeat-scheduler.js +2 -2
  5. package/dist/examples/heartbeat-scheduler.js.map +1 -1
  6. package/dist/examples/heartbeat.js +2 -2
  7. package/dist/examples/heartbeat.js.map +1 -1
  8. package/dist/examples/programmatic-loop.js +2 -2
  9. package/dist/examples/programmatic-loop.js.map +1 -1
  10. package/dist/examples/repo-investigator.js +4 -4
  11. package/dist/examples/repo-investigator.js.map +1 -1
  12. package/dist/src/cli/ask.d.ts.map +1 -1
  13. package/dist/src/cli/ask.js +5 -5
  14. package/dist/src/cli/ask.js.map +1 -1
  15. package/dist/src/cli/auth.d.ts +14 -7
  16. package/dist/src/cli/auth.d.ts.map +1 -1
  17. package/dist/src/cli/auth.js +75 -70
  18. package/dist/src/cli/auth.js.map +1 -1
  19. package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts +1 -1
  20. package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts.map +1 -1
  21. package/dist/src/cli/chat/adapters/conversation-activity-adapter.js +29 -19
  22. package/dist/src/cli/chat/adapters/conversation-activity-adapter.js.map +1 -1
  23. package/dist/src/cli/chat/adapters/slash-command-context.js +4 -4
  24. package/dist/src/cli/chat/adapters/slash-command-context.js.map +1 -1
  25. package/dist/src/cli/chat/commands/debug-snapshot-command.js +2 -2
  26. package/dist/src/cli/chat/commands/debug-snapshot-command.js.map +1 -1
  27. package/dist/src/cli/chat/components/ModelPickerPanel.d.ts +1 -1
  28. package/dist/src/cli/chat/components/ModelPickerPanel.js +1 -1
  29. package/dist/src/cli/chat/debug/tui-debug-snapshot.d.ts +1 -1
  30. package/dist/src/cli/chat/debug/tui-debug-snapshot.js +1 -1
  31. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js +3 -3
  32. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js.map +1 -1
  33. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js +2 -2
  34. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js.map +1 -1
  35. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts.map +1 -1
  36. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js +3 -3
  37. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js.map +1 -1
  38. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.d.ts.map +1 -1
  39. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js +16 -6
  40. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js.map +1 -1
  41. package/dist/src/cli/chat/hooks/controllers/useChatAppController.d.ts.map +1 -1
  42. package/dist/src/cli/chat/hooks/controllers/useChatAppController.js +9 -10
  43. package/dist/src/cli/chat/hooks/controllers/useChatAppController.js.map +1 -1
  44. package/dist/src/cli/chat/hooks/controllers/usePromptSubmissionController.d.ts +1 -1
  45. package/dist/src/cli/chat/hooks/useChatPickers.d.ts +1 -1
  46. package/dist/src/cli/chat/hooks/useChatPickers.d.ts.map +1 -1
  47. package/dist/src/cli/chat/hooks/useChatPickers.js +7 -8
  48. package/dist/src/cli/chat/hooks/useChatPickers.js.map +1 -1
  49. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -1
  50. package/dist/src/cli/chat/hooks/useChatStatusSummary.js +3 -4
  51. package/dist/src/cli/chat/hooks/useChatStatusSummary.js.map +1 -1
  52. package/dist/src/cli/chat/state/local-commands.d.ts +1 -1
  53. package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
  54. package/dist/src/cli/chat/state/local-commands.js +6 -6
  55. package/dist/src/cli/chat/state/local-commands.js.map +1 -1
  56. package/dist/src/cli/chat/utils/format.d.ts +0 -1
  57. package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
  58. package/dist/src/cli/chat/utils/format.js +0 -1
  59. package/dist/src/cli/chat/utils/format.js.map +1 -1
  60. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
  61. package/dist/src/cli/chat/utils/runtime.js +6 -6
  62. package/dist/src/cli/chat/utils/runtime.js.map +1 -1
  63. package/dist/src/cli/main.js +32 -27
  64. package/dist/src/cli/main.js.map +1 -1
  65. package/dist/src/cli/remote/control-plane-client.d.ts +3 -3
  66. package/dist/src/core/agent/budget/index.d.ts +2 -0
  67. package/dist/src/core/agent/budget/index.d.ts.map +1 -0
  68. package/dist/src/core/agent/budget/index.js +2 -0
  69. package/dist/src/core/agent/budget/index.js.map +1 -0
  70. package/dist/src/core/agent/budget/step-budget.d.ts +12 -0
  71. package/dist/src/core/agent/budget/step-budget.d.ts.map +1 -0
  72. package/dist/src/core/agent/budget/step-budget.js +21 -0
  73. package/dist/src/core/agent/budget/step-budget.js.map +1 -0
  74. package/dist/src/core/agent/context/run-context-builder.js +6 -6
  75. package/dist/src/core/agent/context/run-context-builder.js.map +1 -1
  76. package/dist/src/core/agent/tools/tool-dispatcher.d.ts +3 -4
  77. package/dist/src/core/agent/tools/tool-dispatcher.d.ts.map +1 -1
  78. package/dist/src/core/agent/tools/tool-dispatcher.js +2 -2
  79. package/dist/src/core/agent/tools/tool-dispatcher.js.map +1 -1
  80. package/dist/src/core/agent/types.d.ts +5 -5
  81. package/dist/src/core/agent/types.d.ts.map +1 -1
  82. package/dist/src/core/approvals/remembered-rules/schemas.d.ts +3 -3
  83. package/dist/src/core/auth/index.d.ts +4 -0
  84. package/dist/src/core/auth/index.d.ts.map +1 -0
  85. package/dist/src/core/auth/index.js +3 -0
  86. package/dist/src/core/auth/index.js.map +1 -0
  87. package/dist/src/core/auth/openai-oauth.d.ts +41 -61
  88. package/dist/src/core/auth/openai-oauth.d.ts.map +1 -1
  89. package/dist/src/core/auth/openai-oauth.js +264 -258
  90. package/dist/src/core/auth/openai-oauth.js.map +1 -1
  91. package/dist/src/core/auth/provider-credentials.d.ts +23 -51
  92. package/dist/src/core/auth/provider-credentials.d.ts.map +1 -1
  93. package/dist/src/core/auth/provider-credentials.js +69 -134
  94. package/dist/src/core/auth/provider-credentials.js.map +1 -1
  95. package/dist/src/core/auth/schemas.d.ts +54 -0
  96. package/dist/src/core/auth/schemas.d.ts.map +1 -0
  97. package/dist/src/core/auth/schemas.js +63 -0
  98. package/dist/src/core/auth/schemas.js.map +1 -0
  99. package/dist/src/core/auth/types.d.ts +80 -0
  100. package/dist/src/core/auth/types.d.ts.map +1 -0
  101. package/dist/src/core/auth/types.js +2 -0
  102. package/dist/src/core/auth/types.js.map +1 -0
  103. package/dist/src/core/chat/engine/compaction/service.js +2 -2
  104. package/dist/src/core/chat/engine/compaction/service.js.map +1 -1
  105. package/dist/src/core/chat/engine/compaction/summarizer/service.d.ts.map +1 -1
  106. package/dist/src/core/chat/engine/compaction/summarizer/service.js +9 -6
  107. package/dist/src/core/chat/engine/compaction/summarizer/service.js.map +1 -1
  108. package/dist/src/core/chat/engine/compaction/transcript-renderer.js +2 -2
  109. package/dist/src/core/chat/engine/compaction/transcript-renderer.js.map +1 -1
  110. package/dist/src/core/chat/engine/config.d.ts +2 -2
  111. package/dist/src/core/chat/engine/config.d.ts.map +1 -1
  112. package/dist/src/core/chat/engine/sessions/preferences/service.js +3 -3
  113. package/dist/src/core/chat/engine/sessions/preferences/service.js.map +1 -1
  114. package/dist/src/core/chat/engine/sessions/records/records.js +3 -3
  115. package/dist/src/core/chat/engine/sessions/records/records.js.map +1 -1
  116. package/dist/src/core/chat/engine/sessions/records/types.d.ts +2 -2
  117. package/dist/src/core/chat/engine/sessions/records/types.d.ts.map +1 -1
  118. package/dist/src/core/chat/engine/turns/host/host-normalizer.d.ts.map +1 -1
  119. package/dist/src/core/chat/engine/turns/host/host-normalizer.js +4 -4
  120. package/dist/src/core/chat/engine/turns/host/host-normalizer.js.map +1 -1
  121. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.d.ts.map +1 -1
  122. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.js +11 -7
  123. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.js.map +1 -1
  124. package/dist/src/core/chat/engine/turns/persistence/types.d.ts +3 -3
  125. package/dist/src/core/chat/engine/turns/persistence/types.d.ts.map +1 -1
  126. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.d.ts.map +1 -1
  127. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js +12 -10
  128. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js.map +1 -1
  129. package/dist/src/core/chat/engine/turns/types.d.ts +2 -3
  130. package/dist/src/core/chat/engine/turns/types.d.ts.map +1 -1
  131. package/dist/src/core/chat/engine/types.d.ts +4 -5
  132. package/dist/src/core/chat/engine/types.d.ts.map +1 -1
  133. package/dist/src/core/commands/slash/autocomplete.d.ts +9 -4
  134. package/dist/src/core/commands/slash/autocomplete.d.ts.map +1 -1
  135. package/dist/src/core/commands/slash/autocomplete.js +53 -48
  136. package/dist/src/core/commands/slash/autocomplete.js.map +1 -1
  137. package/dist/src/core/commands/slash/modules/auth/auth-commands.js +4 -4
  138. package/dist/src/core/commands/slash/modules/auth/auth-commands.js.map +1 -1
  139. package/dist/src/core/commands/slash/modules/compaction/compaction-commands.js +2 -2
  140. package/dist/src/core/commands/slash/modules/compaction/compaction-commands.js.map +1 -1
  141. package/dist/src/core/commands/slash/modules/drift/drift-commands.js +4 -4
  142. package/dist/src/core/commands/slash/modules/drift/drift-commands.js.map +1 -1
  143. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js +3 -3
  144. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js.map +1 -1
  145. package/dist/src/core/commands/slash/modules/model/model-commands.d.ts.map +1 -1
  146. package/dist/src/core/commands/slash/modules/model/model-commands.js +14 -15
  147. package/dist/src/core/commands/slash/modules/model/model-commands.js.map +1 -1
  148. package/dist/src/core/commands/slash/modules/session/session-commands.js +6 -6
  149. package/dist/src/core/commands/slash/modules/session/session-commands.js.map +1 -1
  150. package/dist/src/core/commands/slash/parser.d.ts +10 -5
  151. package/dist/src/core/commands/slash/parser.d.ts.map +1 -1
  152. package/dist/src/core/commands/slash/parser.js +42 -37
  153. package/dist/src/core/commands/slash/parser.js.map +1 -1
  154. package/dist/src/core/commands/slash/registry.d.ts +12 -3
  155. package/dist/src/core/commands/slash/registry.d.ts.map +1 -1
  156. package/dist/src/core/commands/slash/registry.js +50 -45
  157. package/dist/src/core/commands/slash/registry.js.map +1 -1
  158. package/dist/src/core/heartbeat/wake/service.d.ts.map +1 -1
  159. package/dist/src/core/heartbeat/wake/service.js +2 -3
  160. package/dist/src/core/heartbeat/wake/service.js.map +1 -1
  161. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.d.ts +21 -0
  162. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.d.ts.map +1 -0
  163. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.js +66 -0
  164. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.js.map +1 -0
  165. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.d.ts +16 -0
  166. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.d.ts.map +1 -0
  167. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.js +64 -0
  168. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.js.map +1 -0
  169. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.d.ts +17 -0
  170. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.d.ts.map +1 -0
  171. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.js +20 -0
  172. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.js.map +1 -0
  173. package/dist/src/core/llm/adapters/anthropic/index.d.ts +4 -0
  174. package/dist/src/core/llm/adapters/anthropic/index.d.ts.map +1 -0
  175. package/dist/src/core/llm/adapters/anthropic/index.js +3 -0
  176. package/dist/src/core/llm/adapters/anthropic/index.js.map +1 -0
  177. package/dist/src/core/llm/adapters/openai/index.d.ts +4 -0
  178. package/dist/src/core/llm/adapters/openai/index.d.ts.map +1 -0
  179. package/dist/src/core/llm/adapters/openai/index.js +3 -0
  180. package/dist/src/core/llm/adapters/openai/index.js.map +1 -0
  181. package/dist/src/core/llm/adapters/openai/openai-adapter.d.ts +53 -0
  182. package/dist/src/core/llm/adapters/openai/openai-adapter.d.ts.map +1 -0
  183. package/dist/src/core/llm/adapters/openai/openai-adapter.js +266 -0
  184. package/dist/src/core/llm/adapters/openai/openai-adapter.js.map +1 -0
  185. package/dist/src/core/llm/adapters/openai/openai-codec.d.ts +41 -0
  186. package/dist/src/core/llm/adapters/openai/openai-codec.d.ts.map +1 -0
  187. package/dist/src/core/llm/adapters/openai/openai-codec.js +169 -0
  188. package/dist/src/core/llm/adapters/openai/openai-codec.js.map +1 -0
  189. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.d.ts +17 -0
  190. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.d.ts.map +1 -0
  191. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.js +20 -0
  192. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.js.map +1 -0
  193. package/dist/src/core/llm/index.d.ts +9 -0
  194. package/dist/src/core/llm/index.d.ts.map +1 -0
  195. package/dist/src/core/llm/index.js +5 -0
  196. package/dist/src/core/llm/index.js.map +1 -0
  197. package/dist/src/core/llm/models/index.d.ts +5 -0
  198. package/dist/src/core/llm/models/index.d.ts.map +1 -0
  199. package/dist/src/core/llm/models/index.js +3 -0
  200. package/dist/src/core/llm/models/index.js.map +1 -0
  201. package/dist/src/core/llm/models/model-catalog.d.ts +23 -0
  202. package/dist/src/core/llm/models/model-catalog.d.ts.map +1 -0
  203. package/dist/src/core/llm/models/model-catalog.js +132 -0
  204. package/dist/src/core/llm/models/model-catalog.js.map +1 -0
  205. package/dist/src/core/llm/models/model-policy-service.d.ts +70 -0
  206. package/dist/src/core/llm/models/model-policy-service.d.ts.map +1 -0
  207. package/dist/src/core/llm/models/model-policy-service.js +137 -0
  208. package/dist/src/core/llm/models/model-policy-service.js.map +1 -0
  209. package/dist/src/core/llm/registry/builtin-llm-providers.d.ts +5 -0
  210. package/dist/src/core/llm/registry/builtin-llm-providers.d.ts.map +1 -0
  211. package/dist/src/core/llm/registry/builtin-llm-providers.js +16 -0
  212. package/dist/src/core/llm/registry/builtin-llm-providers.js.map +1 -0
  213. package/dist/src/core/llm/registry/index.d.ts +5 -0
  214. package/dist/src/core/llm/registry/index.d.ts.map +1 -0
  215. package/dist/src/core/llm/registry/index.js +4 -0
  216. package/dist/src/core/llm/registry/index.js.map +1 -0
  217. package/dist/src/core/llm/registry/llm-provider-registry.d.ts +17 -0
  218. package/dist/src/core/llm/registry/llm-provider-registry.d.ts.map +1 -0
  219. package/dist/src/core/llm/registry/llm-provider-registry.js +51 -0
  220. package/dist/src/core/llm/registry/llm-provider-registry.js.map +1 -0
  221. package/dist/src/core/llm/registry/provider-inference.d.ts +18 -0
  222. package/dist/src/core/llm/registry/provider-inference.d.ts.map +1 -0
  223. package/dist/src/core/llm/registry/provider-inference.js +41 -0
  224. package/dist/src/core/llm/registry/provider-inference.js.map +1 -0
  225. package/dist/src/core/llm/registry/types.d.ts +16 -0
  226. package/dist/src/core/llm/registry/types.d.ts.map +1 -0
  227. package/dist/src/core/llm/registry/types.js +2 -0
  228. package/dist/src/core/llm/registry/types.js.map +1 -0
  229. package/dist/src/core/llm/service.d.ts +15 -0
  230. package/dist/src/core/llm/service.d.ts.map +1 -0
  231. package/dist/src/core/llm/service.js +44 -0
  232. package/dist/src/core/llm/service.js.map +1 -0
  233. package/dist/src/core/llm/types.d.ts +18 -1
  234. package/dist/src/core/llm/types.d.ts.map +1 -1
  235. package/dist/src/core/memory/catalog.d.ts +22 -40
  236. package/dist/src/core/memory/catalog.d.ts.map +1 -1
  237. package/dist/src/core/memory/catalog.js +166 -155
  238. package/dist/src/core/memory/catalog.js.map +1 -1
  239. package/dist/src/core/memory/index.d.ts +14 -0
  240. package/dist/src/core/memory/index.d.ts.map +1 -0
  241. package/dist/src/core/memory/index.js +13 -0
  242. package/dist/src/core/memory/index.js.map +1 -0
  243. package/dist/src/core/memory/maintainer-prompt.d.ts +14 -0
  244. package/dist/src/core/memory/maintainer-prompt.d.ts.map +1 -0
  245. package/dist/src/core/memory/maintainer-prompt.js +58 -0
  246. package/dist/src/core/memory/maintainer-prompt.js.map +1 -0
  247. package/dist/src/core/memory/maintainer.d.ts +20 -44
  248. package/dist/src/core/memory/maintainer.d.ts.map +1 -1
  249. package/dist/src/core/memory/maintainer.js +124 -184
  250. package/dist/src/core/memory/maintainer.js.map +1 -1
  251. package/dist/src/core/memory/maintenance-integration.d.ts +22 -19
  252. package/dist/src/core/memory/maintenance-integration.d.ts.map +1 -1
  253. package/dist/src/core/memory/maintenance-integration.js +158 -163
  254. package/dist/src/core/memory/maintenance-integration.js.map +1 -1
  255. package/dist/src/core/memory/maintenance-repository.d.ts +27 -0
  256. package/dist/src/core/memory/maintenance-repository.d.ts.map +1 -0
  257. package/dist/src/core/memory/maintenance-repository.js +134 -0
  258. package/dist/src/core/memory/maintenance-repository.js.map +1 -0
  259. package/dist/src/core/memory/note-service.d.ts +23 -0
  260. package/dist/src/core/memory/note-service.d.ts.map +1 -0
  261. package/dist/src/core/memory/note-service.js +165 -0
  262. package/dist/src/core/memory/note-service.js.map +1 -0
  263. package/dist/src/core/memory/path-utils.d.ts +15 -0
  264. package/dist/src/core/memory/path-utils.d.ts.map +1 -0
  265. package/dist/src/core/memory/path-utils.js +31 -0
  266. package/dist/src/core/memory/path-utils.js.map +1 -0
  267. package/dist/src/core/memory/schemas.d.ts +116 -0
  268. package/dist/src/core/memory/schemas.d.ts.map +1 -0
  269. package/dist/src/core/memory/schemas.js +53 -0
  270. package/dist/src/core/memory/schemas.js.map +1 -0
  271. package/dist/src/core/memory/types.d.ts +149 -0
  272. package/dist/src/core/memory/types.d.ts.map +1 -0
  273. package/dist/src/core/memory/types.js +2 -0
  274. package/dist/src/core/memory/types.js.map +1 -0
  275. package/dist/src/core/memory/validation.d.ts +20 -38
  276. package/dist/src/core/memory/validation.d.ts.map +1 -1
  277. package/dist/src/core/memory/validation.js +98 -83
  278. package/dist/src/core/memory/validation.js.map +1 -1
  279. package/dist/src/core/memory/visibility.d.ts +19 -41
  280. package/dist/src/core/memory/visibility.d.ts.map +1 -1
  281. package/dist/src/core/memory/visibility.js +53 -153
  282. package/dist/src/core/memory/visibility.js.map +1 -1
  283. package/dist/src/core/observability/activity/conversation-activity-projector.d.ts +24 -0
  284. package/dist/src/core/observability/activity/conversation-activity-projector.d.ts.map +1 -0
  285. package/dist/src/core/observability/activity/conversation-activity-projector.js +146 -0
  286. package/dist/src/core/observability/activity/conversation-activity-projector.js.map +1 -0
  287. package/dist/src/core/observability/activity/index.d.ts +4 -0
  288. package/dist/src/core/observability/activity/index.d.ts.map +1 -0
  289. package/dist/src/core/observability/activity/index.js +3 -0
  290. package/dist/src/core/observability/activity/index.js.map +1 -0
  291. package/dist/src/core/observability/activity/tool-activity-summarizer.d.ts +15 -0
  292. package/dist/src/core/observability/activity/tool-activity-summarizer.d.ts.map +1 -0
  293. package/dist/src/core/observability/activity/tool-activity-summarizer.js +92 -0
  294. package/dist/src/core/observability/activity/tool-activity-summarizer.js.map +1 -0
  295. package/dist/src/core/observability/activity/types.d.ts +87 -0
  296. package/dist/src/core/observability/activity/types.d.ts.map +1 -0
  297. package/dist/src/core/observability/activity/types.js +2 -0
  298. package/dist/src/core/observability/activity/types.js.map +1 -0
  299. package/dist/src/core/observability/index.d.ts +6 -0
  300. package/dist/src/core/observability/index.d.ts.map +1 -0
  301. package/dist/src/core/observability/index.js +4 -0
  302. package/dist/src/core/observability/index.js.map +1 -0
  303. package/dist/src/core/observability/semantics/index.d.ts +2 -0
  304. package/dist/src/core/observability/semantics/index.d.ts.map +1 -0
  305. package/dist/src/core/observability/semantics/index.js +2 -0
  306. package/dist/src/core/observability/semantics/index.js.map +1 -0
  307. package/dist/src/core/observability/{semantic-conventions.d.ts → semantics/trace-semantics.d.ts} +1 -1
  308. package/dist/src/core/observability/semantics/trace-semantics.d.ts.map +1 -0
  309. package/dist/src/core/observability/{semantic-conventions.js → semantics/trace-semantics.js} +1 -1
  310. package/dist/src/core/observability/semantics/trace-semantics.js.map +1 -0
  311. package/dist/src/core/observability/summaries/default-trace-summarizers.d.ts +3 -0
  312. package/dist/src/core/observability/summaries/default-trace-summarizers.d.ts.map +1 -0
  313. package/dist/src/core/observability/summaries/default-trace-summarizers.js +29 -0
  314. package/dist/src/core/observability/summaries/default-trace-summarizers.js.map +1 -0
  315. package/dist/src/core/observability/summaries/index.d.ts +4 -0
  316. package/dist/src/core/observability/summaries/index.d.ts.map +1 -0
  317. package/dist/src/core/observability/summaries/index.js +3 -0
  318. package/dist/src/core/observability/summaries/index.js.map +1 -0
  319. package/dist/src/core/observability/summaries/trace-summary-service.d.ts +17 -0
  320. package/dist/src/core/observability/summaries/trace-summary-service.d.ts.map +1 -0
  321. package/dist/src/core/observability/summaries/trace-summary-service.js +32 -0
  322. package/dist/src/core/observability/summaries/trace-summary-service.js.map +1 -0
  323. package/dist/src/core/observability/summaries/types.d.ts +15 -0
  324. package/dist/src/core/observability/summaries/types.d.ts.map +1 -0
  325. package/dist/src/core/observability/summaries/types.js +2 -0
  326. package/dist/src/core/observability/summaries/types.js.map +1 -0
  327. package/dist/src/core/review/index.d.ts +3 -0
  328. package/dist/src/core/review/index.d.ts.map +1 -0
  329. package/dist/src/core/review/index.js +2 -0
  330. package/dist/src/core/review/index.js.map +1 -0
  331. package/dist/src/core/review/service.d.ts +22 -0
  332. package/dist/src/core/review/service.d.ts.map +1 -0
  333. package/dist/src/core/review/service.js +143 -0
  334. package/dist/src/core/review/service.js.map +1 -0
  335. package/dist/src/core/review/{diff-domain.d.ts → types.d.ts} +1 -3
  336. package/dist/src/core/review/types.d.ts.map +1 -0
  337. package/dist/src/core/review/types.js +2 -0
  338. package/dist/src/core/review/types.js.map +1 -0
  339. package/dist/src/core/runtime/credentials/service.d.ts +1 -1
  340. package/dist/src/core/runtime/credentials/service.d.ts.map +1 -1
  341. package/dist/src/core/runtime/credentials/service.js +8 -6
  342. package/dist/src/core/runtime/credentials/service.js.map +1 -1
  343. package/dist/src/core/runtime/loop/service.d.ts.map +1 -1
  344. package/dist/src/core/runtime/loop/service.js +14 -6
  345. package/dist/src/core/runtime/loop/service.js.map +1 -1
  346. package/dist/src/core/runtime/tools/service.js +2 -2
  347. package/dist/src/core/runtime/tools/service.js.map +1 -1
  348. package/dist/src/core/tools/execute-tool.d.ts +5 -4
  349. package/dist/src/core/tools/execute-tool.d.ts.map +1 -1
  350. package/dist/src/core/tools/execute-tool.js +23 -25
  351. package/dist/src/core/tools/execute-tool.js.map +1 -1
  352. package/dist/src/core/tools/index.d.ts +5 -0
  353. package/dist/src/core/tools/index.d.ts.map +1 -0
  354. package/dist/src/core/tools/index.js +4 -0
  355. package/dist/src/core/tools/index.js.map +1 -0
  356. package/dist/src/core/tools/registry.d.ts +8 -7
  357. package/dist/src/core/tools/registry.d.ts.map +1 -1
  358. package/dist/src/core/tools/registry.js +18 -21
  359. package/dist/src/core/tools/registry.js.map +1 -1
  360. package/dist/src/core/tools/toolkit.d.ts +9 -4
  361. package/dist/src/core/tools/toolkit.d.ts.map +1 -1
  362. package/dist/src/core/tools/toolkit.js +21 -16
  363. package/dist/src/core/tools/toolkit.js.map +1 -1
  364. package/dist/src/core/tools/toolkits/external-context/view-image.d.ts.map +1 -1
  365. package/dist/src/core/tools/toolkits/external-context/view-image.js +15 -9
  366. package/dist/src/core/tools/toolkits/external-context/view-image.js.map +1 -1
  367. package/dist/src/core/tools/toolkits/external-context/web-search.d.ts.map +1 -1
  368. package/dist/src/core/tools/toolkits/external-context/web-search.js +15 -9
  369. package/dist/src/core/tools/toolkits/external-context/web-search.js.map +1 -1
  370. package/dist/src/core/tools/toolkits/knowledge/memory-notes.d.ts +1 -1
  371. package/dist/src/core/tools/toolkits/knowledge/memory-notes.d.ts.map +1 -1
  372. package/dist/src/core/tools/toolkits/knowledge/memory-notes.js +48 -238
  373. package/dist/src/core/tools/toolkits/knowledge/memory-notes.js.map +1 -1
  374. package/dist/src/core/tools/toolkits/knowledge/record-knowledge.d.ts.map +1 -1
  375. package/dist/src/core/tools/toolkits/knowledge/record-knowledge.js +75 -105
  376. package/dist/src/core/tools/toolkits/knowledge/record-knowledge.js.map +1 -1
  377. package/dist/src/core/trace/format.d.ts +9 -3
  378. package/dist/src/core/trace/format.d.ts.map +1 -1
  379. package/dist/src/core/trace/format.js +106 -107
  380. package/dist/src/core/trace/format.js.map +1 -1
  381. package/dist/src/core/trace/index.d.ts +4 -0
  382. package/dist/src/core/trace/index.d.ts.map +1 -0
  383. package/dist/src/core/trace/index.js +3 -0
  384. package/dist/src/core/trace/index.js.map +1 -0
  385. package/dist/src/core/trace/recorder.d.ts +10 -7
  386. package/dist/src/core/trace/recorder.d.ts.map +1 -1
  387. package/dist/src/core/trace/recorder.js +15 -17
  388. package/dist/src/core/trace/recorder.js.map +1 -1
  389. package/dist/src/core/trace/types.d.ts +7 -0
  390. package/dist/src/core/trace/types.d.ts.map +1 -0
  391. package/dist/src/core/trace/types.js +2 -0
  392. package/dist/src/core/trace/types.js.map +1 -0
  393. package/dist/src/index.d.ts +23 -28
  394. package/dist/src/index.d.ts.map +1 -1
  395. package/dist/src/index.js +15 -15
  396. package/dist/src/index.js.map +1 -1
  397. package/dist/src/server/features/control-plane/controllers/ask.d.ts.map +1 -1
  398. package/dist/src/server/features/control-plane/controllers/ask.js +10 -8
  399. package/dist/src/server/features/control-plane/controllers/ask.js.map +1 -1
  400. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js +5 -5
  401. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js.map +1 -1
  402. package/dist/src/server/features/control-plane/controllers/chat-turn-review-presenter.js +3 -3
  403. package/dist/src/server/features/control-plane/controllers/chat-turn-review-presenter.js.map +1 -1
  404. package/dist/src/server/features/control-plane/controllers/memory.d.ts +2 -1
  405. package/dist/src/server/features/control-plane/controllers/memory.d.ts.map +1 -1
  406. package/dist/src/server/features/control-plane/controllers/memory.js +8 -7
  407. package/dist/src/server/features/control-plane/controllers/memory.js.map +1 -1
  408. package/dist/src/server/features/control-plane/controllers/workspace-diff.js +2 -2
  409. package/dist/src/server/features/control-plane/controllers/workspace-diff.js.map +1 -1
  410. package/dist/src/server/features/control-plane/router.d.ts +3 -3
  411. package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
  412. package/dist/src/server/features/control-plane/router.js +5 -6
  413. package/dist/src/server/features/control-plane/router.js.map +1 -1
  414. package/dist/src/server/features/control-plane/types.d.ts +2 -2
  415. package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
  416. package/dist/src/server/router.d.ts +3 -3
  417. package/dist/src/web/assets/{MonacoDiffViewer-F3AOHIps.js → MonacoDiffViewer-D_Fh9ndN.js} +1 -1
  418. package/dist/src/web/assets/index-B1wQ0pS4.js +87 -0
  419. package/dist/src/web/index.html +1 -1
  420. package/package.json +1 -1
  421. package/dist/src/core/llm/anthropic.d.ts +0 -7
  422. package/dist/src/core/llm/anthropic.d.ts.map +0 -1
  423. package/dist/src/core/llm/anthropic.js +0 -115
  424. package/dist/src/core/llm/anthropic.js.map +0 -1
  425. package/dist/src/core/llm/factory.d.ts +0 -14
  426. package/dist/src/core/llm/factory.d.ts.map +0 -1
  427. package/dist/src/core/llm/factory.js +0 -46
  428. package/dist/src/core/llm/factory.js.map +0 -1
  429. package/dist/src/core/llm/model-policy.d.ts +0 -63
  430. package/dist/src/core/llm/model-policy.d.ts.map +0 -1
  431. package/dist/src/core/llm/model-policy.js +0 -131
  432. package/dist/src/core/llm/model-policy.js.map +0 -1
  433. package/dist/src/core/llm/openai-models.d.ts +0 -17
  434. package/dist/src/core/llm/openai-models.d.ts.map +0 -1
  435. package/dist/src/core/llm/openai-models.js +0 -127
  436. package/dist/src/core/llm/openai-models.js.map +0 -1
  437. package/dist/src/core/llm/openai.d.ts +0 -31
  438. package/dist/src/core/llm/openai.d.ts.map +0 -1
  439. package/dist/src/core/llm/openai.js +0 -405
  440. package/dist/src/core/llm/openai.js.map +0 -1
  441. package/dist/src/core/llm/providers.d.ts +0 -3
  442. package/dist/src/core/llm/providers.d.ts.map +0 -1
  443. package/dist/src/core/llm/providers.js +0 -21
  444. package/dist/src/core/llm/providers.js.map +0 -1
  445. package/dist/src/core/observability/conversation-activity.d.ts +0 -116
  446. package/dist/src/core/observability/conversation-activity.d.ts.map +0 -1
  447. package/dist/src/core/observability/conversation-activity.js +0 -255
  448. package/dist/src/core/observability/conversation-activity.js.map +0 -1
  449. package/dist/src/core/observability/semantic-conventions.d.ts.map +0 -1
  450. package/dist/src/core/observability/semantic-conventions.js.map +0 -1
  451. package/dist/src/core/observability/trace-summarizers.d.ts +0 -23
  452. package/dist/src/core/observability/trace-summarizers.d.ts.map +0 -1
  453. package/dist/src/core/observability/trace-summarizers.js +0 -60
  454. package/dist/src/core/observability/trace-summarizers.js.map +0 -1
  455. package/dist/src/core/review/diff-domain.d.ts.map +0 -1
  456. package/dist/src/core/review/diff-domain.js +0 -134
  457. package/dist/src/core/review/diff-domain.js.map +0 -1
  458. package/dist/src/core/utils/budget.d.ts +0 -13
  459. package/dist/src/core/utils/budget.d.ts.map +0 -1
  460. package/dist/src/core/utils/budget.js +0 -22
  461. package/dist/src/core/utils/budget.js.map +0 -1
  462. package/dist/src/web/assets/index-D6aK1OFb.js +0 -81
@@ -0,0 +1,165 @@
1
+ import { readdir, readFile, stat } from 'node:fs/promises';
2
+ import { spawn } from 'node:child_process';
3
+ import { resolve } from 'node:path';
4
+ import { executeScopedEdit } from '../../core/tools/toolkits/coding-files/file-edit-core.js';
5
+ import { MemoryPathUtils } from './path-utils.js';
6
+ const DEFAULT_MAX_SEARCH_RESULTS = 100;
7
+ /**
8
+ * Owns note-level memory reads, search, listing, and scoped note edits.
9
+ */
10
+ export class MemoryNoteService {
11
+ memoryRoot;
12
+ constructor(memoryRoot) {
13
+ this.memoryRoot = memoryRoot;
14
+ }
15
+ async list(input = {}) {
16
+ const targetPath = this.resolvePath(input.path ?? '.');
17
+ if (!await MemoryPathUtils.pathExists(targetPath)) {
18
+ return [];
19
+ }
20
+ const info = await stat(targetPath);
21
+ if (info.isFile()) {
22
+ return [MemoryPathUtils.toMemoryRelativePath(this.resolveRoot(), targetPath)];
23
+ }
24
+ const notes = await this.listMarkdownNotes(targetPath);
25
+ return notes.map((path) => MemoryPathUtils.toMemoryRelativePath(this.resolveRoot(), path)).sort();
26
+ }
27
+ async read(input) {
28
+ const targetPath = this.resolvePath(input.path);
29
+ try {
30
+ return MemoryNoteService.pageText(await readFile(targetPath, 'utf8'), input.offset, input.maxLines);
31
+ }
32
+ catch (error) {
33
+ if (MemoryPathUtils.isErrorWithCode(error, 'EISDIR')) {
34
+ throw new Error(`Failed to read ${targetPath}: path is a directory, not a file. Use list_memory_notes to inspect memory directories.`, { cause: error });
35
+ }
36
+ throw new Error(`Failed to read ${targetPath}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
37
+ }
38
+ }
39
+ async search(input) {
40
+ const targetPath = this.resolvePath(input.path ?? '.');
41
+ if (!await MemoryPathUtils.pathExists(targetPath)) {
42
+ return 'No matches found.';
43
+ }
44
+ return await this.searchWithCli(targetPath, input.query, MemoryNoteService.sanitizeMaxResults(input.maxResults));
45
+ }
46
+ async edit(raw) {
47
+ return await executeScopedEdit(raw, {
48
+ toolName: 'edit_memory_note',
49
+ rootPath: this.resolveRoot(),
50
+ rootLabel: 'memory root',
51
+ subjectLabel: 'memory note',
52
+ creationHint: 'Set createIfMissing to true if you want edit_memory_note to create it.',
53
+ enforceRoot: true,
54
+ });
55
+ }
56
+ resolvePath(path) {
57
+ const result = MemoryPathUtils.resolveMemoryPath(this.resolveRoot(), path);
58
+ if (!result.ok) {
59
+ throw new Error(result.error);
60
+ }
61
+ return result.path;
62
+ }
63
+ async listMarkdownNotes(root) {
64
+ const results = [];
65
+ const entries = await readdir(root, { withFileTypes: true });
66
+ for (const entry of entries) {
67
+ if (entry.name === '_maintenance') {
68
+ continue;
69
+ }
70
+ const nextPath = resolve(root, entry.name);
71
+ if (entry.isDirectory()) {
72
+ results.push(...await this.listMarkdownNotes(nextPath));
73
+ continue;
74
+ }
75
+ if (entry.isFile() && MemoryNoteService.isMarkdownPath(nextPath)) {
76
+ results.push(nextPath);
77
+ }
78
+ }
79
+ return results.sort();
80
+ }
81
+ async searchWithCli(targetPath, query, maxResults) {
82
+ const memoryRoot = this.resolveRoot();
83
+ const relativeTarget = MemoryPathUtils.toMemoryRelativePath(memoryRoot, targetPath);
84
+ const normalizedTarget = relativeTarget === '.' ? '.' : relativeTarget;
85
+ const rgResult = await MemoryNoteService.runSearchCommand('rg', ['-n', '--no-heading', '--glob', '*.md', query, normalizedTarget], memoryRoot);
86
+ if (rgResult.kind === 'ok') {
87
+ return MemoryNoteService.trimSearchOutput(rgResult.stdout, maxResults);
88
+ }
89
+ if (rgResult.kind === 'nonzero_no_match') {
90
+ return 'No matches found.';
91
+ }
92
+ if (rgResult.kind !== 'missing_binary') {
93
+ throw new Error(`Failed to search memory notes in ${targetPath}: ${rgResult.error}`);
94
+ }
95
+ const grepResult = await MemoryNoteService.runSearchCommand('grep', ['-R', '-n', '--include=*.md', query, normalizedTarget], memoryRoot);
96
+ if (grepResult.kind === 'ok') {
97
+ return MemoryNoteService.trimSearchOutput(grepResult.stdout, maxResults);
98
+ }
99
+ if (grepResult.kind === 'nonzero_no_match') {
100
+ return 'No matches found.';
101
+ }
102
+ throw new Error(`Failed to search memory notes in ${targetPath}: ${grepResult.error}`);
103
+ }
104
+ resolveRoot() {
105
+ return resolve(this.memoryRoot);
106
+ }
107
+ static pageText(content, offset, maxLines) {
108
+ const lines = content.split('\n');
109
+ const start = offset && offset > 0 ? Math.floor(offset) : 0;
110
+ const end = maxLines && maxLines > 0 ? start + Math.floor(maxLines) : undefined;
111
+ return start > 0 || end !== undefined ? lines.slice(start, end).join('\n') : content;
112
+ }
113
+ static sanitizeMaxResults(value) {
114
+ if (!value || !Number.isFinite(value) || value <= 0) {
115
+ return DEFAULT_MAX_SEARCH_RESULTS;
116
+ }
117
+ return Math.min(Math.floor(value), DEFAULT_MAX_SEARCH_RESULTS);
118
+ }
119
+ static isMarkdownPath(path) {
120
+ return /\.md$/i.test(path);
121
+ }
122
+ static trimSearchOutput(stdout, maxResults) {
123
+ const lines = stdout
124
+ .split('\n')
125
+ .map((line) => line.trimEnd().replace(/^\.\//, ''))
126
+ .filter((line) => line.length > 0)
127
+ .slice(0, maxResults);
128
+ return lines.length > 0 ? lines.join('\n') : 'No matches found.';
129
+ }
130
+ static async runSearchCommand(binary, args, cwd) {
131
+ return await new Promise((resolvePromise) => {
132
+ const child = spawn(binary, args, {
133
+ cwd,
134
+ stdio: ['ignore', 'pipe', 'pipe'],
135
+ });
136
+ let stdout = '';
137
+ let stderr = '';
138
+ child.stdout.on('data', (chunk) => {
139
+ stdout += chunk.toString();
140
+ });
141
+ child.stderr.on('data', (chunk) => {
142
+ stderr += chunk.toString();
143
+ });
144
+ child.on('error', (error) => {
145
+ if ('code' in error && error.code === 'ENOENT') {
146
+ resolvePromise({ kind: 'missing_binary', error: `${binary} is not available in the environment.` });
147
+ return;
148
+ }
149
+ resolvePromise({ kind: 'error', error: error.message });
150
+ });
151
+ child.on('close', (code) => {
152
+ if (code === 0) {
153
+ resolvePromise({ kind: 'ok', stdout });
154
+ return;
155
+ }
156
+ if (code === 1) {
157
+ resolvePromise({ kind: 'nonzero_no_match', error: stderr.trim() || `${binary} returned exit code 1` });
158
+ return;
159
+ }
160
+ resolvePromise({ kind: 'error', error: stderr.trim() || `${binary} returned exit code ${code ?? 'unknown'}` });
161
+ });
162
+ });
163
+ }
164
+ }
165
+ //# sourceMappingURL=note-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note-service.js","sourceRoot":"","sources":["../../../../src/core/memory/note-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare class MemoryPathUtils {
2
+ static resolveMemoryPath(memoryRoot: string, requestedPath: string): {
3
+ ok: true;
4
+ path: string;
5
+ } | {
6
+ ok: false;
7
+ error: string;
8
+ };
9
+ static toMemoryRelativePath(memoryRoot: string, filePath: string): string;
10
+ static pathExists(path: string): Promise<boolean>;
11
+ static isErrorWithCode(error: unknown, code: string): error is Error & {
12
+ code: string;
13
+ };
14
+ }
15
+ //# sourceMappingURL=path-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/path-utils.ts"],"names":[],"mappings":"AAGA,qBAAa,eAAe;IAC1B,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAc9H,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;WAI5D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASvD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,IAAI,KAAK,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;CAGxF"}
@@ -0,0 +1,31 @@
1
+ import { access } from 'node:fs/promises';
2
+ import { isAbsolute, relative, resolve } from 'node:path';
3
+ export class MemoryPathUtils {
4
+ static resolveMemoryPath(memoryRoot, requestedPath) {
5
+ if (!requestedPath.trim()) {
6
+ return { ok: false, error: `Memory note paths must be non-empty and stay inside ${memoryRoot}.` };
7
+ }
8
+ const targetPath = resolve(memoryRoot, requestedPath);
9
+ const rel = relative(memoryRoot, targetPath);
10
+ if (rel.startsWith('..') || isAbsolute(rel)) {
11
+ return { ok: false, error: `Memory note paths must stay inside ${memoryRoot}. Refusing to access ${targetPath}.` };
12
+ }
13
+ return { ok: true, path: targetPath };
14
+ }
15
+ static toMemoryRelativePath(memoryRoot, filePath) {
16
+ return relative(memoryRoot, filePath) || '.';
17
+ }
18
+ static async pathExists(path) {
19
+ try {
20
+ await access(path);
21
+ return true;
22
+ }
23
+ catch {
24
+ return false;
25
+ }
26
+ }
27
+ static isErrorWithCode(error, code) {
28
+ return error instanceof Error && 'code' in error && error.code === code;
29
+ }
30
+ }
31
+ //# sourceMappingURL=path-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../../../src/core/memory/path-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAC,iBAAiB,CAAC,UAAkB,EAAE,aAAqB;QAChE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uDAAuD,UAAU,GAAG,EAAE,CAAC;QACpG,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,UAAU,wBAAwB,UAAU,GAAG,EAAE,CAAC;QACrH,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,UAAkB,EAAE,QAAgB;QAC9D,OAAO,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAY;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,KAAc,EAAE,IAAY;QACjD,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IAC1E,CAAC;CACF"}
@@ -0,0 +1,116 @@
1
+ import { z } from 'zod';
2
+ export declare class MemorySchemas {
3
+ static readonly candidate: z.ZodObject<{
4
+ id: z.ZodString;
5
+ recordedAt: z.ZodString;
6
+ status: z.ZodLiteral<"pending">;
7
+ summary: z.ZodString;
8
+ evidence: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ categoryHint: z.ZodOptional<z.ZodString>;
10
+ importance: z.ZodOptional<z.ZodEnum<{
11
+ low: "low";
12
+ medium: "medium";
13
+ high: "high";
14
+ }>>;
15
+ confidence: z.ZodOptional<z.ZodEnum<{
16
+ "user-stated": "user-stated";
17
+ "tool-verified": "tool-verified";
18
+ inferred: "inferred";
19
+ historical: "historical";
20
+ }>>;
21
+ sourceRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
+ }, z.core.$strip>;
23
+ static readonly candidateStatus: z.ZodObject<{
24
+ kind: z.ZodLiteral<"candidate_status">;
25
+ candidateId: z.ZodString;
26
+ status: z.ZodLiteral<"processed">;
27
+ runId: z.ZodString;
28
+ recordedAt: z.ZodString;
29
+ }, z.core.$strip>;
30
+ static readonly candidateLogEntry: z.ZodUnion<readonly [z.ZodObject<{
31
+ id: z.ZodString;
32
+ recordedAt: z.ZodString;
33
+ status: z.ZodLiteral<"pending">;
34
+ summary: z.ZodString;
35
+ evidence: z.ZodOptional<z.ZodArray<z.ZodString>>;
36
+ categoryHint: z.ZodOptional<z.ZodString>;
37
+ importance: z.ZodOptional<z.ZodEnum<{
38
+ low: "low";
39
+ medium: "medium";
40
+ high: "high";
41
+ }>>;
42
+ confidence: z.ZodOptional<z.ZodEnum<{
43
+ "user-stated": "user-stated";
44
+ "tool-verified": "tool-verified";
45
+ inferred: "inferred";
46
+ historical: "historical";
47
+ }>>;
48
+ sourceRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
49
+ }, z.core.$strip>, z.ZodObject<{
50
+ kind: z.ZodLiteral<"candidate_status">;
51
+ candidateId: z.ZodString;
52
+ status: z.ZodLiteral<"processed">;
53
+ runId: z.ZodString;
54
+ recordedAt: z.ZodString;
55
+ }, z.core.$strip>]>;
56
+ static readonly maintenanceRun: z.ZodObject<{
57
+ id: z.ZodString;
58
+ startedAt: z.ZodString;
59
+ finishedAt: z.ZodString;
60
+ source: z.ZodString;
61
+ outcome: z.ZodEnum<{
62
+ error: "error";
63
+ done: "done";
64
+ max_steps: "max_steps";
65
+ interrupted: "interrupted";
66
+ skipped: "skipped";
67
+ }>;
68
+ summary: z.ZodString;
69
+ candidateIds: z.ZodArray<z.ZodString>;
70
+ processedCandidateIds: z.ZodArray<z.ZodString>;
71
+ failedCandidateIds: z.ZodArray<z.ZodString>;
72
+ catalogValid: z.ZodBoolean;
73
+ catalogMissing: z.ZodArray<z.ZodString>;
74
+ }, z.core.$strip>;
75
+ static readonly maintenanceLock: z.ZodObject<{
76
+ id: z.ZodString;
77
+ pid: z.ZodOptional<z.ZodNumber>;
78
+ acquiredAt: z.ZodString;
79
+ }, z.core.$strip>;
80
+ static parseCandidateLogEntry(value: unknown): z.ZodSafeParseResult<{
81
+ id: string;
82
+ recordedAt: string;
83
+ status: "pending";
84
+ summary: string;
85
+ evidence?: string[] | undefined;
86
+ categoryHint?: string | undefined;
87
+ importance?: "low" | "medium" | "high" | undefined;
88
+ confidence?: "user-stated" | "tool-verified" | "inferred" | "historical" | undefined;
89
+ sourceRefs?: string[] | undefined;
90
+ } | {
91
+ kind: "candidate_status";
92
+ candidateId: string;
93
+ status: "processed";
94
+ runId: string;
95
+ recordedAt: string;
96
+ }>;
97
+ static parseMaintenanceRun(value: unknown): z.ZodSafeParseResult<{
98
+ id: string;
99
+ startedAt: string;
100
+ finishedAt: string;
101
+ source: string;
102
+ outcome: "error" | "done" | "max_steps" | "interrupted" | "skipped";
103
+ summary: string;
104
+ candidateIds: string[];
105
+ processedCandidateIds: string[];
106
+ failedCandidateIds: string[];
107
+ catalogValid: boolean;
108
+ catalogMissing: string[];
109
+ }>;
110
+ static parseMaintenanceLock(value: unknown): z.ZodSafeParseResult<{
111
+ id: string;
112
+ acquiredAt: string;
113
+ pid?: number | undefined;
114
+ }>;
115
+ }
116
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,SAAS;;;;;;;;;;;;;;;;;;;sBAUtB;IAEH,MAAM,CAAC,QAAQ,CAAC,eAAe;;;;;;sBAM5B;IAEH,MAAM,CAAC,QAAQ,CAAC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;wBAG9B;IAEH,MAAM,CAAC,QAAQ,CAAC,cAAc;;;;;;;;;;;;;;;;;;sBAY3B;IAEH,MAAM,CAAC,QAAQ,CAAC,eAAe;;;;sBAI5B;IAEH,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;IAI5C,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;;;IAIzC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO;;;;;CAG3C"}
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ export class MemorySchemas {
3
+ static candidate = z.object({
4
+ id: z.string().describe('Stable id for a pending durable knowledge candidate.'),
5
+ recordedAt: z.string().describe('ISO timestamp when the candidate was recorded.'),
6
+ status: z.literal('pending').describe('Candidates in the JSONL log are pending until a status event marks them processed.'),
7
+ summary: z.string().describe('Concise durable fact or preference to preserve.'),
8
+ evidence: z.array(z.string()).optional().describe('Short supporting observations.'),
9
+ categoryHint: z.string().optional().describe('Suggested memory category.'),
10
+ importance: z.enum(['low', 'medium', 'high']).optional().describe('Expected future value.'),
11
+ confidence: z.enum(['user-stated', 'tool-verified', 'inferred', 'historical']).optional().describe('Why the candidate should be trusted.'),
12
+ sourceRefs: z.array(z.string()).optional().describe('Workspace-relative paths, commands, trace ids, or note references.'),
13
+ });
14
+ static candidateStatus = z.object({
15
+ kind: z.literal('candidate_status').describe('Discriminator for candidate status events in the candidate JSONL log.'),
16
+ candidateId: z.string().describe('Candidate id whose status changed.'),
17
+ status: z.literal('processed').describe('Processed candidates are hidden from pending reads.'),
18
+ runId: z.string().describe('Maintenance run that processed the candidate.'),
19
+ recordedAt: z.string().describe('ISO timestamp when the status event was recorded.'),
20
+ });
21
+ static candidateLogEntry = z.union([
22
+ MemorySchemas.candidate,
23
+ MemorySchemas.candidateStatus,
24
+ ]);
25
+ static maintenanceRun = z.object({
26
+ id: z.string().describe('Stable id for a memory maintenance run.'),
27
+ startedAt: z.string().describe('ISO timestamp when the run started.'),
28
+ finishedAt: z.string().describe('ISO timestamp when the run finished.'),
29
+ source: z.string().describe('Caller or workflow that triggered the run.'),
30
+ outcome: z.enum(['done', 'max_steps', 'error', 'interrupted', 'skipped']).describe('Agent-loop or maintenance outcome.'),
31
+ summary: z.string().describe('Human-readable run result summary.'),
32
+ candidateIds: z.array(z.string()).describe('All candidate ids considered by the run.'),
33
+ processedCandidateIds: z.array(z.string()).describe('Candidate ids successfully processed.'),
34
+ failedCandidateIds: z.array(z.string()).describe('Candidate ids skipped or not processed.'),
35
+ catalogValid: z.boolean().describe('Whether required memory catalogs existed after the run.'),
36
+ catalogMissing: z.array(z.string()).describe('Missing required catalog paths.'),
37
+ });
38
+ static maintenanceLock = z.object({
39
+ id: z.string().describe('Opaque lock owner id.'),
40
+ pid: z.number().optional().describe('Process id that acquired the lock.'),
41
+ acquiredAt: z.string().describe('ISO timestamp when the lock was acquired.'),
42
+ });
43
+ static parseCandidateLogEntry(value) {
44
+ return MemorySchemas.candidateLogEntry.safeParse(value);
45
+ }
46
+ static parseMaintenanceRun(value) {
47
+ return MemorySchemas.maintenanceRun.safeParse(value);
48
+ }
49
+ static parseMaintenanceLock(value) {
50
+ return MemorySchemas.maintenanceLock.safeParse(value);
51
+ }
52
+ }
53
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../src/core/memory/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import type { LlmAdapter } from '../../core/llm/types.js';
2
+ import type { RunResult, TraceEvent } from '../../core/types.js';
3
+ export type MemoryCategory = {
4
+ path: string;
5
+ title: string;
6
+ purpose: string;
7
+ readWhen: string;
8
+ };
9
+ export type BootstrapMemoryWorkspaceResult = {
10
+ memoryRoot: string;
11
+ createdPaths: string[];
12
+ };
13
+ export type MemoryCatalogLoadResult = {
14
+ memoryRoot: string;
15
+ catalogPath: string;
16
+ exists: boolean;
17
+ content: string;
18
+ truncated: boolean;
19
+ originalBytes: number;
20
+ maxBytes: number;
21
+ };
22
+ export type MemoryCatalogShapeValidation = {
23
+ ok: boolean;
24
+ memoryRoot: string;
25
+ missing: string[];
26
+ };
27
+ export type KnowledgeCandidate = {
28
+ id: string;
29
+ recordedAt: string;
30
+ status: 'pending';
31
+ summary: string;
32
+ evidence?: string[];
33
+ categoryHint?: string;
34
+ importance?: 'low' | 'medium' | 'high';
35
+ confidence?: 'user-stated' | 'tool-verified' | 'inferred' | 'historical';
36
+ sourceRefs?: string[];
37
+ };
38
+ export type KnowledgeCandidateStatusRecord = {
39
+ kind: 'candidate_status';
40
+ candidateId: string;
41
+ status: 'processed';
42
+ runId: string;
43
+ recordedAt: string;
44
+ };
45
+ export type KnowledgeMaintenanceRunRecord = {
46
+ id: string;
47
+ startedAt: string;
48
+ finishedAt: string;
49
+ source: string;
50
+ outcome: RunResult['outcome'] | 'skipped';
51
+ summary: string;
52
+ candidateIds: string[];
53
+ processedCandidateIds: string[];
54
+ failedCandidateIds: string[];
55
+ catalogValid: boolean;
56
+ catalogMissing: string[];
57
+ };
58
+ export type RunKnowledgeMaintenanceOptions = {
59
+ memoryRoot: string;
60
+ observations: KnowledgeCandidate[];
61
+ llm: LlmAdapter;
62
+ source: string;
63
+ maxSteps?: number;
64
+ now?: () => Date;
65
+ nextRunId?: () => string;
66
+ };
67
+ export type RunKnowledgeMaintenanceResult = {
68
+ run: KnowledgeMaintenanceRunRecord;
69
+ result?: RunResult;
70
+ };
71
+ export type RunMaintenanceForRecordedCandidatesOptions = {
72
+ memoryRoot: string;
73
+ llm: LlmAdapter;
74
+ source: string;
75
+ trace: TraceEvent[];
76
+ maxSteps?: number;
77
+ lockTimeoutMs?: number;
78
+ lockStaleAfterMs?: number;
79
+ onTraceEvent?: (event: TraceEvent) => void;
80
+ };
81
+ export type RunMaintenanceForRecordedCandidatesResult = {
82
+ candidateIds: string[];
83
+ maintenance?: RunKnowledgeMaintenanceResult;
84
+ events: TraceEvent[];
85
+ };
86
+ export type MemoryStatusView = {
87
+ memoryRoot: string;
88
+ catalog: {
89
+ ok: boolean;
90
+ missing: string[];
91
+ };
92
+ notes: {
93
+ count: number;
94
+ };
95
+ candidates: {
96
+ pending: number;
97
+ };
98
+ runs: {
99
+ latest: KnowledgeMaintenanceRunRecord[];
100
+ };
101
+ };
102
+ export type MemoryValidationIssue = {
103
+ type: 'missing_catalog';
104
+ severity: 'error';
105
+ path: string;
106
+ message: string;
107
+ } | {
108
+ type: 'oversized_catalog';
109
+ severity: 'warning';
110
+ path: string;
111
+ sizeBytes: number;
112
+ maxBytes: number;
113
+ message: string;
114
+ } | {
115
+ type: 'orphan_note';
116
+ severity: 'warning';
117
+ path: string;
118
+ message: string;
119
+ } | {
120
+ type: 'pending_candidates';
121
+ severity: 'info';
122
+ count: number;
123
+ message: string;
124
+ };
125
+ export type MemoryValidationResult = {
126
+ memoryRoot: string;
127
+ ok: boolean;
128
+ issueCount: number;
129
+ issues: MemoryValidationIssue[];
130
+ };
131
+ export type ListMemoryNotesInput = {
132
+ path?: string;
133
+ };
134
+ export type ReadMemoryNoteInput = {
135
+ path: string;
136
+ maxLines?: number;
137
+ offset?: number;
138
+ };
139
+ export type SearchMemoryNotesInput = {
140
+ query: string;
141
+ path?: string;
142
+ maxResults?: number;
143
+ };
144
+ export type MemoryMaintenanceLockRecord = {
145
+ id: string;
146
+ pid?: number;
147
+ acquiredAt: string;
148
+ };
149
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/memory/types.ts"],"names":[],"mappings":""}
@@ -1,39 +1,21 @@
1
- export type MemoryValidationIssue = {
2
- type: 'missing_catalog';
3
- severity: 'error';
4
- path: string;
5
- message: string;
6
- } | {
7
- type: 'oversized_catalog';
8
- severity: 'warning';
9
- path: string;
10
- sizeBytes: number;
11
- maxBytes: number;
12
- message: string;
13
- } | {
14
- type: 'orphan_note';
15
- severity: 'warning';
16
- path: string;
17
- message: string;
18
- } | {
19
- type: 'pending_candidates';
20
- severity: 'info';
21
- count: number;
22
- message: string;
23
- };
24
- export type MemoryValidationResult = {
25
- memoryRoot: string;
26
- ok: boolean;
27
- issueCount: number;
28
- issues: MemoryValidationIssue[];
29
- };
30
- export declare function validateMemoryWorkspace(options: {
31
- memoryRoot: string;
32
- }): Promise<MemoryValidationResult>;
33
- export declare function repairMissingMemoryCatalogs(options: {
34
- memoryRoot: string;
35
- }): Promise<{
36
- memoryRoot: string;
37
- createdPaths: string[];
38
- }>;
1
+ import { MemoryCatalogService } from './catalog.js';
2
+ import { MemoryMaintenanceRepository } from './maintenance-repository.js';
3
+ import { MemoryVisibilityService } from './visibility.js';
4
+ import type { MemoryValidationResult } from './types.js';
5
+ /**
6
+ * Owns memory workspace health checks and lightweight repair actions.
7
+ */
8
+ export declare class MemoryValidationService {
9
+ private readonly memoryRoot;
10
+ private readonly catalog;
11
+ private readonly visibility;
12
+ private readonly maintenance;
13
+ constructor(memoryRoot: string, catalog?: MemoryCatalogService, visibility?: MemoryVisibilityService, maintenance?: MemoryMaintenanceRepository);
14
+ validate(): Promise<MemoryValidationResult>;
15
+ repairMissingCatalogs(): import("./types.js").BootstrapMemoryWorkspaceResult;
16
+ private appendOversizedCatalogIssues;
17
+ private appendOrphanNoteIssues;
18
+ private static catalogPathForNote;
19
+ private static orphanNoteMessage;
20
+ }
39
21
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/validation.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,qBAAqB,GAC7B;IACA,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GACC;IACA,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,GACC;IACA,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GACC;IACA,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAiC9G;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAE1I"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,oBAAoB,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAyB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEhF;;GAEG;AACH,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAHX,UAAU,EAAE,MAAM,EAClB,OAAO,uBAAuC,EAC9C,UAAU,0BAA0C,EACpD,WAAW,8BAA8C;IAGtE,QAAQ,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAmCjD,qBAAqB;YAIP,4BAA4B;YAoB5B,sBAAsB;IA+BpC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAKjC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAKjC"}