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,459 @@
1
+ import { parseArgs } from "node:util";
2
+ import { getCliLogger } from "../cli-logger.js";
3
+ import { formatOperationError } from "../utils.js";
4
+ import { applyRelationshipProfileChangeProposal, approveRelationshipProfileChangeProposal, loadRelationshipProfileProposalStore, rejectRelationshipProfileChangeProposal, RelationshipProfileProposalStateSchema, } from "../../../platform/profile/profile-change-proposal.js";
5
+ import { loadRelationshipProfile, getRelationshipProfileHistory, RelationshipProfileConsentScopeSchema, RelationshipProfileItemKindSchema, RelationshipProfileSensitivitySchema, RelationshipProfileSourceSchema, retractRelationshipProfileItem, selectActiveRelationshipProfileItems, upsertRelationshipProfileItem, } from "../../../platform/profile/relationship-profile.js";
6
+ function usage() {
7
+ return `Usage:
8
+ pulseed profile show [--scope <scope>] [--all] [--json]
9
+ pulseed profile update --kind <kind> --key <stable_key> --value <value> [--scope <scope>] [--sensitivity <public|private|sensitive>] [--confidence <0-1>] [--source <source>] [--evidence-ref <ref>]
10
+ pulseed profile history <stable_key> [--json]
11
+ pulseed profile retract --key <stable_key> --reason <reason> [--source <source>] [--json]
12
+ pulseed profile proposal list [--state <state>] [--json]
13
+ pulseed profile proposal inspect <proposal_id> [--json]
14
+ pulseed profile proposal approve <proposal_id> [--reason <reason>] [--json]
15
+ pulseed profile proposal reject <proposal_id> --reason <reason> [--json]
16
+ pulseed profile proposal apply <proposal_id> [--json]
17
+
18
+ Scopes: local_planning, resident_behavior, memory_retrieval, user_facing_review
19
+ Kinds: identity_fact, preference, dislike, value, boundary, communication_style, notification_preference, long_term_goal, life_context, intervention_policy`;
20
+ }
21
+ function parseEnum(raw, label, parse) {
22
+ if (raw === undefined)
23
+ return null;
24
+ const result = parse(raw);
25
+ if (result.success)
26
+ return result.data;
27
+ getCliLogger().error(`Error: invalid ${label}: ${raw}`);
28
+ return null;
29
+ }
30
+ function parseScopeList(raw) {
31
+ if (!raw || raw.length === 0)
32
+ return null;
33
+ const parsed = [];
34
+ for (const value of raw) {
35
+ const result = RelationshipProfileConsentScopeSchema.safeParse(value);
36
+ if (!result.success) {
37
+ getCliLogger().error(`Error: invalid scope: ${value}`);
38
+ return null;
39
+ }
40
+ parsed.push(result.data);
41
+ }
42
+ return [...new Set(parsed)];
43
+ }
44
+ export async function cmdProfile(stateManager, argv) {
45
+ const subcommand = argv[0];
46
+ if (!subcommand || subcommand === "--help" || subcommand === "-h" || subcommand === "help") {
47
+ console.log(usage());
48
+ return 0;
49
+ }
50
+ if (subcommand === "proposal") {
51
+ return cmdProfileProposal(stateManager, argv.slice(1));
52
+ }
53
+ if (subcommand === "show") {
54
+ let values;
55
+ try {
56
+ ({ values } = parseArgs({
57
+ args: argv.slice(1),
58
+ options: {
59
+ scope: { type: "string" },
60
+ all: { type: "boolean" },
61
+ json: { type: "boolean" },
62
+ },
63
+ strict: true,
64
+ }));
65
+ }
66
+ catch (err) {
67
+ getCliLogger().error(formatOperationError("parse profile show arguments", err));
68
+ return 1;
69
+ }
70
+ const store = await loadRelationshipProfile(stateManager.getBaseDir());
71
+ let scope = null;
72
+ if (values.scope !== undefined) {
73
+ const parsed = RelationshipProfileConsentScopeSchema.safeParse(values.scope);
74
+ if (!parsed.success) {
75
+ getCliLogger().error(`Error: invalid scope: ${values.scope}`);
76
+ return 1;
77
+ }
78
+ scope = parsed.data;
79
+ }
80
+ const items = values.all
81
+ ? store.items
82
+ : scope
83
+ ? selectActiveRelationshipProfileItems(store, scope)
84
+ : selectActiveRelationshipProfileItems(store, "user_facing_review");
85
+ if (values.json) {
86
+ console.log(JSON.stringify({
87
+ schema_version: store.schema_version,
88
+ profile_id: store.profile_id,
89
+ items,
90
+ ...(values.all ? { audit_events: store.audit_events } : {}),
91
+ updated_at: store.updated_at,
92
+ }, null, 2));
93
+ return 0;
94
+ }
95
+ if (items.length === 0) {
96
+ console.log("No relationship profile items.");
97
+ return 0;
98
+ }
99
+ console.log("Relationship profile:");
100
+ for (const item of items) {
101
+ console.log(`- ${item.stable_key} [${item.kind}] v${item.version} ${item.status}: ${item.value}` +
102
+ ` (scopes=${item.allowed_scopes.join(",")}; sensitivity=${item.sensitivity}; confidence=${item.confidence.toFixed(2)})`);
103
+ }
104
+ return 0;
105
+ }
106
+ if (subcommand === "history") {
107
+ let values;
108
+ let positionals;
109
+ try {
110
+ const parsed = parseArgs({
111
+ args: argv.slice(1),
112
+ options: {
113
+ json: { type: "boolean" },
114
+ },
115
+ allowPositionals: true,
116
+ strict: true,
117
+ });
118
+ values = parsed.values;
119
+ positionals = parsed.positionals;
120
+ }
121
+ catch (err) {
122
+ getCliLogger().error(formatOperationError("parse profile history arguments", err));
123
+ return 1;
124
+ }
125
+ const stableKey = positionals[0]?.trim();
126
+ if (!stableKey || positionals.length > 1) {
127
+ getCliLogger().error("Error: profile history requires exactly one <stable_key> argument.");
128
+ console.log(usage());
129
+ return 1;
130
+ }
131
+ try {
132
+ const store = await loadRelationshipProfile(stateManager.getBaseDir());
133
+ const history = getRelationshipProfileHistory(store, stableKey);
134
+ if (values.json) {
135
+ console.log(JSON.stringify(history, null, 2));
136
+ return 0;
137
+ }
138
+ if (history.items.length === 0 && history.audit_events.length === 0) {
139
+ console.log(`No relationship profile history for ${stableKey}.`);
140
+ return 0;
141
+ }
142
+ console.log(`Relationship profile history for ${history.stable_key}:`);
143
+ for (const item of history.items) {
144
+ const evidence = item.provenance.evidence_ref ? `; evidence=${item.provenance.evidence_ref}` : "";
145
+ const note = item.provenance.note ? `; note=${item.provenance.note}` : "";
146
+ console.log(`- item v${item.version} ${item.status}: ${item.value}` +
147
+ ` (source=${item.provenance.source}; scopes=${item.allowed_scopes.join(",")}; sensitivity=${item.sensitivity}; confidence=${item.confidence.toFixed(2)}${evidence}${note})`);
148
+ }
149
+ if (history.audit_events.length > 0) {
150
+ console.log("Audit events:");
151
+ for (const event of history.audit_events) {
152
+ const reason = event.reason ? `; reason=${event.reason}` : "";
153
+ const previous = event.previous_item_id ? `; previous=${event.previous_item_id}` : "";
154
+ console.log(`- ${event.at} ${event.action} v${event.version} item=${event.item_id} source=${event.source}${previous}${reason}`);
155
+ }
156
+ }
157
+ return 0;
158
+ }
159
+ catch (err) {
160
+ getCliLogger().error(formatOperationError("show relationship profile history", err));
161
+ return 1;
162
+ }
163
+ }
164
+ if (subcommand === "update") {
165
+ let values;
166
+ try {
167
+ ({ values } = parseArgs({
168
+ args: argv.slice(1),
169
+ options: {
170
+ kind: { type: "string" },
171
+ key: { type: "string" },
172
+ value: { type: "string" },
173
+ scope: { type: "string", multiple: true },
174
+ sensitivity: { type: "string" },
175
+ confidence: { type: "string" },
176
+ source: { type: "string" },
177
+ "evidence-ref": { type: "string" },
178
+ note: { type: "string" },
179
+ json: { type: "boolean" },
180
+ },
181
+ strict: true,
182
+ }));
183
+ }
184
+ catch (err) {
185
+ getCliLogger().error(formatOperationError("parse profile update arguments", err));
186
+ return 1;
187
+ }
188
+ const kind = parseEnum(values.kind, "kind", (value) => RelationshipProfileItemKindSchema.safeParse(value));
189
+ const sensitivity = parseEnum(values.sensitivity ?? "private", "sensitivity", (value) => RelationshipProfileSensitivitySchema.safeParse(value));
190
+ const source = parseEnum(values.source ?? "cli_update", "source", (value) => RelationshipProfileSourceSchema.safeParse(value));
191
+ const allowedScopes = parseScopeList(values.scope);
192
+ if (!kind || !sensitivity || !source || values.scope && !allowedScopes)
193
+ return 1;
194
+ if (!values.key?.trim() || !values.value?.trim()) {
195
+ getCliLogger().error("Error: --key and --value are required.");
196
+ console.log(usage());
197
+ return 1;
198
+ }
199
+ let confidence;
200
+ if (values.confidence !== undefined) {
201
+ confidence = Number(values.confidence);
202
+ if (!Number.isFinite(confidence) || confidence < 0 || confidence > 1) {
203
+ getCliLogger().error(`Error: --confidence must be a number between 0 and 1 (got: ${values.confidence})`);
204
+ return 1;
205
+ }
206
+ }
207
+ try {
208
+ const result = await upsertRelationshipProfileItem(stateManager.getBaseDir(), {
209
+ stableKey: values.key,
210
+ kind,
211
+ value: values.value,
212
+ source,
213
+ sensitivity,
214
+ confidence,
215
+ allowedScopes: allowedScopes ?? undefined,
216
+ evidenceRef: values["evidence-ref"],
217
+ note: values.note,
218
+ });
219
+ if (values.json) {
220
+ console.log(JSON.stringify(result, null, 2));
221
+ }
222
+ else {
223
+ console.log(`Updated relationship profile item ${result.item.stable_key} v${result.item.version}.`);
224
+ if (result.superseded.length > 0) {
225
+ console.log(`Superseded ${result.superseded.length} previous active item(s).`);
226
+ }
227
+ }
228
+ return 0;
229
+ }
230
+ catch (err) {
231
+ getCliLogger().error(formatOperationError("update relationship profile", err));
232
+ return 1;
233
+ }
234
+ }
235
+ if (subcommand === "retract") {
236
+ let values;
237
+ try {
238
+ ({ values } = parseArgs({
239
+ args: argv.slice(1),
240
+ options: {
241
+ key: { type: "string" },
242
+ reason: { type: "string" },
243
+ source: { type: "string" },
244
+ json: { type: "boolean" },
245
+ },
246
+ strict: true,
247
+ }));
248
+ }
249
+ catch (err) {
250
+ getCliLogger().error(formatOperationError("parse profile retract arguments", err));
251
+ return 1;
252
+ }
253
+ const source = parseEnum(values.source ?? "cli_update", "source", (value) => RelationshipProfileSourceSchema.safeParse(value));
254
+ if (!source)
255
+ return 1;
256
+ if (!values.key?.trim() || !values.reason?.trim()) {
257
+ getCliLogger().error("Error: --key and --reason are required.");
258
+ console.log(usage());
259
+ return 1;
260
+ }
261
+ try {
262
+ const result = await retractRelationshipProfileItem(stateManager.getBaseDir(), {
263
+ stableKey: values.key,
264
+ reason: values.reason,
265
+ source,
266
+ });
267
+ if (values.json) {
268
+ console.log(JSON.stringify(result, null, 2));
269
+ }
270
+ else {
271
+ console.log(`Retracted relationship profile item ${result.item.stable_key} v${result.item.version}.`);
272
+ }
273
+ return 0;
274
+ }
275
+ catch (err) {
276
+ getCliLogger().error(formatOperationError("retract relationship profile item", err));
277
+ return 1;
278
+ }
279
+ }
280
+ getCliLogger().error(`Unknown profile subcommand: "${subcommand}"`);
281
+ console.log(usage());
282
+ return 1;
283
+ }
284
+ async function cmdProfileProposal(stateManager, argv) {
285
+ const subcommand = argv[0];
286
+ if (!subcommand || subcommand === "--help" || subcommand === "-h" || subcommand === "help") {
287
+ console.log(usage());
288
+ return 0;
289
+ }
290
+ if (subcommand === "list") {
291
+ let values;
292
+ try {
293
+ ({ values } = parseArgs({
294
+ args: argv.slice(1),
295
+ options: {
296
+ state: { type: "string" },
297
+ json: { type: "boolean" },
298
+ },
299
+ strict: true,
300
+ }));
301
+ }
302
+ catch (err) {
303
+ getCliLogger().error(formatOperationError("parse profile proposal list arguments", err));
304
+ return 1;
305
+ }
306
+ const state = parseEnum(values.state, "proposal state", (value) => RelationshipProfileProposalStateSchema.safeParse(value));
307
+ if (values.state !== undefined && !state)
308
+ return 1;
309
+ const store = await loadRelationshipProfileProposalStore(stateManager.getBaseDir());
310
+ const proposals = state
311
+ ? store.proposals.filter((proposal) => proposal.approval_state === state)
312
+ : store.proposals;
313
+ if (values.json) {
314
+ console.log(JSON.stringify({ ...store, proposals }, null, 2));
315
+ return 0;
316
+ }
317
+ if (proposals.length === 0) {
318
+ console.log("No relationship profile proposals.");
319
+ return 0;
320
+ }
321
+ console.log("Relationship profile proposals:");
322
+ for (const proposal of proposals) {
323
+ console.log(`- ${proposal.id} ${proposal.approval_state} ${proposal.operation} ${proposal.proposed_item.stable_key}` +
324
+ ` (source=${proposal.source}; confidence=${proposal.confidence.toFixed(2)}; sensitivity=${proposal.sensitivity})`);
325
+ }
326
+ return 0;
327
+ }
328
+ if (subcommand === "inspect") {
329
+ const parsed = parseProposalIdArgs("inspect", argv.slice(1));
330
+ if (!parsed)
331
+ return 1;
332
+ const store = await loadRelationshipProfileProposalStore(stateManager.getBaseDir());
333
+ const proposal = store.proposals.find((candidate) => candidate.id === parsed.proposalId);
334
+ if (!proposal) {
335
+ getCliLogger().error(`Error: relationship profile proposal not found: ${parsed.proposalId}`);
336
+ return 1;
337
+ }
338
+ if (parsed.json) {
339
+ console.log(JSON.stringify({
340
+ proposal,
341
+ audit_events: store.audit_events.filter((event) => event.proposal_id === proposal.id),
342
+ }, null, 2));
343
+ return 0;
344
+ }
345
+ console.log(`Relationship profile proposal ${proposal.id}:`);
346
+ console.log(`- state: ${proposal.approval_state}`);
347
+ console.log(`- operation: ${proposal.operation}`);
348
+ console.log(`- key: ${proposal.proposed_item.stable_key}`);
349
+ if (proposal.proposed_item.kind)
350
+ console.log(`- kind: ${proposal.proposed_item.kind}`);
351
+ if (proposal.proposed_item.value)
352
+ console.log(`- value: ${proposal.proposed_item.value}`);
353
+ console.log(`- rationale: ${proposal.rationale}`);
354
+ return 0;
355
+ }
356
+ if (subcommand === "approve") {
357
+ const parsed = parseProposalIdArgs("approve", argv.slice(1), { allowReason: true });
358
+ if (!parsed)
359
+ return 1;
360
+ try {
361
+ const result = await approveRelationshipProfileChangeProposal(stateManager.getBaseDir(), parsed.proposalId, {
362
+ reason: parsed.reason,
363
+ });
364
+ if (parsed.json) {
365
+ console.log(JSON.stringify(result, null, 2));
366
+ }
367
+ else {
368
+ console.log(`Approved relationship profile proposal ${result.proposal.id}.`);
369
+ }
370
+ return 0;
371
+ }
372
+ catch (err) {
373
+ getCliLogger().error(formatOperationError("approve relationship profile proposal", err));
374
+ return 1;
375
+ }
376
+ }
377
+ if (subcommand === "reject") {
378
+ const parsed = parseProposalIdArgs("reject", argv.slice(1), { requireReason: true });
379
+ if (!parsed || !parsed.reason)
380
+ return 1;
381
+ try {
382
+ const result = await rejectRelationshipProfileChangeProposal(stateManager.getBaseDir(), parsed.proposalId, {
383
+ reason: parsed.reason,
384
+ });
385
+ if (parsed.json) {
386
+ console.log(JSON.stringify(result, null, 2));
387
+ }
388
+ else {
389
+ console.log(`Rejected relationship profile proposal ${result.proposal.id}.`);
390
+ }
391
+ return 0;
392
+ }
393
+ catch (err) {
394
+ getCliLogger().error(formatOperationError("reject relationship profile proposal", err));
395
+ return 1;
396
+ }
397
+ }
398
+ if (subcommand === "apply") {
399
+ const parsed = parseProposalIdArgs("apply", argv.slice(1));
400
+ if (!parsed)
401
+ return 1;
402
+ try {
403
+ const result = await applyRelationshipProfileChangeProposal(stateManager.getBaseDir(), parsed.proposalId);
404
+ if (parsed.json) {
405
+ console.log(JSON.stringify(result, null, 2));
406
+ }
407
+ else {
408
+ console.log(`Applied relationship profile proposal ${result.proposal.id} to ${result.item.stable_key} v${result.item.version}.`);
409
+ }
410
+ return 0;
411
+ }
412
+ catch (err) {
413
+ getCliLogger().error(formatOperationError("apply relationship profile proposal", err));
414
+ return 1;
415
+ }
416
+ }
417
+ getCliLogger().error(`Unknown profile proposal subcommand: "${subcommand}"`);
418
+ console.log(usage());
419
+ return 1;
420
+ }
421
+ function parseProposalIdArgs(label, args, options = {}) {
422
+ let values;
423
+ let positionals;
424
+ try {
425
+ const parsed = parseArgs({
426
+ args,
427
+ options: {
428
+ ...(options.allowReason || options.requireReason ? { reason: { type: "string" } } : {}),
429
+ json: { type: "boolean" },
430
+ },
431
+ allowPositionals: true,
432
+ strict: true,
433
+ });
434
+ values = parsed.values;
435
+ positionals = parsed.positionals;
436
+ }
437
+ catch (err) {
438
+ getCliLogger().error(formatOperationError(`parse profile proposal ${label} arguments`, err));
439
+ return null;
440
+ }
441
+ const proposalId = positionals[0]?.trim();
442
+ if (!proposalId || positionals.length > 1) {
443
+ getCliLogger().error(`Error: profile proposal ${label} requires exactly one <proposal_id> argument.`);
444
+ console.log(usage());
445
+ return null;
446
+ }
447
+ const reason = values.reason?.trim();
448
+ if (options.requireReason && !reason) {
449
+ getCliLogger().error("Error: --reason is required.");
450
+ console.log(usage());
451
+ return null;
452
+ }
453
+ return {
454
+ proposalId,
455
+ ...(reason ? { reason } : {}),
456
+ json: values.json,
457
+ };
458
+ }
459
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/interface/cli/commands/profile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/interface/cli/commands/runtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAwVzE,wBAAsB,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgM5F"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/interface/cli/commands/runtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAiazE,wBAAsB,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqP5F"}
@@ -6,9 +6,12 @@ import { RuntimeEvidenceLedger } from "../../../runtime/store/evidence-ledger.js
6
6
  import { RuntimeExperimentQueueStore, } from "../../../runtime/store/experiment-queue-store.js";
7
7
  import { RuntimeBudgetStore, } from "../../../runtime/store/budget-store.js";
8
8
  import { RuntimePostmortemReportStore, } from "../../../runtime/store/postmortem-report.js";
9
+ import { ProactiveInterventionOutcomeSchema, ProactiveInterventionStore, ProactiveOverreachIndicatorSchema, } from "../../../runtime/store/proactive-intervention-store.js";
10
+ import { createRelationshipProfileProposalsFromProactiveFeedback } from "../../../platform/profile/proactive-feedback-proposals.js";
9
11
  import { createRuntimeDreamSidecarReview, RuntimeDreamSidecarReviewError, } from "../../../runtime/dream-sidecar-review.js";
10
12
  import { getCliLogger } from "../cli-logger.js";
11
13
  import { formatOperationError } from "../utils.js";
14
+ import { resolveConfiguredDaemonRuntimeRoot } from "../../../runtime/daemon/runtime-root.js";
12
15
  const ID_WIDTH = 34;
13
16
  const KIND_WIDTH = 12;
14
17
  const STATUS_WIDTH = 10;
@@ -204,6 +207,22 @@ function printBudgetDetail(store, budget) {
204
207
  console.log(" Recent consumption: -");
205
208
  }
206
209
  }
210
+ function printProactiveSummary(summary) {
211
+ console.log("Proactive intervention quality:");
212
+ console.log(` Interventions: ${summary.total_interventions}`);
213
+ console.log(` Pending: ${summary.pending_count}`);
214
+ console.log(` Accepted: ${summary.accepted_count}`);
215
+ console.log(` Ignored: ${summary.ignored_count}`);
216
+ console.log(` Dismissed: ${summary.dismissed_count}`);
217
+ console.log(` Corrected: ${summary.corrected_count}`);
218
+ console.log(` Overreach: ${summary.overreach_count}`);
219
+ if (summary.average_time_to_response_ms !== null) {
220
+ console.log(` Avg response: ${Math.round(summary.average_time_to_response_ms)}ms`);
221
+ }
222
+ if (summary.policy_adjustment_recommendation) {
223
+ console.log(` Policy: ${summary.policy_adjustment_recommendation.suggested_action} for ${summary.policy_adjustment_recommendation.relationship_profile_key}`);
224
+ }
225
+ }
207
226
  function printJson(value) {
208
227
  console.log(JSON.stringify(value, null, 2));
209
228
  }
@@ -268,11 +287,39 @@ function parseDreamReviewArgs(args) {
268
287
  return {};
269
288
  }
270
289
  }
290
+ function parseProactiveFeedbackArgs(args) {
291
+ try {
292
+ const { values } = parseArgs({
293
+ args,
294
+ options: {
295
+ intervention: { type: "string" },
296
+ outcome: { type: "string" },
297
+ reason: { type: "string" },
298
+ "overreach-indicator": { type: "string", multiple: true },
299
+ "follow-through-success": { type: "boolean" },
300
+ json: { type: "boolean" },
301
+ },
302
+ strict: false,
303
+ });
304
+ return {
305
+ interventionId: values.intervention,
306
+ outcome: values.outcome,
307
+ reason: values.reason,
308
+ overreachIndicator: values["overreach-indicator"],
309
+ followThroughSuccess: values["follow-through-success"],
310
+ json: values.json,
311
+ };
312
+ }
313
+ catch (err) {
314
+ getCliLogger().error(formatOperationError("parse runtime proactive-feedback arguments", err));
315
+ return {};
316
+ }
317
+ }
271
318
  export async function cmdRuntime(stateManager, args) {
272
319
  const logger = getCliLogger();
273
320
  const runtimeSubcommand = args[0];
274
321
  if (!runtimeSubcommand) {
275
- logger.error("Error: runtime subcommand required. Available: runtime sessions, runtime runs, runtime session <id>, runtime run <id>, runtime experiment-queues, runtime experiment-queue <id>, runtime budgets, runtime budget <id>, runtime evidence <goal-id|run-id>, runtime postmortem <goal-id|run-id>, runtime dream-review <run-id>");
322
+ logger.error("Error: runtime subcommand required. Available: runtime sessions, runtime runs, runtime session <id>, runtime run <id>, runtime experiment-queues, runtime experiment-queue <id>, runtime budgets, runtime budget <id>, runtime evidence <goal-id|run-id>, runtime postmortem <goal-id|run-id>, runtime dream-review <run-id>, runtime proactive-quality, runtime proactive-feedback");
276
323
  return 1;
277
324
  }
278
325
  const registry = createRuntimeSessionRegistry({ stateManager });
@@ -448,8 +495,60 @@ export async function cmdRuntime(stateManager, args) {
448
495
  return 1;
449
496
  }
450
497
  }
498
+ if (runtimeSubcommand === "proactive-quality") {
499
+ const values = parseListArgs(args.slice(1), "proactive-quality");
500
+ const store = new ProactiveInterventionStore(resolveConfiguredDaemonRuntimeRoot(stateManager.getBaseDir()));
501
+ const summary = await store.summarize();
502
+ values.json ? printJson(summary) : printProactiveSummary(summary);
503
+ return 0;
504
+ }
505
+ if (runtimeSubcommand === "proactive-feedback") {
506
+ const values = parseProactiveFeedbackArgs(args.slice(1));
507
+ if (!values.interventionId || !values.outcome) {
508
+ logger.error("Error: --intervention <id> and --outcome <accepted|ignored|dismissed|corrected|overreach> are required.");
509
+ return 1;
510
+ }
511
+ const outcome = ProactiveInterventionOutcomeSchema.safeParse(values.outcome);
512
+ if (!outcome.success) {
513
+ logger.error(`Error: invalid proactive feedback outcome: ${values.outcome}`);
514
+ return 1;
515
+ }
516
+ const indicators = values.overreachIndicator ?? [];
517
+ const parsedIndicators = indicators.map((indicator) => ProactiveOverreachIndicatorSchema.safeParse(indicator));
518
+ const invalidIndicator = parsedIndicators.find((indicator) => !indicator.success);
519
+ if (invalidIndicator) {
520
+ logger.error(`Error: invalid overreach indicator. Valid: too_frequent, wrong_context, sensitive, unwanted_timing`);
521
+ return 1;
522
+ }
523
+ const overreachIndicators = parsedIndicators.flatMap((indicator) => indicator.success ? [indicator.data] : []);
524
+ const store = new ProactiveInterventionStore(resolveConfiguredDaemonRuntimeRoot(stateManager.getBaseDir()));
525
+ const event = await store.appendFeedback({
526
+ interventionId: values.interventionId,
527
+ outcome: outcome.data,
528
+ reason: values.reason,
529
+ overreachIndicators,
530
+ followThroughSuccess: values.followThroughSuccess,
531
+ channel: "cli",
532
+ });
533
+ const proposalResult = await createRelationshipProfileProposalsFromProactiveFeedback(stateManager.getBaseDir(), event);
534
+ const summary = await store.summarize();
535
+ if (values.json) {
536
+ printJson({ event, proposals: proposalResult.proposals, summary });
537
+ }
538
+ else {
539
+ console.log(`Recorded proactive feedback: ${event.outcome} for ${event.intervention_id}`);
540
+ if (proposalResult.proposals.length > 0) {
541
+ console.log(`Created ${proposalResult.proposals.length} relationship profile proposal(s).`);
542
+ }
543
+ if (event.policy_adjustment_recommendation) {
544
+ console.log(`Policy recommendation: ${event.policy_adjustment_recommendation.suggested_action} for ${event.policy_adjustment_recommendation.relationship_profile_key}`);
545
+ }
546
+ printProactiveSummary(summary);
547
+ }
548
+ return 0;
549
+ }
451
550
  logger.error(`Unknown runtime subcommand: "${runtimeSubcommand}"`);
452
- logger.error("Available: runtime sessions, runtime runs, runtime session <id>, runtime run <id>, runtime experiment-queues, runtime experiment-queue <id>, runtime budgets, runtime budget <id>, runtime evidence <goal-id|run-id>, runtime postmortem <goal-id|run-id>, runtime dream-review <run-id>");
551
+ logger.error("Available: runtime sessions, runtime runs, runtime session <id>, runtime run <id>, runtime experiment-queues, runtime experiment-queue <id>, runtime budgets, runtime budget <id>, runtime evidence <goal-id|run-id>, runtime postmortem <goal-id|run-id>, runtime dream-review <run-id>, runtime proactive-quality, runtime proactive-feedback");
453
552
  return 1;
454
553
  }
455
554
  async function summarizeEvidenceTarget(ledger, id) {