pulseed 0.4.4 → 0.4.7

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 (884) hide show
  1. package/README.md +30 -102
  2. package/dist/adapters/agents/native-agent-loop.d.ts +7 -0
  3. package/dist/adapters/agents/native-agent-loop.d.ts.map +1 -0
  4. package/dist/adapters/agents/native-agent-loop.js +19 -0
  5. package/dist/adapters/agents/native-agent-loop.js.map +1 -0
  6. package/dist/adapters/agents/openai-codex.d.ts +3 -0
  7. package/dist/adapters/agents/openai-codex.d.ts.map +1 -1
  8. package/dist/adapters/agents/openai-codex.js +7 -1
  9. package/dist/adapters/agents/openai-codex.js.map +1 -1
  10. package/dist/adapters/datasources/github-issue-datasource.d.ts +13 -0
  11. package/dist/adapters/datasources/github-issue-datasource.d.ts.map +1 -1
  12. package/dist/adapters/datasources/github-issue-datasource.js +114 -134
  13. package/dist/adapters/datasources/github-issue-datasource.js.map +1 -1
  14. package/dist/adapters/spawn-helper.js +3 -3
  15. package/dist/adapters/spawn-helper.js.map +1 -1
  16. package/dist/base/llm/provider-config.d.ts +11 -2
  17. package/dist/base/llm/provider-config.d.ts.map +1 -1
  18. package/dist/base/llm/provider-config.js +13 -7
  19. package/dist/base/llm/provider-config.js.map +1 -1
  20. package/dist/base/llm/provider-factory.d.ts +2 -2
  21. package/dist/base/llm/provider-factory.js +4 -4
  22. package/dist/base/llm/provider-factory.js.map +1 -1
  23. package/dist/base/state/state-lock.d.ts +3 -1
  24. package/dist/base/state/state-lock.d.ts.map +1 -1
  25. package/dist/base/state/state-lock.js +52 -10
  26. package/dist/base/state/state-lock.js.map +1 -1
  27. package/dist/base/state/state-manager-goal-write.d.ts +4 -0
  28. package/dist/base/state/state-manager-goal-write.d.ts.map +1 -1
  29. package/dist/base/state/state-manager-goal-write.js +45 -3
  30. package/dist/base/state/state-manager-goal-write.js.map +1 -1
  31. package/dist/base/state/state-manager-wal.d.ts.map +1 -1
  32. package/dist/base/state/state-manager-wal.js +12 -0
  33. package/dist/base/state/state-manager-wal.js.map +1 -1
  34. package/dist/base/state/state-manager.d.ts +12 -0
  35. package/dist/base/state/state-manager.d.ts.map +1 -1
  36. package/dist/base/state/state-manager.js +221 -177
  37. package/dist/base/state/state-manager.js.map +1 -1
  38. package/dist/index.d.ts +13 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +9 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
  43. package/dist/interface/chat/chat-event-state.js +12 -24
  44. package/dist/interface/chat/chat-event-state.js.map +1 -1
  45. package/dist/interface/chat/chat-events.d.ts +9 -1
  46. package/dist/interface/chat/chat-events.d.ts.map +1 -1
  47. package/dist/interface/chat/chat-history.d.ts +3 -2
  48. package/dist/interface/chat/chat-history.d.ts.map +1 -1
  49. package/dist/interface/chat/chat-history.js +3 -0
  50. package/dist/interface/chat/chat-history.js.map +1 -1
  51. package/dist/interface/chat/chat-runner.d.ts +28 -0
  52. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  53. package/dist/interface/chat/chat-runner.js +392 -45
  54. package/dist/interface/chat/chat-runner.js.map +1 -1
  55. package/dist/interface/chat/cross-platform-session.d.ts +78 -0
  56. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -0
  57. package/dist/interface/chat/cross-platform-session.js +249 -0
  58. package/dist/interface/chat/cross-platform-session.js.map +1 -0
  59. package/dist/interface/chat/event-subscriber.d.ts +3 -1
  60. package/dist/interface/chat/event-subscriber.d.ts.map +1 -1
  61. package/dist/interface/chat/event-subscriber.js +13 -3
  62. package/dist/interface/chat/event-subscriber.js.map +1 -1
  63. package/dist/interface/cli/commands/chat.d.ts.map +1 -1
  64. package/dist/interface/cli/commands/chat.js +57 -3
  65. package/dist/interface/cli/commands/chat.js.map +1 -1
  66. package/dist/interface/cli/commands/config.d.ts.map +1 -1
  67. package/dist/interface/cli/commands/config.js +30 -1
  68. package/dist/interface/cli/commands/config.js.map +1 -1
  69. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  70. package/dist/interface/cli/commands/daemon.js +29 -6
  71. package/dist/interface/cli/commands/daemon.js.map +1 -1
  72. package/dist/interface/cli/commands/doctor.d.ts +4 -0
  73. package/dist/interface/cli/commands/doctor.d.ts.map +1 -1
  74. package/dist/interface/cli/commands/doctor.js +172 -1
  75. package/dist/interface/cli/commands/doctor.js.map +1 -1
  76. package/dist/interface/cli/commands/install.d.ts +1 -0
  77. package/dist/interface/cli/commands/install.d.ts.map +1 -1
  78. package/dist/interface/cli/commands/install.js +6 -1
  79. package/dist/interface/cli/commands/install.js.map +1 -1
  80. package/dist/interface/cli/commands/notify.d.ts.map +1 -1
  81. package/dist/interface/cli/commands/notify.js +33 -21
  82. package/dist/interface/cli/commands/notify.js.map +1 -1
  83. package/dist/interface/cli/commands/setup/import/apply.d.ts +3 -0
  84. package/dist/interface/cli/commands/setup/import/apply.d.ts.map +1 -0
  85. package/dist/interface/cli/commands/setup/import/apply.js +140 -0
  86. package/dist/interface/cli/commands/setup/import/apply.js.map +1 -0
  87. package/dist/interface/cli/commands/setup/import/constants.d.ts +5 -0
  88. package/dist/interface/cli/commands/setup/import/constants.d.ts.map +1 -0
  89. package/dist/interface/cli/commands/setup/import/constants.js +19 -0
  90. package/dist/interface/cli/commands/setup/import/constants.js.map +1 -0
  91. package/dist/interface/cli/commands/setup/import/discovery.d.ts +3 -0
  92. package/dist/interface/cli/commands/setup/import/discovery.d.ts.map +1 -0
  93. package/dist/interface/cli/commands/setup/import/discovery.js +140 -0
  94. package/dist/interface/cli/commands/setup/import/discovery.js.map +1 -0
  95. package/dist/interface/cli/commands/setup/import/flow.d.ts +5 -0
  96. package/dist/interface/cli/commands/setup/import/flow.d.ts.map +1 -0
  97. package/dist/interface/cli/commands/setup/import/flow.js +138 -0
  98. package/dist/interface/cli/commands/setup/import/flow.js.map +1 -0
  99. package/dist/interface/cli/commands/setup/import/fs-utils.d.ts +9 -0
  100. package/dist/interface/cli/commands/setup/import/fs-utils.d.ts.map +1 -0
  101. package/dist/interface/cli/commands/setup/import/fs-utils.js +83 -0
  102. package/dist/interface/cli/commands/setup/import/fs-utils.js.map +1 -0
  103. package/dist/interface/cli/commands/setup/import/mcp.d.ts +4 -0
  104. package/dist/interface/cli/commands/setup/import/mcp.d.ts.map +1 -0
  105. package/dist/interface/cli/commands/setup/import/mcp.js +71 -0
  106. package/dist/interface/cli/commands/setup/import/mcp.js.map +1 -0
  107. package/dist/interface/cli/commands/setup/import/parse.d.ts +7 -0
  108. package/dist/interface/cli/commands/setup/import/parse.d.ts.map +1 -0
  109. package/dist/interface/cli/commands/setup/import/parse.js +40 -0
  110. package/dist/interface/cli/commands/setup/import/parse.js.map +1 -0
  111. package/dist/interface/cli/commands/setup/import/provider.d.ts +4 -0
  112. package/dist/interface/cli/commands/setup/import/provider.d.ts.map +1 -0
  113. package/dist/interface/cli/commands/setup/import/provider.js +142 -0
  114. package/dist/interface/cli/commands/setup/import/provider.js.map +1 -0
  115. package/dist/interface/cli/commands/setup/import/types.d.ts +53 -0
  116. package/dist/interface/cli/commands/setup/import/types.d.ts.map +1 -0
  117. package/dist/interface/cli/commands/setup/import/types.js +2 -0
  118. package/dist/interface/cli/commands/setup/import/types.js.map +1 -0
  119. package/dist/interface/cli/commands/setup/steps-adapter.d.ts +1 -1
  120. package/dist/interface/cli/commands/setup/steps-adapter.d.ts.map +1 -1
  121. package/dist/interface/cli/commands/setup/steps-adapter.js +32 -5
  122. package/dist/interface/cli/commands/setup/steps-adapter.js.map +1 -1
  123. package/dist/interface/cli/commands/setup/steps-identity.d.ts +2 -2
  124. package/dist/interface/cli/commands/setup/steps-identity.d.ts.map +1 -1
  125. package/dist/interface/cli/commands/setup/steps-identity.js +10 -4
  126. package/dist/interface/cli/commands/setup/steps-identity.js.map +1 -1
  127. package/dist/interface/cli/commands/setup/steps-notification.d.ts.map +1 -1
  128. package/dist/interface/cli/commands/setup/steps-notification.js +3 -2
  129. package/dist/interface/cli/commands/setup/steps-notification.js.map +1 -1
  130. package/dist/interface/cli/commands/setup/steps-provider.d.ts +4 -4
  131. package/dist/interface/cli/commands/setup/steps-provider.d.ts.map +1 -1
  132. package/dist/interface/cli/commands/setup/steps-provider.js +58 -10
  133. package/dist/interface/cli/commands/setup/steps-provider.js.map +1 -1
  134. package/dist/interface/cli/commands/setup/steps-runtime.d.ts.map +1 -1
  135. package/dist/interface/cli/commands/setup/steps-runtime.js +2 -3
  136. package/dist/interface/cli/commands/setup/steps-runtime.js.map +1 -1
  137. package/dist/interface/cli/commands/setup-shared.js +6 -6
  138. package/dist/interface/cli/commands/setup-shared.js.map +1 -1
  139. package/dist/interface/cli/commands/setup-wizard.d.ts.map +1 -1
  140. package/dist/interface/cli/commands/setup-wizard.js +309 -62
  141. package/dist/interface/cli/commands/setup-wizard.js.map +1 -1
  142. package/dist/interface/cli/commands/setup.d.ts.map +1 -1
  143. package/dist/interface/cli/commands/setup.js +38 -1
  144. package/dist/interface/cli/commands/setup.js.map +1 -1
  145. package/dist/interface/cli/commands/telegram.d.ts.map +1 -1
  146. package/dist/interface/cli/commands/telegram.js +15 -1
  147. package/dist/interface/cli/commands/telegram.js.map +1 -1
  148. package/dist/interface/cli/setup.d.ts +12 -1
  149. package/dist/interface/cli/setup.d.ts.map +1 -1
  150. package/dist/interface/cli/setup.js +146 -17
  151. package/dist/interface/cli/setup.js.map +1 -1
  152. package/dist/interface/cli/utils.js +1 -1
  153. package/dist/interface/tui/entry.d.ts.map +1 -1
  154. package/dist/interface/tui/entry.js +69 -17
  155. package/dist/interface/tui/entry.js.map +1 -1
  156. package/dist/orchestrator/execution/adapter-layer.d.ts +19 -0
  157. package/dist/orchestrator/execution/adapter-layer.d.ts.map +1 -1
  158. package/dist/orchestrator/execution/adapter-layer.js.map +1 -1
  159. package/dist/orchestrator/execution/agent-loop/agent-loop-budget.d.ts +15 -0
  160. package/dist/orchestrator/execution/agent-loop/agent-loop-budget.d.ts.map +1 -0
  161. package/dist/orchestrator/execution/agent-loop/agent-loop-budget.js +12 -0
  162. package/dist/orchestrator/execution/agent-loop/agent-loop-budget.js.map +1 -0
  163. package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.d.ts +9 -0
  164. package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.d.ts.map +1 -0
  165. package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.js +40 -0
  166. package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.js.map +1 -0
  167. package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.d.ts +33 -0
  168. package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.d.ts.map +1 -0
  169. package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.js +68 -0
  170. package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.js.map +1 -0
  171. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts +38 -0
  172. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts.map +1 -0
  173. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js +109 -0
  174. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js.map +1 -0
  175. package/dist/orchestrator/execution/agent-loop/agent-loop-dogfood-benchmark.d.ts +76 -0
  176. package/dist/orchestrator/execution/agent-loop/agent-loop-dogfood-benchmark.d.ts.map +1 -0
  177. package/dist/orchestrator/execution/agent-loop/agent-loop-dogfood-benchmark.js +164 -0
  178. package/dist/orchestrator/execution/agent-loop/agent-loop-dogfood-benchmark.js.map +1 -0
  179. package/dist/orchestrator/execution/agent-loop/agent-loop-evaluator.d.ts +46 -0
  180. package/dist/orchestrator/execution/agent-loop/agent-loop-evaluator.d.ts.map +1 -0
  181. package/dist/orchestrator/execution/agent-loop/agent-loop-evaluator.js +75 -0
  182. package/dist/orchestrator/execution/agent-loop/agent-loop-evaluator.js.map +1 -0
  183. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts +98 -0
  184. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts.map +1 -0
  185. package/dist/orchestrator/execution/agent-loop/agent-loop-events.js +6 -0
  186. package/dist/orchestrator/execution/agent-loop/agent-loop-events.js.map +1 -0
  187. package/dist/orchestrator/execution/agent-loop/agent-loop-history.d.ts +8 -0
  188. package/dist/orchestrator/execution/agent-loop/agent-loop-history.d.ts.map +1 -0
  189. package/dist/orchestrator/execution/agent-loop/agent-loop-history.js +7 -0
  190. package/dist/orchestrator/execution/agent-loop/agent-loop-history.js.map +1 -0
  191. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client-factory.d.ts +9 -0
  192. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client-factory.d.ts.map +1 -0
  193. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client-factory.js +19 -0
  194. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client-factory.js.map +1 -0
  195. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.d.ts +13 -0
  196. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.d.ts.map +1 -0
  197. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.js +72 -0
  198. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.js.map +1 -0
  199. package/dist/orchestrator/execution/agent-loop/agent-loop-model-registry.d.ts +10 -0
  200. package/dist/orchestrator/execution/agent-loop/agent-loop-model-registry.d.ts.map +1 -0
  201. package/dist/orchestrator/execution/agent-loop/agent-loop-model-registry.js +26 -0
  202. package/dist/orchestrator/execution/agent-loop/agent-loop-model-registry.js.map +1 -0
  203. package/dist/orchestrator/execution/agent-loop/agent-loop-model.d.ts +87 -0
  204. package/dist/orchestrator/execution/agent-loop/agent-loop-model.d.ts.map +1 -0
  205. package/dist/orchestrator/execution/agent-loop/agent-loop-model.js +22 -0
  206. package/dist/orchestrator/execution/agent-loop/agent-loop-model.js.map +1 -0
  207. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts +5 -0
  208. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts.map +1 -0
  209. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js +18 -0
  210. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js.map +1 -0
  211. package/dist/orchestrator/execution/agent-loop/agent-loop-real-dogfood.d.ts +2 -0
  212. package/dist/orchestrator/execution/agent-loop/agent-loop-real-dogfood.d.ts.map +1 -0
  213. package/dist/orchestrator/execution/agent-loop/agent-loop-real-dogfood.js +362 -0
  214. package/dist/orchestrator/execution/agent-loop/agent-loop-real-dogfood.js.map +1 -0
  215. package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts +42 -0
  216. package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts.map +1 -0
  217. package/dist/orchestrator/execution/agent-loop/agent-loop-result.js +2 -0
  218. package/dist/orchestrator/execution/agent-loop/agent-loop-result.js.map +1 -0
  219. package/dist/orchestrator/execution/agent-loop/agent-loop-session-factory.d.ts +15 -0
  220. package/dist/orchestrator/execution/agent-loop/agent-loop-session-factory.d.ts.map +1 -0
  221. package/dist/orchestrator/execution/agent-loop/agent-loop-session-factory.js +26 -0
  222. package/dist/orchestrator/execution/agent-loop/agent-loop-session-factory.js.map +1 -0
  223. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts +40 -0
  224. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts.map +1 -0
  225. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js +125 -0
  226. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js.map +1 -0
  227. package/dist/orchestrator/execution/agent-loop/agent-loop-session.d.ts +21 -0
  228. package/dist/orchestrator/execution/agent-loop/agent-loop-session.d.ts.map +1 -0
  229. package/dist/orchestrator/execution/agent-loop/agent-loop-session.js +16 -0
  230. package/dist/orchestrator/execution/agent-loop/agent-loop-session.js.map +1 -0
  231. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-output.d.ts +21 -0
  232. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-output.d.ts.map +1 -0
  233. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-output.js +2 -0
  234. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-output.js.map +1 -0
  235. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.d.ts +19 -0
  236. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.d.ts.map +1 -0
  237. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.js +34 -0
  238. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.js.map +1 -0
  239. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts +21 -0
  240. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts.map +1 -0
  241. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js +114 -0
  242. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js.map +1 -0
  243. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.d.ts +18 -0
  244. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.d.ts.map +1 -0
  245. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.js +31 -0
  246. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.js.map +1 -0
  247. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts +39 -0
  248. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts.map +1 -0
  249. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js +5 -0
  250. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js.map +1 -0
  251. package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.d.ts +23 -0
  252. package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.d.ts.map +1 -0
  253. package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.js +156 -0
  254. package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.js.map +1 -0
  255. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts +38 -0
  256. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -0
  257. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +479 -0
  258. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -0
  259. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts +67 -0
  260. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -0
  261. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +113 -0
  262. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -0
  263. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts +33 -0
  264. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts.map +1 -0
  265. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js +89 -0
  266. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js.map +1 -0
  267. package/dist/orchestrator/execution/agent-loop/core-phase-runner.d.ts +32 -0
  268. package/dist/orchestrator/execution/agent-loop/core-phase-runner.d.ts.map +1 -0
  269. package/dist/orchestrator/execution/agent-loop/core-phase-runner.js +40 -0
  270. package/dist/orchestrator/execution/agent-loop/core-phase-runner.js.map +1 -0
  271. package/dist/orchestrator/execution/agent-loop/index.d.ts +35 -0
  272. package/dist/orchestrator/execution/agent-loop/index.d.ts.map +1 -0
  273. package/dist/orchestrator/execution/agent-loop/index.js +35 -0
  274. package/dist/orchestrator/execution/agent-loop/index.js.map +1 -0
  275. package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.d.ts +18 -0
  276. package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.d.ts.map +1 -0
  277. package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.js +148 -0
  278. package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.js.map +1 -0
  279. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts +26 -0
  280. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts.map +1 -0
  281. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js +79 -0
  282. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js.map +1 -0
  283. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.d.ts +28 -0
  284. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.d.ts.map +1 -0
  285. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js +96 -0
  286. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js.map +1 -0
  287. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.d.ts +54 -0
  288. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.d.ts.map +1 -0
  289. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.js +61 -0
  290. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.js.map +1 -0
  291. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts +46 -0
  292. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts.map +1 -0
  293. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js +70 -0
  294. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js.map +1 -0
  295. package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.d.ts +5 -0
  296. package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.d.ts.map +1 -0
  297. package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.js +94 -0
  298. package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.js.map +1 -0
  299. package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.d.ts +23 -0
  300. package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.d.ts.map +1 -0
  301. package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.js +145 -0
  302. package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.js.map +1 -0
  303. package/dist/orchestrator/execution/context/dimension-selector.d.ts +5 -1
  304. package/dist/orchestrator/execution/context/dimension-selector.d.ts.map +1 -1
  305. package/dist/orchestrator/execution/context/dimension-selector.js +9 -5
  306. package/dist/orchestrator/execution/context/dimension-selector.js.map +1 -1
  307. package/dist/orchestrator/execution/pipeline-executor.d.ts +1 -0
  308. package/dist/orchestrator/execution/pipeline-executor.d.ts.map +1 -1
  309. package/dist/orchestrator/execution/pipeline-executor.js +39 -8
  310. package/dist/orchestrator/execution/pipeline-executor.js.map +1 -1
  311. package/dist/orchestrator/execution/result-reconciler.d.ts.map +1 -1
  312. package/dist/orchestrator/execution/result-reconciler.js +79 -54
  313. package/dist/orchestrator/execution/result-reconciler.js.map +1 -1
  314. package/dist/orchestrator/execution/task/task-execution-helpers.d.ts +2 -1
  315. package/dist/orchestrator/execution/task/task-execution-helpers.d.ts.map +1 -1
  316. package/dist/orchestrator/execution/task/task-execution-helpers.js +11 -1
  317. package/dist/orchestrator/execution/task/task-execution-helpers.js.map +1 -1
  318. package/dist/orchestrator/execution/task/task-generation.d.ts.map +1 -1
  319. package/dist/orchestrator/execution/task/task-generation.js +46 -6
  320. package/dist/orchestrator/execution/task/task-generation.js.map +1 -1
  321. package/dist/orchestrator/execution/task/task-health-check.d.ts +1 -1
  322. package/dist/orchestrator/execution/task/task-health-check.d.ts.map +1 -1
  323. package/dist/orchestrator/execution/task/task-health-check.js +8 -8
  324. package/dist/orchestrator/execution/task/task-health-check.js.map +1 -1
  325. package/dist/orchestrator/execution/task/task-lifecycle.d.ts +23 -4
  326. package/dist/orchestrator/execution/task/task-lifecycle.d.ts.map +1 -1
  327. package/dist/orchestrator/execution/task/task-lifecycle.js +188 -25
  328. package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
  329. package/dist/orchestrator/execution/task/task-prompt-builder.d.ts.map +1 -1
  330. package/dist/orchestrator/execution/task/task-prompt-builder.js +63 -3
  331. package/dist/orchestrator/execution/task/task-prompt-builder.js.map +1 -1
  332. package/dist/orchestrator/execution/task/task-verifier-llm.d.ts.map +1 -1
  333. package/dist/orchestrator/execution/task/task-verifier-llm.js +19 -1
  334. package/dist/orchestrator/execution/task/task-verifier-llm.js.map +1 -1
  335. package/dist/orchestrator/execution/task/task-verifier-rules.d.ts.map +1 -1
  336. package/dist/orchestrator/execution/task/task-verifier-rules.js +96 -44
  337. package/dist/orchestrator/execution/task/task-verifier-rules.js.map +1 -1
  338. package/dist/orchestrator/execution/task/task-verifier-types.d.ts +8 -0
  339. package/dist/orchestrator/execution/task/task-verifier-types.d.ts.map +1 -1
  340. package/dist/orchestrator/execution/task/task-verifier-types.js.map +1 -1
  341. package/dist/orchestrator/execution/task/task-verifier.d.ts.map +1 -1
  342. package/dist/orchestrator/execution/task/task-verifier.js +19 -1
  343. package/dist/orchestrator/execution/task/task-verifier.js.map +1 -1
  344. package/dist/orchestrator/goal/goal-dependency-graph.d.ts.map +1 -1
  345. package/dist/orchestrator/goal/goal-dependency-graph.js +20 -8
  346. package/dist/orchestrator/goal/goal-dependency-graph.js.map +1 -1
  347. package/dist/orchestrator/goal/goal-refiner.d.ts +3 -5
  348. package/dist/orchestrator/goal/goal-refiner.d.ts.map +1 -1
  349. package/dist/orchestrator/goal/goal-refiner.js +3 -5
  350. package/dist/orchestrator/goal/goal-refiner.js.map +1 -1
  351. package/dist/orchestrator/goal/tree-loop-orchestrator.d.ts +9 -0
  352. package/dist/orchestrator/goal/tree-loop-orchestrator.d.ts.map +1 -1
  353. package/dist/orchestrator/goal/tree-loop-orchestrator.js +32 -0
  354. package/dist/orchestrator/goal/tree-loop-orchestrator.js.map +1 -1
  355. package/dist/orchestrator/loop/core-loop/contracts.d.ts +9 -0
  356. package/dist/orchestrator/loop/core-loop/contracts.d.ts.map +1 -1
  357. package/dist/orchestrator/loop/core-loop/contracts.js.map +1 -1
  358. package/dist/orchestrator/loop/core-loop/decision-engine.d.ts +79 -0
  359. package/dist/orchestrator/loop/core-loop/decision-engine.d.ts.map +1 -0
  360. package/dist/orchestrator/loop/core-loop/decision-engine.js +141 -0
  361. package/dist/orchestrator/loop/core-loop/decision-engine.js.map +1 -0
  362. package/dist/orchestrator/loop/core-loop/evidence-ledger.d.ts +22 -0
  363. package/dist/orchestrator/loop/core-loop/evidence-ledger.d.ts.map +1 -0
  364. package/dist/orchestrator/loop/core-loop/evidence-ledger.js +36 -0
  365. package/dist/orchestrator/loop/core-loop/evidence-ledger.js.map +1 -0
  366. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts +34 -0
  367. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts.map +1 -0
  368. package/dist/orchestrator/loop/core-loop/iteration-kernel.js +356 -0
  369. package/dist/orchestrator/loop/core-loop/iteration-kernel.js.map +1 -0
  370. package/dist/orchestrator/loop/core-loop/phase-policy.d.ts +20 -0
  371. package/dist/orchestrator/loop/core-loop/phase-policy.d.ts.map +1 -0
  372. package/dist/orchestrator/loop/core-loop/phase-policy.js +96 -0
  373. package/dist/orchestrator/loop/core-loop/phase-policy.js.map +1 -0
  374. package/dist/orchestrator/loop/core-loop/phase-runtime.d.ts +29 -0
  375. package/dist/orchestrator/loop/core-loop/phase-runtime.d.ts.map +1 -0
  376. package/dist/orchestrator/loop/core-loop/phase-runtime.js +62 -0
  377. package/dist/orchestrator/loop/core-loop/phase-runtime.js.map +1 -0
  378. package/dist/orchestrator/loop/core-loop/phase-specs.d.ts +180 -0
  379. package/dist/orchestrator/loop/core-loop/phase-specs.d.ts.map +1 -0
  380. package/dist/orchestrator/loop/core-loop/phase-specs.js +116 -0
  381. package/dist/orchestrator/loop/core-loop/phase-specs.js.map +1 -0
  382. package/dist/orchestrator/loop/core-loop/preparation.d.ts +1 -5
  383. package/dist/orchestrator/loop/core-loop/preparation.d.ts.map +1 -1
  384. package/dist/orchestrator/loop/core-loop/preparation.js +2 -1
  385. package/dist/orchestrator/loop/core-loop/preparation.js.map +1 -1
  386. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts +10 -2
  387. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts.map +1 -1
  388. package/dist/orchestrator/loop/core-loop/task-cycle.js +37 -54
  389. package/dist/orchestrator/loop/core-loop/task-cycle.js.map +1 -1
  390. package/dist/orchestrator/loop/core-loop.d.ts +3 -0
  391. package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
  392. package/dist/orchestrator/loop/core-loop.js +58 -217
  393. package/dist/orchestrator/loop/core-loop.js.map +1 -1
  394. package/dist/orchestrator/loop/loop-result-types.d.ts +23 -0
  395. package/dist/orchestrator/loop/loop-result-types.d.ts.map +1 -1
  396. package/dist/orchestrator/loop/loop-result-types.js.map +1 -1
  397. package/dist/orchestrator/loop/tree-loop-runner.d.ts +6 -2
  398. package/dist/orchestrator/loop/tree-loop-runner.d.ts.map +1 -1
  399. package/dist/orchestrator/loop/tree-loop-runner.js +62 -6
  400. package/dist/orchestrator/loop/tree-loop-runner.js.map +1 -1
  401. package/dist/orchestrator/strategy/cross-goal-portfolio.d.ts.map +1 -1
  402. package/dist/orchestrator/strategy/cross-goal-portfolio.js +20 -12
  403. package/dist/orchestrator/strategy/cross-goal-portfolio.js.map +1 -1
  404. package/dist/orchestrator/strategy/portfolio-manager.d.ts +3 -3
  405. package/dist/orchestrator/strategy/portfolio-manager.d.ts.map +1 -1
  406. package/dist/orchestrator/strategy/portfolio-manager.js +11 -7
  407. package/dist/orchestrator/strategy/portfolio-manager.js.map +1 -1
  408. package/dist/orchestrator/strategy/portfolio-rebalance.d.ts +3 -3
  409. package/dist/orchestrator/strategy/portfolio-rebalance.d.ts.map +1 -1
  410. package/dist/orchestrator/strategy/portfolio-rebalance.js +14 -7
  411. package/dist/orchestrator/strategy/portfolio-rebalance.js.map +1 -1
  412. package/dist/orchestrator/strategy/strategy-manager-base.d.ts.map +1 -1
  413. package/dist/orchestrator/strategy/strategy-manager-base.js +29 -24
  414. package/dist/orchestrator/strategy/strategy-manager-base.js.map +1 -1
  415. package/dist/orchestrator/strategy/strategy-manager.d.ts +11 -1
  416. package/dist/orchestrator/strategy/strategy-manager.d.ts.map +1 -1
  417. package/dist/orchestrator/strategy/strategy-manager.js +23 -2
  418. package/dist/orchestrator/strategy/strategy-manager.js.map +1 -1
  419. package/dist/platform/dream/dream-activation-artifacts.d.ts +5 -0
  420. package/dist/platform/dream/dream-activation-artifacts.d.ts.map +1 -0
  421. package/dist/platform/dream/dream-activation-artifacts.js +35 -0
  422. package/dist/platform/dream/dream-activation-artifacts.js.map +1 -0
  423. package/dist/platform/dream/dream-activation.d.ts +7 -0
  424. package/dist/platform/dream/dream-activation.d.ts.map +1 -1
  425. package/dist/platform/dream/dream-activation.js +41 -0
  426. package/dist/platform/dream/dream-activation.js.map +1 -1
  427. package/dist/platform/dream/dream-consolidator.d.ts +51 -1
  428. package/dist/platform/dream/dream-consolidator.d.ts.map +1 -1
  429. package/dist/platform/dream/dream-consolidator.js +425 -74
  430. package/dist/platform/dream/dream-consolidator.js.map +1 -1
  431. package/dist/platform/dream/dream-event-workflows.d.ts +115 -0
  432. package/dist/platform/dream/dream-event-workflows.d.ts.map +1 -0
  433. package/dist/platform/dream/dream-event-workflows.js +328 -0
  434. package/dist/platform/dream/dream-event-workflows.js.map +1 -0
  435. package/dist/platform/dream/dream-soil-mutation.d.ts +28 -0
  436. package/dist/platform/dream/dream-soil-mutation.d.ts.map +1 -0
  437. package/dist/platform/dream/dream-soil-mutation.js +605 -0
  438. package/dist/platform/dream/dream-soil-mutation.js.map +1 -0
  439. package/dist/platform/dream/dream-soil-sync.d.ts +32 -0
  440. package/dist/platform/dream/dream-soil-sync.d.ts.map +1 -0
  441. package/dist/platform/dream/dream-soil-sync.js +106 -0
  442. package/dist/platform/dream/dream-soil-sync.js.map +1 -0
  443. package/dist/platform/dream/dream-types.d.ts +635 -50
  444. package/dist/platform/dream/dream-types.d.ts.map +1 -1
  445. package/dist/platform/dream/dream-types.js +70 -0
  446. package/dist/platform/dream/dream-types.js.map +1 -1
  447. package/dist/platform/dream/index.d.ts +4 -0
  448. package/dist/platform/dream/index.d.ts.map +1 -1
  449. package/dist/platform/dream/index.js +4 -0
  450. package/dist/platform/dream/index.js.map +1 -1
  451. package/dist/platform/drive/satisficing-judge.d.ts.map +1 -1
  452. package/dist/platform/drive/satisficing-judge.js +20 -6
  453. package/dist/platform/drive/satisficing-judge.js.map +1 -1
  454. package/dist/platform/knowledge/knowledge-decisions.d.ts.map +1 -1
  455. package/dist/platform/knowledge/knowledge-decisions.js +32 -0
  456. package/dist/platform/knowledge/knowledge-decisions.js.map +1 -1
  457. package/dist/platform/knowledge/knowledge-manager-lint.d.ts +1 -0
  458. package/dist/platform/knowledge/knowledge-manager-lint.d.ts.map +1 -1
  459. package/dist/platform/knowledge/knowledge-manager-lint.js +20 -6
  460. package/dist/platform/knowledge/knowledge-manager-lint.js.map +1 -1
  461. package/dist/platform/knowledge/knowledge-manager.d.ts +3 -0
  462. package/dist/platform/knowledge/knowledge-manager.d.ts.map +1 -1
  463. package/dist/platform/knowledge/knowledge-manager.js +40 -1
  464. package/dist/platform/knowledge/knowledge-manager.js.map +1 -1
  465. package/dist/platform/knowledge/knowledge-search.d.ts.map +1 -1
  466. package/dist/platform/knowledge/knowledge-search.js +15 -3
  467. package/dist/platform/knowledge/knowledge-search.js.map +1 -1
  468. package/dist/platform/knowledge/learning/learning-cross-goal.d.ts.map +1 -1
  469. package/dist/platform/knowledge/learning/learning-cross-goal.js +9 -5
  470. package/dist/platform/knowledge/learning/learning-cross-goal.js.map +1 -1
  471. package/dist/platform/observation/observation-apply.d.ts.map +1 -1
  472. package/dist/platform/observation/observation-apply.js +93 -99
  473. package/dist/platform/observation/observation-apply.js.map +1 -1
  474. package/dist/platform/observation/workspace-context.d.ts.map +1 -1
  475. package/dist/platform/observation/workspace-context.js +12 -6
  476. package/dist/platform/observation/workspace-context.js.map +1 -1
  477. package/dist/platform/soil/checksum.d.ts +2 -0
  478. package/dist/platform/soil/checksum.d.ts.map +1 -0
  479. package/dist/platform/soil/checksum.js +17 -0
  480. package/dist/platform/soil/checksum.js.map +1 -0
  481. package/dist/platform/soil/compiled-memory-projections.d.ts +12 -0
  482. package/dist/platform/soil/compiled-memory-projections.d.ts.map +1 -0
  483. package/dist/platform/soil/compiled-memory-projections.js +238 -0
  484. package/dist/platform/soil/compiled-memory-projections.js.map +1 -0
  485. package/dist/platform/soil/compiler.d.ts +27 -0
  486. package/dist/platform/soil/compiler.d.ts.map +1 -0
  487. package/dist/platform/soil/compiler.js +78 -0
  488. package/dist/platform/soil/compiler.js.map +1 -0
  489. package/dist/platform/soil/config.d.ts +16 -0
  490. package/dist/platform/soil/config.d.ts.map +1 -0
  491. package/dist/platform/soil/config.js +30 -0
  492. package/dist/platform/soil/config.js.map +1 -0
  493. package/dist/platform/soil/content-projections.d.ts +20 -0
  494. package/dist/platform/soil/content-projections.d.ts.map +1 -0
  495. package/dist/platform/soil/content-projections.js +451 -0
  496. package/dist/platform/soil/content-projections.js.map +1 -0
  497. package/dist/platform/soil/context-compiler.d.ts +34 -0
  498. package/dist/platform/soil/context-compiler.d.ts.map +1 -0
  499. package/dist/platform/soil/context-compiler.js +298 -0
  500. package/dist/platform/soil/context-compiler.js.map +1 -0
  501. package/dist/platform/soil/context-evaluation.d.ts +63 -0
  502. package/dist/platform/soil/context-evaluation.d.ts.map +1 -0
  503. package/dist/platform/soil/context-evaluation.js +90 -0
  504. package/dist/platform/soil/context-evaluation.js.map +1 -0
  505. package/dist/platform/soil/contracts.d.ts +1366 -0
  506. package/dist/platform/soil/contracts.d.ts.map +1 -0
  507. package/dist/platform/soil/contracts.js +281 -0
  508. package/dist/platform/soil/contracts.js.map +1 -0
  509. package/dist/platform/soil/ddl.d.ts +8 -0
  510. package/dist/platform/soil/ddl.d.ts.map +1 -0
  511. package/dist/platform/soil/ddl.js +150 -0
  512. package/dist/platform/soil/ddl.js.map +1 -0
  513. package/dist/platform/soil/doctor.d.ts +38 -0
  514. package/dist/platform/soil/doctor.d.ts.map +1 -0
  515. package/dist/platform/soil/doctor.js +473 -0
  516. package/dist/platform/soil/doctor.js.map +1 -0
  517. package/dist/platform/soil/feedback-store.d.ts +10 -0
  518. package/dist/platform/soil/feedback-store.d.ts.map +1 -0
  519. package/dist/platform/soil/feedback-store.js +38 -0
  520. package/dist/platform/soil/feedback-store.js.map +1 -0
  521. package/dist/platform/soil/frontmatter.d.ts +15 -0
  522. package/dist/platform/soil/frontmatter.d.ts.map +1 -0
  523. package/dist/platform/soil/frontmatter.js +82 -0
  524. package/dist/platform/soil/frontmatter.js.map +1 -0
  525. package/dist/platform/soil/health.d.ts +35 -0
  526. package/dist/platform/soil/health.d.ts.map +1 -0
  527. package/dist/platform/soil/health.js +126 -0
  528. package/dist/platform/soil/health.js.map +1 -0
  529. package/dist/platform/soil/importer.d.ts +118 -0
  530. package/dist/platform/soil/importer.d.ts.map +1 -0
  531. package/dist/platform/soil/importer.js +145 -0
  532. package/dist/platform/soil/importer.js.map +1 -0
  533. package/dist/platform/soil/index-store.d.ts +89 -0
  534. package/dist/platform/soil/index-store.d.ts.map +1 -0
  535. package/dist/platform/soil/index-store.js +408 -0
  536. package/dist/platform/soil/index-store.js.map +1 -0
  537. package/dist/platform/soil/index.d.ts +24 -0
  538. package/dist/platform/soil/index.d.ts.map +1 -0
  539. package/dist/platform/soil/index.js +24 -0
  540. package/dist/platform/soil/index.js.map +1 -0
  541. package/dist/platform/soil/io.d.ts +18 -0
  542. package/dist/platform/soil/io.d.ts.map +1 -0
  543. package/dist/platform/soil/io.js +56 -0
  544. package/dist/platform/soil/io.js.map +1 -0
  545. package/dist/platform/soil/open.d.ts +32 -0
  546. package/dist/platform/soil/open.d.ts.map +1 -0
  547. package/dist/platform/soil/open.js +78 -0
  548. package/dist/platform/soil/open.js.map +1 -0
  549. package/dist/platform/soil/paths.d.ts +9 -0
  550. package/dist/platform/soil/paths.d.ts.map +1 -0
  551. package/dist/platform/soil/paths.js +78 -0
  552. package/dist/platform/soil/paths.js.map +1 -0
  553. package/dist/platform/soil/projection-support.d.ts +48 -0
  554. package/dist/platform/soil/projection-support.d.ts.map +1 -0
  555. package/dist/platform/soil/projection-support.js +107 -0
  556. package/dist/platform/soil/projection-support.js.map +1 -0
  557. package/dist/platform/soil/projections.d.ts +16 -0
  558. package/dist/platform/soil/projections.d.ts.map +1 -0
  559. package/dist/platform/soil/projections.js +265 -0
  560. package/dist/platform/soil/projections.js.map +1 -0
  561. package/dist/platform/soil/publish/apple-notes.d.ts +15 -0
  562. package/dist/platform/soil/publish/apple-notes.d.ts.map +1 -0
  563. package/dist/platform/soil/publish/apple-notes.js +58 -0
  564. package/dist/platform/soil/publish/apple-notes.js.map +1 -0
  565. package/dist/platform/soil/publish/config.d.ts +14 -0
  566. package/dist/platform/soil/publish/config.d.ts.map +1 -0
  567. package/dist/platform/soil/publish/config.js +59 -0
  568. package/dist/platform/soil/publish/config.js.map +1 -0
  569. package/dist/platform/soil/publish/index.d.ts +7 -0
  570. package/dist/platform/soil/publish/index.d.ts.map +1 -0
  571. package/dist/platform/soil/publish/index.js +7 -0
  572. package/dist/platform/soil/publish/index.js.map +1 -0
  573. package/dist/platform/soil/publish/notion.d.ts +51 -0
  574. package/dist/platform/soil/publish/notion.d.ts.map +1 -0
  575. package/dist/platform/soil/publish/notion.js +201 -0
  576. package/dist/platform/soil/publish/notion.js.map +1 -0
  577. package/dist/platform/soil/publish/publisher.d.ts +13 -0
  578. package/dist/platform/soil/publish/publisher.d.ts.map +1 -0
  579. package/dist/platform/soil/publish/publisher.js +55 -0
  580. package/dist/platform/soil/publish/publisher.js.map +1 -0
  581. package/dist/platform/soil/publish/snapshot.d.ts +4 -0
  582. package/dist/platform/soil/publish/snapshot.d.ts.map +1 -0
  583. package/dist/platform/soil/publish/snapshot.js +40 -0
  584. package/dist/platform/soil/publish/snapshot.js.map +1 -0
  585. package/dist/platform/soil/publish/types.d.ts +169 -0
  586. package/dist/platform/soil/publish/types.d.ts.map +1 -0
  587. package/dist/platform/soil/publish/types.js +32 -0
  588. package/dist/platform/soil/publish/types.js.map +1 -0
  589. package/dist/platform/soil/retriever.d.ts +52 -0
  590. package/dist/platform/soil/retriever.d.ts.map +1 -0
  591. package/dist/platform/soil/retriever.js +262 -0
  592. package/dist/platform/soil/retriever.js.map +1 -0
  593. package/dist/platform/soil/runtime-rebuild.d.ts +33 -0
  594. package/dist/platform/soil/runtime-rebuild.d.ts.map +1 -0
  595. package/dist/platform/soil/runtime-rebuild.js +200 -0
  596. package/dist/platform/soil/runtime-rebuild.js.map +1 -0
  597. package/dist/platform/soil/sqlite-repository.d.ts +25 -0
  598. package/dist/platform/soil/sqlite-repository.d.ts.map +1 -0
  599. package/dist/platform/soil/sqlite-repository.js +929 -0
  600. package/dist/platform/soil/sqlite-repository.js.map +1 -0
  601. package/dist/platform/soil/types.d.ts +506 -0
  602. package/dist/platform/soil/types.d.ts.map +1 -0
  603. package/dist/platform/soil/types.js +146 -0
  604. package/dist/platform/soil/types.js.map +1 -0
  605. package/dist/reflection/types.d.ts +2 -2
  606. package/dist/reporting/reporting-engine.d.ts.map +1 -1
  607. package/dist/reporting/reporting-engine.js +10 -0
  608. package/dist/reporting/reporting-engine.js.map +1 -1
  609. package/dist/runtime/approval-broker.d.ts.map +1 -1
  610. package/dist/runtime/approval-broker.js +32 -9
  611. package/dist/runtime/approval-broker.js.map +1 -1
  612. package/dist/runtime/command-dispatcher.d.ts +2 -0
  613. package/dist/runtime/command-dispatcher.d.ts.map +1 -1
  614. package/dist/runtime/command-dispatcher.js +11 -0
  615. package/dist/runtime/command-dispatcher.js.map +1 -1
  616. package/dist/runtime/control/daemon-runtime-control-executor.d.ts +13 -0
  617. package/dist/runtime/control/daemon-runtime-control-executor.d.ts.map +1 -0
  618. package/dist/runtime/control/daemon-runtime-control-executor.js +46 -0
  619. package/dist/runtime/control/daemon-runtime-control-executor.js.map +1 -0
  620. package/dist/runtime/control/index.d.ts +7 -0
  621. package/dist/runtime/control/index.d.ts.map +1 -0
  622. package/dist/runtime/control/index.js +4 -0
  623. package/dist/runtime/control/index.js.map +1 -0
  624. package/dist/runtime/control/runtime-control-intent.d.ts +7 -0
  625. package/dist/runtime/control/runtime-control-intent.d.ts.map +1 -0
  626. package/dist/runtime/control/runtime-control-intent.js +31 -0
  627. package/dist/runtime/control/runtime-control-intent.js.map +1 -0
  628. package/dist/runtime/control/runtime-control-service.d.ts +44 -0
  629. package/dist/runtime/control/runtime-control-service.d.ts.map +1 -0
  630. package/dist/runtime/control/runtime-control-service.js +143 -0
  631. package/dist/runtime/control/runtime-control-service.js.map +1 -0
  632. package/dist/runtime/daemon/client.d.ts +17 -0
  633. package/dist/runtime/daemon/client.d.ts.map +1 -1
  634. package/dist/runtime/daemon/client.js +45 -2
  635. package/dist/runtime/daemon/client.js.map +1 -1
  636. package/dist/runtime/daemon/runner-errors.d.ts +28 -0
  637. package/dist/runtime/daemon/runner-errors.d.ts.map +1 -0
  638. package/dist/runtime/daemon/runner-errors.js +41 -0
  639. package/dist/runtime/daemon/runner-errors.js.map +1 -0
  640. package/dist/runtime/daemon/runner-recovery.d.ts +12 -0
  641. package/dist/runtime/daemon/runner-recovery.d.ts.map +1 -0
  642. package/dist/runtime/daemon/runner-recovery.js +146 -0
  643. package/dist/runtime/daemon/runner-recovery.js.map +1 -0
  644. package/dist/runtime/daemon/runner.d.ts +8 -3
  645. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  646. package/dist/runtime/daemon/runner.js +211 -169
  647. package/dist/runtime/daemon/runner.js.map +1 -1
  648. package/dist/runtime/event/server-sse.d.ts.map +1 -1
  649. package/dist/runtime/event/server-sse.js +0 -1
  650. package/dist/runtime/event/server-sse.js.map +1 -1
  651. package/dist/runtime/event/server.d.ts +28 -0
  652. package/dist/runtime/event/server.d.ts.map +1 -1
  653. package/dist/runtime/event/server.js +341 -71
  654. package/dist/runtime/event/server.js.map +1 -1
  655. package/dist/runtime/leader-lock-manager.d.ts.map +1 -1
  656. package/dist/runtime/leader-lock-manager.js +2 -1
  657. package/dist/runtime/leader-lock-manager.js.map +1 -1
  658. package/dist/runtime/notification-dispatcher.d.ts +7 -0
  659. package/dist/runtime/notification-dispatcher.d.ts.map +1 -1
  660. package/dist/runtime/notification-dispatcher.js +43 -1
  661. package/dist/runtime/notification-dispatcher.js.map +1 -1
  662. package/dist/runtime/notification-routing.d.ts +16 -0
  663. package/dist/runtime/notification-routing.d.ts.map +1 -0
  664. package/dist/runtime/notification-routing.js +147 -0
  665. package/dist/runtime/notification-routing.js.map +1 -0
  666. package/dist/runtime/plugin-loader.d.ts +2 -0
  667. package/dist/runtime/plugin-loader.d.ts.map +1 -1
  668. package/dist/runtime/plugin-loader.js +34 -2
  669. package/dist/runtime/plugin-loader.js.map +1 -1
  670. package/dist/runtime/schedule/engine-layers.d.ts.map +1 -1
  671. package/dist/runtime/schedule/engine-layers.js +106 -6
  672. package/dist/runtime/schedule/engine-layers.js.map +1 -1
  673. package/dist/runtime/schedule/engine.d.ts +2 -0
  674. package/dist/runtime/schedule/engine.d.ts.map +1 -1
  675. package/dist/runtime/schedule/engine.js +28 -0
  676. package/dist/runtime/schedule/engine.js.map +1 -1
  677. package/dist/runtime/schedule/history.d.ts +3 -3
  678. package/dist/runtime/schedule/presets.d.ts +128 -15
  679. package/dist/runtime/schedule/presets.d.ts.map +1 -1
  680. package/dist/runtime/schedule/presets.js +24 -0
  681. package/dist/runtime/schedule/presets.js.map +1 -1
  682. package/dist/runtime/schedule/source.d.ts +2 -2
  683. package/dist/runtime/store/index.d.ts +3 -0
  684. package/dist/runtime/store/index.d.ts.map +1 -1
  685. package/dist/runtime/store/index.js +2 -0
  686. package/dist/runtime/store/index.js.map +1 -1
  687. package/dist/runtime/store/runtime-operation-schemas.d.ts +213 -0
  688. package/dist/runtime/store/runtime-operation-schemas.d.ts.map +1 -0
  689. package/dist/runtime/store/runtime-operation-schemas.js +62 -0
  690. package/dist/runtime/store/runtime-operation-schemas.js.map +1 -0
  691. package/dist/runtime/store/runtime-operation-store.d.ts +17 -0
  692. package/dist/runtime/store/runtime-operation-store.d.ts.map +1 -0
  693. package/dist/runtime/store/runtime-operation-store.js +57 -0
  694. package/dist/runtime/store/runtime-operation-store.js.map +1 -0
  695. package/dist/runtime/store/runtime-schemas.d.ts +2 -2
  696. package/dist/runtime/types/cron.d.ts +4 -4
  697. package/dist/runtime/types/daemon.d.ts +6 -0
  698. package/dist/runtime/types/daemon.d.ts.map +1 -1
  699. package/dist/runtime/types/daemon.js +2 -0
  700. package/dist/runtime/types/daemon.js.map +1 -1
  701. package/dist/runtime/types/notification.d.ts +91 -0
  702. package/dist/runtime/types/notification.d.ts.map +1 -1
  703. package/dist/runtime/types/notification.js +10 -0
  704. package/dist/runtime/types/notification.js.map +1 -1
  705. package/dist/runtime/types/schedule.d.ts +60 -60
  706. package/dist/runtime/types/schedule.js +1 -1
  707. package/dist/runtime/types/schedule.js.map +1 -1
  708. package/dist/runtime/types/trigger.d.ts +6 -6
  709. package/dist/runtime/watchdog.d.ts +22 -0
  710. package/dist/runtime/watchdog.d.ts.map +1 -1
  711. package/dist/runtime/watchdog.js +47 -3
  712. package/dist/runtime/watchdog.js.map +1 -1
  713. package/dist/tools/builtin/index.d.ts +17 -0
  714. package/dist/tools/builtin/index.d.ts.map +1 -1
  715. package/dist/tools/builtin/index.js +46 -3
  716. package/dist/tools/builtin/index.js.map +1 -1
  717. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.d.ts.map +1 -1
  718. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.js +20 -0
  719. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.js.map +1 -1
  720. package/dist/tools/execution/SoilDoctorTool/SoilDoctorTool.d.ts +43 -0
  721. package/dist/tools/execution/SoilDoctorTool/SoilDoctorTool.d.ts.map +1 -0
  722. package/dist/tools/execution/SoilDoctorTool/SoilDoctorTool.js +83 -0
  723. package/dist/tools/execution/SoilDoctorTool/SoilDoctorTool.js.map +1 -0
  724. package/dist/tools/execution/SoilDoctorTool/constants.d.ts +8 -0
  725. package/dist/tools/execution/SoilDoctorTool/constants.d.ts.map +1 -0
  726. package/dist/tools/execution/SoilDoctorTool/constants.js +8 -0
  727. package/dist/tools/execution/SoilDoctorTool/constants.js.map +1 -0
  728. package/dist/tools/execution/SoilDoctorTool/prompt.d.ts +2 -0
  729. package/dist/tools/execution/SoilDoctorTool/prompt.d.ts.map +1 -0
  730. package/dist/tools/execution/SoilDoctorTool/prompt.js +2 -0
  731. package/dist/tools/execution/SoilDoctorTool/prompt.js.map +1 -0
  732. package/dist/tools/execution/SoilImportTool/SoilImportTool.d.ts +109 -0
  733. package/dist/tools/execution/SoilImportTool/SoilImportTool.d.ts.map +1 -0
  734. package/dist/tools/execution/SoilImportTool/SoilImportTool.js +72 -0
  735. package/dist/tools/execution/SoilImportTool/SoilImportTool.js.map +1 -0
  736. package/dist/tools/execution/SoilImportTool/constants.d.ts +6 -0
  737. package/dist/tools/execution/SoilImportTool/constants.d.ts.map +1 -0
  738. package/dist/tools/execution/SoilImportTool/constants.js +6 -0
  739. package/dist/tools/execution/SoilImportTool/constants.js.map +1 -0
  740. package/dist/tools/execution/SoilImportTool/prompt.d.ts +2 -0
  741. package/dist/tools/execution/SoilImportTool/prompt.d.ts.map +1 -0
  742. package/dist/tools/execution/SoilImportTool/prompt.js +2 -0
  743. package/dist/tools/execution/SoilImportTool/prompt.js.map +1 -0
  744. package/dist/tools/execution/SoilOpenTool/SoilOpenTool.d.ts +46 -0
  745. package/dist/tools/execution/SoilOpenTool/SoilOpenTool.d.ts.map +1 -0
  746. package/dist/tools/execution/SoilOpenTool/SoilOpenTool.js +64 -0
  747. package/dist/tools/execution/SoilOpenTool/SoilOpenTool.js.map +1 -0
  748. package/dist/tools/execution/SoilOpenTool/constants.d.ts +6 -0
  749. package/dist/tools/execution/SoilOpenTool/constants.d.ts.map +1 -0
  750. package/dist/tools/execution/SoilOpenTool/constants.js +6 -0
  751. package/dist/tools/execution/SoilOpenTool/constants.js.map +1 -0
  752. package/dist/tools/execution/SoilOpenTool/prompt.d.ts +2 -0
  753. package/dist/tools/execution/SoilOpenTool/prompt.d.ts.map +1 -0
  754. package/dist/tools/execution/SoilOpenTool/prompt.js +2 -0
  755. package/dist/tools/execution/SoilOpenTool/prompt.js.map +1 -0
  756. package/dist/tools/execution/SoilPublishTool/SoilPublishTool.d.ts +49 -0
  757. package/dist/tools/execution/SoilPublishTool/SoilPublishTool.d.ts.map +1 -0
  758. package/dist/tools/execution/SoilPublishTool/SoilPublishTool.js +71 -0
  759. package/dist/tools/execution/SoilPublishTool/SoilPublishTool.js.map +1 -0
  760. package/dist/tools/execution/SoilPublishTool/constants.d.ts +6 -0
  761. package/dist/tools/execution/SoilPublishTool/constants.d.ts.map +1 -0
  762. package/dist/tools/execution/SoilPublishTool/constants.js +6 -0
  763. package/dist/tools/execution/SoilPublishTool/constants.js.map +1 -0
  764. package/dist/tools/execution/SoilPublishTool/prompt.d.ts +2 -0
  765. package/dist/tools/execution/SoilPublishTool/prompt.d.ts.map +1 -0
  766. package/dist/tools/execution/SoilPublishTool/prompt.js +2 -0
  767. package/dist/tools/execution/SoilPublishTool/prompt.js.map +1 -0
  768. package/dist/tools/execution/SoilRebuildTool/SoilRebuildTool.d.ts +34 -0
  769. package/dist/tools/execution/SoilRebuildTool/SoilRebuildTool.d.ts.map +1 -0
  770. package/dist/tools/execution/SoilRebuildTool/SoilRebuildTool.js +66 -0
  771. package/dist/tools/execution/SoilRebuildTool/SoilRebuildTool.js.map +1 -0
  772. package/dist/tools/execution/SoilRebuildTool/constants.d.ts +6 -0
  773. package/dist/tools/execution/SoilRebuildTool/constants.d.ts.map +1 -0
  774. package/dist/tools/execution/SoilRebuildTool/constants.js +6 -0
  775. package/dist/tools/execution/SoilRebuildTool/constants.js.map +1 -0
  776. package/dist/tools/execution/SoilRebuildTool/prompt.d.ts +2 -0
  777. package/dist/tools/execution/SoilRebuildTool/prompt.d.ts.map +1 -0
  778. package/dist/tools/execution/SoilRebuildTool/prompt.js +2 -0
  779. package/dist/tools/execution/SoilRebuildTool/prompt.js.map +1 -0
  780. package/dist/tools/executor.d.ts.map +1 -1
  781. package/dist/tools/executor.js +5 -2
  782. package/dist/tools/executor.js.map +1 -1
  783. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.d.ts +38 -0
  784. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.d.ts.map +1 -0
  785. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js +247 -0
  786. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js.map +1 -0
  787. package/dist/tools/fs/FileValidationTool/FileValidationTool.d.ts.map +1 -1
  788. package/dist/tools/fs/FileValidationTool/FileValidationTool.js +3 -2
  789. package/dist/tools/fs/FileValidationTool/FileValidationTool.js.map +1 -1
  790. package/dist/tools/fs/GlobTool/GlobTool.d.ts +1 -1
  791. package/dist/tools/fs/GlobTool/GlobTool.d.ts.map +1 -1
  792. package/dist/tools/fs/GlobTool/GlobTool.js +12 -1
  793. package/dist/tools/fs/GlobTool/GlobTool.js.map +1 -1
  794. package/dist/tools/fs/GrepTool/GrepTool.d.ts +1 -1
  795. package/dist/tools/fs/GrepTool/GrepTool.d.ts.map +1 -1
  796. package/dist/tools/fs/GrepTool/GrepTool.js +10 -3
  797. package/dist/tools/fs/GrepTool/GrepTool.js.map +1 -1
  798. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.d.ts +1 -1
  799. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.d.ts.map +1 -1
  800. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js +8 -1
  801. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js.map +1 -1
  802. package/dist/tools/fs/ListDirTool/ListDirTool.d.ts +2 -2
  803. package/dist/tools/fs/ListDirTool/ListDirTool.d.ts.map +1 -1
  804. package/dist/tools/fs/ListDirTool/ListDirTool.js +13 -5
  805. package/dist/tools/fs/ListDirTool/ListDirTool.js.map +1 -1
  806. package/dist/tools/fs/ReadTool/ReadTool.d.ts +1 -1
  807. package/dist/tools/fs/ReadTool/ReadTool.d.ts.map +1 -1
  808. package/dist/tools/fs/ReadTool/ReadTool.js +8 -1
  809. package/dist/tools/fs/ReadTool/ReadTool.js.map +1 -1
  810. package/dist/tools/index.d.ts +2 -0
  811. package/dist/tools/index.d.ts.map +1 -1
  812. package/dist/tools/index.js +1 -0
  813. package/dist/tools/index.js.map +1 -1
  814. package/dist/tools/media/ViewImageTool/ViewImageTool.d.ts +31 -0
  815. package/dist/tools/media/ViewImageTool/ViewImageTool.d.ts.map +1 -0
  816. package/dist/tools/media/ViewImageTool/ViewImageTool.js +53 -0
  817. package/dist/tools/media/ViewImageTool/ViewImageTool.js.map +1 -0
  818. package/dist/tools/mutation/ConfigureNotificationRoutingTool/ConfigureNotificationRoutingTool.d.ts +25 -0
  819. package/dist/tools/mutation/ConfigureNotificationRoutingTool/ConfigureNotificationRoutingTool.d.ts.map +1 -0
  820. package/dist/tools/mutation/ConfigureNotificationRoutingTool/ConfigureNotificationRoutingTool.js +59 -0
  821. package/dist/tools/mutation/ConfigureNotificationRoutingTool/ConfigureNotificationRoutingTool.js.map +1 -0
  822. package/dist/tools/mutation/ConfigureNotificationRoutingTool/constants.d.ts +5 -0
  823. package/dist/tools/mutation/ConfigureNotificationRoutingTool/constants.d.ts.map +1 -0
  824. package/dist/tools/mutation/ConfigureNotificationRoutingTool/constants.js +5 -0
  825. package/dist/tools/mutation/ConfigureNotificationRoutingTool/constants.js.map +1 -0
  826. package/dist/tools/mutation/ConfigureNotificationRoutingTool/prompt.d.ts +2 -0
  827. package/dist/tools/mutation/ConfigureNotificationRoutingTool/prompt.d.ts.map +1 -0
  828. package/dist/tools/mutation/ConfigureNotificationRoutingTool/prompt.js +5 -0
  829. package/dist/tools/mutation/ConfigureNotificationRoutingTool/prompt.js.map +1 -0
  830. package/dist/tools/mutation/TaskCreateTool/TaskCreateTool.d.ts +4 -4
  831. package/dist/tools/mutation/TaskOutputTool/TaskOutputTool.d.ts +2 -2
  832. package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts +144 -0
  833. package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts.map +1 -0
  834. package/dist/tools/network/GitHubCliTool/GitHubCliTool.js +245 -0
  835. package/dist/tools/network/GitHubCliTool/GitHubCliTool.js.map +1 -0
  836. package/dist/tools/network/HttpFetchTool/HttpFetchTool.d.ts +16 -0
  837. package/dist/tools/network/HttpFetchTool/HttpFetchTool.d.ts.map +1 -1
  838. package/dist/tools/network/HttpFetchTool/HttpFetchTool.js +252 -13
  839. package/dist/tools/network/HttpFetchTool/HttpFetchTool.js.map +1 -1
  840. package/dist/tools/network/McpStdioTool/McpStdioTool.d.ts +109 -0
  841. package/dist/tools/network/McpStdioTool/McpStdioTool.d.ts.map +1 -0
  842. package/dist/tools/network/McpStdioTool/McpStdioTool.js +121 -0
  843. package/dist/tools/network/McpStdioTool/McpStdioTool.js.map +1 -0
  844. package/dist/tools/query/GoalStateTool/GoalStateTool.js +1 -1
  845. package/dist/tools/query/GoalStateTool/GoalStateTool.js.map +1 -1
  846. package/dist/tools/query/MemoryRecallTool/MemoryRecallTool.d.ts +4 -4
  847. package/dist/tools/query/SoilQueryTool/SoilQueryTool.d.ts +118 -0
  848. package/dist/tools/query/SoilQueryTool/SoilQueryTool.d.ts.map +1 -0
  849. package/dist/tools/query/SoilQueryTool/SoilQueryTool.js +335 -0
  850. package/dist/tools/query/SoilQueryTool/SoilQueryTool.js.map +1 -0
  851. package/dist/tools/query/SoilQueryTool/constants.d.ts +8 -0
  852. package/dist/tools/query/SoilQueryTool/constants.d.ts.map +1 -0
  853. package/dist/tools/query/SoilQueryTool/constants.js +8 -0
  854. package/dist/tools/query/SoilQueryTool/constants.js.map +1 -0
  855. package/dist/tools/query/SoilQueryTool/prompt.d.ts +2 -0
  856. package/dist/tools/query/SoilQueryTool/prompt.d.ts.map +1 -0
  857. package/dist/tools/query/SoilQueryTool/prompt.js +2 -0
  858. package/dist/tools/query/SoilQueryTool/prompt.js.map +1 -0
  859. package/dist/tools/schedule/CreateScheduleTool/CreateScheduleTool.d.ts +164 -52
  860. package/dist/tools/schedule/CreateScheduleTool/CreateScheduleTool.d.ts.map +1 -1
  861. package/dist/tools/schedule/ListSchedulesTool/ListSchedulesTool.d.ts +4 -4
  862. package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.d.ts +76 -76
  863. package/dist/tools/system/EnvTool/EnvTool.d.ts +4 -4
  864. package/dist/tools/system/GitLogTool/GitLogTool.d.ts +4 -4
  865. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts +220 -0
  866. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts.map +1 -0
  867. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.js +354 -0
  868. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.js.map +1 -0
  869. package/dist/tools/system/ShellCommandTool/ShellCommandTool.d.ts +44 -0
  870. package/dist/tools/system/ShellCommandTool/ShellCommandTool.d.ts.map +1 -0
  871. package/dist/tools/system/ShellCommandTool/ShellCommandTool.js +40 -0
  872. package/dist/tools/system/ShellCommandTool/ShellCommandTool.js.map +1 -0
  873. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.d.ts +61 -0
  874. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.d.ts.map +1 -0
  875. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js +42 -0
  876. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js.map +1 -0
  877. package/dist/tools/types.d.ts +6 -2
  878. package/dist/tools/types.d.ts.map +1 -1
  879. package/dist/tools/types.js.map +1 -1
  880. package/package.json +7 -1
  881. package/dist/adapters/agents/browser-use-cli.d.ts +0 -19
  882. package/dist/adapters/agents/browser-use-cli.d.ts.map +0 -1
  883. package/dist/adapters/agents/browser-use-cli.js +0 -74
  884. package/dist/adapters/agents/browser-use-cli.js.map +0 -1
@@ -0,0 +1,929 @@
1
+ import * as fsp from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { randomUUID } from "node:crypto";
4
+ import Database from "better-sqlite3";
5
+ import { cosineSimilarity } from "../knowledge/embedding-client.js";
6
+ import { getDefaultSoilSqliteIndexPath, resolveSoilRootDir } from "./config.js";
7
+ import { SoilEmbeddingSchema, SoilMutationSchema, SoilPageMemberSchema, SoilPageSchema, SoilRecordFilterSchema, SoilRecordSchema, SoilSearchRequestSchema, } from "./contracts.js";
8
+ import { SOIL_SCHEMA_SQL } from "./ddl.js";
9
+ function buildSnippet(text, query) {
10
+ const haystack = text.trim();
11
+ if (!haystack)
12
+ return "";
13
+ const tokens = query.toLowerCase().split(/\s+/).filter(Boolean);
14
+ const lower = haystack.toLowerCase();
15
+ for (const token of tokens) {
16
+ const index = lower.indexOf(token);
17
+ if (index >= 0) {
18
+ const start = Math.max(0, index - 50);
19
+ const end = Math.min(haystack.length, index + token.length + 100);
20
+ return haystack.slice(start, end);
21
+ }
22
+ }
23
+ return haystack.slice(0, 160);
24
+ }
25
+ function serializeJson(value) {
26
+ return JSON.stringify(value ?? {});
27
+ }
28
+ function parseJsonObject(input) {
29
+ try {
30
+ const parsed = JSON.parse(input);
31
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
32
+ ? parsed
33
+ : {};
34
+ }
35
+ catch {
36
+ return {};
37
+ }
38
+ }
39
+ function parseJsonArray(input) {
40
+ try {
41
+ const parsed = JSON.parse(input);
42
+ return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
43
+ }
44
+ catch {
45
+ return [];
46
+ }
47
+ }
48
+ function parseReindexRecordIds(input) {
49
+ try {
50
+ const payload = JSON.parse(input);
51
+ if (typeof payload !== "object" || payload === null || Array.isArray(payload)) {
52
+ return [];
53
+ }
54
+ const value = payload.record_ids;
55
+ return Array.isArray(value)
56
+ ? value.filter((recordId) => typeof recordId === "string" && recordId.length > 0)
57
+ : [];
58
+ }
59
+ catch {
60
+ return [];
61
+ }
62
+ }
63
+ function encodeEmbedding(entry) {
64
+ if (entry.encoding === "f32le") {
65
+ const floats = entry.embedding instanceof Uint8Array
66
+ ? new Float32Array(entry.embedding.buffer.slice(entry.embedding.byteOffset, entry.embedding.byteOffset + entry.embedding.byteLength))
67
+ : Float32Array.from(entry.embedding);
68
+ return Buffer.from(floats.buffer.slice(floats.byteOffset, floats.byteOffset + floats.byteLength));
69
+ }
70
+ const payload = entry.embedding instanceof Uint8Array
71
+ ? Array.from(entry.embedding.values())
72
+ : entry.embedding;
73
+ return Buffer.from(JSON.stringify(payload), "utf8");
74
+ }
75
+ function decodeEmbedding(row) {
76
+ if (row.encoding === "f32le") {
77
+ const copy = row.embedding.buffer.slice(row.embedding.byteOffset, row.embedding.byteOffset + row.embedding.byteLength);
78
+ return Array.from(new Float32Array(copy));
79
+ }
80
+ return JSON.parse(row.embedding.toString("utf8"));
81
+ }
82
+ function toRecord(row) {
83
+ return SoilRecordSchema.parse({
84
+ ...row,
85
+ is_active: Boolean(row.is_active),
86
+ metadata_json: parseJsonObject(row.metadata_json),
87
+ });
88
+ }
89
+ function toPage(row) {
90
+ return SoilPageSchema.parse(row);
91
+ }
92
+ function toPageMember(row) {
93
+ return SoilPageMemberSchema.parse(row);
94
+ }
95
+ function unique(values) {
96
+ return [...new Set(values.filter((value) => value.length > 0))];
97
+ }
98
+ function dedupeCandidates(candidates, limit) {
99
+ const byChunkId = new Map();
100
+ for (const candidate of candidates) {
101
+ const current = byChunkId.get(candidate.chunk_id);
102
+ if (!current ||
103
+ candidate.score > current.score ||
104
+ (candidate.score === current.score && current.page_id === null && candidate.page_id !== null)) {
105
+ byChunkId.set(candidate.chunk_id, candidate);
106
+ }
107
+ }
108
+ return [...byChunkId.values()]
109
+ .sort((left, right) => right.score - left.score || left.chunk_id.localeCompare(right.chunk_id))
110
+ .slice(0, limit)
111
+ .map((candidate, index) => ({ ...candidate, rank: index + 1 }));
112
+ }
113
+ function fuseCandidates(lexical, dense, limit, rrfK = 60) {
114
+ const byChunkId = new Map();
115
+ for (const [lane, weight, candidates] of [
116
+ ["lexical", 1, lexical],
117
+ ["dense", 0.85, dense],
118
+ ]) {
119
+ for (const candidate of candidates) {
120
+ const prior = byChunkId.get(candidate.chunk_id);
121
+ const laneScore = weight / (rrfK + candidate.rank);
122
+ const metadata_json = {
123
+ ...(prior?.metadata_json ?? candidate.metadata_json),
124
+ [`${lane}_rank`]: candidate.rank,
125
+ [`${lane}_score`]: candidate.score,
126
+ };
127
+ if (!prior) {
128
+ byChunkId.set(candidate.chunk_id, {
129
+ ...candidate,
130
+ lane: "hybrid",
131
+ score: laneScore,
132
+ metadata_json,
133
+ });
134
+ continue;
135
+ }
136
+ byChunkId.set(candidate.chunk_id, {
137
+ ...prior,
138
+ page_id: prior.page_id ?? candidate.page_id,
139
+ snippet: prior.snippet ?? candidate.snippet,
140
+ score: prior.score + laneScore,
141
+ metadata_json,
142
+ });
143
+ }
144
+ }
145
+ return [...byChunkId.values()]
146
+ .sort((left, right) => right.score - left.score || left.chunk_id.localeCompare(right.chunk_id))
147
+ .slice(0, limit)
148
+ .map((candidate, index) => ({ ...candidate, rank: index + 1 }));
149
+ }
150
+ function hasExplicitMetadataFilter(request) {
151
+ const recordFilter = request.record_filter;
152
+ const pageFilter = request.page_filter;
153
+ return Boolean(recordFilter.record_ids?.length ||
154
+ recordFilter.record_keys?.length ||
155
+ recordFilter.record_types?.length ||
156
+ recordFilter.statuses?.length ||
157
+ recordFilter.goal_ids?.length ||
158
+ recordFilter.task_ids?.length ||
159
+ recordFilter.source_types?.length ||
160
+ recordFilter.source_ids?.length ||
161
+ recordFilter.valid_at ||
162
+ recordFilter.updated_after ||
163
+ recordFilter.updated_before ||
164
+ pageFilter.page_ids?.length ||
165
+ pageFilter.soil_ids?.length ||
166
+ pageFilter.routes?.length ||
167
+ pageFilter.kinds?.length ||
168
+ pageFilter.page_statuses?.length ||
169
+ pageFilter.relative_paths?.length);
170
+ }
171
+ function buildRecordFilterSql(request, params) {
172
+ const clauses = [];
173
+ const filter = request.record_filter;
174
+ if (filter.active_only) {
175
+ clauses.push("r.is_active = 1");
176
+ }
177
+ if (filter.record_ids?.length) {
178
+ clauses.push(`r.record_id IN (${filter.record_ids.map(() => "?").join(", ")})`);
179
+ params.push(...filter.record_ids);
180
+ }
181
+ if (filter.record_keys?.length) {
182
+ clauses.push(`r.record_key IN (${filter.record_keys.map(() => "?").join(", ")})`);
183
+ params.push(...filter.record_keys);
184
+ }
185
+ if (filter.record_types?.length) {
186
+ clauses.push(`r.record_type IN (${filter.record_types.map(() => "?").join(", ")})`);
187
+ params.push(...filter.record_types);
188
+ }
189
+ if (filter.statuses?.length) {
190
+ clauses.push(`r.status IN (${filter.statuses.map(() => "?").join(", ")})`);
191
+ params.push(...filter.statuses);
192
+ }
193
+ if (filter.goal_ids?.length) {
194
+ clauses.push(`r.goal_id IN (${filter.goal_ids.map(() => "?").join(", ")})`);
195
+ params.push(...filter.goal_ids);
196
+ }
197
+ if (filter.task_ids?.length) {
198
+ clauses.push(`r.task_id IN (${filter.task_ids.map(() => "?").join(", ")})`);
199
+ params.push(...filter.task_ids);
200
+ }
201
+ if (filter.source_types?.length) {
202
+ clauses.push(`r.source_type IN (${filter.source_types.map(() => "?").join(", ")})`);
203
+ params.push(...filter.source_types);
204
+ }
205
+ if (filter.source_ids?.length) {
206
+ clauses.push(`r.source_id IN (${filter.source_ids.map(() => "?").join(", ")})`);
207
+ params.push(...filter.source_ids);
208
+ }
209
+ if (filter.valid_at) {
210
+ clauses.push("(r.valid_from IS NULL OR r.valid_from <= ?)");
211
+ clauses.push("(r.valid_to IS NULL OR r.valid_to > ?)");
212
+ params.push(filter.valid_at, filter.valid_at);
213
+ }
214
+ if (filter.updated_after) {
215
+ clauses.push("r.updated_at >= ?");
216
+ params.push(filter.updated_after);
217
+ }
218
+ if (filter.updated_before) {
219
+ clauses.push("r.updated_at <= ?");
220
+ params.push(filter.updated_before);
221
+ }
222
+ return clauses;
223
+ }
224
+ function buildPageFilterSql(request, params) {
225
+ const clauses = [];
226
+ const filter = request.page_filter;
227
+ if (filter.page_ids?.length) {
228
+ clauses.push(`p.page_id IN (${filter.page_ids.map(() => "?").join(", ")})`);
229
+ params.push(...filter.page_ids);
230
+ }
231
+ if (filter.soil_ids?.length) {
232
+ clauses.push(`p.soil_id IN (${filter.soil_ids.map(() => "?").join(", ")})`);
233
+ params.push(...filter.soil_ids);
234
+ }
235
+ if (filter.routes?.length) {
236
+ clauses.push(`p.route IN (${filter.routes.map(() => "?").join(", ")})`);
237
+ params.push(...filter.routes);
238
+ }
239
+ if (filter.kinds?.length) {
240
+ clauses.push(`p.kind IN (${filter.kinds.map(() => "?").join(", ")})`);
241
+ params.push(...filter.kinds);
242
+ }
243
+ if (filter.page_statuses?.length) {
244
+ clauses.push(`p.status IN (${filter.page_statuses.map(() => "?").join(", ")})`);
245
+ params.push(...filter.page_statuses);
246
+ }
247
+ if (filter.relative_paths?.length) {
248
+ clauses.push(`p.relative_path IN (${filter.relative_paths.map(() => "?").join(", ")})`);
249
+ params.push(...filter.relative_paths);
250
+ }
251
+ return clauses;
252
+ }
253
+ function buildPageExistsSql(recordIdExpr, request, params) {
254
+ const filter = request.page_filter;
255
+ const pagePredicates = [];
256
+ if (filter.page_ids?.length) {
257
+ pagePredicates.push(`p.page_id IN (${filter.page_ids.map(() => "?").join(", ")})`);
258
+ params.push(...filter.page_ids);
259
+ }
260
+ if (filter.soil_ids?.length) {
261
+ pagePredicates.push(`p.soil_id IN (${filter.soil_ids.map(() => "?").join(", ")})`);
262
+ params.push(...filter.soil_ids);
263
+ }
264
+ if (filter.routes?.length) {
265
+ pagePredicates.push(`p.route IN (${filter.routes.map(() => "?").join(", ")})`);
266
+ params.push(...filter.routes);
267
+ }
268
+ if (filter.kinds?.length) {
269
+ pagePredicates.push(`p.kind IN (${filter.kinds.map(() => "?").join(", ")})`);
270
+ params.push(...filter.kinds);
271
+ }
272
+ if (filter.page_statuses?.length) {
273
+ pagePredicates.push(`p.status IN (${filter.page_statuses.map(() => "?").join(", ")})`);
274
+ params.push(...filter.page_statuses);
275
+ }
276
+ if (filter.relative_paths?.length) {
277
+ pagePredicates.push(`p.relative_path IN (${filter.relative_paths.map(() => "?").join(", ")})`);
278
+ params.push(...filter.relative_paths);
279
+ }
280
+ if (pagePredicates.length === 0) {
281
+ return [];
282
+ }
283
+ return [
284
+ `EXISTS (
285
+ SELECT 1
286
+ FROM soil_page_members spm
287
+ JOIN soil_pages p ON p.page_id = spm.page_id
288
+ WHERE spm.record_id = ${recordIdExpr}
289
+ AND ${pagePredicates.join(" AND ")}
290
+ )`,
291
+ ];
292
+ }
293
+ function buildCandidatePageIdSql(recordIdExpr, request, params) {
294
+ const filter = request.page_filter;
295
+ const pagePredicates = [];
296
+ if (filter.page_ids?.length) {
297
+ pagePredicates.push(`p.page_id IN (${filter.page_ids.map(() => "?").join(", ")})`);
298
+ params.push(...filter.page_ids);
299
+ }
300
+ if (filter.soil_ids?.length) {
301
+ pagePredicates.push(`p.soil_id IN (${filter.soil_ids.map(() => "?").join(", ")})`);
302
+ params.push(...filter.soil_ids);
303
+ }
304
+ if (filter.routes?.length) {
305
+ pagePredicates.push(`p.route IN (${filter.routes.map(() => "?").join(", ")})`);
306
+ params.push(...filter.routes);
307
+ }
308
+ if (filter.kinds?.length) {
309
+ pagePredicates.push(`p.kind IN (${filter.kinds.map(() => "?").join(", ")})`);
310
+ params.push(...filter.kinds);
311
+ }
312
+ if (filter.page_statuses?.length) {
313
+ pagePredicates.push(`p.status IN (${filter.page_statuses.map(() => "?").join(", ")})`);
314
+ params.push(...filter.page_statuses);
315
+ }
316
+ if (filter.relative_paths?.length) {
317
+ pagePredicates.push(`p.relative_path IN (${filter.relative_paths.map(() => "?").join(", ")})`);
318
+ params.push(...filter.relative_paths);
319
+ }
320
+ const baseQuery = pagePredicates.length > 0
321
+ ? `SELECT spm.page_id
322
+ FROM soil_page_members spm
323
+ JOIN soil_pages p ON p.page_id = spm.page_id
324
+ WHERE spm.record_id = ${recordIdExpr}
325
+ AND ${pagePredicates.join(" AND ")}
326
+ ORDER BY CASE WHEN spm.role = 'primary' THEN 0 ELSE 1 END, spm.ordinal, p.relative_path, spm.page_id
327
+ LIMIT 1`
328
+ : `SELECT spm.page_id
329
+ FROM soil_page_members spm
330
+ WHERE spm.record_id = ${recordIdExpr}
331
+ ORDER BY CASE WHEN spm.role = 'primary' THEN 0 ELSE 1 END, spm.ordinal, spm.page_id
332
+ LIMIT 1`;
333
+ return `(${baseQuery})`;
334
+ }
335
+ export class SqliteSoilRepository {
336
+ db;
337
+ dbPath;
338
+ constructor(db, dbPath) {
339
+ this.db = db;
340
+ this.dbPath = dbPath;
341
+ }
342
+ static async create(configInput = {}) {
343
+ const rootDir = resolveSoilRootDir(configInput.rootDir);
344
+ const indexPath = configInput.indexPath ? path.resolve(configInput.indexPath) : getDefaultSoilSqliteIndexPath(rootDir);
345
+ await fsp.mkdir(path.dirname(indexPath), { recursive: true });
346
+ const db = new Database(indexPath);
347
+ db.pragma("journal_mode = WAL");
348
+ db.pragma("foreign_keys = ON");
349
+ db.exec(SOIL_SCHEMA_SQL);
350
+ return new SqliteSoilRepository(db, indexPath);
351
+ }
352
+ close() {
353
+ this.db.close();
354
+ }
355
+ async applyMutation(input) {
356
+ const mutation = SoilMutationSchema.parse(input);
357
+ const contentMutatedRecordIds = new Set();
358
+ const embeddedChunkIds = new Set();
359
+ const embeddedRecordIds = new Set();
360
+ const tx = this.db.transaction(() => {
361
+ for (const record of mutation.records) {
362
+ if (record.is_active) {
363
+ this.db
364
+ .prepare("UPDATE soil_records SET is_active = 0 WHERE record_key = ? AND record_id != ? AND is_active = 1")
365
+ .run(record.record_key, record.record_id);
366
+ }
367
+ this.db.prepare(`
368
+ INSERT INTO soil_records (
369
+ record_id, record_key, version, record_type, soil_id, title, summary, canonical_text,
370
+ goal_id, task_id, status, confidence, importance, source_reliability,
371
+ valid_from, valid_to, supersedes_record_id, is_active, source_type, source_id,
372
+ metadata_json, created_at, updated_at
373
+ ) VALUES (
374
+ @record_id, @record_key, @version, @record_type, @soil_id, @title, @summary, @canonical_text,
375
+ @goal_id, @task_id, @status, @confidence, @importance, @source_reliability,
376
+ @valid_from, @valid_to, @supersedes_record_id, @is_active, @source_type, @source_id,
377
+ @metadata_json, @created_at, @updated_at
378
+ )
379
+ ON CONFLICT(record_id) DO UPDATE SET
380
+ record_key = excluded.record_key,
381
+ version = excluded.version,
382
+ record_type = excluded.record_type,
383
+ soil_id = excluded.soil_id,
384
+ title = excluded.title,
385
+ summary = excluded.summary,
386
+ canonical_text = excluded.canonical_text,
387
+ goal_id = excluded.goal_id,
388
+ task_id = excluded.task_id,
389
+ status = excluded.status,
390
+ confidence = excluded.confidence,
391
+ importance = excluded.importance,
392
+ source_reliability = excluded.source_reliability,
393
+ valid_from = excluded.valid_from,
394
+ valid_to = excluded.valid_to,
395
+ supersedes_record_id = excluded.supersedes_record_id,
396
+ is_active = excluded.is_active,
397
+ source_type = excluded.source_type,
398
+ source_id = excluded.source_id,
399
+ metadata_json = excluded.metadata_json,
400
+ created_at = excluded.created_at,
401
+ updated_at = excluded.updated_at
402
+ `).run({
403
+ ...record,
404
+ is_active: record.is_active ? 1 : 0,
405
+ metadata_json: serializeJson(record.metadata_json),
406
+ });
407
+ contentMutatedRecordIds.add(record.record_id);
408
+ }
409
+ for (const chunk of mutation.chunks) {
410
+ this.db.prepare(`
411
+ INSERT INTO soil_chunks (
412
+ chunk_id, record_id, soil_id, chunk_index, chunk_kind, heading_path_json,
413
+ chunk_text, token_count, checksum, created_at
414
+ ) VALUES (
415
+ @chunk_id, @record_id, @soil_id, @chunk_index, @chunk_kind, @heading_path_json,
416
+ @chunk_text, @token_count, @checksum, @created_at
417
+ )
418
+ ON CONFLICT(chunk_id) DO UPDATE SET
419
+ record_id = excluded.record_id,
420
+ soil_id = excluded.soil_id,
421
+ chunk_index = excluded.chunk_index,
422
+ chunk_kind = excluded.chunk_kind,
423
+ heading_path_json = excluded.heading_path_json,
424
+ chunk_text = excluded.chunk_text,
425
+ token_count = excluded.token_count,
426
+ checksum = excluded.checksum,
427
+ created_at = excluded.created_at
428
+ `).run({
429
+ ...chunk,
430
+ heading_path_json: serializeJson(chunk.heading_path_json),
431
+ });
432
+ contentMutatedRecordIds.add(chunk.record_id);
433
+ }
434
+ for (const page of mutation.pages) {
435
+ this.db.prepare(`
436
+ INSERT INTO soil_pages (
437
+ page_id, soil_id, relative_path, route, kind, status, markdown, checksum, projected_at
438
+ ) VALUES (
439
+ @page_id, @soil_id, @relative_path, @route, @kind, @status, @markdown, @checksum, @projected_at
440
+ )
441
+ ON CONFLICT(page_id) DO UPDATE SET
442
+ soil_id = excluded.soil_id,
443
+ relative_path = excluded.relative_path,
444
+ route = excluded.route,
445
+ kind = excluded.kind,
446
+ status = excluded.status,
447
+ markdown = excluded.markdown,
448
+ checksum = excluded.checksum,
449
+ projected_at = excluded.projected_at
450
+ `).run(page);
451
+ }
452
+ for (const member of mutation.page_members) {
453
+ this.db.prepare(`
454
+ INSERT INTO soil_page_members (page_id, record_id, ordinal, role, confidence)
455
+ VALUES (@page_id, @record_id, @ordinal, @role, @confidence)
456
+ ON CONFLICT(page_id, record_id, role) DO UPDATE SET
457
+ ordinal = excluded.ordinal,
458
+ confidence = excluded.confidence
459
+ `).run(member);
460
+ }
461
+ for (const embedding of mutation.embeddings) {
462
+ const parsed = SoilEmbeddingSchema.parse(embedding);
463
+ this.db.prepare(`
464
+ INSERT INTO soil_embeddings (
465
+ chunk_id, model, embedding_version, encoding, embedding, embedded_at
466
+ ) VALUES (
467
+ @chunk_id, @model, @embedding_version, @encoding, @embedding, @embedded_at
468
+ )
469
+ ON CONFLICT(chunk_id, model, embedding_version) DO UPDATE SET
470
+ encoding = excluded.encoding,
471
+ embedding = excluded.embedding,
472
+ embedded_at = excluded.embedded_at
473
+ `).run({
474
+ chunk_id: parsed.chunk_id,
475
+ model: parsed.model,
476
+ embedding_version: parsed.embedding_version,
477
+ encoding: parsed.encoding,
478
+ embedding: encodeEmbedding(parsed),
479
+ embedded_at: parsed.embedded_at,
480
+ });
481
+ const chunk = this.db
482
+ .prepare("SELECT record_id FROM soil_chunks WHERE chunk_id = ?")
483
+ .get(parsed.chunk_id);
484
+ if (chunk) {
485
+ embeddedChunkIds.add(parsed.chunk_id);
486
+ embeddedRecordIds.add(chunk.record_id);
487
+ }
488
+ }
489
+ for (const edge of mutation.edges) {
490
+ this.db.prepare(`
491
+ INSERT INTO soil_edges (src_record_id, edge_type, dst_record_id, confidence)
492
+ VALUES (@src_record_id, @edge_type, @dst_record_id, @confidence)
493
+ ON CONFLICT(src_record_id, edge_type, dst_record_id) DO UPDATE SET
494
+ confidence = excluded.confidence
495
+ `).run(edge);
496
+ }
497
+ for (const tombstone of mutation.tombstones) {
498
+ this.db.prepare(`
499
+ INSERT INTO soil_tombstones (tombstone_id, record_id, record_key, version, reason, deleted_at)
500
+ VALUES (?, ?, ?, ?, ?, ?)
501
+ `).run(randomUUID(), tombstone.record_id, tombstone.record_key, tombstone.version, tombstone.reason, tombstone.deleted_at);
502
+ if (tombstone.record_id) {
503
+ this.db
504
+ .prepare("UPDATE soil_records SET is_active = 0 WHERE record_id = ?")
505
+ .run(tombstone.record_id);
506
+ contentMutatedRecordIds.add(tombstone.record_id);
507
+ }
508
+ if (tombstone.record_key) {
509
+ this.db
510
+ .prepare("UPDATE soil_records SET is_active = 0 WHERE record_key = ?")
511
+ .run(tombstone.record_key);
512
+ const rows = this.db
513
+ .prepare("SELECT record_id FROM soil_records WHERE record_key = ?")
514
+ .all(tombstone.record_key);
515
+ for (const row of rows) {
516
+ contentMutatedRecordIds.add(row.record_id);
517
+ }
518
+ }
519
+ }
520
+ this.syncFts(unique([...contentMutatedRecordIds]));
521
+ const fullyEmbeddedRecordIds = new Set(unique([...embeddedRecordIds]).filter((recordId) => this.recordHasCompleteEmbeddingMutation(recordId, embeddedChunkIds)));
522
+ this.completeOpenEmbeddingJobs(fullyEmbeddedRecordIds);
523
+ if (contentMutatedRecordIds.size > 0) {
524
+ const openEmbeddingRecordIds = new Set(this.loadOpenEmbeddingReindexRecordIds());
525
+ const insertJob = this.db.prepare(`
526
+ INSERT INTO soil_reindex_jobs (
527
+ job_id, scope, reason, status, payload_json, created_at
528
+ ) VALUES (?, ?, ?, ?, ?, ?)
529
+ `);
530
+ for (const recordId of unique([...contentMutatedRecordIds]).filter((id) => !fullyEmbeddedRecordIds.has(id) && !openEmbeddingRecordIds.has(id))) {
531
+ insertJob.run(randomUUID(), "embedding", "content mutation invalidated embeddings", "pending", JSON.stringify({ record_ids: [recordId] }), new Date().toISOString());
532
+ }
533
+ }
534
+ });
535
+ tx();
536
+ }
537
+ async loadRecords(input = {}) {
538
+ const record_filter = SoilRecordFilterSchema.parse(input);
539
+ const params = [];
540
+ const where = buildRecordFilterSql(SoilSearchRequestSchema.parse({ query: "__load_records__", direct_lookup: false, record_filter }), params);
541
+ const rows = this.db.prepare(`
542
+ SELECT *
543
+ FROM soil_records r
544
+ ${where.length > 0 ? `WHERE ${where.join(" AND ")}` : ""}
545
+ ORDER BY r.record_key, r.version
546
+ `).all(...params);
547
+ return rows.map((row) => toRecord(row));
548
+ }
549
+ async queueReindex(recordIds, reason) {
550
+ const ids = unique(recordIds);
551
+ if (ids.length === 0)
552
+ return;
553
+ this.db.prepare(`
554
+ INSERT INTO soil_reindex_jobs (
555
+ job_id, scope, reason, status, payload_json, created_at
556
+ ) VALUES (?, ?, ?, ?, ?, ?)
557
+ `).run(randomUUID(), "embedding", reason, "pending", JSON.stringify({ record_ids: ids }), new Date().toISOString());
558
+ }
559
+ async upsertPages(pages) {
560
+ await this.applyMutation({ pages });
561
+ }
562
+ async replacePageMembers(pageId, members) {
563
+ const parsed = members.map((member) => SoilPageMemberSchema.parse({ ...member, page_id: pageId }));
564
+ const tx = this.db.transaction(() => {
565
+ this.db.prepare("DELETE FROM soil_page_members WHERE page_id = ?").run(pageId);
566
+ for (const member of parsed) {
567
+ this.db.prepare(`
568
+ INSERT INTO soil_page_members (page_id, record_id, ordinal, role, confidence)
569
+ VALUES (@page_id, @record_id, @ordinal, @role, @confidence)
570
+ `).run(member);
571
+ }
572
+ });
573
+ tx();
574
+ }
575
+ async lookupDirect(input) {
576
+ const request = SoilSearchRequestSchema.parse(input);
577
+ if (!request.direct_lookup) {
578
+ return { request, candidates: [] };
579
+ }
580
+ const pageParams = [request.query, request.query, request.query];
581
+ const pageWhere = ["(soil_id = ? OR relative_path = ? OR page_id = ?)"];
582
+ pageWhere.push(...buildPageFilterSql(request, pageParams));
583
+ pageParams.push(request.limit);
584
+ const pageMatches = this.db.prepare(`
585
+ SELECT page_id, soil_id
586
+ FROM soil_pages p
587
+ WHERE ${pageWhere.join(" AND ")}
588
+ LIMIT ?
589
+ `).all(...pageParams);
590
+ const recordParams = [request.query, request.query, request.query, request.query];
591
+ const recordWhere = ["(r.record_id = ? OR r.record_key = ? OR r.soil_id = ? OR r.source_id = ?)"];
592
+ recordWhere.push(...buildRecordFilterSql(request, recordParams));
593
+ recordParams.push(request.limit);
594
+ const recordRows = this.db.prepare(`
595
+ SELECT *
596
+ FROM soil_records r
597
+ WHERE ${recordWhere.join(" AND ")}
598
+ LIMIT ?
599
+ `).all(...recordParams);
600
+ const pageIdBySoilId = new Map();
601
+ for (const page of pageMatches) {
602
+ if (!pageIdBySoilId.has(page.soil_id)) {
603
+ pageIdBySoilId.set(page.soil_id, page.page_id);
604
+ }
605
+ }
606
+ const firstChunkByRecordId = new Map();
607
+ const recordIds = unique(recordRows.map((row) => row.record_id));
608
+ if (recordIds.length > 0) {
609
+ const chunkRows = this.db
610
+ .prepare(`
611
+ SELECT *
612
+ FROM soil_chunks
613
+ WHERE record_id IN (${recordIds.map(() => "?").join(", ")})
614
+ ORDER BY record_id, chunk_index
615
+ `)
616
+ .all(...recordIds);
617
+ for (const chunk of chunkRows) {
618
+ if (!firstChunkByRecordId.has(chunk.record_id)) {
619
+ firstChunkByRecordId.set(chunk.record_id, chunk);
620
+ }
621
+ }
622
+ }
623
+ const firstPageMemberByPageId = new Map();
624
+ const pageIds = unique(pageMatches.map((page) => page.page_id));
625
+ if (pageIds.length > 0) {
626
+ const pageMemberRows = this.db
627
+ .prepare(`
628
+ SELECT spm.page_id, spm.record_id, sc.chunk_id, sc.chunk_text
629
+ FROM soil_page_members spm
630
+ LEFT JOIN soil_chunks sc ON sc.record_id = spm.record_id
631
+ WHERE spm.page_id IN (${pageIds.map(() => "?").join(", ")})
632
+ ORDER BY spm.page_id, spm.ordinal, sc.chunk_index
633
+ `)
634
+ .all(...pageIds);
635
+ for (const row of pageMemberRows) {
636
+ if (!firstPageMemberByPageId.has(row.page_id)) {
637
+ firstPageMemberByPageId.set(row.page_id, row);
638
+ }
639
+ }
640
+ }
641
+ const candidates = [];
642
+ const representedPageIds = new Set();
643
+ for (const row of recordRows) {
644
+ const chunk = firstChunkByRecordId.get(row.record_id);
645
+ const page_id = pageIdBySoilId.get(row.soil_id) ?? null;
646
+ if (page_id) {
647
+ representedPageIds.add(page_id);
648
+ }
649
+ candidates.push({
650
+ chunk_id: chunk?.chunk_id ?? `record:${row.record_id}`,
651
+ record_id: row.record_id,
652
+ soil_id: row.soil_id,
653
+ lane: "direct",
654
+ rank: candidates.length + 1,
655
+ score: 1,
656
+ snippet: chunk ? buildSnippet(chunk.chunk_text, request.query) : row.summary ?? row.title,
657
+ page_id,
658
+ metadata_json: parseJsonObject(row.metadata_json),
659
+ });
660
+ }
661
+ for (const page of pageMatches) {
662
+ if (representedPageIds.has(page.page_id))
663
+ continue;
664
+ representedPageIds.add(page.page_id);
665
+ const member = firstPageMemberByPageId.get(page.page_id);
666
+ candidates.push({
667
+ chunk_id: member?.chunk_id ?? `page:${page.page_id}`,
668
+ record_id: member?.record_id ?? `page:${page.page_id}`,
669
+ soil_id: page.soil_id,
670
+ lane: "direct",
671
+ rank: candidates.length + 1,
672
+ score: 1,
673
+ snippet: member?.chunk_text ? buildSnippet(member.chunk_text, request.query) : page.soil_id,
674
+ page_id: page.page_id,
675
+ metadata_json: {},
676
+ });
677
+ }
678
+ return { request, candidates: candidates.slice(0, request.limit) };
679
+ }
680
+ async searchHybrid(input) {
681
+ const request = SoilSearchRequestSchema.parse(input);
682
+ if (request.direct_lookup) {
683
+ const direct = await this.lookupDirect(request);
684
+ if (direct.candidates.length > 0) {
685
+ return direct.candidates.slice(0, request.limit);
686
+ }
687
+ }
688
+ const lexical = await this.searchLexical({ ...request, direct_lookup: false });
689
+ if (!request.query_embedding?.length) {
690
+ return lexical;
691
+ }
692
+ const lexicalRecordIds = unique(lexical.map((candidate) => candidate.record_id));
693
+ const dense = lexicalRecordIds.length > 0
694
+ ? await this.searchDense({
695
+ ...request,
696
+ direct_lookup: false,
697
+ dense_candidate_record_ids: lexicalRecordIds,
698
+ })
699
+ : hasExplicitMetadataFilter(request)
700
+ ? await this.searchDense({ ...request, direct_lookup: false })
701
+ : [];
702
+ return fuseCandidates(lexical, dense, request.limit);
703
+ }
704
+ async searchLexical(input) {
705
+ const request = SoilSearchRequestSchema.parse(input);
706
+ const pageIdParams = [];
707
+ const pageIdSql = buildCandidatePageIdSql("r.record_id", request, pageIdParams);
708
+ const whereParams = [];
709
+ const where = ["soil_chunk_fts MATCH ?"];
710
+ where.push(...buildRecordFilterSql(request, whereParams));
711
+ where.push(...buildPageExistsSql("r.record_id", request, whereParams));
712
+ const params = [...pageIdParams, request.query, ...whereParams, request.lexical_top_k];
713
+ const rows = this.db.prepare(`
714
+ SELECT
715
+ soil_chunk_fts.chunk_id AS chunk_id,
716
+ soil_chunk_fts.record_id AS record_id,
717
+ soil_chunk_fts.soil_id AS soil_id,
718
+ ${pageIdSql} AS page_id,
719
+ r.title AS title,
720
+ r.summary AS summary,
721
+ sc.chunk_text AS chunk_text,
722
+ bm25(soil_chunk_fts, 8.0, 5.0, 3.0, 1.0) AS score
723
+ FROM soil_chunk_fts
724
+ JOIN soil_chunks sc ON sc.chunk_id = soil_chunk_fts.chunk_id
725
+ JOIN soil_records r ON r.record_id = soil_chunk_fts.record_id
726
+ WHERE ${where.join(" AND ")}
727
+ ORDER BY score
728
+ LIMIT ?
729
+ `).all(...params);
730
+ const candidates = rows.map((row, index) => ({
731
+ chunk_id: row.chunk_id,
732
+ record_id: row.record_id,
733
+ soil_id: row.soil_id,
734
+ page_id: row.page_id,
735
+ lane: "lexical",
736
+ rank: index + 1,
737
+ score: -1 * row.score,
738
+ snippet: buildSnippet(row.chunk_text, request.query),
739
+ metadata_json: { title: row.title, summary: row.summary },
740
+ }));
741
+ return dedupeCandidates(candidates, request.limit);
742
+ }
743
+ async searchDense(input) {
744
+ const request = SoilSearchRequestSchema.parse(input);
745
+ if (!request.query_embedding?.length) {
746
+ return [];
747
+ }
748
+ const pageIdParams = [];
749
+ const pageIdSql = buildCandidatePageIdSql("r.record_id", request, pageIdParams);
750
+ const params = [];
751
+ const where = buildRecordFilterSql(request, params);
752
+ where.push(...buildPageExistsSql("r.record_id", request, params));
753
+ const denseCandidateRecordIds = request.dense_candidate_record_ids ? unique(request.dense_candidate_record_ids) : null;
754
+ if (denseCandidateRecordIds?.length === 0) {
755
+ return [];
756
+ }
757
+ if (denseCandidateRecordIds) {
758
+ where.push(`r.record_id IN (${denseCandidateRecordIds.map(() => "?").join(", ")})`);
759
+ params.push(...denseCandidateRecordIds);
760
+ }
761
+ const excludedRecordIds = this.loadOpenEmbeddingReindexRecordIds();
762
+ if (excludedRecordIds.length > 0) {
763
+ where.push(`r.record_id NOT IN (${excludedRecordIds.map(() => "?").join(", ")})`);
764
+ params.push(...excludedRecordIds);
765
+ }
766
+ if (request.query_embedding_model) {
767
+ where.push("se.model = ?");
768
+ params.push(request.query_embedding_model);
769
+ }
770
+ where.push(`
771
+ NOT EXISTS (
772
+ SELECT 1
773
+ FROM soil_embeddings newer
774
+ WHERE newer.chunk_id = se.chunk_id
775
+ AND newer.model = se.model
776
+ AND newer.embedding_version > se.embedding_version
777
+ )
778
+ `);
779
+ const queryParams = [...pageIdParams, ...params];
780
+ const rows = this.db.prepare(`
781
+ SELECT
782
+ se.chunk_id,
783
+ se.model,
784
+ se.embedding_version,
785
+ se.encoding,
786
+ se.embedding,
787
+ se.embedded_at,
788
+ sc.record_id,
789
+ sc.soil_id,
790
+ sc.chunk_text,
791
+ r.title,
792
+ r.summary,
793
+ ${pageIdSql} AS page_id
794
+ FROM soil_embeddings se
795
+ JOIN soil_chunks sc ON sc.chunk_id = se.chunk_id
796
+ JOIN soil_records r ON r.record_id = sc.record_id
797
+ ${where.length > 0 ? `WHERE ${where.join(" AND ")}` : ""}
798
+ `).all(...queryParams);
799
+ const scored = [];
800
+ for (const row of rows) {
801
+ try {
802
+ scored.push({
803
+ row,
804
+ similarity: cosineSimilarity(request.query_embedding, decodeEmbedding(row)),
805
+ });
806
+ }
807
+ catch {
808
+ continue;
809
+ }
810
+ }
811
+ scored.sort((left, right) => right.similarity - left.similarity);
812
+ const candidates = scored.slice(0, request.dense_top_k).map(({ row, similarity }, index) => ({
813
+ chunk_id: row.chunk_id,
814
+ record_id: row.record_id,
815
+ soil_id: row.soil_id,
816
+ page_id: row.page_id,
817
+ lane: "dense",
818
+ rank: index + 1,
819
+ score: similarity,
820
+ snippet: buildSnippet(row.chunk_text, request.query),
821
+ metadata_json: { model: row.model, embedding_version: row.embedding_version, title: row.title, summary: row.summary },
822
+ }));
823
+ return dedupeCandidates(candidates, request.limit);
824
+ }
825
+ recordHasCompleteEmbeddingMutation(recordId, embeddedChunkIds) {
826
+ const chunks = this.db
827
+ .prepare("SELECT chunk_id FROM soil_chunks WHERE record_id = ?")
828
+ .all(recordId);
829
+ return chunks.length > 0 && chunks.every((chunk) => embeddedChunkIds.has(chunk.chunk_id));
830
+ }
831
+ completeOpenEmbeddingJobs(recordIds) {
832
+ if (recordIds.size === 0)
833
+ return;
834
+ const jobs = this.db.prepare(`
835
+ SELECT job_id, payload_json
836
+ FROM soil_reindex_jobs
837
+ WHERE scope = 'embedding'
838
+ AND status IN ('pending', 'running')
839
+ `).all();
840
+ const complete = this.db.prepare("UPDATE soil_reindex_jobs SET status = 'completed', completed_at = ? WHERE job_id = ?");
841
+ const completedAt = new Date().toISOString();
842
+ for (const job of jobs) {
843
+ const jobRecordIds = parseReindexRecordIds(job.payload_json);
844
+ if (jobRecordIds.length > 0 && jobRecordIds.every((recordId) => recordIds.has(recordId))) {
845
+ complete.run(completedAt, job.job_id);
846
+ }
847
+ }
848
+ }
849
+ loadOpenEmbeddingReindexRecordIds() {
850
+ const rows = this.db.prepare(`
851
+ SELECT payload_json
852
+ FROM soil_reindex_jobs
853
+ WHERE scope = 'embedding'
854
+ AND status IN ('pending', 'running')
855
+ `).all();
856
+ const recordIds = [];
857
+ for (const row of rows) {
858
+ recordIds.push(...parseReindexRecordIds(row.payload_json));
859
+ }
860
+ return unique(recordIds);
861
+ }
862
+ async loadPagesForRecords(recordIds) {
863
+ const ids = unique(recordIds);
864
+ const result = new Map();
865
+ if (ids.length === 0)
866
+ return result;
867
+ const rows = this.db.prepare(`
868
+ SELECT p.*, spm.record_id
869
+ FROM soil_page_members spm
870
+ JOIN soil_pages p ON p.page_id = spm.page_id
871
+ WHERE spm.record_id IN (${ids.map(() => "?").join(", ")})
872
+ ORDER BY p.relative_path, spm.ordinal
873
+ `).all(...ids);
874
+ for (const row of rows) {
875
+ const pages = result.get(row.record_id) ?? [];
876
+ pages.push(toPage(row));
877
+ result.set(row.record_id, pages);
878
+ }
879
+ return result;
880
+ }
881
+ async loadPageMembers(pageIds) {
882
+ const ids = unique(pageIds);
883
+ if (ids.length === 0)
884
+ return [];
885
+ const rows = this.db.prepare(`
886
+ SELECT *
887
+ FROM soil_page_members
888
+ WHERE page_id IN (${ids.map(() => "?").join(", ")})
889
+ ORDER BY page_id, ordinal
890
+ `).all(...ids);
891
+ return rows.map((row) => toPageMember(row));
892
+ }
893
+ syncFts(recordIds) {
894
+ if (recordIds.length === 0)
895
+ return;
896
+ if (recordIds.length > 0) {
897
+ this.db.prepare(`DELETE FROM soil_chunk_fts WHERE record_id IN (${recordIds.map(() => "?").join(", ")})`).run(...recordIds);
898
+ }
899
+ const rows = this.db.prepare(`
900
+ SELECT
901
+ sc.chunk_id,
902
+ sc.record_id,
903
+ sc.soil_id,
904
+ (
905
+ SELECT spm.page_id
906
+ FROM soil_page_members spm
907
+ WHERE spm.record_id = r.record_id
908
+ ORDER BY CASE WHEN spm.role = 'primary' THEN 0 ELSE 1 END, spm.ordinal, spm.page_id
909
+ LIMIT 1
910
+ ) AS page_id,
911
+ r.title AS title_context,
912
+ COALESCE(r.summary, '') AS summary_context,
913
+ sc.heading_path_json,
914
+ sc.chunk_text
915
+ FROM soil_chunks sc
916
+ JOIN soil_records r ON r.record_id = sc.record_id
917
+ WHERE sc.record_id IN (${recordIds.map(() => "?").join(", ")})
918
+ `).all(...recordIds);
919
+ const insert = this.db.prepare(`
920
+ INSERT INTO soil_chunk_fts (
921
+ chunk_id, record_id, soil_id, page_id, title_context, summary_context, heading_context, chunk_text
922
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
923
+ `);
924
+ for (const row of rows) {
925
+ insert.run(row.chunk_id, row.record_id, row.soil_id, row.page_id, row.title_context, row.summary_context, parseJsonArray(row.heading_path_json).join(" / "), row.chunk_text);
926
+ }
927
+ }
928
+ }
929
+ //# sourceMappingURL=sqlite-repository.js.map