kiokuko-dsh 0.2.7 → 0.2.9

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 (481) hide show
  1. package/PERMISSIONS.md +1 -1
  2. package/README.ja.md +38 -11
  3. package/README.ko.md +34 -3
  4. package/README.md +39 -13
  5. package/README.zh-CN.md +34 -3
  6. package/THIRD_PARTY_NOTICES.md +4 -0
  7. package/dist/db/transaction.d.ts +2 -1
  8. package/dist/db/transaction.d.ts.map +1 -1
  9. package/dist/db/transaction.js +44 -7
  10. package/dist/db/transaction.js.map +1 -1
  11. package/dist/deep-planning-config.d.ts +32 -0
  12. package/dist/deep-planning-config.d.ts.map +1 -0
  13. package/dist/deep-planning-config.js +20 -0
  14. package/dist/deep-planning-config.js.map +1 -0
  15. package/dist/deep-thinker/core/contracts.d.ts +1 -29
  16. package/dist/deep-thinker/core/contracts.d.ts.map +1 -1
  17. package/dist/deep-thinker/core/contracts.js +2 -17
  18. package/dist/deep-thinker/core/contracts.js.map +1 -1
  19. package/dist/deep-thinker/memory-finalizer.d.ts.map +1 -1
  20. package/dist/deep-thinker/memory-finalizer.js +1 -114
  21. package/dist/deep-thinker/memory-finalizer.js.map +1 -1
  22. package/dist/deep-thinker/native-executor.d.ts.map +1 -1
  23. package/dist/deep-thinker/native-executor.js +3 -4
  24. package/dist/deep-thinker/native-executor.js.map +1 -1
  25. package/dist/deep-thinker/store.js +1 -2
  26. package/dist/deep-thinker/store.js.map +1 -1
  27. package/dist/dsh/agenticreplay-event-mapper.d.ts +1 -1
  28. package/dist/dsh/agenticreplay-event-mapper.d.ts.map +1 -1
  29. package/dist/dsh/agenticreplay-event-mapper.js +5 -1
  30. package/dist/dsh/agenticreplay-event-mapper.js.map +1 -1
  31. package/dist/dsh/agenticreplay-files.d.ts +1 -0
  32. package/dist/dsh/agenticreplay-files.d.ts.map +1 -1
  33. package/dist/dsh/agenticreplay-files.js +19 -2
  34. package/dist/dsh/agenticreplay-files.js.map +1 -1
  35. package/dist/dsh/agenticreplay-host.js +3 -3
  36. package/dist/dsh/agenticreplay-host.js.map +1 -1
  37. package/dist/dsh/agenticreplay-read-service.d.ts +20 -0
  38. package/dist/dsh/agenticreplay-read-service.d.ts.map +1 -1
  39. package/dist/dsh/agenticreplay-read-service.js +27 -0
  40. package/dist/dsh/agenticreplay-read-service.js.map +1 -1
  41. package/dist/dsh/agenticreplay-recorder.d.ts +18 -12
  42. package/dist/dsh/agenticreplay-recorder.d.ts.map +1 -1
  43. package/dist/dsh/agenticreplay-recorder.js +43 -13
  44. package/dist/dsh/agenticreplay-recorder.js.map +1 -1
  45. package/dist/dsh/agenticreplay-security.d.ts +1 -0
  46. package/dist/dsh/agenticreplay-security.d.ts.map +1 -1
  47. package/dist/dsh/agenticreplay-security.js +84 -3
  48. package/dist/dsh/agenticreplay-security.js.map +1 -1
  49. package/dist/dsh/answer-review/coordinator.js +2 -1
  50. package/dist/dsh/answer-review/coordinator.js.map +1 -1
  51. package/dist/dsh/auto-memory-review.d.ts.map +1 -1
  52. package/dist/dsh/auto-memory-review.js +10 -193
  53. package/dist/dsh/auto-memory-review.js.map +1 -1
  54. package/dist/dsh/coding-workflow/contracts.d.ts +2 -0
  55. package/dist/dsh/coding-workflow/contracts.d.ts.map +1 -1
  56. package/dist/dsh/coding-workflow/contracts.js.map +1 -1
  57. package/dist/dsh/coding-workflow/intent.d.ts.map +1 -1
  58. package/dist/dsh/coding-workflow/intent.js +12 -4
  59. package/dist/dsh/coding-workflow/intent.js.map +1 -1
  60. package/dist/dsh/coding-workflow/service.d.ts +10 -81
  61. package/dist/dsh/coding-workflow/service.d.ts.map +1 -1
  62. package/dist/dsh/coding-workflow/service.js +52 -1
  63. package/dist/dsh/coding-workflow/service.js.map +1 -1
  64. package/dist/dsh/coding-workflow/store.d.ts +22 -0
  65. package/dist/dsh/coding-workflow/store.d.ts.map +1 -1
  66. package/dist/dsh/coding-workflow/store.js +51 -0
  67. package/dist/dsh/coding-workflow/store.js.map +1 -1
  68. package/dist/dsh/completion-verifiers.d.ts +6 -0
  69. package/dist/dsh/completion-verifiers.d.ts.map +1 -1
  70. package/dist/dsh/completion-verifiers.js.map +1 -1
  71. package/dist/dsh/composition.d.ts +2 -0
  72. package/dist/dsh/composition.d.ts.map +1 -1
  73. package/dist/dsh/composition.js +3 -0
  74. package/dist/dsh/composition.js.map +1 -1
  75. package/dist/dsh/config.d.ts +1 -1
  76. package/dist/dsh/config.d.ts.map +1 -1
  77. package/dist/dsh/config.js +3 -3
  78. package/dist/dsh/config.js.map +1 -1
  79. package/dist/dsh/core/host.d.ts.map +1 -1
  80. package/dist/dsh/core/host.js +159 -34
  81. package/dist/dsh/core/host.js.map +1 -1
  82. package/dist/dsh/core/tasks.d.ts +5 -2
  83. package/dist/dsh/core/tasks.d.ts.map +1 -1
  84. package/dist/dsh/core/tasks.js +124 -93
  85. package/dist/dsh/core/tasks.js.map +1 -1
  86. package/dist/dsh/decisions/request-intent.d.ts +114 -1
  87. package/dist/dsh/decisions/request-intent.d.ts.map +1 -1
  88. package/dist/dsh/decisions/request-intent.js +102 -18
  89. package/dist/dsh/decisions/request-intent.js.map +1 -1
  90. package/dist/dsh/execution-result.d.ts +1 -0
  91. package/dist/dsh/execution-result.d.ts.map +1 -1
  92. package/dist/dsh/execution-support.d.ts +2 -0
  93. package/dist/dsh/execution-support.d.ts.map +1 -1
  94. package/dist/dsh/execution-support.js +39 -4
  95. package/dist/dsh/execution-support.js.map +1 -1
  96. package/dist/dsh/existing-task-intake.d.ts +22 -0
  97. package/dist/dsh/existing-task-intake.d.ts.map +1 -0
  98. package/dist/dsh/existing-task-intake.js +46 -0
  99. package/dist/dsh/existing-task-intake.js.map +1 -0
  100. package/dist/dsh/finalization-request.d.ts +1 -1
  101. package/dist/dsh/finalization-request.d.ts.map +1 -1
  102. package/dist/dsh/finalization-request.js +1 -1
  103. package/dist/dsh/finalization-request.js.map +1 -1
  104. package/dist/dsh/guardrail/contracts.d.ts +85 -0
  105. package/dist/dsh/guardrail/contracts.d.ts.map +1 -0
  106. package/dist/dsh/guardrail/contracts.js +10 -0
  107. package/dist/dsh/guardrail/contracts.js.map +1 -0
  108. package/dist/dsh/guardrail/engine.d.ts +19 -0
  109. package/dist/dsh/guardrail/engine.d.ts.map +1 -0
  110. package/dist/dsh/guardrail/engine.js +178 -0
  111. package/dist/dsh/guardrail/engine.js.map +1 -0
  112. package/dist/dsh/guardrail/evidence.d.ts +16 -0
  113. package/dist/dsh/guardrail/evidence.d.ts.map +1 -0
  114. package/dist/dsh/guardrail/evidence.js +101 -0
  115. package/dist/dsh/guardrail/evidence.js.map +1 -0
  116. package/dist/dsh/guardrail/service.d.ts +27 -0
  117. package/dist/dsh/guardrail/service.d.ts.map +1 -0
  118. package/dist/dsh/guardrail/service.js +253 -0
  119. package/dist/dsh/guardrail/service.js.map +1 -0
  120. package/dist/dsh/host-adapter/admission.d.ts.map +1 -1
  121. package/dist/dsh/host-adapter/admission.js +143 -144
  122. package/dist/dsh/host-adapter/admission.js.map +1 -1
  123. package/dist/dsh/host-adapter/lifecycle.d.ts +1 -0
  124. package/dist/dsh/host-adapter/lifecycle.d.ts.map +1 -1
  125. package/dist/dsh/host-adapter/lifecycle.js +107 -77
  126. package/dist/dsh/host-adapter/lifecycle.js.map +1 -1
  127. package/dist/dsh/host-adapter/routing.d.ts.map +1 -1
  128. package/dist/dsh/host-adapter/routing.js +4 -4
  129. package/dist/dsh/host-adapter/routing.js.map +1 -1
  130. package/dist/dsh/host-adapter/turn-state.d.ts +4 -2
  131. package/dist/dsh/host-adapter/turn-state.d.ts.map +1 -1
  132. package/dist/dsh/host-adapter/turn-state.js +14 -7
  133. package/dist/dsh/host-adapter/turn-state.js.map +1 -1
  134. package/dist/dsh/host-adapter.d.ts.map +1 -1
  135. package/dist/dsh/host-adapter.js +125 -24
  136. package/dist/dsh/host-adapter.js.map +1 -1
  137. package/dist/dsh/intake-clarification.js +2 -2
  138. package/dist/dsh/intake-clarification.js.map +1 -1
  139. package/dist/dsh/intake-gate.js +6 -7
  140. package/dist/dsh/intake-gate.js.map +1 -1
  141. package/dist/dsh/legacy-session-codecs.d.ts +1 -0
  142. package/dist/dsh/legacy-session-codecs.d.ts.map +1 -1
  143. package/dist/dsh/legacy-session-codecs.js +831 -127
  144. package/dist/dsh/legacy-session-codecs.js.map +4 -4
  145. package/dist/dsh/lifecycle-memory.d.ts +66 -0
  146. package/dist/dsh/lifecycle-memory.d.ts.map +1 -0
  147. package/dist/dsh/lifecycle-memory.js +380 -0
  148. package/dist/dsh/lifecycle-memory.js.map +1 -0
  149. package/dist/dsh/lisp/candidate.d.ts +2 -2
  150. package/dist/dsh/lisp/ci.d.ts +2 -1
  151. package/dist/dsh/lisp/ci.d.ts.map +1 -1
  152. package/dist/dsh/lisp/ci.js +15 -2
  153. package/dist/dsh/lisp/ci.js.map +1 -1
  154. package/dist/dsh/lisp/contracts.d.ts +1 -18
  155. package/dist/dsh/lisp/contracts.d.ts.map +1 -1
  156. package/dist/dsh/lisp/contracts.js +1 -10
  157. package/dist/dsh/lisp/contracts.js.map +1 -1
  158. package/dist/dsh/lisp/files.d.ts +1 -1
  159. package/dist/dsh/lisp/files.d.ts.map +1 -1
  160. package/dist/dsh/lisp/files.js +17 -4
  161. package/dist/dsh/lisp/files.js.map +1 -1
  162. package/dist/dsh/lisp/hot-store.d.ts.map +1 -1
  163. package/dist/dsh/lisp/hot-store.js +4 -0
  164. package/dist/dsh/lisp/hot-store.js.map +1 -1
  165. package/dist/dsh/lisp/hot-tools.d.ts +2 -0
  166. package/dist/dsh/lisp/hot-tools.d.ts.map +1 -1
  167. package/dist/dsh/lisp/hot-tools.js +10 -0
  168. package/dist/dsh/lisp/hot-tools.js.map +1 -1
  169. package/dist/dsh/lisp/manager.d.ts +14 -1
  170. package/dist/dsh/lisp/manager.d.ts.map +1 -1
  171. package/dist/dsh/lisp/manager.js +238 -37
  172. package/dist/dsh/lisp/manager.js.map +1 -1
  173. package/dist/dsh/lisp/memory-verification.d.ts +5 -2
  174. package/dist/dsh/lisp/memory-verification.d.ts.map +1 -1
  175. package/dist/dsh/lisp/memory-verification.js +5 -1
  176. package/dist/dsh/lisp/memory-verification.js.map +1 -1
  177. package/dist/dsh/lisp/package-manager.d.ts +1 -1
  178. package/dist/dsh/lisp/package-manager.d.ts.map +1 -1
  179. package/dist/dsh/lisp/package-manager.js +10 -1
  180. package/dist/dsh/lisp/package-manager.js.map +1 -1
  181. package/dist/dsh/lisp/packages.d.ts +1 -1
  182. package/dist/dsh/lisp/packages.d.ts.map +1 -1
  183. package/dist/dsh/lisp/packages.js +15 -5
  184. package/dist/dsh/lisp/packages.js.map +1 -1
  185. package/dist/dsh/lisp/proposal-batch.d.ts +2 -0
  186. package/dist/dsh/lisp/proposal-batch.d.ts.map +1 -1
  187. package/dist/dsh/lisp/proposal-batch.js +17 -3
  188. package/dist/dsh/lisp/proposal-batch.js.map +1 -1
  189. package/dist/dsh/lisp/request-surface.d.ts +12 -0
  190. package/dist/dsh/lisp/request-surface.d.ts.map +1 -1
  191. package/dist/dsh/lisp/store.d.ts +2 -1
  192. package/dist/dsh/lisp/store.d.ts.map +1 -1
  193. package/dist/dsh/lisp/store.js +5 -1
  194. package/dist/dsh/lisp/store.js.map +1 -1
  195. package/dist/dsh/lisp/surface.d.ts.map +1 -1
  196. package/dist/dsh/lisp/surface.js +107 -13
  197. package/dist/dsh/lisp/surface.js.map +1 -1
  198. package/dist/dsh/lisp/task-authority.d.ts +29 -0
  199. package/dist/dsh/lisp/task-authority.d.ts.map +1 -0
  200. package/dist/dsh/lisp/task-authority.js +87 -0
  201. package/dist/dsh/lisp/task-authority.js.map +1 -0
  202. package/dist/dsh/lisp/worker.d.ts +3 -1
  203. package/dist/dsh/lisp/worker.d.ts.map +1 -1
  204. package/dist/dsh/lisp/worker.js +26 -4
  205. package/dist/dsh/lisp/worker.js.map +1 -1
  206. package/dist/dsh/lisp-config.d.ts +21 -0
  207. package/dist/dsh/lisp-config.d.ts.map +1 -0
  208. package/dist/dsh/lisp-config.js +13 -0
  209. package/dist/dsh/lisp-config.js.map +1 -0
  210. package/dist/dsh/memory-application.d.ts +3 -2
  211. package/dist/dsh/memory-application.d.ts.map +1 -1
  212. package/dist/dsh/memory-application.js +31 -22
  213. package/dist/dsh/memory-application.js.map +1 -1
  214. package/dist/dsh/model-handoff.d.ts.map +1 -1
  215. package/dist/dsh/model-handoff.js +2 -1
  216. package/dist/dsh/model-handoff.js.map +1 -1
  217. package/dist/dsh/models/service.d.ts.map +1 -1
  218. package/dist/dsh/models/service.js +13 -2
  219. package/dist/dsh/models/service.js.map +1 -1
  220. package/dist/dsh/models/vendor/opencode-codec.d.ts.map +1 -1
  221. package/dist/dsh/models/vendor/opencode-codec.js +71 -0
  222. package/dist/dsh/models/vendor/opencode-codec.js.map +1 -1
  223. package/dist/dsh/native-cancellation-observer.d.ts +13 -0
  224. package/dist/dsh/native-cancellation-observer.d.ts.map +1 -0
  225. package/dist/dsh/native-cancellation-observer.js +54 -0
  226. package/dist/dsh/native-cancellation-observer.js.map +1 -0
  227. package/dist/dsh/native-execution-ownership.d.ts +6 -0
  228. package/dist/dsh/native-execution-ownership.d.ts.map +1 -0
  229. package/dist/dsh/native-execution-ownership.js +34 -0
  230. package/dist/dsh/native-execution-ownership.js.map +1 -0
  231. package/dist/dsh/native-subagent.d.ts +2 -2
  232. package/dist/dsh/native-subagent.d.ts.map +1 -1
  233. package/dist/dsh/native-subagent.js +2 -3
  234. package/dist/dsh/native-subagent.js.map +1 -1
  235. package/dist/dsh/native-task-authority.d.ts +66 -0
  236. package/dist/dsh/native-task-authority.d.ts.map +1 -0
  237. package/dist/dsh/native-task-authority.js +220 -0
  238. package/dist/dsh/native-task-authority.js.map +1 -0
  239. package/dist/dsh/node-tap-summary.d.ts +1 -2
  240. package/dist/dsh/node-tap-summary.d.ts.map +1 -1
  241. package/dist/dsh/node-tap-summary.js +2 -24
  242. package/dist/dsh/node-tap-summary.js.map +1 -1
  243. package/dist/dsh/observation-pack/policy.d.ts +1 -0
  244. package/dist/dsh/observation-pack/policy.d.ts.map +1 -1
  245. package/dist/dsh/observation-pack/policy.js +3 -0
  246. package/dist/dsh/observation-pack/policy.js.map +1 -1
  247. package/dist/dsh/observation-pack/service.d.ts.map +1 -1
  248. package/dist/dsh/observation-pack/service.js +3 -1
  249. package/dist/dsh/observation-pack/service.js.map +1 -1
  250. package/dist/dsh/on-demand-intake.d.ts +28 -1
  251. package/dist/dsh/on-demand-intake.d.ts.map +1 -1
  252. package/dist/dsh/on-demand-intake.js +171 -10
  253. package/dist/dsh/on-demand-intake.js.map +1 -1
  254. package/dist/dsh/orchestration/execution-owner.js +1 -1
  255. package/dist/dsh/orchestration/execution-owner.js.map +1 -1
  256. package/dist/dsh/orchestration/managed-agent-executor.d.ts +12 -1
  257. package/dist/dsh/orchestration/managed-agent-executor.d.ts.map +1 -1
  258. package/dist/dsh/orchestration/managed-agent-executor.js +28 -2
  259. package/dist/dsh/orchestration/managed-agent-executor.js.map +1 -1
  260. package/dist/dsh/owned-completion-evidence.d.ts +11 -0
  261. package/dist/dsh/owned-completion-evidence.d.ts.map +1 -0
  262. package/dist/dsh/owned-completion-evidence.js +59 -0
  263. package/dist/dsh/owned-completion-evidence.js.map +1 -0
  264. package/dist/dsh/owned-execution.d.ts +28 -1
  265. package/dist/dsh/owned-execution.d.ts.map +1 -1
  266. package/dist/dsh/owned-execution.js +325 -101
  267. package/dist/dsh/owned-execution.js.map +1 -1
  268. package/dist/dsh/owned-read-owner.d.ts +6 -0
  269. package/dist/dsh/owned-read-owner.d.ts.map +1 -0
  270. package/dist/dsh/owned-read-owner.js +22 -0
  271. package/dist/dsh/owned-read-owner.js.map +1 -0
  272. package/dist/dsh/replay-memory-extract.d.ts +36 -0
  273. package/dist/dsh/replay-memory-extract.d.ts.map +1 -0
  274. package/dist/dsh/replay-memory-extract.js +192 -0
  275. package/dist/dsh/replay-memory-extract.js.map +1 -0
  276. package/dist/dsh/semantic-compaction/coordinator.d.ts.map +1 -1
  277. package/dist/dsh/semantic-compaction/coordinator.js +2 -1
  278. package/dist/dsh/semantic-compaction/coordinator.js.map +1 -1
  279. package/dist/dsh/session-bridge.d.ts +3 -0
  280. package/dist/dsh/session-bridge.d.ts.map +1 -1
  281. package/dist/dsh/session-bridge.js +22 -25
  282. package/dist/dsh/session-bridge.js.map +1 -1
  283. package/dist/dsh/session-history-compatibility.d.ts.map +1 -1
  284. package/dist/dsh/session-history-compatibility.js +15 -1
  285. package/dist/dsh/session-history-compatibility.js.map +1 -1
  286. package/dist/dsh/session-history-lookup.d.ts +1 -1
  287. package/dist/dsh/session-history-lookup.d.ts.map +1 -1
  288. package/dist/dsh/session-history-lookup.js +4 -3
  289. package/dist/dsh/session-history-lookup.js.map +1 -1
  290. package/dist/dsh/session-memory-finalizer.d.ts.map +1 -1
  291. package/dist/dsh/session-memory-finalizer.js +129 -117
  292. package/dist/dsh/session-memory-finalizer.js.map +1 -1
  293. package/dist/dsh/setup.d.ts +1 -1
  294. package/dist/dsh/setup.d.ts.map +1 -1
  295. package/dist/dsh/setup.js +1 -1
  296. package/dist/dsh/skill-prompts.json +1 -1
  297. package/dist/dsh/task-authority-context.d.ts +8 -0
  298. package/dist/dsh/task-authority-context.d.ts.map +1 -0
  299. package/dist/dsh/task-authority-context.js +28 -0
  300. package/dist/dsh/task-authority-context.js.map +1 -0
  301. package/dist/dsh/task-completion-host.d.ts +2 -1
  302. package/dist/dsh/task-completion-host.d.ts.map +1 -1
  303. package/dist/dsh/task-completion-host.js +17 -5
  304. package/dist/dsh/task-completion-host.js.map +1 -1
  305. package/dist/dsh/task-completion.d.ts +13 -0
  306. package/dist/dsh/task-completion.d.ts.map +1 -1
  307. package/dist/dsh/task-completion.js +23 -6
  308. package/dist/dsh/task-completion.js.map +1 -1
  309. package/dist/dsh/task-intake.d.ts.map +1 -1
  310. package/dist/dsh/task-intake.js +7 -16
  311. package/dist/dsh/task-intake.js.map +1 -1
  312. package/dist/dsh/task-source-history.d.ts +33 -0
  313. package/dist/dsh/task-source-history.d.ts.map +1 -0
  314. package/dist/dsh/task-source-history.js +62 -0
  315. package/dist/dsh/task-source-history.js.map +1 -0
  316. package/dist/dsh/task-state-host.d.ts +124 -0
  317. package/dist/dsh/task-state-host.d.ts.map +1 -0
  318. package/dist/dsh/task-state-host.js +403 -0
  319. package/dist/dsh/task-state-host.js.map +1 -0
  320. package/dist/dsh/task-state-surface.d.ts +8 -0
  321. package/dist/dsh/task-state-surface.d.ts.map +1 -0
  322. package/dist/dsh/task-state-surface.js +113 -0
  323. package/dist/dsh/task-state-surface.js.map +1 -0
  324. package/dist/dsh/task-state.d.ts +217 -0
  325. package/dist/dsh/task-state.d.ts.map +1 -0
  326. package/dist/dsh/task-state.js +315 -0
  327. package/dist/dsh/task-state.js.map +1 -0
  328. package/dist/dsh/tool-exposure-config.d.ts +12 -0
  329. package/dist/dsh/tool-exposure-config.d.ts.map +1 -0
  330. package/dist/dsh/tool-exposure-config.js +4 -0
  331. package/dist/dsh/tool-exposure-config.js.map +1 -0
  332. package/dist/dsh/tool-exposure.d.ts +2 -11
  333. package/dist/dsh/tool-exposure.d.ts.map +1 -1
  334. package/dist/dsh/tool-exposure.js +2 -2
  335. package/dist/dsh/tool-exposure.js.map +1 -1
  336. package/dist/dsh/tools.d.ts +2 -2
  337. package/dist/dsh/tools.d.ts.map +1 -1
  338. package/dist/dsh/tools.js +3 -2
  339. package/dist/dsh/tools.js.map +1 -1
  340. package/dist/enno-oduno/memory-verification.d.ts +2 -1
  341. package/dist/enno-oduno/memory-verification.d.ts.map +1 -1
  342. package/dist/enno-oduno/memory-verification.js +42 -30
  343. package/dist/enno-oduno/memory-verification.js.map +1 -1
  344. package/dist/enno-oduno/schemas.d.ts +1 -1
  345. package/dist/enno-oduno/store.d.ts +7 -0
  346. package/dist/enno-oduno/store.d.ts.map +1 -1
  347. package/dist/enno-oduno/store.js +42 -0
  348. package/dist/enno-oduno/store.js.map +1 -1
  349. package/dist/ledger/store.d.ts.map +1 -1
  350. package/dist/ledger/store.js +0 -5
  351. package/dist/ledger/store.js.map +1 -1
  352. package/dist/locale/en.json +1 -1
  353. package/dist/locale/ja.json +1 -1
  354. package/dist/locale/ko.json +1 -1
  355. package/dist/locale/zh-CN.json +1 -1
  356. package/dist/memory/application.js +1 -1
  357. package/dist/memory/application.js.map +1 -1
  358. package/dist/memory/auto-globalization.d.ts.map +1 -1
  359. package/dist/memory/auto-globalization.js +4 -82
  360. package/dist/memory/auto-globalization.js.map +1 -1
  361. package/dist/memory/evolution/contracts.d.ts +3 -1
  362. package/dist/memory/evolution/contracts.d.ts.map +1 -1
  363. package/dist/memory/evolution/contracts.js +1 -1
  364. package/dist/memory/evolution/contracts.js.map +1 -1
  365. package/dist/memory/evolution/store.d.ts +2 -1
  366. package/dist/memory/evolution/store.d.ts.map +1 -1
  367. package/dist/memory/evolution/store.js +75 -34
  368. package/dist/memory/evolution/store.js.map +1 -1
  369. package/dist/memory/evolution/worker.d.ts +1 -0
  370. package/dist/memory/evolution/worker.d.ts.map +1 -1
  371. package/dist/memory/evolution/worker.js +6 -18
  372. package/dist/memory/evolution/worker.js.map +1 -1
  373. package/dist/memory/explain.d.ts.map +1 -1
  374. package/dist/memory/explain.js +2 -2
  375. package/dist/memory/explain.js.map +1 -1
  376. package/dist/memory/forget.d.ts.map +1 -1
  377. package/dist/memory/forget.js +12 -3
  378. package/dist/memory/forget.js.map +1 -1
  379. package/dist/memory/hybrid-retrieval.d.ts.map +1 -1
  380. package/dist/memory/hybrid-retrieval.js +3 -0
  381. package/dist/memory/hybrid-retrieval.js.map +1 -1
  382. package/dist/memory/index-reasoning/service.d.ts.map +1 -1
  383. package/dist/memory/index-reasoning/service.js +5 -43
  384. package/dist/memory/index-reasoning/service.js.map +1 -1
  385. package/dist/memory/index-reasoning/worker.d.ts.map +1 -1
  386. package/dist/memory/index-reasoning/worker.js +1 -15
  387. package/dist/memory/index-reasoning/worker.js.map +1 -1
  388. package/dist/memory/lifecycle-cache.d.ts +12 -0
  389. package/dist/memory/lifecycle-cache.d.ts.map +1 -0
  390. package/dist/memory/lifecycle-cache.js +36 -0
  391. package/dist/memory/lifecycle-cache.js.map +1 -0
  392. package/dist/memory/lifecycle-database.d.ts +5 -0
  393. package/dist/memory/lifecycle-database.d.ts.map +1 -0
  394. package/dist/memory/lifecycle-database.js +32 -0
  395. package/dist/memory/lifecycle-database.js.map +1 -0
  396. package/dist/memory/lifecycle-global-state.d.ts +5 -0
  397. package/dist/memory/lifecycle-global-state.d.ts.map +1 -0
  398. package/dist/memory/lifecycle-global-state.js +23 -0
  399. package/dist/memory/lifecycle-global-state.js.map +1 -0
  400. package/dist/memory/lifecycle-global.d.ts +23 -0
  401. package/dist/memory/lifecycle-global.d.ts.map +1 -0
  402. package/dist/memory/lifecycle-global.js +56 -0
  403. package/dist/memory/lifecycle-global.js.map +1 -0
  404. package/dist/memory/lifecycle.d.ts +152 -0
  405. package/dist/memory/lifecycle.d.ts.map +1 -0
  406. package/dist/memory/lifecycle.js +152 -0
  407. package/dist/memory/lifecycle.js.map +1 -0
  408. package/dist/memory/replay-review.d.ts +90 -0
  409. package/dist/memory/replay-review.d.ts.map +1 -0
  410. package/dist/memory/replay-review.js +82 -0
  411. package/dist/memory/replay-review.js.map +1 -0
  412. package/dist/memory/replay-store.d.ts +14 -0
  413. package/dist/memory/replay-store.d.ts.map +1 -0
  414. package/dist/memory/replay-store.js +117 -0
  415. package/dist/memory/replay-store.js.map +1 -0
  416. package/dist/memory/review/adoption.d.ts.map +1 -1
  417. package/dist/memory/review/adoption.js +2 -106
  418. package/dist/memory/review/adoption.js.map +1 -1
  419. package/dist/memory/review/store.d.ts.map +1 -1
  420. package/dist/memory/review/store.js +9 -5
  421. package/dist/memory/review/store.js.map +1 -1
  422. package/dist/memory/review/worker.d.ts.map +1 -1
  423. package/dist/memory/review/worker.js +1 -7
  424. package/dist/memory/review/worker.js.map +1 -1
  425. package/dist/memory/scoped-memory.js +1 -1
  426. package/dist/memory/scoped-memory.js.map +1 -1
  427. package/dist/model-tools/contracts.d.ts +4 -4
  428. package/dist/model-tools/contracts.d.ts.map +1 -1
  429. package/dist/model-tools/contracts.js +1 -11
  430. package/dist/model-tools/contracts.js.map +1 -1
  431. package/dist/model-tools/names.d.ts +4 -0
  432. package/dist/model-tools/names.d.ts.map +1 -0
  433. package/dist/model-tools/names.js +13 -0
  434. package/dist/model-tools/names.js.map +1 -0
  435. package/docs/agenticreplay-recording.md +1 -1
  436. package/docs/code-intelligence.md +54 -119
  437. package/docs/dsh-plugin.md +86 -9
  438. package/docs/getting-started.md +10 -0
  439. package/docs/guardrail-licenses/Apache-2.0.txt +73 -0
  440. package/docs/guardrail-licenses/BSD-2-Clause.txt +9 -0
  441. package/docs/guardrail-licenses/COPYRIGHT-Rust.txt +34 -0
  442. package/docs/guardrail-licenses/COPYRIGHT-library.html +29357 -0
  443. package/docs/guardrail-licenses/ISC.txt +7 -0
  444. package/docs/guardrail-licenses/LICENSE-APACHE +176 -0
  445. package/docs/guardrail-licenses/LICENSE-MIT +25 -0
  446. package/docs/guardrail-licenses/LLVM-exception.txt +15 -0
  447. package/docs/guardrail-licenses/MIT.txt +9 -0
  448. package/docs/guardrail-licenses/NCSA.txt +29 -0
  449. package/docs/guardrail-licenses/README.md +7 -0
  450. package/docs/guardrail-licenses/Unicode-3.0.txt +39 -0
  451. package/docs/guardrail-licenses/libunwind-LICENSE.txt +311 -0
  452. package/docs/guardrail-licenses/manifest.json +71 -0
  453. package/docs/guardrail-licenses/musl-COPYRIGHT.txt +193 -0
  454. package/docs/guardrail.md +33 -0
  455. package/docs/lifecycle-memory.md +25 -0
  456. package/docs/lisp.md +33 -9
  457. package/docs/memory-evolution.md +6 -6
  458. package/docs/owned-execution.md +3 -3
  459. package/docs/replay-memory-review.md +26 -0
  460. package/docs/semantic-compaction.md +2 -0
  461. package/guardrail/aarch64-apple-darwin/kiokuko-guardrail +0 -0
  462. package/guardrail/aarch64-apple-darwin/manifest.json +71 -0
  463. package/guardrail/aarch64-unknown-linux-musl/kiokuko-guardrail +0 -0
  464. package/guardrail/aarch64-unknown-linux-musl/manifest.json +69 -0
  465. package/guardrail/manifest.json +204 -0
  466. package/guardrail/node-runner.mjs +37 -0
  467. package/guardrail/protocols/coding-routine.lisp +33 -0
  468. package/guardrail/x86_64-apple-darwin/kiokuko-guardrail +0 -0
  469. package/guardrail/x86_64-apple-darwin/manifest.json +71 -0
  470. package/guardrail/x86_64-unknown-linux-musl/kiokuko-guardrail +0 -0
  471. package/guardrail/x86_64-unknown-linux-musl/manifest.json +68 -0
  472. package/migrations/038_coding_admission.sql +19 -0
  473. package/migrations/039_memory_lifecycle.sql +336 -0
  474. package/migrations/040_task_state.sql +45 -0
  475. package/migrations/041_task_source_history.sql +88 -0
  476. package/migrations/042_evolution_source_epochs.sql +148 -0
  477. package/package.json +45 -27
  478. package/scripts/guardrail-artifacts.d.mts +13 -0
  479. package/scripts/guardrail-artifacts.mjs +136 -0
  480. package/skills/kiokuko-lisp/SKILL.md +1 -1
  481. package/skills/kiokuko-soul/SKILL.md +6 -6
@@ -0,0 +1,336 @@
1
+ CREATE TABLE dsh_memory_observations (
2
+ workspace TEXT NOT NULL,
3
+ producer TEXT NOT NULL,
4
+ event_id TEXT NOT NULL,
5
+ session_id TEXT NOT NULL,
6
+ source_key TEXT NOT NULL,
7
+ source_revision INTEGER NOT NULL CHECK(source_revision >= 0),
8
+ tombstone INTEGER NOT NULL CHECK(tombstone IN (0,1)),
9
+ host_verified INTEGER NOT NULL CHECK(host_verified IN (0,1)),
10
+ observation_json TEXT NOT NULL,
11
+ content_hash TEXT NOT NULL,
12
+ created_at TEXT NOT NULL,
13
+ PRIMARY KEY(workspace,producer,event_id,source_revision),
14
+ UNIQUE(workspace,producer,source_key,source_revision)
15
+ );
16
+ CREATE INDEX dsh_memory_observation_sources ON dsh_memory_observations(workspace,producer,source_key,source_revision DESC);
17
+ CREATE INDEX dsh_memory_observation_sessions ON dsh_memory_observations(workspace,session_id,created_at DESC);
18
+ CREATE TABLE dsh_memory_routine_revisions (
19
+ workspace TEXT NOT NULL,
20
+ candidate_id TEXT NOT NULL,
21
+ revision INTEGER NOT NULL CHECK(revision > 0),
22
+ candidate_json TEXT NOT NULL,
23
+ content_hash TEXT NOT NULL,
24
+ created_at TEXT NOT NULL,
25
+ PRIMARY KEY(workspace,candidate_id,revision)
26
+ );
27
+
28
+ CREATE INDEX dsh_memory_observation_recent ON dsh_memory_observations(workspace,created_at DESC,event_id DESC);
29
+ CREATE INDEX dsh_memory_routine_recent ON dsh_memory_routine_revisions(workspace,created_at DESC);
30
+ CREATE TABLE dsh_memory_principle_sources (
31
+ workspace TEXT NOT NULL,
32
+ candidate_id TEXT NOT NULL,
33
+ entry_id TEXT NOT NULL UNIQUE REFERENCES entries(id),
34
+ candidate_hash TEXT NOT NULL,
35
+ sources_json TEXT NOT NULL,
36
+ active INTEGER NOT NULL CHECK(active IN (0,1)),
37
+ PRIMARY KEY(workspace,candidate_id)
38
+ );
39
+
40
+ -- Domain revisions exclude ledger/recorder/audit traffic on the same database.
41
+ CREATE TABLE dsh_memory_processing_state (
42
+ workspace TEXT PRIMARY KEY,
43
+ source_revision INTEGER NOT NULL DEFAULT 0,
44
+ context_revision INTEGER NOT NULL DEFAULT 0,
45
+ processed_revision INTEGER NOT NULL DEFAULT -1,
46
+ processed_limit INTEGER NOT NULL DEFAULT 0
47
+ );
48
+ -- Terminal source eligibility may change on a real resume; sequence/audit
49
+ -- updates alone must leave cached context untouched.
50
+ CREATE TRIGGER lifecycle_reference_run_status AFTER UPDATE OF status,workspace ON ledger_runs
51
+ WHEN OLD.status IS NOT NEW.status OR OLD.workspace IS NOT NEW.workspace BEGIN
52
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
53
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
54
+ END;
55
+ CREATE TRIGGER lifecycle_version_dsh_memory_observations_insert AFTER INSERT ON dsh_memory_observations BEGIN
56
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(NEW.workspace,1,1)
57
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+1,context_revision=context_revision+1;
58
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE NEW.workspace<>'global'
59
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
60
+ END;
61
+ CREATE TRIGGER lifecycle_version_dsh_memory_observations_update AFTER UPDATE ON dsh_memory_observations BEGIN
62
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(NEW.workspace,1,1)
63
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+1,context_revision=context_revision+1;
64
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE NEW.workspace<>'global'
65
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
66
+ END;
67
+ CREATE TRIGGER lifecycle_version_dsh_memory_observations_delete AFTER DELETE ON dsh_memory_observations BEGIN
68
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(OLD.workspace,1,1)
69
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+1,context_revision=context_revision+1;
70
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE OLD.workspace<>'global'
71
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
72
+ END;
73
+ CREATE TRIGGER lifecycle_version_memory_capture_exclusions_insert AFTER INSERT ON memory_capture_exclusions BEGIN
74
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(NEW.workspace,1,1)
75
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+1,context_revision=context_revision+1;
76
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE NEW.workspace<>'global'
77
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
78
+ END;
79
+ CREATE TRIGGER lifecycle_version_memory_capture_exclusions_update AFTER UPDATE ON memory_capture_exclusions BEGIN
80
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(NEW.workspace,1,1)
81
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+1,context_revision=context_revision+1;
82
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE NEW.workspace<>'global'
83
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
84
+ END;
85
+ CREATE TRIGGER lifecycle_version_memory_capture_exclusions_delete AFTER DELETE ON memory_capture_exclusions BEGIN
86
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(OLD.workspace,1,1)
87
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+1,context_revision=context_revision+1;
88
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE OLD.workspace<>'global'
89
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
90
+ END;
91
+ CREATE TRIGGER lifecycle_version_dsh_memory_routine_revisions_insert AFTER INSERT ON dsh_memory_routine_revisions BEGIN
92
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(NEW.workspace,0,1)
93
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+0,context_revision=context_revision+1;
94
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE NEW.workspace<>'global'
95
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
96
+ END;
97
+ CREATE TRIGGER lifecycle_version_dsh_memory_routine_revisions_update AFTER UPDATE ON dsh_memory_routine_revisions BEGIN
98
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(NEW.workspace,0,1)
99
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+0,context_revision=context_revision+1;
100
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE NEW.workspace<>'global'
101
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
102
+ END;
103
+ CREATE TRIGGER lifecycle_version_dsh_memory_routine_revisions_delete AFTER DELETE ON dsh_memory_routine_revisions BEGIN
104
+ INSERT INTO dsh_memory_processing_state(workspace,source_revision,context_revision) VALUES(OLD.workspace,0,1)
105
+ ON CONFLICT(workspace) DO UPDATE SET source_revision=source_revision+0,context_revision=context_revision+1;
106
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) SELECT 'global',1 WHERE OLD.workspace<>'global'
107
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
108
+ END;
109
+ CREATE TRIGGER lifecycle_reference_dsh_memory_principle_sources_insert AFTER INSERT ON dsh_memory_principle_sources BEGIN
110
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
111
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
112
+ END;
113
+ CREATE TRIGGER lifecycle_reference_dsh_memory_principle_sources_update AFTER UPDATE ON dsh_memory_principle_sources BEGIN
114
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
115
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
116
+ END;
117
+ CREATE TRIGGER lifecycle_reference_dsh_memory_principle_sources_delete AFTER DELETE ON dsh_memory_principle_sources BEGIN
118
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
119
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
120
+ END;
121
+ CREATE TRIGGER lifecycle_reference_entries_insert AFTER INSERT ON entries BEGIN
122
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
123
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
124
+ END;
125
+ CREATE TRIGGER lifecycle_reference_entries_update AFTER UPDATE ON entries BEGIN
126
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
127
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
128
+ END;
129
+ CREATE TRIGGER lifecycle_reference_entries_delete AFTER DELETE ON entries BEGIN
130
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
131
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
132
+ END;
133
+ CREATE TRIGGER lifecycle_reference_entry_revisions_insert AFTER INSERT ON entry_revisions BEGIN
134
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
135
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
136
+ END;
137
+ CREATE TRIGGER lifecycle_reference_entry_revisions_update AFTER UPDATE ON entry_revisions BEGIN
138
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
139
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
140
+ END;
141
+ CREATE TRIGGER lifecycle_reference_entry_revisions_delete AFTER DELETE ON entry_revisions BEGIN
142
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
143
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
144
+ END;
145
+ CREATE TRIGGER lifecycle_reference_entry_revision_tags_insert AFTER INSERT ON entry_revision_tags BEGIN
146
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
147
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
148
+ END;
149
+ CREATE TRIGGER lifecycle_reference_entry_revision_tags_update AFTER UPDATE ON entry_revision_tags BEGIN
150
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
151
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
152
+ END;
153
+ CREATE TRIGGER lifecycle_reference_entry_revision_tags_delete AFTER DELETE ON entry_revision_tags BEGIN
154
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
155
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
156
+ END;
157
+ CREATE TRIGGER lifecycle_reference_context_feedback_insert AFTER INSERT ON context_feedback BEGIN
158
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
159
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
160
+ END;
161
+ CREATE TRIGGER lifecycle_reference_context_feedback_update AFTER UPDATE ON context_feedback BEGIN
162
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
163
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
164
+ END;
165
+ CREATE TRIGGER lifecycle_reference_context_feedback_delete AFTER DELETE ON context_feedback BEGIN
166
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
167
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
168
+ END;
169
+ CREATE TRIGGER lifecycle_reference_auto_global_projections_insert AFTER INSERT ON auto_global_projections BEGIN
170
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
171
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
172
+ END;
173
+ CREATE TRIGGER lifecycle_reference_auto_global_projections_update AFTER UPDATE ON auto_global_projections BEGIN
174
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
175
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
176
+ END;
177
+ CREATE TRIGGER lifecycle_reference_auto_global_projections_delete AFTER DELETE ON auto_global_projections BEGIN
178
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
179
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
180
+ END;
181
+ CREATE TRIGGER lifecycle_reference_auto_global_application_receipts_insert AFTER INSERT ON auto_global_application_receipts BEGIN
182
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
183
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
184
+ END;
185
+ CREATE TRIGGER lifecycle_reference_auto_global_application_receipts_update AFTER UPDATE ON auto_global_application_receipts BEGIN
186
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
187
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
188
+ END;
189
+ CREATE TRIGGER lifecycle_reference_auto_global_application_receipts_delete AFTER DELETE ON auto_global_application_receipts BEGIN
190
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
191
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
192
+ END;
193
+ CREATE TRIGGER lifecycle_reference_memory_forget_tombstones_insert AFTER INSERT ON memory_forget_tombstones BEGIN
194
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
195
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
196
+ END;
197
+ CREATE TRIGGER lifecycle_reference_memory_forget_tombstones_update AFTER UPDATE ON memory_forget_tombstones BEGIN
198
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
199
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
200
+ END;
201
+ CREATE TRIGGER lifecycle_reference_memory_forget_tombstones_delete AFTER DELETE ON memory_forget_tombstones BEGIN
202
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
203
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
204
+ END;
205
+ CREATE TRIGGER lifecycle_reference_memory_derivations_insert AFTER INSERT ON memory_derivations BEGIN
206
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
207
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
208
+ END;
209
+ CREATE TRIGGER lifecycle_reference_memory_derivations_update AFTER UPDATE ON memory_derivations BEGIN
210
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
211
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
212
+ END;
213
+ CREATE TRIGGER lifecycle_reference_memory_derivations_delete AFTER DELETE ON memory_derivations BEGIN
214
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
215
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
216
+ END;
217
+ CREATE TRIGGER lifecycle_reference_memory_evolution_settings_insert AFTER INSERT ON memory_evolution_settings BEGIN
218
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
219
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
220
+ END;
221
+ CREATE TRIGGER lifecycle_reference_memory_evolution_settings_update AFTER UPDATE ON memory_evolution_settings BEGIN
222
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
223
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
224
+ END;
225
+ CREATE TRIGGER lifecycle_reference_memory_evolution_settings_delete AFTER DELETE ON memory_evolution_settings BEGIN
226
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
227
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
228
+ END;
229
+ CREATE TRIGGER lifecycle_reference_memory_index_facts_insert AFTER INSERT ON memory_index_facts BEGIN
230
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
231
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
232
+ END;
233
+ CREATE TRIGGER lifecycle_reference_memory_index_facts_update AFTER UPDATE ON memory_index_facts BEGIN
234
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
235
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
236
+ END;
237
+ CREATE TRIGGER lifecycle_reference_memory_index_facts_delete AFTER DELETE ON memory_index_facts BEGIN
238
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
239
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
240
+ END;
241
+ CREATE TRIGGER lifecycle_reference_memory_index_settings_insert AFTER INSERT ON memory_index_settings BEGIN
242
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
243
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
244
+ END;
245
+ CREATE TRIGGER lifecycle_reference_memory_index_settings_update AFTER UPDATE ON memory_index_settings BEGIN
246
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
247
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
248
+ END;
249
+ CREATE TRIGGER lifecycle_reference_memory_index_settings_delete AFTER DELETE ON memory_index_settings BEGIN
250
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
251
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
252
+ END;
253
+ CREATE TRIGGER lifecycle_reference_memory_index_sources_insert AFTER INSERT ON memory_index_sources BEGIN
254
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
255
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
256
+ END;
257
+ CREATE TRIGGER lifecycle_reference_memory_index_sources_update AFTER UPDATE ON memory_index_sources BEGIN
258
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
259
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
260
+ END;
261
+ CREATE TRIGGER lifecycle_reference_memory_index_sources_delete AFTER DELETE ON memory_index_sources BEGIN
262
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
263
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
264
+ END;
265
+ CREATE TRIGGER lifecycle_reference_external_skill_entries_insert AFTER INSERT ON external_skill_entries BEGIN
266
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
267
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
268
+ END;
269
+ CREATE TRIGGER lifecycle_reference_external_skill_entries_update AFTER UPDATE ON external_skill_entries BEGIN
270
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
271
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
272
+ END;
273
+ CREATE TRIGGER lifecycle_reference_external_skill_entries_delete AFTER DELETE ON external_skill_entries BEGIN
274
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
275
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
276
+ END;
277
+ CREATE TRIGGER lifecycle_reference_external_skills_insert AFTER INSERT ON external_skills BEGIN
278
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
279
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
280
+ END;
281
+ CREATE TRIGGER lifecycle_reference_external_skills_update AFTER UPDATE ON external_skills BEGIN
282
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
283
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
284
+ END;
285
+ CREATE TRIGGER lifecycle_reference_external_skills_delete AFTER DELETE ON external_skills BEGIN
286
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
287
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
288
+ END;
289
+ CREATE TRIGGER lifecycle_reference_entry_links_insert AFTER INSERT ON entry_links BEGIN
290
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
291
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
292
+ END;
293
+ CREATE TRIGGER lifecycle_reference_entry_links_update AFTER UPDATE ON entry_links BEGIN
294
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
295
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
296
+ END;
297
+ CREATE TRIGGER lifecycle_reference_entry_links_delete AFTER DELETE ON entry_links BEGIN
298
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
299
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
300
+ END;
301
+ CREATE TRIGGER lifecycle_reference_knowledge_sources_insert AFTER INSERT ON knowledge_sources BEGIN
302
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
303
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
304
+ END;
305
+ CREATE TRIGGER lifecycle_reference_knowledge_sources_update AFTER UPDATE ON knowledge_sources BEGIN
306
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
307
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
308
+ END;
309
+ CREATE TRIGGER lifecycle_reference_knowledge_sources_delete AFTER DELETE ON knowledge_sources BEGIN
310
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
311
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
312
+ END;
313
+ CREATE TRIGGER lifecycle_reference_memory_episodes_insert AFTER INSERT ON memory_episodes BEGIN
314
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
315
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
316
+ END;
317
+ CREATE TRIGGER lifecycle_reference_memory_episodes_update AFTER UPDATE ON memory_episodes BEGIN
318
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
319
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
320
+ END;
321
+ CREATE TRIGGER lifecycle_reference_memory_episodes_delete AFTER DELETE ON memory_episodes BEGIN
322
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
323
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
324
+ END;
325
+ CREATE TRIGGER lifecycle_reference_memory_episode_entries_insert AFTER INSERT ON memory_episode_entries BEGIN
326
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
327
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
328
+ END;
329
+ CREATE TRIGGER lifecycle_reference_memory_episode_entries_update AFTER UPDATE ON memory_episode_entries BEGIN
330
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
331
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
332
+ END;
333
+ CREATE TRIGGER lifecycle_reference_memory_episode_entries_delete AFTER DELETE ON memory_episode_entries BEGIN
334
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
335
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
336
+ END;
@@ -0,0 +1,45 @@
1
+ -- The ledger run is the task. These columns do not replace execution outcomes.
2
+ ALTER TABLE ledger_runs ADD COLUMN task_state TEXT NOT NULL DEFAULT 'ToDo'
3
+ CHECK(task_state IN ('ToDo','Working','Pending','Done','Ignore'));
4
+ ALTER TABLE ledger_runs ADD COLUMN task_revision INTEGER NOT NULL DEFAULT 1 CHECK(task_revision > 0);
5
+ ALTER TABLE ledger_runs ADD COLUMN task_generation INTEGER NOT NULL DEFAULT 1 CHECK(task_generation > 0);
6
+ ALTER TABLE ledger_runs ADD COLUMN task_repository_root TEXT;
7
+ ALTER TABLE ledger_runs ADD COLUMN task_owner_session_id TEXT;
8
+ ALTER TABLE ledger_runs ADD COLUMN task_reason TEXT NOT NULL DEFAULT '';
9
+ ALTER TABLE ledger_runs ADD COLUMN task_evidence_json TEXT NOT NULL DEFAULT '[]' CHECK(json_valid(task_evidence_json));
10
+ ALTER TABLE ledger_runs ADD COLUMN task_resumed INTEGER NOT NULL DEFAULT 0 CHECK(task_resumed IN (0,1));
11
+ ALTER TABLE ledger_runs ADD COLUMN task_managed INTEGER NOT NULL DEFAULT 0 CHECK(task_managed IN (0,1));
12
+ ALTER TABLE ledger_runs ADD COLUMN task_pending_stop_json TEXT CHECK(task_pending_stop_json IS NULL OR json_valid(task_pending_stop_json));
13
+ ALTER TABLE ledger_runs ADD COLUMN task_unresolved_json TEXT CHECK(task_unresolved_json IS NULL OR json_valid(task_unresolved_json));
14
+ ALTER TABLE ledger_runs ADD COLUMN task_previous_outcome_json TEXT CHECK(task_previous_outcome_json IS NULL OR json_valid(task_previous_outcome_json));
15
+ UPDATE ledger_runs SET task_state=CASE status WHEN 'active' THEN 'Working' WHEN 'completed' THEN 'Done'
16
+ WHEN 'failed' THEN 'Pending' WHEN 'cancelled' THEN 'Pending' WHEN 'interrupted' THEN 'Pending' ELSE 'ToDo' END,
17
+ task_repository_root=COALESCE((SELECT repository_root FROM dsh_coding_workflows WHERE run_id=ledger_runs.run_id),
18
+ (SELECT repository_root FROM enno_contracts WHERE run_id=ledger_runs.run_id));
19
+
20
+ -- Evidence is host-observed provenance, never a second task-state store.
21
+ CREATE TABLE ledger_task_evidence (
22
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
23
+ evidence_ref TEXT NOT NULL,
24
+ generation INTEGER NOT NULL CHECK(generation > 0),
25
+ kind TEXT NOT NULL CHECK(kind IN ('verification','stopped')),
26
+ verified INTEGER NOT NULL CHECK(verified IN (0,1)),
27
+ details_json TEXT NOT NULL CHECK(json_valid(details_json)),
28
+ PRIMARY KEY(run_id,evidence_ref)
29
+ );
30
+ CREATE TRIGGER ledger_task_execution_outcome AFTER UPDATE OF status ON ledger_runs
31
+ WHEN NEW.status <> OLD.status AND NEW.task_revision=OLD.task_revision
32
+ BEGIN
33
+ UPDATE ledger_runs SET task_state=CASE
34
+ WHEN task_pending_stop_json IS NOT NULL THEN task_state
35
+ WHEN task_state IN ('Done','Ignore') THEN task_state
36
+ WHEN NEW.status IN ('completed','failed','cancelled','interrupted') THEN 'Pending'
37
+ WHEN NEW.status='active' AND task_managed=0 AND COALESCE(json_extract(metadata_json,'$.taskStateExplicit'),0)<>1 THEN 'Working'
38
+ ELSE task_state END,
39
+ task_revision=task_revision+1,task_generation=task_generation+1,task_resumed=0
40
+ WHERE run_id=NEW.run_id;
41
+ END;
42
+ CREATE TRIGGER ledger_task_terminal_owner_release AFTER UPDATE OF task_state ON ledger_runs
43
+ WHEN NEW.task_state IN ('Done','Ignore')
44
+ BEGIN DELETE FROM dsh_execution_owners WHERE run_id=NEW.run_id; END;
45
+ CREATE INDEX idx_ledger_task_session_state ON ledger_runs(dsh_session_id,task_state,updated_at);
@@ -0,0 +1,88 @@
1
+ -- Source history is provenance, not another task authority. Current jobs remain run-keyed.
2
+ ALTER TABLE dsh_memory_finalizations ADD COLUMN source_epoch INTEGER NOT NULL DEFAULT 1 CHECK(source_epoch>0);
3
+ ALTER TABLE dsh_memory_finalizations ADD COLUMN source_outcome TEXT CHECK(source_outcome IN ('completed','failed','cancelled','interrupted'));
4
+ CREATE TABLE dsh_task_source_history (
5
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
6
+ source_epoch INTEGER NOT NULL CHECK(source_epoch>0),
7
+ source_session_id TEXT NOT NULL,
8
+ original_session_id TEXT NOT NULL,
9
+ task_generation INTEGER NOT NULL,
10
+ next_owner_session_id TEXT NOT NULL,
11
+ operation_id TEXT NOT NULL,
12
+ reason TEXT NOT NULL,
13
+ boundary_json TEXT CHECK(boundary_json IS NULL OR json_valid(boundary_json)),
14
+ finalization_json TEXT CHECK(finalization_json IS NULL OR json_valid(finalization_json)),
15
+ review_state_json TEXT CHECK(review_state_json IS NULL OR json_valid(review_state_json)),
16
+ archived_at TEXT NOT NULL,
17
+ PRIMARY KEY(run_id,source_epoch)
18
+ );
19
+ CREATE TABLE dsh_task_source_entries (
20
+ run_id TEXT NOT NULL, source_epoch INTEGER NOT NULL,
21
+ entry_id TEXT NOT NULL REFERENCES entries(id), ordinal INTEGER NOT NULL, created_at TEXT NOT NULL,
22
+ PRIMARY KEY(run_id,source_epoch,ordinal), UNIQUE(run_id,source_epoch,entry_id),
23
+ FOREIGN KEY(run_id,source_epoch) REFERENCES dsh_task_source_history(run_id,source_epoch) ON DELETE CASCADE
24
+ );
25
+ CREATE TRIGGER dsh_task_source_history_immutable BEFORE UPDATE ON dsh_task_source_history
26
+ WHEN NOT (
27
+ NEW.run_id=OLD.run_id AND NEW.source_epoch=OLD.source_epoch AND NEW.source_session_id=OLD.source_session_id
28
+ AND NEW.original_session_id=OLD.original_session_id AND NEW.task_generation=OLD.task_generation
29
+ AND NEW.next_owner_session_id=OLD.next_owner_session_id AND NEW.operation_id=OLD.operation_id AND NEW.reason=OLD.reason
30
+ AND NEW.boundary_json IS OLD.boundary_json AND NEW.review_state_json IS OLD.review_state_json AND NEW.archived_at=OLD.archived_at
31
+ AND json_remove(NEW.finalization_json,'$.staged_capsule_json','$.staged_binding_hash') IS json_remove(OLD.finalization_json,'$.staged_capsule_json','$.staged_binding_hash')
32
+ AND json_extract(NEW.finalization_json,'$.staged_capsule_json') IS NULL
33
+ AND json_extract(NEW.finalization_json,'$.staged_binding_hash') IS NULL
34
+ AND EXISTS(SELECT 1 FROM dsh_task_source_entries e JOIN memory_forget_tombstones t ON t.entry_id=e.entry_id WHERE e.run_id=OLD.run_id AND e.source_epoch=OLD.source_epoch)
35
+ )
36
+ BEGIN SELECT RAISE(ABORT,'task source history is immutable'); END;
37
+ CREATE TRIGGER finalizer_source_epoch_immutable BEFORE UPDATE OF source_epoch ON dsh_memory_finalizations
38
+ BEGIN SELECT RAISE(ABORT,'finalizer source epoch is immutable'); END;
39
+ DROP TRIGGER dsh_run_log_boundaries_run_guard;
40
+ CREATE TRIGGER dsh_run_log_boundaries_run_guard BEFORE INSERT ON dsh_run_log_boundaries
41
+ BEGIN
42
+ SELECT CASE WHEN NOT EXISTS (SELECT 1 FROM ledger_runs r WHERE r.run_id=NEW.run_id AND r.workspace=NEW.workspace
43
+ AND COALESCE(r.task_owner_session_id,r.dsh_session_id)=NEW.dsh_session_id AND r.status IN ('intake','active'))
44
+ THEN RAISE(ABORT,'log boundary requires its active DSH run owner') END;
45
+ END;
46
+ DROP TRIGGER dsh_memory_finalizations_run_guard;
47
+ CREATE TRIGGER dsh_memory_finalizations_run_guard BEFORE INSERT ON dsh_memory_finalizations
48
+ BEGIN
49
+ SELECT CASE WHEN NOT EXISTS (SELECT 1 FROM ledger_runs r WHERE r.run_id=NEW.run_id AND r.workspace=NEW.workspace
50
+ AND COALESCE(r.task_owner_session_id,r.dsh_session_id)=NEW.dsh_session_id
51
+ AND (r.status='completed' OR r.status='failed' AND NEW.extraction_version=2
52
+ OR r.task_state IN ('Pending','Ignore') AND NEW.source_outcome IN ('failed','cancelled','interrupted') AND EXISTS(
53
+ SELECT 1 FROM ledger_task_evidence e JOIN json_each(r.task_evidence_json) proof ON proof.value=e.evidence_ref
54
+ WHERE e.run_id=r.run_id AND e.generation=r.task_generation-1 AND e.kind='stopped' AND e.verified=1)
55
+ OR r.task_state='Done' AND NEW.source_outcome='completed' AND EXISTS(
56
+ SELECT 1 FROM ledger_task_evidence e JOIN json_each(r.task_evidence_json) proof ON proof.value=e.evidence_ref
57
+ WHERE e.run_id=r.run_id AND e.generation=r.task_generation-1 AND e.kind='verification' AND e.verified=1)))
58
+ THEN RAISE(ABORT,'memory finalization requires its terminal DSH run owner') END;
59
+ SELECT CASE WHEN NOT EXISTS (SELECT 1 FROM dsh_run_log_boundaries b WHERE b.run_id=NEW.run_id AND b.workspace=NEW.workspace
60
+ AND b.dsh_session_id=NEW.dsh_session_id AND b.source_start_seq=NEW.source_start_seq)
61
+ THEN RAISE(ABORT,'memory finalization requires its bound DSH log start') END;
62
+ SELECT CASE WHEN NEW.source_epoch<>(SELECT COALESCE(MAX(source_epoch),0)+1 FROM dsh_task_source_history WHERE run_id=NEW.run_id)
63
+ THEN RAISE(ABORT,'memory finalization requires its current source epoch') END;
64
+ END;
65
+
66
+ -- Mutable delivery state for a fixed archived source range; the archival snapshot above stays immutable.
67
+ CREATE TABLE dsh_task_source_finalizations (
68
+ run_id TEXT NOT NULL, source_epoch INTEGER NOT NULL,
69
+ job_json TEXT NOT NULL CHECK(json_valid(job_json)),
70
+ PRIMARY KEY(run_id,source_epoch),
71
+ FOREIGN KEY(run_id,source_epoch) REFERENCES dsh_task_source_history(run_id,source_epoch) ON DELETE CASCADE,
72
+ CHECK(json_extract(job_json,'$.run_id')=run_id AND json_extract(job_json,'$.source_epoch')=source_epoch)
73
+ );
74
+
75
+ CREATE TRIGGER dsh_task_source_job_identity BEFORE UPDATE ON dsh_task_source_finalizations
76
+ WHEN NEW.run_id<>OLD.run_id OR NEW.source_epoch<>OLD.source_epoch
77
+ OR json_extract(NEW.job_json,'$.run_id') IS NOT json_extract(OLD.job_json,'$.run_id')
78
+ OR json_extract(NEW.job_json,'$.source_epoch') IS NOT json_extract(OLD.job_json,'$.source_epoch')
79
+ OR json_extract(NEW.job_json,'$.workspace') IS NOT json_extract(OLD.job_json,'$.workspace')
80
+ OR json_extract(NEW.job_json,'$.dsh_session_id') IS NOT json_extract(OLD.job_json,'$.dsh_session_id')
81
+ OR json_extract(NEW.job_json,'$.source_start_seq') IS NOT json_extract(OLD.job_json,'$.source_start_seq')
82
+ OR json_extract(NEW.job_json,'$.source_end_seq') IS NOT json_extract(OLD.job_json,'$.source_end_seq')
83
+ OR json_extract(NEW.job_json,'$.outcome') IS NOT json_extract(OLD.job_json,'$.outcome')
84
+ OR json_extract(NEW.job_json,'$.source_generation') IS NOT json_extract(OLD.job_json,'$.source_generation')
85
+ BEGIN SELECT RAISE(ABORT,'archived finalization source identity is immutable'); END;
86
+
87
+ CREATE TRIGGER finalizer_source_outcome_immutable BEFORE UPDATE OF source_outcome ON dsh_memory_finalizations
88
+ BEGIN SELECT RAISE(ABORT,'finalizer source outcome is immutable'); END;
@@ -0,0 +1,148 @@
1
+ -- Retain each completed source epoch under its real ledger run identity.
2
+ -- The migration runner already owns BEGIN IMMEDIATE with foreign keys enabled.
3
+ -- Plain temporary copies avoid both parent-table rename rewriting and DROP cascades.
4
+ CREATE TEMP TABLE migration_042_memory_episodes AS SELECT run_id,workspace,signature,evidence_digest,episode_json,overview_entry_id,created_at FROM memory_episodes;
5
+ CREATE TEMP TABLE migration_042_memory_episode_entries AS SELECT run_id,entry_id FROM memory_episode_entries;
6
+ CREATE TEMP TABLE migration_042_memory_evolution_jobs AS SELECT id,workspace,trigger_run,signature,kind,input_json,seen_json,input_digest,model_json,algorithm,state,attempts,claim_token,lease_until,settings_generation,reason,created_at,updated_at FROM memory_evolution_jobs;
7
+ CREATE TEMP TABLE migration_042_memory_evolution_calls AS SELECT id,job_id,trigger_run,workspace,utc_day,input_bytes,input_tokens,output_tokens,duration_ms,outcome,created_at FROM memory_evolution_calls;
8
+ CREATE TEMP TABLE migration_042_memory_evolution_skips AS SELECT run_id,workspace,reason FROM memory_evolution_skips;
9
+
10
+ -- Remove dependent tables first; the copies have no foreign keys.
11
+ DROP TABLE memory_episode_entries;
12
+ DROP TABLE memory_evolution_calls;
13
+ DROP TABLE memory_episodes;
14
+ DROP TABLE memory_evolution_jobs;
15
+ DROP TABLE memory_evolution_skips;
16
+
17
+ CREATE TABLE memory_episodes (
18
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
19
+ workspace TEXT NOT NULL,
20
+ signature TEXT NOT NULL,
21
+ evidence_digest TEXT NOT NULL,
22
+ episode_json TEXT NOT NULL,
23
+ overview_entry_id TEXT,
24
+ created_at TEXT NOT NULL,
25
+ source_epoch INTEGER NOT NULL DEFAULT 1 CHECK(source_epoch>0),
26
+ PRIMARY KEY(run_id,source_epoch)
27
+ );
28
+
29
+ CREATE TABLE memory_episode_entries (
30
+ run_id TEXT NOT NULL,
31
+ entry_id TEXT NOT NULL REFERENCES entries(id) ON DELETE CASCADE,
32
+ source_epoch INTEGER NOT NULL DEFAULT 1 CHECK(source_epoch>0),
33
+ PRIMARY KEY(run_id,source_epoch,entry_id),
34
+ FOREIGN KEY(run_id,source_epoch) REFERENCES memory_episodes(run_id,source_epoch) ON DELETE CASCADE
35
+ );
36
+
37
+ CREATE TABLE memory_evolution_jobs (
38
+ id TEXT PRIMARY KEY,
39
+ workspace TEXT NOT NULL,
40
+ trigger_run TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
41
+ signature TEXT NOT NULL,
42
+ kind TEXT NOT NULL CHECK(kind IN ('positive','avoidance')),
43
+ input_json TEXT NOT NULL,
44
+ seen_json TEXT NOT NULL,
45
+ input_digest TEXT NOT NULL UNIQUE,
46
+ model_json TEXT NOT NULL,
47
+ algorithm TEXT NOT NULL DEFAULT 'episode-evolution-v1',
48
+ state TEXT NOT NULL CHECK(state IN ('pending','processing','completed','held','failed')),
49
+ attempts INTEGER NOT NULL DEFAULT 0 CHECK(attempts BETWEEN 0 AND 2),
50
+ claim_token TEXT,
51
+ lease_until TEXT,
52
+ settings_generation INTEGER,
53
+ reason TEXT,
54
+ created_at TEXT NOT NULL,
55
+ updated_at TEXT NOT NULL,
56
+ source_epoch INTEGER NOT NULL DEFAULT 1 CHECK(source_epoch>0),
57
+ UNIQUE(trigger_run,source_epoch)
58
+ );
59
+
60
+ CREATE TABLE memory_evolution_calls (
61
+ id TEXT PRIMARY KEY,
62
+ job_id TEXT REFERENCES memory_evolution_jobs(id) ON DELETE SET NULL,
63
+ trigger_run TEXT NOT NULL,
64
+ workspace TEXT NOT NULL,
65
+ utc_day TEXT NOT NULL,
66
+ input_bytes INTEGER NOT NULL,
67
+ input_tokens INTEGER,
68
+ output_tokens INTEGER,
69
+ duration_ms INTEGER,
70
+ outcome TEXT NOT NULL,
71
+ created_at TEXT NOT NULL,
72
+ source_epoch INTEGER NOT NULL DEFAULT 1 CHECK(source_epoch>0),
73
+ UNIQUE(trigger_run,source_epoch)
74
+ );
75
+
76
+ CREATE TABLE memory_evolution_skips (
77
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
78
+ workspace TEXT NOT NULL,
79
+ reason TEXT NOT NULL,
80
+ source_epoch INTEGER NOT NULL DEFAULT 1 CHECK(source_epoch>0),
81
+ PRIMARY KEY(run_id,source_epoch)
82
+ );
83
+
84
+ INSERT INTO memory_episodes(run_id,workspace,signature,evidence_digest,episode_json,overview_entry_id,created_at,source_epoch)
85
+ SELECT run_id,workspace,signature,evidence_digest,episode_json,overview_entry_id,created_at,1 FROM migration_042_memory_episodes;
86
+ INSERT INTO memory_evolution_jobs(id,workspace,trigger_run,signature,kind,input_json,seen_json,input_digest,model_json,algorithm,state,attempts,claim_token,lease_until,settings_generation,reason,created_at,updated_at,source_epoch)
87
+ SELECT id,workspace,trigger_run,signature,kind,input_json,seen_json,input_digest,model_json,algorithm,state,attempts,claim_token,lease_until,settings_generation,reason,created_at,updated_at,1 FROM migration_042_memory_evolution_jobs;
88
+ INSERT INTO memory_evolution_skips(run_id,workspace,reason,source_epoch)
89
+ SELECT run_id,workspace,reason,1 FROM migration_042_memory_evolution_skips;
90
+ INSERT INTO memory_episode_entries(run_id,entry_id,source_epoch)
91
+ SELECT run_id,entry_id,1 FROM migration_042_memory_episode_entries;
92
+ INSERT INTO memory_evolution_calls(id,job_id,trigger_run,workspace,utc_day,input_bytes,input_tokens,output_tokens,duration_ms,outcome,created_at,source_epoch)
93
+ SELECT id,job_id,trigger_run,workspace,utc_day,input_bytes,input_tokens,output_tokens,duration_ms,outcome,created_at,1 FROM migration_042_memory_evolution_calls;
94
+ DROP TABLE migration_042_memory_episodes;
95
+ DROP TABLE migration_042_memory_episode_entries;
96
+ DROP TABLE migration_042_memory_evolution_jobs;
97
+ DROP TABLE migration_042_memory_evolution_calls;
98
+ DROP TABLE migration_042_memory_evolution_skips;
99
+
100
+ CREATE INDEX memory_episodes_signature ON memory_episodes(workspace,signature,created_at);
101
+ CREATE INDEX memory_evolution_jobs_state ON memory_evolution_jobs(state,created_at);
102
+ CREATE INDEX memory_evolution_calls_budget ON memory_evolution_calls(workspace,utc_day);
103
+
104
+ CREATE TRIGGER memory_episode_identity_immutable
105
+ BEFORE UPDATE OF run_id,source_epoch,workspace,signature,evidence_digest,episode_json ON memory_episodes
106
+ BEGIN SELECT RAISE(ABORT, 'episode identity is immutable'); END;
107
+
108
+ CREATE TRIGGER memory_episode_overview_immutable
109
+ BEFORE UPDATE OF overview_entry_id ON memory_episodes
110
+ WHEN OLD.overview_entry_id IS NOT NULL AND NEW.overview_entry_id IS NOT OLD.overview_entry_id
111
+ BEGIN SELECT RAISE(ABORT, 'episode overview identity is immutable'); END;
112
+
113
+ CREATE TRIGGER memory_evolution_job_input_immutable BEFORE UPDATE OF id,workspace,trigger_run,source_epoch,signature,kind,input_json,seen_json,input_digest,model_json,algorithm ON memory_evolution_jobs
114
+ WHEN NOT(EXISTS(SELECT 1 FROM memory_forget_jobs WHERE kind='evolution' AND id=OLD.id)
115
+ AND NEW.id=OLD.id AND NEW.workspace=OLD.workspace AND NEW.trigger_run=OLD.trigger_run AND NEW.source_epoch=OLD.source_epoch AND NEW.signature=OLD.signature
116
+ AND NEW.kind=OLD.kind AND NEW.input_digest=OLD.input_digest AND NEW.model_json=OLD.model_json AND NEW.algorithm=OLD.algorithm
117
+ AND NEW.input_json='[]' AND NEW.seen_json='[]')
118
+ BEGIN SELECT RAISE(ABORT,'evolution job input is immutable'); END;
119
+
120
+ CREATE TRIGGER lifecycle_reference_memory_episodes_insert AFTER INSERT ON memory_episodes BEGIN
121
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
122
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
123
+ END;
124
+
125
+ CREATE TRIGGER lifecycle_reference_memory_episodes_update AFTER UPDATE ON memory_episodes BEGIN
126
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
127
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
128
+ END;
129
+
130
+ CREATE TRIGGER lifecycle_reference_memory_episodes_delete AFTER DELETE ON memory_episodes BEGIN
131
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
132
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
133
+ END;
134
+
135
+ CREATE TRIGGER lifecycle_reference_memory_episode_entries_insert AFTER INSERT ON memory_episode_entries BEGIN
136
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
137
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
138
+ END;
139
+
140
+ CREATE TRIGGER lifecycle_reference_memory_episode_entries_update AFTER UPDATE ON memory_episode_entries BEGIN
141
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
142
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
143
+ END;
144
+
145
+ CREATE TRIGGER lifecycle_reference_memory_episode_entries_delete AFTER DELETE ON memory_episode_entries BEGIN
146
+ INSERT INTO dsh_memory_processing_state(workspace,context_revision) VALUES('global',1)
147
+ ON CONFLICT(workspace) DO UPDATE SET context_revision=context_revision+1;
148
+ END;