pulseed 0.6.0 → 0.6.1

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 (335) hide show
  1. package/README.md +18 -16
  2. package/dist/base/config/identity-loader.d.ts +12 -3
  3. package/dist/base/config/identity-loader.d.ts.map +1 -1
  4. package/dist/base/config/identity-loader.js +15 -7
  5. package/dist/base/config/identity-loader.js.map +1 -1
  6. package/dist/grounding/contracts.d.ts +13 -0
  7. package/dist/grounding/contracts.d.ts.map +1 -1
  8. package/dist/grounding/providers/knowledge-provider.d.ts.map +1 -1
  9. package/dist/grounding/providers/knowledge-provider.js +25 -3
  10. package/dist/grounding/providers/knowledge-provider.js.map +1 -1
  11. package/dist/grounding/providers/soil-provider.d.ts.map +1 -1
  12. package/dist/grounding/providers/soil-provider.js +28 -3
  13. package/dist/grounding/providers/soil-provider.js.map +1 -1
  14. package/dist/grounding/providers/static-policy-provider.d.ts +3 -1
  15. package/dist/grounding/providers/static-policy-provider.d.ts.map +1 -1
  16. package/dist/grounding/providers/static-policy-provider.js +4 -3
  17. package/dist/grounding/providers/static-policy-provider.js.map +1 -1
  18. package/dist/index.d.ts +8 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
  23. package/dist/interface/chat/chat-event-state.js +92 -9
  24. package/dist/interface/chat/chat-event-state.js.map +1 -1
  25. package/dist/interface/chat/chat-events.d.ts +15 -1
  26. package/dist/interface/chat/chat-events.d.ts.map +1 -1
  27. package/dist/interface/chat/chat-runner-event-bridge.d.ts +3 -0
  28. package/dist/interface/chat/chat-runner-event-bridge.d.ts.map +1 -1
  29. package/dist/interface/chat/chat-runner-event-bridge.js +54 -8
  30. package/dist/interface/chat/chat-runner-event-bridge.js.map +1 -1
  31. package/dist/interface/chat/chat-runner-routes.d.ts +20 -0
  32. package/dist/interface/chat/chat-runner-routes.d.ts.map +1 -1
  33. package/dist/interface/chat/chat-runner-routes.js +76 -0
  34. package/dist/interface/chat/chat-runner-routes.js.map +1 -1
  35. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  36. package/dist/interface/chat/chat-runner.js +26 -2
  37. package/dist/interface/chat/chat-runner.js.map +1 -1
  38. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  39. package/dist/interface/chat/cross-platform-session.js +9 -3
  40. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  41. package/dist/interface/chat/freeform-route-classifier.d.ts +21 -0
  42. package/dist/interface/chat/freeform-route-classifier.d.ts.map +1 -0
  43. package/dist/interface/chat/freeform-route-classifier.js +42 -0
  44. package/dist/interface/chat/freeform-route-classifier.js.map +1 -0
  45. package/dist/interface/chat/grounding.js +1 -1
  46. package/dist/interface/chat/grounding.js.map +1 -1
  47. package/dist/interface/chat/ingress-router.d.ts +9 -0
  48. package/dist/interface/chat/ingress-router.d.ts.map +1 -1
  49. package/dist/interface/chat/ingress-router.js +19 -0
  50. package/dist/interface/chat/ingress-router.js.map +1 -1
  51. package/dist/interface/cli/cli-command-registry.d.ts.map +1 -1
  52. package/dist/interface/cli/cli-command-registry.js +9 -1
  53. package/dist/interface/cli/cli-command-registry.js.map +1 -1
  54. package/dist/interface/cli/cli-runner.d.ts.map +1 -1
  55. package/dist/interface/cli/cli-runner.js +4 -1
  56. package/dist/interface/cli/cli-runner.js.map +1 -1
  57. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  58. package/dist/interface/cli/commands/daemon.js +17 -1
  59. package/dist/interface/cli/commands/daemon.js.map +1 -1
  60. package/dist/interface/cli/commands/goal-read.d.ts.map +1 -1
  61. package/dist/interface/cli/commands/goal-read.js +4 -0
  62. package/dist/interface/cli/commands/goal-read.js.map +1 -1
  63. package/dist/interface/cli/commands/memory.d.ts +3 -0
  64. package/dist/interface/cli/commands/memory.d.ts.map +1 -0
  65. package/dist/interface/cli/commands/memory.js +78 -0
  66. package/dist/interface/cli/commands/memory.js.map +1 -0
  67. package/dist/interface/cli/commands/plugin.d.ts.map +1 -1
  68. package/dist/interface/cli/commands/plugin.js +134 -12
  69. package/dist/interface/cli/commands/plugin.js.map +1 -1
  70. package/dist/interface/cli/commands/profile.d.ts +3 -0
  71. package/dist/interface/cli/commands/profile.d.ts.map +1 -0
  72. package/dist/interface/cli/commands/profile.js +459 -0
  73. package/dist/interface/cli/commands/profile.js.map +1 -0
  74. package/dist/interface/cli/commands/runtime.d.ts.map +1 -1
  75. package/dist/interface/cli/commands/runtime.js +101 -2
  76. package/dist/interface/cli/commands/runtime.js.map +1 -1
  77. package/dist/interface/cli/commands/setup-wizard.d.ts.map +1 -1
  78. package/dist/interface/cli/commands/setup-wizard.js +30 -0
  79. package/dist/interface/cli/commands/setup-wizard.js.map +1 -1
  80. package/dist/interface/cli/utils.d.ts.map +1 -1
  81. package/dist/interface/cli/utils.js +4 -2
  82. package/dist/interface/cli/utils.js.map +1 -1
  83. package/dist/interface/tui/intent-recognizer.js +1 -1
  84. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts +2 -0
  85. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts.map +1 -1
  86. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js +1 -0
  87. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js.map +1 -1
  88. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
  89. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +1 -0
  90. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
  91. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts +1 -0
  92. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts.map +1 -1
  93. package/dist/orchestrator/execution/agent-loop/agent-loop-events.js.map +1 -1
  94. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts.map +1 -1
  95. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js +3 -0
  96. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js.map +1 -1
  97. package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts +109 -0
  98. package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts.map +1 -0
  99. package/dist/orchestrator/execution/agent-loop/agent-timeline.js +261 -0
  100. package/dist/orchestrator/execution/agent-loop/agent-timeline.js.map +1 -0
  101. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
  102. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +1 -0
  103. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
  104. package/dist/orchestrator/execution/agent-loop/execution-policy.d.ts +2 -0
  105. package/dist/orchestrator/execution/agent-loop/execution-policy.d.ts.map +1 -1
  106. package/dist/orchestrator/execution/agent-loop/execution-policy.js +9 -3
  107. package/dist/orchestrator/execution/agent-loop/execution-policy.js.map +1 -1
  108. package/dist/orchestrator/execution/agent-loop/self-protection.d.ts +9 -0
  109. package/dist/orchestrator/execution/agent-loop/self-protection.d.ts.map +1 -0
  110. package/dist/orchestrator/execution/agent-loop/self-protection.js +74 -0
  111. package/dist/orchestrator/execution/agent-loop/self-protection.js.map +1 -0
  112. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.d.ts.map +1 -1
  113. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.js +10 -1
  114. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.js.map +1 -1
  115. package/dist/orchestrator/loop/core-loop/phase-specs.d.ts +85 -0
  116. package/dist/orchestrator/loop/core-loop/phase-specs.d.ts.map +1 -1
  117. package/dist/orchestrator/loop/core-loop/phase-specs.js +7 -0
  118. package/dist/orchestrator/loop/core-loop/phase-specs.js.map +1 -1
  119. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts.map +1 -1
  120. package/dist/orchestrator/loop/core-loop/task-cycle.js +24 -2
  121. package/dist/orchestrator/loop/core-loop/task-cycle.js.map +1 -1
  122. package/dist/platform/corrections/index.d.ts +2 -0
  123. package/dist/platform/corrections/index.d.ts.map +1 -0
  124. package/dist/platform/corrections/index.js +2 -0
  125. package/dist/platform/corrections/index.js.map +1 -0
  126. package/dist/platform/corrections/memory-correction-ledger.d.ts +656 -0
  127. package/dist/platform/corrections/memory-correction-ledger.d.ts.map +1 -0
  128. package/dist/platform/corrections/memory-correction-ledger.js +120 -0
  129. package/dist/platform/corrections/memory-correction-ledger.js.map +1 -0
  130. package/dist/platform/corrections/memory-governance.d.ts +118 -0
  131. package/dist/platform/corrections/memory-governance.d.ts.map +1 -0
  132. package/dist/platform/corrections/memory-governance.js +32 -0
  133. package/dist/platform/corrections/memory-governance.js.map +1 -0
  134. package/dist/platform/corrections/memory-quarantine.d.ts +57 -0
  135. package/dist/platform/corrections/memory-quarantine.d.ts.map +1 -0
  136. package/dist/platform/corrections/memory-quarantine.js +42 -0
  137. package/dist/platform/corrections/memory-quarantine.js.map +1 -0
  138. package/dist/platform/corrections/user-memory-operations.d.ts +31 -0
  139. package/dist/platform/corrections/user-memory-operations.d.ts.map +1 -0
  140. package/dist/platform/corrections/user-memory-operations.js +139 -0
  141. package/dist/platform/corrections/user-memory-operations.js.map +1 -0
  142. package/dist/platform/dream/dream-consolidator.d.ts +5 -0
  143. package/dist/platform/dream/dream-consolidator.d.ts.map +1 -1
  144. package/dist/platform/dream/dream-consolidator.js +235 -13
  145. package/dist/platform/dream/dream-consolidator.js.map +1 -1
  146. package/dist/platform/dream/dream-soil-mutation.d.ts.map +1 -1
  147. package/dist/platform/dream/dream-soil-mutation.js +10 -0
  148. package/dist/platform/dream/dream-soil-mutation.js.map +1 -1
  149. package/dist/platform/dream/dream-types.d.ts +412 -0
  150. package/dist/platform/dream/dream-types.d.ts.map +1 -1
  151. package/dist/platform/dream/dream-types.js +3 -0
  152. package/dist/platform/dream/dream-types.js.map +1 -1
  153. package/dist/platform/dream/playbook-memory.d.ts +14 -14
  154. package/dist/platform/knowledge/knowledge-manager-agent-memory.d.ts +48 -0
  155. package/dist/platform/knowledge/knowledge-manager-agent-memory.d.ts.map +1 -1
  156. package/dist/platform/knowledge/knowledge-manager-agent-memory.js +154 -4
  157. package/dist/platform/knowledge/knowledge-manager-agent-memory.js.map +1 -1
  158. package/dist/platform/knowledge/knowledge-manager-lint.d.ts.map +1 -1
  159. package/dist/platform/knowledge/knowledge-manager-lint.js +98 -4
  160. package/dist/platform/knowledge/knowledge-manager-lint.js.map +1 -1
  161. package/dist/platform/knowledge/knowledge-manager.d.ts +41 -2
  162. package/dist/platform/knowledge/knowledge-manager.d.ts.map +1 -1
  163. package/dist/platform/knowledge/knowledge-manager.js +45 -5
  164. package/dist/platform/knowledge/knowledge-manager.js.map +1 -1
  165. package/dist/platform/knowledge/types/agent-memory.d.ts +1170 -42
  166. package/dist/platform/knowledge/types/agent-memory.d.ts.map +1 -1
  167. package/dist/platform/knowledge/types/agent-memory.js +13 -3
  168. package/dist/platform/knowledge/types/agent-memory.js.map +1 -1
  169. package/dist/platform/profile/proactive-feedback-proposals.d.ts +11 -0
  170. package/dist/platform/profile/proactive-feedback-proposals.d.ts.map +1 -0
  171. package/dist/platform/profile/proactive-feedback-proposals.js +106 -0
  172. package/dist/platform/profile/proactive-feedback-proposals.js.map +1 -0
  173. package/dist/platform/profile/profile-change-proposal.d.ts +464 -0
  174. package/dist/platform/profile/profile-change-proposal.d.ts.map +1 -0
  175. package/dist/platform/profile/profile-change-proposal.js +352 -0
  176. package/dist/platform/profile/profile-change-proposal.js.map +1 -0
  177. package/dist/platform/profile/relationship-profile.d.ts +351 -0
  178. package/dist/platform/profile/relationship-profile.d.ts.map +1 -0
  179. package/dist/platform/profile/relationship-profile.js +351 -0
  180. package/dist/platform/profile/relationship-profile.js.map +1 -0
  181. package/dist/platform/profile/retrieval-context.d.ts +12 -0
  182. package/dist/platform/profile/retrieval-context.d.ts.map +1 -0
  183. package/dist/platform/profile/retrieval-context.js +21 -0
  184. package/dist/platform/profile/retrieval-context.js.map +1 -0
  185. package/dist/platform/profile/user-md-profile-import.d.ts +73 -0
  186. package/dist/platform/profile/user-md-profile-import.d.ts.map +1 -0
  187. package/dist/platform/profile/user-md-profile-import.js +179 -0
  188. package/dist/platform/profile/user-md-profile-import.js.map +1 -0
  189. package/dist/platform/soil/content-projections.d.ts.map +1 -1
  190. package/dist/platform/soil/content-projections.js +17 -7
  191. package/dist/platform/soil/content-projections.js.map +1 -1
  192. package/dist/platform/soil/context-compiler.d.ts +16 -1
  193. package/dist/platform/soil/context-compiler.d.ts.map +1 -1
  194. package/dist/platform/soil/context-compiler.js +142 -4
  195. package/dist/platform/soil/context-compiler.js.map +1 -1
  196. package/dist/platform/soil/contracts.d.ts +720 -60
  197. package/dist/platform/soil/contracts.d.ts.map +1 -1
  198. package/dist/platform/soil/contracts.js +22 -0
  199. package/dist/platform/soil/contracts.js.map +1 -1
  200. package/dist/platform/soil/ddl.d.ts.map +1 -1
  201. package/dist/platform/soil/ddl.js +19 -0
  202. package/dist/platform/soil/ddl.js.map +1 -1
  203. package/dist/platform/soil/display/materialize.d.ts.map +1 -1
  204. package/dist/platform/soil/display/materialize.js.map +1 -1
  205. package/dist/platform/soil/importer.d.ts +6 -6
  206. package/dist/platform/soil/sqlite-repository-helpers.d.ts +4 -0
  207. package/dist/platform/soil/sqlite-repository-helpers.d.ts.map +1 -1
  208. package/dist/platform/soil/sqlite-repository-helpers.js.map +1 -1
  209. package/dist/platform/soil/sqlite-repository-search.d.ts.map +1 -1
  210. package/dist/platform/soil/sqlite-repository-search.js +48 -3
  211. package/dist/platform/soil/sqlite-repository-search.js.map +1 -1
  212. package/dist/platform/soil/sqlite-repository-storage.d.ts +3 -1
  213. package/dist/platform/soil/sqlite-repository-storage.d.ts.map +1 -1
  214. package/dist/platform/soil/sqlite-repository-storage.js +124 -3
  215. package/dist/platform/soil/sqlite-repository-storage.js.map +1 -1
  216. package/dist/platform/soil/sqlite-repository.d.ts +10 -1
  217. package/dist/platform/soil/sqlite-repository.d.ts.map +1 -1
  218. package/dist/platform/soil/sqlite-repository.js +46 -4
  219. package/dist/platform/soil/sqlite-repository.js.map +1 -1
  220. package/dist/platform/soil/types.d.ts +8 -8
  221. package/dist/platform/traits/curiosity-engine.d.ts +3 -1
  222. package/dist/platform/traits/curiosity-engine.d.ts.map +1 -1
  223. package/dist/platform/traits/curiosity-engine.js +3 -1
  224. package/dist/platform/traits/curiosity-engine.js.map +1 -1
  225. package/dist/platform/traits/curiosity-proposals.d.ts +6 -2
  226. package/dist/platform/traits/curiosity-proposals.d.ts.map +1 -1
  227. package/dist/platform/traits/curiosity-proposals.js +9 -3
  228. package/dist/platform/traits/curiosity-proposals.js.map +1 -1
  229. package/dist/reflection/evening-catchup.d.ts.map +1 -1
  230. package/dist/reflection/evening-catchup.js +4 -1
  231. package/dist/reflection/evening-catchup.js.map +1 -1
  232. package/dist/reflection/morning-planning.d.ts.map +1 -1
  233. package/dist/reflection/morning-planning.js +4 -1
  234. package/dist/reflection/morning-planning.js.map +1 -1
  235. package/dist/reflection/weekly-review.d.ts.map +1 -1
  236. package/dist/reflection/weekly-review.js +4 -1
  237. package/dist/reflection/weekly-review.js.map +1 -1
  238. package/dist/runtime/daemon/maintenance.d.ts.map +1 -1
  239. package/dist/runtime/daemon/maintenance.js +21 -2
  240. package/dist/runtime/daemon/maintenance.js.map +1 -1
  241. package/dist/runtime/daemon/runner-resident-curiosity.d.ts.map +1 -1
  242. package/dist/runtime/daemon/runner-resident-curiosity.js +5 -1
  243. package/dist/runtime/daemon/runner-resident-curiosity.js.map +1 -1
  244. package/dist/runtime/daemon/runner-resident-shared.d.ts +1 -1
  245. package/dist/runtime/daemon/runner-resident-shared.d.ts.map +1 -1
  246. package/dist/runtime/daemon/runner-resident-shared.js +16 -0
  247. package/dist/runtime/daemon/runner-resident-shared.js.map +1 -1
  248. package/dist/runtime/daemon/runtime-ownership.d.ts.map +1 -1
  249. package/dist/runtime/daemon/runtime-ownership.js +2 -0
  250. package/dist/runtime/daemon/runtime-ownership.js.map +1 -1
  251. package/dist/runtime/dream-sidecar-review.d.ts +2 -1
  252. package/dist/runtime/dream-sidecar-review.d.ts.map +1 -1
  253. package/dist/runtime/dream-sidecar-review.js +49 -55
  254. package/dist/runtime/dream-sidecar-review.js.map +1 -1
  255. package/dist/runtime/gateway/telegram-gateway-adapter.d.ts.map +1 -1
  256. package/dist/runtime/gateway/telegram-gateway-adapter.js +4 -3
  257. package/dist/runtime/gateway/telegram-gateway-adapter.js.map +1 -1
  258. package/dist/runtime/plugin-loader.d.ts +1 -0
  259. package/dist/runtime/plugin-loader.d.ts.map +1 -1
  260. package/dist/runtime/plugin-loader.js +7 -2
  261. package/dist/runtime/plugin-loader.js.map +1 -1
  262. package/dist/runtime/store/dream-checkpoints.d.ts +3 -0
  263. package/dist/runtime/store/dream-checkpoints.d.ts.map +1 -1
  264. package/dist/runtime/store/dream-checkpoints.js +2 -0
  265. package/dist/runtime/store/dream-checkpoints.js.map +1 -1
  266. package/dist/runtime/store/evidence-ledger.d.ts +1315 -38
  267. package/dist/runtime/store/evidence-ledger.d.ts.map +1 -1
  268. package/dist/runtime/store/evidence-ledger.js +299 -34
  269. package/dist/runtime/store/evidence-ledger.js.map +1 -1
  270. package/dist/runtime/store/index.d.ts +2 -0
  271. package/dist/runtime/store/index.d.ts.map +1 -1
  272. package/dist/runtime/store/index.js +1 -0
  273. package/dist/runtime/store/index.js.map +1 -1
  274. package/dist/runtime/store/proactive-intervention-store.d.ts +360 -0
  275. package/dist/runtime/store/proactive-intervention-store.d.ts.map +1 -0
  276. package/dist/runtime/store/proactive-intervention-store.js +252 -0
  277. package/dist/runtime/store/proactive-intervention-store.js.map +1 -0
  278. package/dist/runtime/store/runtime-paths.d.ts +2 -0
  279. package/dist/runtime/store/runtime-paths.d.ts.map +1 -1
  280. package/dist/runtime/store/runtime-paths.js +4 -0
  281. package/dist/runtime/store/runtime-paths.js.map +1 -1
  282. package/dist/runtime/types/daemon.d.ts +8 -0
  283. package/dist/runtime/types/daemon.d.ts.map +1 -1
  284. package/dist/runtime/types/daemon.js +1 -0
  285. package/dist/runtime/types/daemon.js.map +1 -1
  286. package/dist/runtime/types/plugin.d.ts.map +1 -1
  287. package/dist/runtime/types/plugin.js +1 -1
  288. package/dist/runtime/types/plugin.js.map +1 -1
  289. package/dist/runtime/types/schedule.d.ts +10 -10
  290. package/dist/tools/builtin/exports.d.ts +1 -0
  291. package/dist/tools/builtin/exports.d.ts.map +1 -1
  292. package/dist/tools/builtin/exports.js +1 -0
  293. package/dist/tools/builtin/exports.js.map +1 -1
  294. package/dist/tools/builtin/factory.d.ts.map +1 -1
  295. package/dist/tools/builtin/factory.js +2 -1
  296. package/dist/tools/builtin/factory.js.map +1 -1
  297. package/dist/tools/execution/MemoryConsolidateTool/MemoryConsolidateTool.d.ts +4 -4
  298. package/dist/tools/execution/MemoryCorrectionTool/MemoryCorrectionTool.d.ts +76 -0
  299. package/dist/tools/execution/MemoryCorrectionTool/MemoryCorrectionTool.d.ts.map +1 -0
  300. package/dist/tools/execution/MemoryCorrectionTool/MemoryCorrectionTool.js +79 -0
  301. package/dist/tools/execution/MemoryCorrectionTool/MemoryCorrectionTool.js.map +1 -0
  302. package/dist/tools/execution/MemoryCorrectionTool/constants.d.ts +6 -0
  303. package/dist/tools/execution/MemoryCorrectionTool/constants.d.ts.map +1 -0
  304. package/dist/tools/execution/MemoryCorrectionTool/constants.js +6 -0
  305. package/dist/tools/execution/MemoryCorrectionTool/constants.js.map +1 -0
  306. package/dist/tools/execution/MemoryCorrectionTool/prompt.d.ts +2 -0
  307. package/dist/tools/execution/MemoryCorrectionTool/prompt.d.ts.map +1 -0
  308. package/dist/tools/execution/MemoryCorrectionTool/prompt.js +2 -0
  309. package/dist/tools/execution/MemoryCorrectionTool/prompt.js.map +1 -0
  310. package/dist/tools/execution/MemorySaveTool/MemorySaveTool.d.ts +306 -4
  311. package/dist/tools/execution/MemorySaveTool/MemorySaveTool.d.ts.map +1 -1
  312. package/dist/tools/execution/MemorySaveTool/MemorySaveTool.js +8 -0
  313. package/dist/tools/execution/MemorySaveTool/MemorySaveTool.js.map +1 -1
  314. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.d.ts.map +1 -1
  315. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js +37 -4
  316. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js.map +1 -1
  317. package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts.map +1 -1
  318. package/dist/tools/fs/FileValidationTool/protected-path-policy.js +12 -0
  319. package/dist/tools/fs/FileValidationTool/protected-path-policy.js.map +1 -1
  320. package/dist/tools/query/MemoryRecallTool/MemoryRecallTool.d.ts +16 -4
  321. package/dist/tools/query/MemoryRecallTool/MemoryRecallTool.d.ts.map +1 -1
  322. package/dist/tools/query/MemoryRecallTool/MemoryRecallTool.js +12 -0
  323. package/dist/tools/query/MemoryRecallTool/MemoryRecallTool.js.map +1 -1
  324. package/dist/tools/query/SoilQueryTool/SoilQueryTool.d.ts +7 -0
  325. package/dist/tools/query/SoilQueryTool/SoilQueryTool.d.ts.map +1 -1
  326. package/dist/tools/query/SoilQueryTool/SoilQueryTool.js +20 -0
  327. package/dist/tools/query/SoilQueryTool/SoilQueryTool.js.map +1 -1
  328. package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
  329. package/dist/tools/system/ShellTool/ShellTool.js +1 -1
  330. package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
  331. package/dist/tools/system/ShellTool/command-policy.d.ts +1 -1
  332. package/dist/tools/system/ShellTool/command-policy.d.ts.map +1 -1
  333. package/dist/tools/system/ShellTool/command-policy.js +25 -1
  334. package/dist/tools/system/ShellTool/command-policy.js.map +1 -1
  335. package/package.json +4 -2
@@ -0,0 +1,352 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { randomUUID } from "node:crypto";
4
+ import { z } from "zod";
5
+ import { readJsonFileOrNull, writeJsonFileAtomic } from "../../base/utils/json-io.js";
6
+ import { loadRelationshipProfile, saveRelationshipProfile, upsertRelationshipProfileItemInStore, retractRelationshipProfileItemInStore, RelationshipProfileConsentScopeSchema, RelationshipProfileItemKindSchema, RelationshipProfileSensitivitySchema, } from "./relationship-profile.js";
7
+ export const RelationshipProfileProposalOperationSchema = z.enum(["upsert_item", "retract_item"]);
8
+ export const RelationshipProfileProposalSourceSchema = z.enum([
9
+ "cli_proposal",
10
+ "setup_import",
11
+ "proactive_feedback",
12
+ "system_migration",
13
+ ]);
14
+ export const RelationshipProfileProposalStateSchema = z.enum([
15
+ "pending",
16
+ "approved",
17
+ "rejected",
18
+ "applied",
19
+ "superseded",
20
+ "expired",
21
+ ]);
22
+ export const RelationshipProfileProposalItemDataSchema = z.object({
23
+ stable_key: z.string().min(1),
24
+ kind: RelationshipProfileItemKindSchema.optional(),
25
+ value: z.string().min(1).optional(),
26
+ sensitivity: RelationshipProfileSensitivitySchema.default("private"),
27
+ allowed_scopes: z.array(RelationshipProfileConsentScopeSchema).min(1).default(["local_planning", "user_facing_review"]),
28
+ });
29
+ export const RelationshipProfileChangeProposalSchema = z.object({
30
+ id: z.string().min(1),
31
+ operation: RelationshipProfileProposalOperationSchema,
32
+ proposed_item: RelationshipProfileProposalItemDataSchema,
33
+ source: RelationshipProfileProposalSourceSchema,
34
+ confidence: z.number().min(0).max(1).default(0.7),
35
+ sensitivity: RelationshipProfileSensitivitySchema.default("private"),
36
+ consent_scopes: z.array(RelationshipProfileConsentScopeSchema).min(1).default(["user_facing_review"]),
37
+ evidence_refs: z.array(z.string().min(1)).default([]),
38
+ rationale: z.string().min(1),
39
+ approval_state: RelationshipProfileProposalStateSchema.default("pending"),
40
+ rejection_reason: z.string().min(1).optional(),
41
+ approval_reason: z.string().min(1).optional(),
42
+ applied_profile_item_id: z.string().min(1).optional(),
43
+ applied_at: z.string().datetime().nullable().default(null),
44
+ expires_at: z.string().datetime().nullable().default(null),
45
+ created_at: z.string().datetime(),
46
+ updated_at: z.string().datetime(),
47
+ }).superRefine((proposal, ctx) => {
48
+ if (proposal.operation === "upsert_item") {
49
+ if (!proposal.proposed_item.kind) {
50
+ ctx.addIssue({
51
+ code: z.ZodIssueCode.custom,
52
+ path: ["proposed_item", "kind"],
53
+ message: "kind is required for upsert proposals",
54
+ });
55
+ }
56
+ if (!proposal.proposed_item.value) {
57
+ ctx.addIssue({
58
+ code: z.ZodIssueCode.custom,
59
+ path: ["proposed_item", "value"],
60
+ message: "value is required for upsert proposals",
61
+ });
62
+ }
63
+ }
64
+ });
65
+ export const RelationshipProfileProposalAuditEventSchema = z.object({
66
+ id: z.string().min(1),
67
+ proposal_id: z.string().min(1),
68
+ at: z.string().datetime(),
69
+ action: z.enum(["created", "approved", "rejected", "applied", "superseded", "expired"]),
70
+ reason: z.string().min(1).optional(),
71
+ profile_item_id: z.string().min(1).optional(),
72
+ });
73
+ export const RelationshipProfileProposalStoreSchema = z.object({
74
+ schema_version: z.literal(1).default(1),
75
+ profile_id: z.string().min(1).default("default"),
76
+ proposals: z.array(RelationshipProfileChangeProposalSchema).default([]),
77
+ audit_events: z.array(RelationshipProfileProposalAuditEventSchema).default([]),
78
+ updated_at: z.string().datetime().nullable().default(null),
79
+ });
80
+ export function relationshipProfileProposalPath(baseDir) {
81
+ return path.join(baseDir, "relationship-profile-proposals.json");
82
+ }
83
+ export function createEmptyRelationshipProfileProposalStore(now = null) {
84
+ return RelationshipProfileProposalStoreSchema.parse({
85
+ schema_version: 1,
86
+ profile_id: "default",
87
+ proposals: [],
88
+ audit_events: [],
89
+ updated_at: now,
90
+ });
91
+ }
92
+ export async function loadRelationshipProfileProposalStore(baseDir) {
93
+ const raw = await readJsonFileOrNull(relationshipProfileProposalPath(baseDir));
94
+ const parsed = RelationshipProfileProposalStoreSchema.safeParse(raw);
95
+ return parsed.success ? parsed.data : createEmptyRelationshipProfileProposalStore();
96
+ }
97
+ export function loadRelationshipProfileProposalStoreSync(baseDir) {
98
+ try {
99
+ const raw = JSON.parse(fs.readFileSync(relationshipProfileProposalPath(baseDir), "utf-8"));
100
+ const parsed = RelationshipProfileProposalStoreSchema.safeParse(raw);
101
+ return parsed.success ? parsed.data : createEmptyRelationshipProfileProposalStore();
102
+ }
103
+ catch {
104
+ return createEmptyRelationshipProfileProposalStore();
105
+ }
106
+ }
107
+ export async function saveRelationshipProfileProposalStore(baseDir, store) {
108
+ await writeJsonFileAtomic(relationshipProfileProposalPath(baseDir), RelationshipProfileProposalStoreSchema.parse(store), {
109
+ mode: 0o600,
110
+ directoryMode: 0o700,
111
+ });
112
+ }
113
+ function normalizeProposalInput(input) {
114
+ const stableKey = input.stableKey.trim();
115
+ const rationale = input.rationale.trim();
116
+ const value = input.value?.trim();
117
+ if (!stableKey)
118
+ throw new Error("stable key is required");
119
+ if (!rationale)
120
+ throw new Error("proposal rationale is required");
121
+ if (input.operation === "upsert_item") {
122
+ if (!input.kind)
123
+ throw new Error("kind is required for upsert proposals");
124
+ if (!value)
125
+ throw new Error("value is required for upsert proposals");
126
+ }
127
+ if (input.confidence !== undefined && (!Number.isFinite(input.confidence) || input.confidence < 0 || input.confidence > 1)) {
128
+ throw new Error("proposal confidence must be between 0 and 1");
129
+ }
130
+ const consentScopes = input.consentScopes && input.consentScopes.length > 0
131
+ ? [...new Set(input.consentScopes)]
132
+ : ["user_facing_review"];
133
+ const allowedScopes = input.allowedScopes && input.allowedScopes.length > 0
134
+ ? [...new Set(input.allowedScopes)]
135
+ : ["local_planning", "user_facing_review"];
136
+ return {
137
+ ...input,
138
+ stableKey,
139
+ ...(value ? { value } : {}),
140
+ rationale,
141
+ confidence: input.confidence ?? 0.7,
142
+ sensitivity: input.sensitivity ?? "private",
143
+ consentScopes,
144
+ allowedScopes,
145
+ evidenceRefs: [...new Set(input.evidenceRefs ?? [])],
146
+ now: input.now ?? new Date().toISOString(),
147
+ };
148
+ }
149
+ export function createRelationshipProfileChangeProposalInStore(store, input) {
150
+ const normalized = normalizeProposalInput(input);
151
+ const id = `profile-proposal-${randomUUID()}`;
152
+ const proposal = RelationshipProfileChangeProposalSchema.parse({
153
+ id,
154
+ operation: normalized.operation,
155
+ proposed_item: {
156
+ stable_key: normalized.stableKey,
157
+ ...(normalized.kind ? { kind: normalized.kind } : {}),
158
+ ...(normalized.value ? { value: normalized.value } : {}),
159
+ sensitivity: normalized.sensitivity,
160
+ allowed_scopes: normalized.allowedScopes,
161
+ },
162
+ source: normalized.source,
163
+ confidence: normalized.confidence,
164
+ sensitivity: normalized.sensitivity,
165
+ consent_scopes: normalized.consentScopes,
166
+ evidence_refs: normalized.evidenceRefs,
167
+ rationale: normalized.rationale,
168
+ approval_state: "pending",
169
+ expires_at: normalized.expiresAt ?? null,
170
+ created_at: normalized.now,
171
+ updated_at: normalized.now,
172
+ });
173
+ const event = RelationshipProfileProposalAuditEventSchema.parse({
174
+ id: `profile-proposal-event-${randomUUID()}`,
175
+ proposal_id: proposal.id,
176
+ at: normalized.now,
177
+ action: "created",
178
+ });
179
+ return {
180
+ store: RelationshipProfileProposalStoreSchema.parse({
181
+ ...store,
182
+ proposals: [...store.proposals, proposal],
183
+ audit_events: [...store.audit_events, event],
184
+ updated_at: normalized.now,
185
+ }),
186
+ proposal,
187
+ };
188
+ }
189
+ export async function createRelationshipProfileChangeProposal(baseDir, input) {
190
+ const loaded = await loadRelationshipProfileProposalStore(baseDir);
191
+ const result = createRelationshipProfileChangeProposalInStore(loaded, input);
192
+ await saveRelationshipProfileProposalStore(baseDir, result.store);
193
+ return { proposal: result.proposal };
194
+ }
195
+ function transitionProposal(store, proposalId, toState, action, params = {}) {
196
+ const id = proposalId.trim();
197
+ if (!id)
198
+ throw new Error("proposal id is required");
199
+ const now = params.now ?? new Date().toISOString();
200
+ const existing = store.proposals.find((proposal) => proposal.id === id);
201
+ if (!existing)
202
+ throw new Error(`relationship profile proposal not found: ${id}`);
203
+ const terminalStates = ["rejected", "applied", "superseded", "expired"];
204
+ if (terminalStates.includes(existing.approval_state)) {
205
+ throw new Error(`cannot transition ${existing.approval_state} proposal: ${id}`);
206
+ }
207
+ if (toState === "approved" && existing.approval_state !== "pending") {
208
+ throw new Error(`only pending proposals can be approved: ${id}`);
209
+ }
210
+ if (toState === "rejected" && existing.approval_state !== "pending") {
211
+ throw new Error(`only pending proposals can be rejected: ${id}`);
212
+ }
213
+ if (toState === "applied" && existing.approval_state !== "approved") {
214
+ throw new Error(`only approved proposals can be applied: ${id}`);
215
+ }
216
+ let updatedProposal = null;
217
+ const proposals = store.proposals.map((proposal) => {
218
+ if (proposal.id !== id)
219
+ return proposal;
220
+ updatedProposal = RelationshipProfileChangeProposalSchema.parse({
221
+ ...proposal,
222
+ approval_state: toState,
223
+ ...(toState === "approved" && params.reason ? { approval_reason: params.reason } : {}),
224
+ ...(toState === "rejected" && params.reason ? { rejection_reason: params.reason } : {}),
225
+ ...(toState === "applied" ? {
226
+ applied_profile_item_id: params.profileItemId,
227
+ applied_at: now,
228
+ } : {}),
229
+ updated_at: now,
230
+ });
231
+ return updatedProposal;
232
+ });
233
+ const event = RelationshipProfileProposalAuditEventSchema.parse({
234
+ id: `profile-proposal-event-${randomUUID()}`,
235
+ proposal_id: id,
236
+ at: now,
237
+ action,
238
+ ...(params.reason ? { reason: params.reason } : {}),
239
+ ...(params.profileItemId ? { profile_item_id: params.profileItemId } : {}),
240
+ });
241
+ return {
242
+ store: RelationshipProfileProposalStoreSchema.parse({
243
+ ...store,
244
+ proposals,
245
+ audit_events: [...store.audit_events, event],
246
+ updated_at: now,
247
+ }),
248
+ proposal: updatedProposal ?? existing,
249
+ };
250
+ }
251
+ export async function approveRelationshipProfileChangeProposal(baseDir, proposalId, params = {}) {
252
+ const loaded = await loadRelationshipProfileProposalStore(baseDir);
253
+ const result = transitionProposal(loaded, proposalId, "approved", "approved", params);
254
+ await saveRelationshipProfileProposalStore(baseDir, result.store);
255
+ return { proposal: result.proposal };
256
+ }
257
+ export async function rejectRelationshipProfileChangeProposal(baseDir, proposalId, params) {
258
+ const loaded = await loadRelationshipProfileProposalStore(baseDir);
259
+ const result = transitionProposal(loaded, proposalId, "rejected", "rejected", params);
260
+ await saveRelationshipProfileProposalStore(baseDir, result.store);
261
+ return { proposal: result.proposal };
262
+ }
263
+ function profileSourceForProposal(source) {
264
+ if (source === "setup_import")
265
+ return "setup_import";
266
+ if (source === "system_migration")
267
+ return "system_migration";
268
+ return "user_correction";
269
+ }
270
+ export async function applyRelationshipProfileChangeProposal(baseDir, proposalId, params = {}) {
271
+ const proposalStore = await loadRelationshipProfileProposalStore(baseDir);
272
+ const proposal = proposalStore.proposals.find((candidate) => candidate.id === proposalId.trim());
273
+ if (!proposal)
274
+ throw new Error(`relationship profile proposal not found: ${proposalId}`);
275
+ const now = params.now ?? new Date().toISOString();
276
+ const profileStore = await loadRelationshipProfile(baseDir);
277
+ const linkedProfileEvents = profileStore.audit_events.filter((event) => event.proposal_id === proposal.id);
278
+ const recoveredProfileEvent = proposal.applied_profile_item_id
279
+ ? linkedProfileEvents.find((event) => event.item_id === proposal.applied_profile_item_id)
280
+ : linkedProfileEvents.find((event) => {
281
+ if (proposal.operation === "upsert_item")
282
+ return event.action === "created" || event.action === "seeded";
283
+ return event.action === "retracted";
284
+ });
285
+ if (recoveredProfileEvent) {
286
+ const recoveredItem = profileStore.items.find((item) => item.id === recoveredProfileEvent.item_id);
287
+ if (!recoveredItem) {
288
+ throw new Error(`proposal ${proposal.id} is linked to missing profile item ${recoveredProfileEvent.item_id}`);
289
+ }
290
+ if (proposal.approval_state === "applied") {
291
+ return { proposal, item: recoveredItem };
292
+ }
293
+ if (proposal.approval_state === "approved") {
294
+ const proposalResult = transitionProposal(proposalStore, proposal.id, "applied", "applied", {
295
+ profileItemId: recoveredItem.id,
296
+ now,
297
+ });
298
+ await saveRelationshipProfileProposalStore(baseDir, proposalResult.store);
299
+ return { proposal: proposalResult.proposal, item: recoveredItem };
300
+ }
301
+ }
302
+ if (proposal.approval_state !== "approved") {
303
+ throw new Error(`only approved proposals can be applied: ${proposalId}`);
304
+ }
305
+ if (proposal.source === "setup_import") {
306
+ const newerActiveItem = profileStore.items.find((item) => item.stable_key === proposal.proposed_item.stable_key &&
307
+ item.status === "active" &&
308
+ item.created_at > proposal.created_at);
309
+ if (newerActiveItem) {
310
+ throw new Error(`stale setup import proposal cannot overwrite newer active profile item: ${proposal.id}`);
311
+ }
312
+ }
313
+ let profileResult;
314
+ if (proposal.operation === "upsert_item") {
315
+ const kind = proposal.proposed_item.kind;
316
+ const value = proposal.proposed_item.value;
317
+ if (!kind || !value) {
318
+ throw new Error(`invalid upsert proposal missing kind or value: ${proposal.id}`);
319
+ }
320
+ profileResult = upsertRelationshipProfileItemInStore(profileStore, {
321
+ stableKey: proposal.proposed_item.stable_key,
322
+ kind,
323
+ value,
324
+ source: profileSourceForProposal(proposal.source),
325
+ confidence: proposal.confidence,
326
+ sensitivity: proposal.proposed_item.sensitivity,
327
+ allowedScopes: proposal.proposed_item.allowed_scopes,
328
+ evidenceRef: proposal.evidence_refs[0],
329
+ note: proposal.rationale,
330
+ proposalId: proposal.id,
331
+ now,
332
+ });
333
+ }
334
+ else {
335
+ profileResult = retractRelationshipProfileItemInStore(profileStore, {
336
+ stableKey: proposal.proposed_item.stable_key,
337
+ reason: proposal.rationale,
338
+ source: profileSourceForProposal(proposal.source),
339
+ proposalId: proposal.id,
340
+ now,
341
+ });
342
+ }
343
+ const item = profileResult.item;
344
+ const proposalResult = transitionProposal(proposalStore, proposal.id, "applied", "applied", {
345
+ profileItemId: item.id,
346
+ now,
347
+ });
348
+ await saveRelationshipProfile(baseDir, profileResult.store);
349
+ await saveRelationshipProfileProposalStore(baseDir, proposalResult.store);
350
+ return { proposal: proposalResult.proposal, item };
351
+ }
352
+ //# sourceMappingURL=profile-change-proposal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-change-proposal.js","sourceRoot":"","sources":["../../../src/platform/profile/profile-change-proposal.ts"],"names":[],"mappings":"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"}