@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
@@ -1,189 +1,184 @@
1
- import { mkdir, open, readFile, rm } from 'node:fs/promises';
2
- import { dirname, join, resolve } from 'node:path';
3
- import { readPendingKnowledgeCandidates, runKnowledgeMaintenance, } from './maintainer.js';
1
+ import { mkdir } from 'node:fs/promises';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { MemoryMaintenanceRepository } from './maintenance-repository.js';
4
+ import { MemoryMaintenanceService } from './maintainer.js';
4
5
  const DEFAULT_LOCK_STALE_AFTER_MS = 10 * 60 * 1000;
5
6
  const DEFAULT_LOCK_POLL_MS = 250;
6
7
  const DEFAULT_LOCK_TIMEOUT_MS = 30 * 1000;
7
8
  const maintenanceQueues = new Map();
8
- export async function runMaintenanceForRecordedCandidates(options) {
9
- return await enqueueMaintenance(options.memoryRoot, () => runMaintenanceForRecordedCandidatesNow(options));
10
- }
11
- async function runMaintenanceForRecordedCandidatesNow(options) {
12
- const candidateIds = [...new Set(options.trace
13
- .filter((event) => event.type === 'memory.candidate_recorded')
14
- .map((event) => event.candidateId))];
15
- if (candidateIds.length === 0) {
16
- return { candidateIds, events: [] };
9
+ /**
10
+ * Bridges turn traces into serialized memory maintenance runs.
11
+ */
12
+ export class MemoryMaintenanceIntegrationService {
13
+ memoryRoot;
14
+ repository;
15
+ maintenance;
16
+ constructor(memoryRoot, repository = new MemoryMaintenanceRepository(memoryRoot), maintenance = new MemoryMaintenanceService(memoryRoot, repository)) {
17
+ this.memoryRoot = memoryRoot;
18
+ this.repository = repository;
19
+ this.maintenance = maintenance;
17
20
  }
18
- const pending = await readPendingKnowledgeCandidates({ memoryRoot: options.memoryRoot });
19
- const observations = pending.filter((candidate) => candidateIds.includes(candidate.id));
20
- if (observations.length === 0) {
21
- return { candidateIds, events: [] };
21
+ async runForRecordedCandidates(options) {
22
+ return await this.enqueue(() => this.runNow(options));
22
23
  }
23
- const runId = `memory-run-${Date.now()}`;
24
- const started = createEvent({
25
- type: 'memory.maintenance_started',
26
- runId,
27
- candidateIds: observations.map((candidate) => candidate.id),
28
- step: nextMemoryStep(options.trace),
29
- });
30
- options.onTraceEvent?.(started);
31
- let lock;
32
- try {
33
- lock = await acquireMemoryMaintenanceLock({
34
- memoryRoot: options.memoryRoot,
35
- staleAfterMs: options.lockStaleAfterMs,
36
- timeoutMs: options.lockTimeoutMs,
37
- });
38
- const maintenance = await runKnowledgeMaintenance({
39
- memoryRoot: options.memoryRoot,
40
- observations,
41
- llm: options.llm,
42
- source: options.source,
43
- maxSteps: options.maxSteps,
44
- nextRunId: () => runId,
45
- });
46
- if (maintenance.run.outcome === 'error' || maintenance.run.outcome === 'max_steps' || maintenance.run.outcome === 'interrupted') {
47
- const failed = createEvent({
48
- type: 'memory.maintenance_failed',
49
- runId: maintenance.run.id,
50
- error: maintenance.run.summary,
51
- candidateIds: observations.map((candidate) => candidate.id),
52
- step: nextMemoryStep(options.trace),
53
- });
54
- options.onTraceEvent?.(failed);
55
- return { candidateIds, maintenance, events: [started, failed] };
24
+ async runNow(options) {
25
+ const candidateIds = MemoryMaintenanceIntegrationService.candidateIdsFromTrace(options.trace);
26
+ if (candidateIds.length === 0) {
27
+ return { candidateIds, events: [] };
56
28
  }
57
- const finished = createEvent({
58
- type: 'memory.maintenance_finished',
59
- runId: maintenance.run.id,
60
- outcome: maintenance.run.outcome,
61
- summary: maintenance.run.summary,
62
- processedCandidateIds: maintenance.run.processedCandidateIds,
63
- failedCandidateIds: maintenance.run.failedCandidateIds,
64
- step: nextMemoryStep(options.trace),
65
- });
66
- options.onTraceEvent?.(finished);
67
- return { candidateIds, maintenance, events: [started, finished] };
68
- }
69
- catch (error) {
70
- const failed = createEvent({
71
- type: 'memory.maintenance_failed',
29
+ const pending = await this.repository.readPendingCandidates();
30
+ const observations = pending.filter((candidate) => candidateIds.includes(candidate.id));
31
+ if (observations.length === 0) {
32
+ return { candidateIds, events: [] };
33
+ }
34
+ const runId = `memory-run-${Date.now()}`;
35
+ const started = MemoryMaintenanceIntegrationService.createEvent({
36
+ type: 'memory.maintenance_started',
72
37
  runId,
73
- error: error instanceof Error ? error.message : String(error),
74
38
  candidateIds: observations.map((candidate) => candidate.id),
75
- step: nextMemoryStep(options.trace),
39
+ step: MemoryMaintenanceIntegrationService.nextMemoryStep(options.trace),
76
40
  });
77
- options.onTraceEvent?.(failed);
78
- return { candidateIds, events: [started, failed] };
79
- }
80
- finally {
81
- await lock?.release();
82
- }
83
- }
84
- async function acquireMemoryMaintenanceLock(options) {
85
- const memoryRoot = resolve(options.memoryRoot);
86
- const lockPath = join(memoryRoot, '_maintenance', 'maintenance.lock');
87
- const lockId = `${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}`;
88
- const startedAt = Date.now();
89
- const timeoutMs = options.timeoutMs ?? DEFAULT_LOCK_TIMEOUT_MS;
90
- const staleAfterMs = options.staleAfterMs ?? DEFAULT_LOCK_STALE_AFTER_MS;
91
- await mkdir(dirname(lockPath), { recursive: true });
92
- while (true) {
41
+ options.onTraceEvent?.(started);
42
+ let lock;
93
43
  try {
94
- const handle = await open(lockPath, 'wx');
95
- await handle.writeFile(JSON.stringify({
96
- id: lockId,
97
- pid: process.pid,
98
- acquiredAt: new Date().toISOString(),
99
- }) + '\n', 'utf8');
100
- await handle.close();
101
- return {
102
- async release() {
103
- await releaseMemoryMaintenanceLock(lockPath, lockId);
104
- },
105
- };
44
+ lock = await this.acquireLock({
45
+ staleAfterMs: options.lockStaleAfterMs,
46
+ timeoutMs: options.lockTimeoutMs,
47
+ });
48
+ const maintenance = await this.maintenance.run({
49
+ observations,
50
+ llm: options.llm,
51
+ source: options.source,
52
+ maxSteps: options.maxSteps,
53
+ nextRunId: () => runId,
54
+ });
55
+ if (maintenance.run.outcome === 'error' || maintenance.run.outcome === 'max_steps' || maintenance.run.outcome === 'interrupted') {
56
+ const failed = MemoryMaintenanceIntegrationService.createEvent({
57
+ type: 'memory.maintenance_failed',
58
+ runId: maintenance.run.id,
59
+ error: maintenance.run.summary,
60
+ candidateIds: observations.map((candidate) => candidate.id),
61
+ step: MemoryMaintenanceIntegrationService.nextMemoryStep(options.trace),
62
+ });
63
+ options.onTraceEvent?.(failed);
64
+ return { candidateIds, maintenance, events: [started, failed] };
65
+ }
66
+ const finished = MemoryMaintenanceIntegrationService.createEvent({
67
+ type: 'memory.maintenance_finished',
68
+ runId: maintenance.run.id,
69
+ outcome: maintenance.run.outcome,
70
+ summary: maintenance.run.summary,
71
+ processedCandidateIds: maintenance.run.processedCandidateIds,
72
+ failedCandidateIds: maintenance.run.failedCandidateIds,
73
+ step: MemoryMaintenanceIntegrationService.nextMemoryStep(options.trace),
74
+ });
75
+ options.onTraceEvent?.(finished);
76
+ return { candidateIds, maintenance, events: [started, finished] };
106
77
  }
107
78
  catch (error) {
108
- if (!(error instanceof Error) || !('code' in error) || error.code !== 'EEXIST') {
109
- throw error;
110
- }
111
- if (await removeStaleMemoryMaintenanceLock(lockPath, staleAfterMs)) {
112
- continue;
79
+ const failed = MemoryMaintenanceIntegrationService.createEvent({
80
+ type: 'memory.maintenance_failed',
81
+ runId,
82
+ error: error instanceof Error ? error.message : String(error),
83
+ candidateIds: observations.map((candidate) => candidate.id),
84
+ step: MemoryMaintenanceIntegrationService.nextMemoryStep(options.trace),
85
+ });
86
+ options.onTraceEvent?.(failed);
87
+ return { candidateIds, events: [started, failed] };
88
+ }
89
+ finally {
90
+ await lock?.release();
91
+ }
92
+ }
93
+ async acquireLock(options) {
94
+ const lockPath = this.repository.maintenanceLockPath();
95
+ const lockId = `${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}`;
96
+ const startedAt = Date.now();
97
+ const timeoutMs = options.timeoutMs ?? DEFAULT_LOCK_TIMEOUT_MS;
98
+ const staleAfterMs = options.staleAfterMs ?? DEFAULT_LOCK_STALE_AFTER_MS;
99
+ await mkdir(dirname(lockPath), { recursive: true });
100
+ while (true) {
101
+ try {
102
+ await this.repository.writeLock(lockPath, {
103
+ id: lockId,
104
+ pid: process.pid,
105
+ acquiredAt: new Date().toISOString(),
106
+ });
107
+ return {
108
+ release: async () => {
109
+ await this.releaseLock(lockPath, lockId);
110
+ },
111
+ };
113
112
  }
114
- if (Date.now() - startedAt >= timeoutMs) {
115
- throw new Error(`Memory maintenance lock is busy: ${lockPath}`, { cause: error });
113
+ catch (error) {
114
+ if (!(error instanceof Error) || !('code' in error) || error.code !== 'EEXIST') {
115
+ throw error;
116
+ }
117
+ if (await this.removeStaleLock(lockPath, staleAfterMs)) {
118
+ continue;
119
+ }
120
+ if (Date.now() - startedAt >= timeoutMs) {
121
+ throw new Error(`Memory maintenance lock is busy: ${lockPath}`, { cause: error });
122
+ }
123
+ await MemoryMaintenanceIntegrationService.sleep(DEFAULT_LOCK_POLL_MS);
116
124
  }
117
- await sleep(DEFAULT_LOCK_POLL_MS);
118
125
  }
119
126
  }
120
- }
121
- async function releaseMemoryMaintenanceLock(lockPath, lockId) {
122
- const current = await readMemoryMaintenanceLock(lockPath);
123
- if (current?.id !== lockId) {
124
- return;
125
- }
126
- await rm(lockPath, { force: true });
127
- }
128
- async function removeStaleMemoryMaintenanceLock(lockPath, staleAfterMs) {
129
- const current = await readMemoryMaintenanceLock(lockPath);
130
- if (!current) {
131
- return false;
132
- }
133
- const acquiredAt = Date.parse(current.acquiredAt);
134
- if (!Number.isFinite(acquiredAt) || Date.now() - acquiredAt < staleAfterMs) {
135
- return false;
127
+ async releaseLock(lockPath, lockId) {
128
+ const current = await this.repository.readLock(lockPath);
129
+ if (current?.id !== lockId) {
130
+ return;
131
+ }
132
+ await this.repository.removeLock(lockPath);
136
133
  }
137
- await rm(lockPath, { force: true });
138
- return true;
139
- }
140
- async function readMemoryMaintenanceLock(lockPath) {
141
- try {
142
- const parsed = JSON.parse(await readFile(lockPath, 'utf8'));
143
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
144
- return undefined;
134
+ async removeStaleLock(lockPath, staleAfterMs) {
135
+ const current = await this.repository.readLock(lockPath);
136
+ if (!current) {
137
+ return false;
138
+ }
139
+ const acquiredAt = Date.parse(current.acquiredAt);
140
+ if (!Number.isFinite(acquiredAt) || Date.now() - acquiredAt < staleAfterMs) {
141
+ return false;
145
142
  }
146
- const candidate = parsed;
147
- return typeof candidate.id === 'string' && typeof candidate.acquiredAt === 'string' ?
148
- { id: candidate.id, acquiredAt: candidate.acquiredAt }
149
- : undefined;
143
+ await this.repository.removeLock(lockPath);
144
+ return true;
150
145
  }
151
- catch (error) {
152
- if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
153
- return undefined;
146
+ async enqueue(run) {
147
+ const memoryRoot = resolve(this.memoryRoot);
148
+ const previous = maintenanceQueues.get(memoryRoot) ?? Promise.resolve();
149
+ let release;
150
+ const current = new Promise((resolvePromise) => {
151
+ release = resolvePromise;
152
+ });
153
+ const queued = previous.then(() => current, () => current);
154
+ maintenanceQueues.set(memoryRoot, queued);
155
+ await previous.catch(() => undefined);
156
+ try {
157
+ return await run();
158
+ }
159
+ finally {
160
+ release();
161
+ if (maintenanceQueues.get(memoryRoot) === queued) {
162
+ maintenanceQueues.delete(memoryRoot);
163
+ }
154
164
  }
155
- return undefined;
156
165
  }
157
- }
158
- async function sleep(ms) {
159
- await new Promise((resolve) => setTimeout(resolve, ms));
160
- }
161
- async function enqueueMaintenance(memoryRoot, run) {
162
- const previous = maintenanceQueues.get(memoryRoot) ?? Promise.resolve();
163
- let release;
164
- const current = new Promise((resolve) => {
165
- release = resolve;
166
- });
167
- const queued = previous.then(() => current, () => current);
168
- maintenanceQueues.set(memoryRoot, queued);
169
- await previous.catch(() => undefined);
170
- try {
171
- return await run();
166
+ static candidateIdsFromTrace(trace) {
167
+ return [...new Set(trace
168
+ .filter((event) => event.type === 'memory.candidate_recorded')
169
+ .map((event) => event.candidateId))];
172
170
  }
173
- finally {
174
- release();
175
- if (maintenanceQueues.get(memoryRoot) === queued) {
176
- maintenanceQueues.delete(memoryRoot);
177
- }
171
+ static createEvent(event) {
172
+ return {
173
+ ...event,
174
+ timestamp: new Date().toISOString(),
175
+ };
176
+ }
177
+ static nextMemoryStep(trace) {
178
+ return trace.reduce((max, event) => 'step' in event ? Math.max(max, event.step) : max, 0) + 1;
179
+ }
180
+ static async sleep(ms) {
181
+ await new Promise((resolvePromise) => setTimeout(resolvePromise, ms));
178
182
  }
179
- }
180
- function createEvent(event) {
181
- return {
182
- ...event,
183
- timestamp: new Date().toISOString(),
184
- };
185
- }
186
- function nextMemoryStep(trace) {
187
- return trace.reduce((max, event) => 'step' in event ? Math.max(max, event.step) : max, 0) + 1;
188
183
  }
189
184
  //# sourceMappingURL=maintenance-integration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance-integration.js","sourceRoot":"","sources":["../../../../src/core/memory/maintenance-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintenance-integration.js","sourceRoot":"","sources":["../../../../src/core/memory/maintenance-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { KnowledgeCandidate, KnowledgeMaintenanceRunRecord, MemoryMaintenanceLockRecord } from './types.js';
2
+ /**
3
+ * Owns memory maintenance JSONL files and lock-file persistence.
4
+ */
5
+ export declare class MemoryMaintenanceRepository {
6
+ private readonly memoryRoot;
7
+ constructor(memoryRoot: string);
8
+ readPendingCandidates(): Promise<KnowledgeCandidate[]>;
9
+ appendCandidate(candidate: KnowledgeCandidate): Promise<void>;
10
+ appendCandidateStatusEvents(candidateIds: string[], runId: string, now: () => Date): Promise<void>;
11
+ appendMaintenanceRun(run: KnowledgeMaintenanceRunRecord): Promise<void>;
12
+ readRecentMaintenanceRuns(limit?: number): Promise<KnowledgeMaintenanceRunRecord[]>;
13
+ writeLock(lockPath: string, record: MemoryMaintenanceLockRecord): Promise<void>;
14
+ readLock(lockPath: string): Promise<MemoryMaintenanceLockRecord | undefined>;
15
+ removeLock(lockPath: string): Promise<void>;
16
+ maintenanceLockPath(): string;
17
+ private readCandidateLogEntries;
18
+ private candidatesPath;
19
+ private runsPath;
20
+ private appendJsonLine;
21
+ private appendJsonLines;
22
+ private readJsonlLines;
23
+ private parseCandidateLogEntry;
24
+ private parseMaintenanceRun;
25
+ private resolveRoot;
26
+ }
27
+ //# sourceMappingURL=maintenance-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance-repository.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/maintenance-repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAElB,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAEzC,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAgBtD,eAAe,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,2BAA2B,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAalG,oBAAoB,CAAC,GAAG,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,yBAAyB,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC;IAS9E,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAa5E,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,mBAAmB,IAAI,MAAM;YAIf,uBAAuB;IAOrC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;YAIF,cAAc;YAId,eAAe;YAKf,cAAc;IAY5B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,WAAW;CAGpB"}
@@ -0,0 +1,134 @@
1
+ import { appendFile, mkdir, open, readFile, rm } from 'node:fs/promises';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { MemorySchemas } from './schemas.js';
4
+ /**
5
+ * Owns memory maintenance JSONL files and lock-file persistence.
6
+ */
7
+ export class MemoryMaintenanceRepository {
8
+ memoryRoot;
9
+ constructor(memoryRoot) {
10
+ this.memoryRoot = memoryRoot;
11
+ }
12
+ async readPendingCandidates() {
13
+ const entries = await this.readCandidateLogEntries();
14
+ const processed = new Set();
15
+ const pending = [];
16
+ for (const entry of entries) {
17
+ if ('kind' in entry) {
18
+ processed.add(entry.candidateId);
19
+ continue;
20
+ }
21
+ pending.push(entry);
22
+ }
23
+ return pending.filter((candidate) => !processed.has(candidate.id));
24
+ }
25
+ async appendCandidate(candidate) {
26
+ await this.appendJsonLine(this.candidatesPath(), candidate);
27
+ }
28
+ async appendCandidateStatusEvents(candidateIds, runId, now) {
29
+ const recordedAt = now().toISOString();
30
+ const records = candidateIds.map((candidateId) => ({
31
+ kind: 'candidate_status',
32
+ candidateId,
33
+ status: 'processed',
34
+ runId,
35
+ recordedAt,
36
+ }));
37
+ await this.appendJsonLines(this.candidatesPath(), records);
38
+ }
39
+ async appendMaintenanceRun(run) {
40
+ await this.appendJsonLine(this.runsPath(), run);
41
+ }
42
+ async readRecentMaintenanceRuns(limit = 5) {
43
+ const lines = await this.readJsonlLines(this.runsPath());
44
+ return lines
45
+ .map((line) => this.parseMaintenanceRun(line))
46
+ .filter((run) => Boolean(run))
47
+ .slice(-limit)
48
+ .reverse();
49
+ }
50
+ async writeLock(lockPath, record) {
51
+ await mkdir(dirname(lockPath), { recursive: true });
52
+ const handle = await open(lockPath, 'wx');
53
+ try {
54
+ await handle.writeFile(`${JSON.stringify(record)}\n`, 'utf8');
55
+ }
56
+ finally {
57
+ await handle.close();
58
+ }
59
+ }
60
+ async readLock(lockPath) {
61
+ try {
62
+ const parsed = JSON.parse(await readFile(lockPath, 'utf8'));
63
+ const result = MemorySchemas.parseMaintenanceLock(parsed);
64
+ return result.success ? result.data : undefined;
65
+ }
66
+ catch (error) {
67
+ if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
68
+ return undefined;
69
+ }
70
+ return undefined;
71
+ }
72
+ }
73
+ async removeLock(lockPath) {
74
+ await rm(lockPath, { force: true });
75
+ }
76
+ maintenanceLockPath() {
77
+ return join(this.resolveRoot(), '_maintenance', 'maintenance.lock');
78
+ }
79
+ async readCandidateLogEntries() {
80
+ const lines = await this.readJsonlLines(this.candidatesPath());
81
+ return lines
82
+ .map((line) => this.parseCandidateLogEntry(line))
83
+ .filter((entry) => Boolean(entry));
84
+ }
85
+ candidatesPath() {
86
+ return join(this.resolveRoot(), '_maintenance', 'candidates.jsonl');
87
+ }
88
+ runsPath() {
89
+ return join(this.resolveRoot(), '_maintenance', 'runs.jsonl');
90
+ }
91
+ async appendJsonLine(path, record) {
92
+ await this.appendJsonLines(path, [record]);
93
+ }
94
+ async appendJsonLines(path, records) {
95
+ await mkdir(dirname(path), { recursive: true });
96
+ await appendFile(path, `${records.map((record) => JSON.stringify(record)).join('\n')}\n`, 'utf8');
97
+ }
98
+ async readJsonlLines(path) {
99
+ try {
100
+ const raw = await readFile(path, 'utf8');
101
+ return raw.split(/\r?\n/u).filter((line) => line.trim());
102
+ }
103
+ catch (error) {
104
+ if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
105
+ return [];
106
+ }
107
+ throw error;
108
+ }
109
+ }
110
+ parseCandidateLogEntry(line) {
111
+ try {
112
+ const parsed = JSON.parse(line);
113
+ const result = MemorySchemas.parseCandidateLogEntry(parsed);
114
+ return result.success ? result.data : undefined;
115
+ }
116
+ catch {
117
+ return undefined;
118
+ }
119
+ }
120
+ parseMaintenanceRun(line) {
121
+ try {
122
+ const parsed = JSON.parse(line);
123
+ const result = MemorySchemas.parseMaintenanceRun(parsed);
124
+ return result.success ? result.data : undefined;
125
+ }
126
+ catch {
127
+ return undefined;
128
+ }
129
+ }
130
+ resolveRoot() {
131
+ return resolve(this.memoryRoot);
132
+ }
133
+ }
134
+ //# sourceMappingURL=maintenance-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance-repository.js","sourceRoot":"","sources":["../../../../src/core/memory/maintenance-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQ7C;;GAEG;AACH,MAAM,OAAO,2BAA2B;IACT;IAA7B,YAA6B,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IAEnD,KAAK,CAAC,qBAAqB;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,MAAM,OAAO,GAAyB,EAAE,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAA6B;QACjD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,YAAsB,EAAE,KAAa,EAAE,GAAe;QACtF,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,OAAO,GAAqC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACnF,IAAI,EAAE,kBAAkB;YACxB,WAAW;YACX,MAAM,EAAE,WAAW;YACnB,KAAK;YACL,UAAU;SACX,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,GAAkC;QAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,KAAK,GAAG,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;aAC7C,MAAM,CAAC,CAAC,GAAG,EAAwC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACnE,KAAK,CAAC,CAAC,KAAK,CAAC;aACb,OAAO,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,MAAmC;QACnE,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAY,CAAC;YACvE,MAAM,MAAM,GAAG,aAAa,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzE,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC/D,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;aAChD,MAAM,CAAC,CAAC,KAAK,EAAgE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrG,CAAC;IAEO,cAAc;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IACtE,CAAC;IAEO,QAAQ;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,MAAe;QACxD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,OAAkB;QAC5D,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpG,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAY;QACvC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,IAAY;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import type { ToolResult } from '../../core/types.js';
2
+ import type { ListMemoryNotesInput, ReadMemoryNoteInput, SearchMemoryNotesInput } from './types.js';
3
+ /**
4
+ * Owns note-level memory reads, search, listing, and scoped note edits.
5
+ */
6
+ export declare class MemoryNoteService {
7
+ private readonly memoryRoot;
8
+ constructor(memoryRoot: string);
9
+ list(input?: ListMemoryNotesInput): Promise<string[]>;
10
+ read(input: ReadMemoryNoteInput): Promise<string>;
11
+ search(input: SearchMemoryNotesInput): Promise<string>;
12
+ edit(raw: unknown): Promise<ToolResult>;
13
+ private resolvePath;
14
+ private listMarkdownNotes;
15
+ private searchWithCli;
16
+ private resolveRoot;
17
+ private static pageText;
18
+ private static sanitizeMaxResults;
19
+ private static isMarkdownPath;
20
+ private static trimSearchOutput;
21
+ private static runSearchCommand;
22
+ }
23
+ //# sourceMappingURL=note-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note-service.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/note-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIpG;;GAEG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAEzC,IAAI,CAAC,KAAK,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAezD,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjD,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAStD,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAW7C,OAAO,CAAC,WAAW;YAQL,iBAAiB;YAsBjB,aAAa;IA8B3B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAOvB,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAQjC,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B,OAAO,CAAC,MAAM,CAAC,gBAAgB;mBASV,gBAAgB;CAgDtC"}