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,217 @@
1
+ import * as z from 'zod/v4';
2
+ import type { SqliteDatabase } from '../db/adapter.js';
3
+ import { type RunStatus, type TaskType } from '../ledger/types.js';
4
+ import { type JsonValue } from '../serialization/validate.js';
5
+ export declare const TASK_STATES: readonly ["ToDo", "Working", "Pending", "Done", "Ignore"];
6
+ export type TaskState = typeof TASK_STATES[number];
7
+ export declare const TASK_OPERATIONS: readonly ["start", "wait", "resume", "complete", "ignore"];
8
+ export type TaskOperation = typeof TASK_OPERATIONS[number];
9
+ export declare const TaskOperationSchema: z.ZodObject<{
10
+ operation: z.ZodEnum<{
11
+ start: "start";
12
+ complete: "complete";
13
+ ignore: "ignore";
14
+ resume: "resume";
15
+ wait: "wait";
16
+ }>;
17
+ operationId: z.ZodString;
18
+ expectedRevision: z.ZodNumber;
19
+ expectedGeneration: z.ZodOptional<z.ZodNumber>;
20
+ reason: z.ZodString;
21
+ evidence: z.ZodDefault<z.ZodArray<z.ZodString>>;
22
+ explicit: z.ZodOptional<z.ZodBoolean>;
23
+ }, z.core.$strict>;
24
+ export type TaskOperationInput = z.input<typeof TaskOperationSchema>;
25
+ export interface TaskIdentity {
26
+ taskId: string;
27
+ sessionId: string;
28
+ repositoryRoot: string;
29
+ }
30
+ export interface TaskLease extends TaskIdentity {
31
+ revision: number;
32
+ generation: number;
33
+ }
34
+ export declare const TASK_AUTHORITY: unique symbol;
35
+ export interface TaskAuthorityExecution {
36
+ [TASK_AUTHORITY]?: TaskLease;
37
+ }
38
+ export interface TaskSnapshot extends TaskIdentity {
39
+ runId: string;
40
+ type: TaskType | null;
41
+ state: TaskState;
42
+ revision: number;
43
+ generation: number;
44
+ runStatus: RunStatus;
45
+ reason: string;
46
+ evidence: string[];
47
+ allowedOps: TaskOperation[];
48
+ request: string | null;
49
+ resumedFromTerminal: boolean;
50
+ sourceSessionId: string;
51
+ pendingStop?: TaskPendingStop | undefined;
52
+ unresolved?: TaskUnresolved | undefined;
53
+ previousOutcome?: TaskPreviousOutcome | undefined;
54
+ }
55
+ export interface TaskPreviousOutcome {
56
+ status: RunStatus;
57
+ endedAt: string | null;
58
+ revision: number;
59
+ generation: number;
60
+ sourceSessionId: string;
61
+ ownerSessionId: string;
62
+ }
63
+ export interface TaskUnresolved {
64
+ requestId: string;
65
+ contextDigest: string;
66
+ revision: number;
67
+ reason: string;
68
+ evidence: string[];
69
+ }
70
+ export interface TaskPendingStop {
71
+ operationId: string;
72
+ operation: 'wait' | 'ignore';
73
+ requestedRevision: number;
74
+ requestedGeneration: number;
75
+ reason: string;
76
+ evidence: string[];
77
+ }
78
+ export declare const TaskSnapshotSchema: z.ZodObject<{
79
+ taskId: z.ZodString;
80
+ runId: z.ZodString;
81
+ sessionId: z.ZodString;
82
+ repositoryRoot: z.ZodString;
83
+ type: z.ZodNullable<z.ZodEnum<{
84
+ build: "build";
85
+ debug: "debug";
86
+ research: "research";
87
+ review: "review";
88
+ devops: "devops";
89
+ writing: "writing";
90
+ analysis: "analysis";
91
+ chat: "chat";
92
+ }>>;
93
+ state: z.ZodEnum<{
94
+ ToDo: "ToDo";
95
+ Working: "Working";
96
+ Pending: "Pending";
97
+ Done: "Done";
98
+ Ignore: "Ignore";
99
+ }>;
100
+ revision: z.ZodNumber;
101
+ generation: z.ZodNumber;
102
+ runStatus: z.ZodEnum<{
103
+ active: "active";
104
+ failed: "failed";
105
+ completed: "completed";
106
+ cancelled: "cancelled";
107
+ interrupted: "interrupted";
108
+ intake: "intake";
109
+ }>;
110
+ reason: z.ZodString;
111
+ evidence: z.ZodArray<z.ZodString>;
112
+ allowedOps: z.ZodArray<z.ZodEnum<{
113
+ start: "start";
114
+ complete: "complete";
115
+ ignore: "ignore";
116
+ resume: "resume";
117
+ wait: "wait";
118
+ }>>;
119
+ request: z.ZodNullable<z.ZodString>;
120
+ sourceSessionId: z.ZodString;
121
+ resumedFromTerminal: z.ZodBoolean;
122
+ pendingStop: z.ZodOptional<z.ZodObject<{
123
+ operationId: z.ZodString;
124
+ operation: z.ZodEnum<{
125
+ ignore: "ignore";
126
+ wait: "wait";
127
+ }>;
128
+ requestedRevision: z.ZodNumber;
129
+ requestedGeneration: z.ZodNumber;
130
+ reason: z.ZodString;
131
+ evidence: z.ZodArray<z.ZodString>;
132
+ }, z.core.$strip>>;
133
+ unresolved: z.ZodOptional<z.ZodObject<{
134
+ requestId: z.ZodString;
135
+ contextDigest: z.ZodString;
136
+ revision: z.ZodNumber;
137
+ reason: z.ZodString;
138
+ evidence: z.ZodArray<z.ZodString>;
139
+ }, z.core.$strip>>;
140
+ previousOutcome: z.ZodOptional<z.ZodObject<{
141
+ status: z.ZodEnum<{
142
+ active: "active";
143
+ failed: "failed";
144
+ completed: "completed";
145
+ cancelled: "cancelled";
146
+ interrupted: "interrupted";
147
+ intake: "intake";
148
+ }>;
149
+ endedAt: z.ZodNullable<z.ZodString>;
150
+ revision: z.ZodNumber;
151
+ generation: z.ZodNumber;
152
+ sourceSessionId: z.ZodString;
153
+ ownerSessionId: z.ZodString;
154
+ }, z.core.$strip>>;
155
+ }, z.core.$strict>;
156
+ export declare function isTaskTerminal(task: Pick<TaskSnapshot, 'state'>): boolean;
157
+ export declare function taskCanExecute(task: Pick<TaskSnapshot, 'state' | 'runStatus' | 'resumedFromTerminal' | 'pendingStop'>): boolean;
158
+ /** For existing SQL admission lookups. Alias is an internal SQL identifier, never user input. */
159
+ export declare function taskEligibilitySql(alias: string): string;
160
+ export declare function isTaskRunEligible(db: SqliteDatabase, taskId: string): boolean;
161
+ export declare function taskAllowedOperations(task: Pick<TaskSnapshot, 'state' | 'runStatus' | 'resumedFromTerminal' | 'pendingStop'>): TaskOperation[];
162
+ export declare function readTaskSnapshot(db: SqliteDatabase, identity: TaskIdentity): TaskSnapshot;
163
+ /** Host-only initial binding; use the repository from admitted host context, never model arguments. */
164
+ export declare function bindTaskRepository(db: SqliteDatabase, identity: TaskIdentity): TaskSnapshot;
165
+ /** Select only an unambiguous active task; callers may explicitly read a terminal task by ID. */
166
+ export declare function findSessionTask(db: SqliteDatabase, owner: Omit<TaskIdentity, 'taskId'>, options?: {
167
+ includeLatestTerminal?: boolean;
168
+ }): TaskSnapshot | undefined;
169
+ /** The pure validator is also the decision-provider/main-model/rebind contract. */
170
+ export declare function validateTaskOperation(task: TaskSnapshot, raw: TaskOperationInput): z.output<typeof TaskOperationSchema>;
171
+ export declare function captureTaskLease(db: SqliteDatabase, identity: TaskIdentity): TaskLease;
172
+ export declare function authorizeTaskLease(db: SqliteDatabase, lease: TaskLease): TaskSnapshot;
173
+ /** Host-only observation. Never expose verified/stopped booleans in model tool schemas. */
174
+ export declare function recordTaskEvidence(db: SqliteDatabase, identity: TaskIdentity, input: {
175
+ ref: string;
176
+ kind: 'verification' | 'stopped';
177
+ generation: number;
178
+ verified: boolean;
179
+ details?: JsonValue;
180
+ }): void;
181
+ export declare function transitionTask(db: SqliteDatabase, identity: TaskIdentity, raw: TaskOperationInput, host?: {
182
+ sourceEndSeq?: number;
183
+ }): TaskSnapshot;
184
+ /** Durable stop request; acknowledging it is not evidence that the process stopped. */
185
+ export declare function requestTaskStop(db: SqliteDatabase, identity: TaskIdentity, raw: TaskOperationInput): TaskSnapshot;
186
+ /** Host-only: finish the exact durable stop after all owned work is observed stopped. */
187
+ export declare function confirmTaskStop(db: SqliteDatabase, identity: TaskIdentity, input: {
188
+ operationId: string;
189
+ expectedRevision: number;
190
+ evidenceRef: string;
191
+ }): TaskSnapshot;
192
+ /** Trusted native handoff only. The original JSONL source session is immutable. */
193
+ export declare function transferTaskOwner(db: SqliteDatabase, identity: TaskIdentity, input: {
194
+ sessionId: string;
195
+ operationId: string;
196
+ expectedRevision: number;
197
+ expectedGeneration: number;
198
+ reason: string;
199
+ evidence: string[];
200
+ sourceEndSeq?: number;
201
+ }): TaskSnapshot;
202
+ /** Persist unresolved interpretation without inventing another task or changing its request. */
203
+ export declare function recordTaskUnresolved(db: SqliteDatabase, identity: TaskIdentity, input: {
204
+ operationId: string;
205
+ expectedRevision: number;
206
+ requestId: string;
207
+ contextDigest: string;
208
+ reason: string;
209
+ evidence?: string[];
210
+ }): TaskSnapshot;
211
+ /** Resolving one request cannot clear another request's unresolved decision. */
212
+ export declare function clearTaskUnresolved(db: SqliteDatabase, identity: TaskIdentity, input: {
213
+ requestId: string;
214
+ contextDigest: string;
215
+ expectedRevision: number;
216
+ }): TaskSnapshot;
217
+ //# sourceMappingURL=task-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-state.d.ts","sourceRoot":"","sources":["../../src/dsh/task-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAA;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGtD,OAAO,EAAqC,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACrG,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAKnF,eAAO,MAAM,WAAW,2DAA4D,CAAA;AACpF,MAAM,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AAClD,eAAO,MAAM,eAAe,4DAA6D,CAAA;AACzF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAE1D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAEkF,CAAA;AAClH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACpE,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE;AAC3F,MAAM,WAAW,SAAU,SAAQ,YAAY;IAAG,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AACxF,eAAO,MAAM,cAAc,eAA0C,CAAA;AACrE,MAAM,WAAW,sBAAsB;IAAG,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAA;CAAE;AACxE,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAC7F,SAAS,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,aAAa,EAAE,CAAC;IACtF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,mBAAmB,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;IAC7E,WAAW,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;IACzC,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IACvC,eAAe,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAClD;AACD,MAAM,WAAW,mBAAmB;IAAG,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IACrH,eAAe,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE;AACnD,MAAM,WAAW,cAAc;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE;AAClI,MAAM,WAAW,eAAe;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAC9G,mBAAmB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE;AACnE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWJ,CAAA;AAU3B,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,OAAO,CAA4D;AACtI,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,GAAG,qBAAqB,GAAG,aAAa,CAAC,GAAG,OAAO,CAE/H;AACD,iGAAiG;AACjG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD;AACD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AACD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,GAAG,qBAAqB,GAAG,aAAa,CAAC,GAAG,aAAa,EAAE,CAO9I;AAmBD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAG,YAAY,CAKzF;AACD,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAG,YAAY,CAQ3F;AACD,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EACrF,OAAO,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,YAAY,GAAG,SAAS,CAW7E;AACD,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAQvH;AACD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAG,SAAS,CAItF;AACD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY,CAKrF;AACD,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE;IACpF,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAC1G,GAAG,IAAI,CAaP;AACD,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAiDlJ;AACD,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,kBAAkB,GAAG,YAAY,CAkBjH;AACD,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE;IACjF,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CACnE,GAAG,YAAY,CAiBf;AACD,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE;IACnF,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAC7F,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC1D,GAAG,YAAY,CAiCf;AACD,gGAAgG;AAChG,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE;IACtF,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAC7H,GAAG,YAAY,CAcf;AACD,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE;IACrF,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CACnE,GAAG,YAAY,CAMf"}
@@ -0,0 +1,315 @@
1
+ import { reopenTerminalCodingWorkflow } from './coding-workflow/service.js';
2
+ import { rotateTaskSourceInTransaction } from './task-source-history.js';
3
+ import * as z from 'zod/v4';
4
+ import { withImmediateTransaction } from '../db/transaction.js';
5
+ import { KiokukoError } from '../errors.js';
6
+ import { TASK_TYPES, TERMINAL_RUN_STATUSES } from '../ledger/types.js';
7
+ import { canonicalContentHash } from '../serialization/validate.js';
8
+ import { executeIdempotentInTransaction } from './intake-idempotency.js';
9
+ import { assessTaskCompletion } from './task-completion.js';
10
+ import { completionVerifiers } from './completion-verifiers.js';
11
+ export const TASK_STATES = ['ToDo', 'Working', 'Pending', 'Done', 'Ignore'];
12
+ export const TASK_OPERATIONS = ['start', 'wait', 'resume', 'complete', 'ignore'];
13
+ const text = z.string().trim().min(1).max(4096);
14
+ export const TaskOperationSchema = z.object({ operation: z.enum(TASK_OPERATIONS), operationId: text.max(256),
15
+ expectedRevision: z.number().int().positive(), expectedGeneration: z.number().int().positive().optional(),
16
+ reason: text, evidence: z.array(text.max(512)).max(32).default([]), explicit: z.boolean().optional() }).strict();
17
+ export const TASK_AUTHORITY = Symbol.for('kiokuko.task-authority.v1');
18
+ export const TaskSnapshotSchema = z.object({ taskId: text, runId: text, sessionId: text, repositoryRoot: text,
19
+ type: z.enum(TASK_TYPES).nullable(), state: z.enum(TASK_STATES), revision: z.number().int().positive(),
20
+ generation: z.number().int().positive(), runStatus: z.enum(['intake', 'active', 'completed', 'failed', 'cancelled', 'interrupted']),
21
+ reason: z.string(), evidence: z.array(z.string()), allowedOps: z.array(z.enum(TASK_OPERATIONS)),
22
+ request: z.string().nullable(), sourceSessionId: text, resumedFromTerminal: z.boolean(), pendingStop: z.object({ operationId: text,
23
+ operation: z.enum(['wait', 'ignore']), requestedRevision: z.number().int().positive(), requestedGeneration: z.number().int().positive(),
24
+ reason: text, evidence: z.array(z.string()) }).optional(), unresolved: z.object({ requestId: text,
25
+ contextDigest: z.string().regex(/^[a-f0-9]{64}$/u), revision: z.number().int().positive(), reason: text,
26
+ evidence: z.array(z.string()) }).optional(), previousOutcome: z.object({
27
+ status: z.enum(['intake', 'active', 'completed', 'failed', 'cancelled', 'interrupted']), endedAt: z.string().nullable(),
28
+ revision: z.number().int().positive(), generation: z.number().int().positive(), sourceSessionId: text, ownerSessionId: text,
29
+ }).optional() }).strict();
30
+ const selectTask = `SELECT r.*, a.task_text, a.status AS intake_status, json_extract(a.profile_json,'$.taskType') AS task_type
31
+ FROM ledger_runs r LEFT JOIN run_intakes i ON i.run_id=r.run_id LEFT JOIN akinator_sessions a ON a.id=i.session_id`;
32
+ function conflict(message) { throw new KiokukoError('CONFLICT', message); }
33
+ const executionTerminal = (status) => TERMINAL_RUN_STATUSES.includes(status);
34
+ export function isTaskTerminal(task) { return task.state === 'Done' || task.state === 'Ignore'; }
35
+ export function taskCanExecute(task) {
36
+ return task.state === 'Working' && !task.pendingStop && !executionTerminal(task.runStatus);
37
+ }
38
+ /** For existing SQL admission lookups. Alias is an internal SQL identifier, never user input. */
39
+ export function taskEligibilitySql(alias) {
40
+ if (!/^[a-z][a-z0-9_]*$/iu.test(alias))
41
+ throw new Error('Invalid task SQL alias');
42
+ return `${alias}.task_state='Working' AND ${alias}.task_pending_stop_json IS NULL AND ${alias}.status IN ('intake','active')`;
43
+ }
44
+ export function isTaskRunEligible(db, taskId) {
45
+ return taskCanExecute(snapshot(rowFor(db, taskId)));
46
+ }
47
+ export function taskAllowedOperations(task) {
48
+ if (task.pendingStop)
49
+ return [];
50
+ if (isTaskTerminal(task))
51
+ return ['resume'];
52
+ if (executionTerminal(task.runStatus))
53
+ return ['resume', 'ignore'];
54
+ if (task.state === 'ToDo')
55
+ return ['start', 'wait', 'ignore'];
56
+ if (task.state === 'Working')
57
+ return ['wait', 'complete', 'ignore'];
58
+ return ['resume', 'ignore'];
59
+ }
60
+ function snapshot(row) {
61
+ const result = { taskId: row.run_id, runId: row.run_id, sessionId: row.task_owner_session_id ?? row.dsh_session_id,
62
+ sourceSessionId: row.dsh_session_id,
63
+ repositoryRoot: row.task_repository_root ?? '', type: TASK_TYPES.includes(row.task_type ?? '') ? row.task_type : null,
64
+ state: row.task_state, revision: row.task_revision, generation: row.task_generation, runStatus: row.status,
65
+ reason: row.task_reason, evidence: JSON.parse(row.task_evidence_json), request: row.task_text,
66
+ resumedFromTerminal: row.task_resumed === 1, allowedOps: [],
67
+ ...(row.task_pending_stop_json ? { pendingStop: JSON.parse(row.task_pending_stop_json) } : {}),
68
+ ...(row.task_unresolved_json ? { unresolved: JSON.parse(row.task_unresolved_json) } : {}),
69
+ ...(row.task_previous_outcome_json ? { previousOutcome: JSON.parse(row.task_previous_outcome_json) } : {}) };
70
+ result.allowedOps = taskAllowedOperations(result);
71
+ return result;
72
+ }
73
+ function rowFor(db, taskId) {
74
+ const row = db.prepare(`${selectTask} WHERE r.run_id=?`).get(taskId);
75
+ if (!row)
76
+ throw new KiokukoError('NOT_FOUND', 'Task does not exist');
77
+ return row;
78
+ }
79
+ export function readTaskSnapshot(db, identity) {
80
+ const row = rowFor(db, identity.taskId);
81
+ if ((row.task_owner_session_id ?? row.dsh_session_id) !== identity.sessionId || row.task_repository_root !== identity.repositoryRoot)
82
+ conflict('Task owner or repository changed');
83
+ return snapshot(row);
84
+ }
85
+ /** Host-only initial binding; use the repository from admitted host context, never model arguments. */
86
+ export function bindTaskRepository(db, identity) {
87
+ const row = rowFor(db, identity.taskId);
88
+ if (!identity.repositoryRoot.startsWith('/') || (row.task_owner_session_id ?? row.dsh_session_id) !== identity.sessionId
89
+ || row.task_repository_root !== null && row.task_repository_root !== identity.repositoryRoot)
90
+ conflict('Task owner or repository changed');
91
+ if (row.task_repository_root === null)
92
+ db.prepare(`UPDATE ledger_runs SET task_repository_root=? WHERE run_id=?
93
+ AND COALESCE(task_owner_session_id,dsh_session_id)=? AND task_repository_root IS NULL`)
94
+ .run(identity.repositoryRoot, identity.taskId, identity.sessionId);
95
+ return readTaskSnapshot(db, identity);
96
+ }
97
+ /** Select only an unambiguous active task; callers may explicitly read a terminal task by ID. */
98
+ export function findSessionTask(db, owner, options = {}) {
99
+ const rows = db.prepare(`${selectTask} WHERE COALESCE(r.task_owner_session_id,r.dsh_session_id)=? AND r.task_repository_root=?
100
+ AND r.task_state NOT IN ('Done','Ignore') AND (r.status IN ('intake','active') OR r.task_pending_stop_json IS NOT NULL)
101
+ ORDER BY r.updated_at DESC,r.run_id LIMIT 2`).all(owner.sessionId, owner.repositoryRoot);
102
+ const owned = rows.find(row => db.prepare('SELECT 1 FROM dsh_execution_owners WHERE dsh_session_id=? AND run_id=?').get(owner.sessionId, row.run_id));
103
+ if (owned)
104
+ return snapshot(owned);
105
+ if (rows.length > 1)
106
+ conflict('Multiple tasks match this session; select an explicit task ID');
107
+ if (rows[0])
108
+ return snapshot(rows[0]);
109
+ const terminal = options.includeLatestTerminal ? db.prepare(`${selectTask} WHERE COALESCE(r.task_owner_session_id,r.dsh_session_id)=? AND r.task_repository_root=?
110
+ ORDER BY r.updated_at DESC,r.run_id DESC LIMIT 1`).get(owner.sessionId, owner.repositoryRoot) : undefined;
111
+ return terminal ? snapshot(terminal) : undefined;
112
+ }
113
+ /** The pure validator is also the decision-provider/main-model/rebind contract. */
114
+ export function validateTaskOperation(task, raw) {
115
+ const input = TaskOperationSchema.parse(raw);
116
+ if (input.expectedRevision !== task.revision || input.expectedGeneration !== undefined && input.expectedGeneration !== task.generation)
117
+ conflict('Stale task revision or generation');
118
+ if (!taskAllowedOperations(task).includes(input.operation))
119
+ conflict(`Operation ${input.operation} is not allowed in ${task.state}`);
120
+ if (input.operation === 'resume' && (isTaskTerminal(task) || executionTerminal(task.runStatus)) && input.explicit !== true)
121
+ conflict('A terminal task requires an explicit resume operation');
122
+ return input;
123
+ }
124
+ export function captureTaskLease(db, identity) {
125
+ const task = readTaskSnapshot(db, identity);
126
+ if (!taskCanExecute(task))
127
+ conflict('Task is not Working; start or explicitly resume it before execution');
128
+ return { ...identity, revision: task.revision, generation: task.generation };
129
+ }
130
+ export function authorizeTaskLease(db, lease) {
131
+ const task = readTaskSnapshot(db, lease);
132
+ if (!taskCanExecute(task) || task.revision !== lease.revision || task.generation !== lease.generation)
133
+ conflict('Task execution authority is stale or stopped');
134
+ return task;
135
+ }
136
+ /** Host-only observation. Never expose verified/stopped booleans in model tool schemas. */
137
+ export function recordTaskEvidence(db, identity, input) {
138
+ const task = readTaskSnapshot(db, identity);
139
+ if (!input.ref.trim() || input.ref.length > 512 || input.generation !== task.generation)
140
+ conflict('Evidence belongs to an old task generation');
141
+ const details = input.details ?? null;
142
+ const old = db.prepare('SELECT generation,kind,verified,details_json FROM ledger_task_evidence WHERE run_id=? AND evidence_ref=?')
143
+ .get(identity.taskId, input.ref);
144
+ if (old) {
145
+ if (old.generation !== input.generation || old.kind !== input.kind || old.verified !== Number(input.verified)
146
+ || canonicalContentHash(JSON.parse(old.details_json)) !== canonicalContentHash(details))
147
+ conflict('Evidence reference reused with changed observation');
148
+ return;
149
+ }
150
+ db.prepare('INSERT INTO ledger_task_evidence VALUES(?,?,?,?,?,?)')
151
+ .run(identity.taskId, input.ref, input.generation, input.kind, Number(input.verified), JSON.stringify(details));
152
+ }
153
+ export function transitionTask(db, identity, raw, host) {
154
+ const parsed = TaskOperationSchema.parse(raw);
155
+ return withImmediateTransaction(db, () => {
156
+ // Ownership still applies when replaying a previously successful operation.
157
+ readTaskSnapshot(db, identity);
158
+ return executeIdempotentInTransaction(db, { scope: `task:${canonicalContentHash(identity.taskId)}`, key: parsed.operationId,
159
+ request: { identity, ...parsed, ...(host ? { host } : {}) }, createdAt: new Date().toISOString() }, () => {
160
+ const current = readTaskSnapshot(db, identity), input = validateTaskOperation(current, parsed);
161
+ if (input.operation === 'start' || input.operation === 'resume') {
162
+ const row = rowFor(db, identity.taskId);
163
+ if (!row.intake_status || row.intake_status === 'active')
164
+ conflict('Finish this task’s existing intake before starting or resuming it');
165
+ }
166
+ const proves = (kind) => input.evidence.some(ref => db.prepare(`SELECT 1 FROM ledger_task_evidence
167
+ WHERE run_id=? AND evidence_ref=? AND generation=? AND kind=? AND verified=1`).get(identity.taskId, ref, current.generation, kind));
168
+ if (input.operation === 'complete' && !proves('verification'))
169
+ conflict('Completion requires current host-observed verification evidence');
170
+ if (input.operation === 'complete') {
171
+ const assessment = assessTaskCompletion(db, identity.taskId);
172
+ if ((assessment.coding || assessment.required > 0) && !assessment.verified)
173
+ conflict('Current task completion criteria are not verified');
174
+ const enno = db.prepare(`SELECT e.workspace,e.orchestration_session_id AS orchestrationId FROM enno_contracts e
175
+ JOIN dsh_execution_selections s ON s.run_id=e.run_id WHERE e.run_id=? AND json_extract(s.state_json,'$.mode')='enno'`)
176
+ .get(identity.taskId);
177
+ if (enno && completionVerifiers().codingProjection?.(db, { runId: identity.taskId, ...enno })?.completed !== true)
178
+ conflict('Enno has not verified this task as completed');
179
+ }
180
+ if (current.state === 'Working' && ['wait', 'ignore'].includes(input.operation) && !proves('stopped'))
181
+ conflict('Stopping a Working task requires a confirmed stop receipt');
182
+ const state = input.operation === 'complete' ? 'Done' : input.operation === 'ignore' ? 'Ignore'
183
+ : input.operation === 'wait' ? 'Pending' : 'Working';
184
+ if (input.operation === 'resume')
185
+ rotateTaskSourceInTransaction(db, { runId: identity.taskId, sessionId: identity.sessionId,
186
+ nextSessionId: identity.sessionId, expectedRevision: current.revision, expectedGeneration: current.generation,
187
+ operationId: input.operationId, reason: input.reason, ...(host?.sourceEndSeq === undefined ? {} : { sourceEndSeq: host.sourceEndSeq }) }, new Date().toISOString());
188
+ const reopen = input.operation === 'resume' && executionTerminal(current.runStatus);
189
+ const previousOutcome = reopen ? { status: current.runStatus, endedAt: rowFor(db, identity.taskId).ended_at,
190
+ revision: current.revision, generation: current.generation, sourceSessionId: current.sourceSessionId, ownerSessionId: current.sessionId } : current.previousOutcome;
191
+ db.prepare(`UPDATE ledger_runs SET task_state=?,task_revision=task_revision+1,task_generation=task_generation+1,
192
+ task_reason=?,task_evidence_json=?,task_resumed=?,task_previous_outcome_json=?,
193
+ status=CASE WHEN ?=1 THEN 'active' ELSE status END,ended_at=CASE WHEN ?=1 THEN NULL ELSE ended_at END,
194
+ task_managed=1,updated_at=? WHERE run_id=? AND task_revision=?`)
195
+ .run(state, input.reason, JSON.stringify(input.evidence), reopen ? 1 : Number(current.resumedFromTerminal), previousOutcome ? JSON.stringify(previousOutcome) : null, Number(reopen), Number(reopen), new Date().toISOString(), identity.taskId, current.revision);
196
+ if (input.operation === 'resume')
197
+ reopenTerminalCodingWorkflow(db, { runId: identity.taskId, sessionId: identity.sessionId,
198
+ repositoryRoot: identity.repositoryRoot }, input.operationId, { terminalOutcome: executionTerminal(current.runStatus) || isTaskTerminal(current) });
199
+ const updated = readTaskSnapshot(db, identity);
200
+ if (updated.revision !== current.revision + 1)
201
+ conflict('Task revision compare-and-swap failed');
202
+ return updated;
203
+ });
204
+ });
205
+ }
206
+ /** Durable stop request; acknowledging it is not evidence that the process stopped. */
207
+ export function requestTaskStop(db, identity, raw) {
208
+ const input = TaskOperationSchema.parse(raw);
209
+ if (input.operation !== 'wait' && input.operation !== 'ignore')
210
+ conflict('Only wait or ignore can request a task stop');
211
+ return withImmediateTransaction(db, () => {
212
+ readTaskSnapshot(db, identity);
213
+ return executeIdempotentInTransaction(db, { scope: `task:${canonicalContentHash(identity.taskId)}`, key: input.operationId,
214
+ request: { identity, ...input }, createdAt: new Date().toISOString() }, () => {
215
+ const current = readTaskSnapshot(db, identity);
216
+ validateTaskOperation(current, input);
217
+ if (current.state !== 'Working')
218
+ conflict('A stop request requires a Working task');
219
+ const pending = { operationId: input.operationId, operation: input.operation,
220
+ requestedRevision: current.revision, requestedGeneration: current.generation, reason: input.reason, evidence: input.evidence };
221
+ db.prepare(`UPDATE ledger_runs SET task_pending_stop_json=?,task_revision=task_revision+1,task_generation=task_generation+1,
222
+ task_reason=?,task_managed=1,updated_at=? WHERE run_id=? AND task_revision=?`)
223
+ .run(JSON.stringify(pending), input.reason, new Date().toISOString(), identity.taskId, current.revision);
224
+ return readTaskSnapshot(db, identity);
225
+ });
226
+ });
227
+ }
228
+ /** Host-only: finish the exact durable stop after all owned work is observed stopped. */
229
+ export function confirmTaskStop(db, identity, input) {
230
+ return withImmediateTransaction(db, () => {
231
+ readTaskSnapshot(db, identity);
232
+ return executeIdempotentInTransaction(db, { scope: `task-stop-confirm:${canonicalContentHash(identity.taskId)}`, key: input.operationId,
233
+ request: { identity, ...input }, createdAt: new Date().toISOString() }, () => {
234
+ const current = readTaskSnapshot(db, identity), pending = current.pendingStop;
235
+ if (!pending || pending.operationId !== input.operationId || current.revision !== input.expectedRevision)
236
+ conflict('Stop confirmation does not match the pending task operation');
237
+ if (!db.prepare(`SELECT 1 FROM ledger_task_evidence WHERE run_id=? AND evidence_ref=? AND generation=? AND kind='stopped' AND verified=1`)
238
+ .get(identity.taskId, input.evidenceRef, current.generation))
239
+ conflict('Task stop has not been confirmed by the host');
240
+ db.prepare(`UPDATE ledger_runs SET task_state=?,task_pending_stop_json=NULL,task_revision=task_revision+1,
241
+ task_generation=task_generation+1,task_evidence_json=?,updated_at=? WHERE run_id=? AND task_revision=?`)
242
+ .run(pending.operation === 'ignore' ? 'Ignore' : 'Pending', JSON.stringify([...pending.evidence, input.evidenceRef]), new Date().toISOString(), identity.taskId, current.revision);
243
+ return readTaskSnapshot(db, identity);
244
+ });
245
+ });
246
+ }
247
+ /** Trusted native handoff only. The original JSONL source session is immutable. */
248
+ export function transferTaskOwner(db, identity, input) {
249
+ text.max(256).parse(input.sessionId);
250
+ text.max(256).parse(input.operationId);
251
+ text.parse(input.reason);
252
+ return withImmediateTransaction(db, () => executeIdempotentInTransaction(db, {
253
+ scope: `task-owner:${canonicalContentHash(identity.taskId)}`, key: input.operationId,
254
+ request: { identity, ...input }, createdAt: new Date().toISOString(),
255
+ }, () => {
256
+ const current = readTaskSnapshot(db, identity);
257
+ if (current.revision !== input.expectedRevision || current.generation !== input.expectedGeneration || current.pendingStop)
258
+ conflict('Task owner handoff is stale or a stop is unresolved');
259
+ if (input.sessionId === identity.sessionId)
260
+ conflict('Task handoff requires a new native session');
261
+ if (current.state === 'Working' && !input.evidence.some(ref => db.prepare(`SELECT 1 FROM ledger_task_evidence
262
+ WHERE run_id=? AND evidence_ref=? AND generation=? AND kind='stopped' AND verified=1`).get(identity.taskId, ref, current.generation)))
263
+ conflict('Stop current task execution before transferring its owner');
264
+ if (db.prepare(`SELECT 1 FROM ledger_runs WHERE COALESCE(task_owner_session_id,dsh_session_id)=?
265
+ AND task_state NOT IN ('Done','Ignore') AND (status IN ('intake','active') OR task_pending_stop_json IS NOT NULL) AND run_id<>?`).get(input.sessionId, identity.taskId)
266
+ || db.prepare('SELECT 1 FROM dsh_execution_owners WHERE dsh_session_id=? AND (run_id IS NULL OR run_id<>?)').get(input.sessionId, identity.taskId))
267
+ conflict('The destination session already owns another task');
268
+ const owner = db.prepare('SELECT dsh_session_id FROM dsh_execution_owners WHERE run_id=?').get(identity.taskId);
269
+ if (owner && owner.dsh_session_id !== identity.sessionId)
270
+ conflict('Native execution owner changed before handoff');
271
+ rotateTaskSourceInTransaction(db, { runId: identity.taskId, sessionId: identity.sessionId, nextSessionId: input.sessionId,
272
+ expectedRevision: current.revision, expectedGeneration: current.generation, operationId: input.operationId, reason: input.reason, ...(input.sourceEndSeq === undefined ? {} : { sourceEndSeq: input.sourceEndSeq }) }, new Date().toISOString());
273
+ db.prepare(`UPDATE ledger_runs SET task_owner_session_id=?,task_revision=task_revision+1,task_generation=task_generation+1,
274
+ task_reason=?,task_evidence_json=?,task_managed=1,updated_at=? WHERE run_id=? AND task_revision=?`)
275
+ .run(input.sessionId, input.reason, JSON.stringify(input.evidence), new Date().toISOString(), identity.taskId, current.revision);
276
+ if (owner)
277
+ db.prepare('UPDATE dsh_execution_owners SET dsh_session_id=? WHERE run_id=? AND dsh_session_id=?')
278
+ .run(input.sessionId, identity.taskId, identity.sessionId);
279
+ db.prepare(`UPDATE dsh_coding_workflows SET session_id=?,revision=revision+1,
280
+ snapshot_json=json_set(snapshot_json,'$.sessionId',?,'$.revision',revision+1) WHERE run_id=? AND session_id=?`)
281
+ .run(input.sessionId, input.sessionId, identity.taskId, identity.sessionId);
282
+ db.prepare('UPDATE enno_contracts SET dsh_session_id=? WHERE run_id=? AND dsh_session_id=?')
283
+ .run(input.sessionId, identity.taskId, identity.sessionId);
284
+ return readTaskSnapshot(db, { ...identity, sessionId: input.sessionId });
285
+ }));
286
+ }
287
+ /** Persist unresolved interpretation without inventing another task or changing its request. */
288
+ export function recordTaskUnresolved(db, identity, input) {
289
+ text.parse(input.requestId);
290
+ text.parse(input.reason);
291
+ z.string().regex(/^[a-f0-9]{64}$/u).parse(input.contextDigest);
292
+ return withImmediateTransaction(db, () => executeIdempotentInTransaction(db, {
293
+ scope: `task-decision:${canonicalContentHash(identity.taskId)}`, key: input.operationId,
294
+ request: { identity, operation: 'unresolved', ...input }, createdAt: new Date().toISOString(),
295
+ }, () => {
296
+ const current = readTaskSnapshot(db, identity);
297
+ if (current.revision !== input.expectedRevision)
298
+ conflict('Stale unresolved task revision');
299
+ const unresolved = { requestId: input.requestId, contextDigest: input.contextDigest,
300
+ revision: current.revision, reason: input.reason, evidence: input.evidence ?? [] };
301
+ db.prepare('UPDATE ledger_runs SET task_unresolved_json=? WHERE run_id=? AND task_revision=?')
302
+ .run(JSON.stringify(unresolved), identity.taskId, current.revision);
303
+ return readTaskSnapshot(db, identity);
304
+ }));
305
+ }
306
+ /** Resolving one request cannot clear another request's unresolved decision. */
307
+ export function clearTaskUnresolved(db, identity, input) {
308
+ const task = readTaskSnapshot(db, identity);
309
+ if (task.revision !== input.expectedRevision || task.unresolved && (task.unresolved.requestId !== input.requestId
310
+ || task.unresolved.contextDigest !== input.contextDigest))
311
+ conflict('Unresolved decision identity changed');
312
+ db.prepare('UPDATE ledger_runs SET task_unresolved_json=NULL WHERE run_id=? AND task_revision=?').run(identity.taskId, task.revision);
313
+ return readTaskSnapshot(db, identity);
314
+ }
315
+ //# sourceMappingURL=task-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-state.js","sourceRoot":"","sources":["../../src/dsh/task-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ /** Core-safe configuration schema for the optional tool projection. */
3
+ export declare const ToolExposureConfig: z.ZodObject<{
4
+ mode: z.ZodDefault<z.ZodEnum<{
5
+ auto: "auto";
6
+ phase: "phase";
7
+ full: "full";
8
+ lean: "lean";
9
+ }>>;
10
+ }, z.core.$strict>;
11
+ export type ToolExposureConfig = z.infer<typeof ToolExposureConfig>;
12
+ //# sourceMappingURL=tool-exposure-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-exposure-config.d.ts","sourceRoot":"","sources":["../../src/dsh/tool-exposure-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,uEAAuE;AACvE,eAAO,MAAM,kBAAkB;;;;;;;kBAAyF,CAAA;AACxH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ /** Core-safe configuration schema for the optional tool projection. */
3
+ export const ToolExposureConfig = z.object({ mode: z.enum(['auto', 'full', 'phase', 'lean']).default('auto') }).strict();
4
+ //# sourceMappingURL=tool-exposure-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-exposure-config.js","sourceRoot":"","sources":["../../src/dsh/tool-exposure-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA"}
@@ -1,16 +1,8 @@
1
- import { z } from 'zod';
1
+ import { ToolExposureConfig } from './tool-exposure-config.js';
2
+ export { ToolExposureConfig };
2
3
  import { type DshToolPolicyState } from './tool-policy.js';
3
4
  import { type TaskType } from '../akinator/types.js';
4
5
  import type { ModelRoute } from './model-configuration.js';
5
- export declare const ToolExposureConfig: z.ZodObject<{
6
- mode: z.ZodDefault<z.ZodEnum<{
7
- auto: "auto";
8
- phase: "phase";
9
- full: "full";
10
- lean: "lean";
11
- }>>;
12
- }, z.core.$strict>;
13
- export type ToolExposureConfig = z.infer<typeof ToolExposureConfig>;
14
6
  export type ResolvedToolExposureMode = 'full' | 'phase' | 'lean' | 'minimal';
15
7
  export interface ToolExposureDecision {
16
8
  readonly mode: ResolvedToolExposureMode;
@@ -71,5 +63,4 @@ export declare function projectToolsForMinimal<T extends PresentedTool>(tools: r
71
63
  }>, resolve: (name: string) => {
72
64
  readonly execute: unknown;
73
65
  } | undefined): ToolExposureProjection<T>;
74
- export {};
75
66
  //# sourceMappingURL=tool-exposure.d.ts.map