@cleocode/core 2026.9.23 → 2026.9.24

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 (651) hide show
  1. package/dist/admin/import-tasks.d.ts.map +1 -1
  2. package/dist/admin/import-tasks.js +35 -6
  3. package/dist/admin/import-tasks.js.map +1 -1
  4. package/dist/admin/import.d.ts.map +1 -1
  5. package/dist/admin/import.js +25 -6
  6. package/dist/admin/import.js.map +1 -1
  7. package/dist/build-provenance.json +2 -2
  8. package/dist/cloud/http.d.ts +8 -0
  9. package/dist/cloud/http.d.ts.map +1 -1
  10. package/dist/cloud/http.js +8 -1
  11. package/dist/cloud/http.js.map +1 -1
  12. package/dist/cloud/index.d.ts +6 -1
  13. package/dist/cloud/index.d.ts.map +1 -1
  14. package/dist/cloud/index.js +6 -1
  15. package/dist/cloud/index.js.map +1 -1
  16. package/dist/cloud/nexus-auth.d.ts +169 -0
  17. package/dist/cloud/nexus-auth.d.ts.map +1 -0
  18. package/dist/cloud/nexus-auth.js +372 -0
  19. package/dist/cloud/nexus-auth.js.map +1 -0
  20. package/dist/cloud/nexus-credentials.d.ts +188 -0
  21. package/dist/cloud/nexus-credentials.d.ts.map +1 -0
  22. package/dist/cloud/nexus-credentials.js +323 -0
  23. package/dist/cloud/nexus-credentials.js.map +1 -0
  24. package/dist/cloud/nexus-link.d.ts +85 -0
  25. package/dist/cloud/nexus-link.d.ts.map +1 -0
  26. package/dist/cloud/nexus-link.js +226 -0
  27. package/dist/cloud/nexus-link.js.map +1 -0
  28. package/dist/cloud/presence.d.ts +88 -0
  29. package/dist/cloud/presence.d.ts.map +1 -0
  30. package/dist/cloud/presence.js +137 -0
  31. package/dist/cloud/presence.js.map +1 -0
  32. package/dist/cloud/projects.d.ts +3 -1
  33. package/dist/cloud/projects.d.ts.map +1 -1
  34. package/dist/cloud/projects.js +4 -2
  35. package/dist/cloud/projects.js.map +1 -1
  36. package/dist/crypto/credentials.d.ts +14 -4
  37. package/dist/crypto/credentials.d.ts.map +1 -1
  38. package/dist/crypto/credentials.js +15 -1
  39. package/dist/crypto/credentials.js.map +1 -1
  40. package/dist/decide/bench/dataset.d.ts +125 -0
  41. package/dist/decide/bench/dataset.d.ts.map +1 -0
  42. package/dist/decide/bench/dataset.js +457 -0
  43. package/dist/decide/bench/dataset.js.map +1 -0
  44. package/dist/decide/bench/index.d.ts +23 -0
  45. package/dist/decide/bench/index.d.ts.map +1 -0
  46. package/dist/decide/bench/index.js +23 -0
  47. package/dist/decide/bench/index.js.map +1 -0
  48. package/dist/decide/bench/metrics.d.ts +55 -0
  49. package/dist/decide/bench/metrics.d.ts.map +1 -0
  50. package/dist/decide/bench/metrics.js +100 -0
  51. package/dist/decide/bench/metrics.js.map +1 -0
  52. package/dist/decide/bench/operation.d.ts +119 -0
  53. package/dist/decide/bench/operation.d.ts.map +1 -0
  54. package/dist/decide/bench/operation.js +171 -0
  55. package/dist/decide/bench/operation.js.map +1 -0
  56. package/dist/decide/bench/profiles.d.ts +74 -0
  57. package/dist/decide/bench/profiles.d.ts.map +1 -0
  58. package/dist/decide/bench/profiles.js +131 -0
  59. package/dist/decide/bench/profiles.js.map +1 -0
  60. package/dist/decide/bench/questions.d.ts +40 -0
  61. package/dist/decide/bench/questions.d.ts.map +1 -0
  62. package/dist/decide/bench/questions.js +107 -0
  63. package/dist/decide/bench/questions.js.map +1 -0
  64. package/dist/decide/bench/report.d.ts +21 -0
  65. package/dist/decide/bench/report.d.ts.map +1 -0
  66. package/dist/decide/bench/report.js +120 -0
  67. package/dist/decide/bench/report.js.map +1 -0
  68. package/dist/decide/bench/runner.d.ts +203 -0
  69. package/dist/decide/bench/runner.d.ts.map +1 -0
  70. package/dist/decide/bench/runner.js +335 -0
  71. package/dist/decide/bench/runner.js.map +1 -0
  72. package/dist/decide/bench/source.d.ts +21 -0
  73. package/dist/decide/bench/source.d.ts.map +1 -0
  74. package/dist/decide/bench/source.js +67 -0
  75. package/dist/decide/bench/source.js.map +1 -0
  76. package/dist/decide/bench/spot-check.d.ts +117 -0
  77. package/dist/decide/bench/spot-check.d.ts.map +1 -0
  78. package/dist/decide/bench/spot-check.js +221 -0
  79. package/dist/decide/bench/spot-check.js.map +1 -0
  80. package/dist/decide/bench/stats.d.ts +57 -0
  81. package/dist/decide/bench/stats.d.ts.map +1 -0
  82. package/dist/decide/bench/stats.js +82 -0
  83. package/dist/decide/bench/stats.js.map +1 -0
  84. package/dist/decide/bench/types.d.ts +216 -0
  85. package/dist/decide/bench/types.d.ts.map +1 -0
  86. package/dist/decide/bench/types.js +104 -0
  87. package/dist/decide/bench/types.js.map +1 -0
  88. package/dist/decide/client.d.ts +35 -1
  89. package/dist/decide/client.d.ts.map +1 -1
  90. package/dist/decide/client.js +124 -30
  91. package/dist/decide/client.js.map +1 -1
  92. package/dist/decide/credentials.d.ts +177 -17
  93. package/dist/decide/credentials.d.ts.map +1 -1
  94. package/dist/decide/credentials.js +505 -41
  95. package/dist/decide/credentials.js.map +1 -1
  96. package/dist/decide/index.d.ts +8 -8
  97. package/dist/decide/index.d.ts.map +1 -1
  98. package/dist/decide/index.js +8 -8
  99. package/dist/decide/index.js.map +1 -1
  100. package/dist/decide/jev-wire.d.ts +25 -19
  101. package/dist/decide/jev-wire.d.ts.map +1 -1
  102. package/dist/decide/jev-wire.js +56 -31
  103. package/dist/decide/jev-wire.js.map +1 -1
  104. package/dist/decide/operations.d.ts +63 -12
  105. package/dist/decide/operations.d.ts.map +1 -1
  106. package/dist/decide/operations.js +116 -58
  107. package/dist/decide/operations.js.map +1 -1
  108. package/dist/decide/provider-state.d.ts +85 -12
  109. package/dist/decide/provider-state.d.ts.map +1 -1
  110. package/dist/decide/provider-state.js +154 -21
  111. package/dist/decide/provider-state.js.map +1 -1
  112. package/dist/decide/provider.d.ts +5 -0
  113. package/dist/decide/provider.d.ts.map +1 -1
  114. package/dist/decide/provider.js.map +1 -1
  115. package/dist/decide/providers.d.ts +15 -2
  116. package/dist/decide/providers.d.ts.map +1 -1
  117. package/dist/decide/providers.js +22 -6
  118. package/dist/decide/providers.js.map +1 -1
  119. package/dist/decide/sites/registry.d.ts +22 -0
  120. package/dist/decide/sites/registry.d.ts.map +1 -1
  121. package/dist/decide/sites/registry.js +23 -0
  122. package/dist/decide/sites/registry.js.map +1 -1
  123. package/dist/decide/wizard.d.ts +12 -4
  124. package/dist/decide/wizard.d.ts.map +1 -1
  125. package/dist/decide/wizard.js +79 -26
  126. package/dist/decide/wizard.js.map +1 -1
  127. package/dist/dispatch/mvi-projection.d.ts +15 -2
  128. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  129. package/dist/dispatch/mvi-projection.js +73 -12
  130. package/dist/dispatch/mvi-projection.js.map +1 -1
  131. package/dist/docs/adr-allocator.d.ts +2 -2
  132. package/dist/docs/adr-allocator.d.ts.map +1 -1
  133. package/dist/docs/adr-allocator.js +17 -4
  134. package/dist/docs/adr-allocator.js.map +1 -1
  135. package/dist/docs/blob-consolidation.js +1 -1
  136. package/dist/docs/blob-consolidation.js.map +1 -1
  137. package/dist/docs/display-alias.d.ts +1 -1
  138. package/dist/docs/display-alias.d.ts.map +1 -1
  139. package/dist/docs/display-alias.js +7 -4
  140. package/dist/docs/display-alias.js.map +1 -1
  141. package/dist/docs/docs-inconsistency-detector.js +1 -1
  142. package/dist/docs/docs-inconsistency-detector.js.map +1 -1
  143. package/dist/docs/docs-update.d.ts.map +1 -1
  144. package/dist/docs/docs-update.js +6 -1
  145. package/dist/docs/docs-update.js.map +1 -1
  146. package/dist/docs/export-document.js +2928 -1053
  147. package/dist/docs/export-document.js.map +3 -3
  148. package/dist/docs/numbering.js +1 -1
  149. package/dist/docs/numbering.js.map +1 -1
  150. package/dist/docs/supersede.d.ts.map +1 -1
  151. package/dist/docs/supersede.js +6 -3
  152. package/dist/docs/supersede.js.map +1 -1
  153. package/dist/docs/version-ssot.js +1 -1
  154. package/dist/docs/version-ssot.js.map +1 -1
  155. package/dist/doctor/db-substrate.d.ts.map +1 -1
  156. package/dist/doctor/db-substrate.js +39 -24
  157. package/dist/doctor/db-substrate.js.map +1 -1
  158. package/dist/doctor/knowledge-summary.d.ts +10 -3
  159. package/dist/doctor/knowledge-summary.d.ts.map +1 -1
  160. package/dist/doctor/knowledge-summary.js +10 -3
  161. package/dist/doctor/knowledge-summary.js.map +1 -1
  162. package/dist/doctor/project-identity.d.ts +128 -37
  163. package/dist/doctor/project-identity.d.ts.map +1 -1
  164. package/dist/doctor/project-identity.js +476 -63
  165. package/dist/doctor/project-identity.js.map +1 -1
  166. package/dist/doctor/twin-collapse.d.ts +52 -2
  167. package/dist/doctor/twin-collapse.d.ts.map +1 -1
  168. package/dist/doctor/twin-collapse.js +108 -4
  169. package/dist/doctor/twin-collapse.js.map +1 -1
  170. package/dist/error-catalog.js +2 -2
  171. package/dist/error-catalog.js.map +1 -1
  172. package/dist/error-registry.js +1 -1
  173. package/dist/error-registry.js.map +1 -1
  174. package/dist/gateway-client/generated/types.gen.d.ts +22 -2
  175. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  176. package/dist/index.d.ts +1 -1
  177. package/dist/index.d.ts.map +1 -1
  178. package/dist/index.js +1 -1
  179. package/dist/index.js.map +1 -1
  180. package/dist/init.d.ts.map +1 -1
  181. package/dist/init.js +20 -11
  182. package/dist/init.js.map +1 -1
  183. package/dist/inject/index.d.ts.map +1 -1
  184. package/dist/inject/index.js +2 -3
  185. package/dist/inject/index.js.map +1 -1
  186. package/dist/internal.d.ts +5 -4
  187. package/dist/internal.d.ts.map +1 -1
  188. package/dist/internal.js +6 -4
  189. package/dist/internal.js.map +1 -1
  190. package/dist/llm/credential-remove-entry.d.ts +59 -0
  191. package/dist/llm/credential-remove-entry.d.ts.map +1 -0
  192. package/dist/llm/credential-remove-entry.js +101 -0
  193. package/dist/llm/credential-remove-entry.js.map +1 -0
  194. package/dist/llm/oauth/device-code.d.ts +26 -6
  195. package/dist/llm/oauth/device-code.d.ts.map +1 -1
  196. package/dist/llm/oauth/device-code.js +44 -12
  197. package/dist/llm/oauth/device-code.js.map +1 -1
  198. package/dist/llm/plugin-facade.js +3017 -1142
  199. package/dist/llm/plugin-facade.js.map +3 -3
  200. package/dist/memory/attention.d.ts.map +1 -1
  201. package/dist/memory/attention.js +5 -3
  202. package/dist/memory/attention.js.map +1 -1
  203. package/dist/memory/decisions.d.ts +48 -3
  204. package/dist/memory/decisions.d.ts.map +1 -1
  205. package/dist/memory/decisions.js +98 -14
  206. package/dist/memory/decisions.js.map +1 -1
  207. package/dist/memory/learnings.d.ts +6 -6
  208. package/dist/memory/patterns.d.ts +4 -4
  209. package/dist/migration/manual/T10165-backfill-adr-index.d.ts.map +1 -1
  210. package/dist/migration/manual/T10165-backfill-adr-index.js +5 -1
  211. package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
  212. package/dist/nexus/fleet-status.d.ts +83 -0
  213. package/dist/nexus/fleet-status.d.ts.map +1 -0
  214. package/dist/nexus/fleet-status.js +414 -0
  215. package/dist/nexus/fleet-status.js.map +1 -0
  216. package/dist/nexus/git-state.d.ts +15 -0
  217. package/dist/nexus/git-state.d.ts.map +1 -1
  218. package/dist/nexus/git-state.js +67 -2
  219. package/dist/nexus/git-state.js.map +1 -1
  220. package/dist/nexus/identity.d.ts.map +1 -1
  221. package/dist/nexus/identity.js +4 -0
  222. package/dist/nexus/identity.js.map +1 -1
  223. package/dist/nexus/index.d.ts +4 -1
  224. package/dist/nexus/index.d.ts.map +1 -1
  225. package/dist/nexus/index.js +7 -1
  226. package/dist/nexus/index.js.map +1 -1
  227. package/dist/nexus/migrate-json-to-sqlite.d.ts +3 -2
  228. package/dist/nexus/migrate-json-to-sqlite.d.ts.map +1 -1
  229. package/dist/nexus/migrate-json-to-sqlite.js +9 -17
  230. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
  231. package/dist/nexus/ops.d.ts +1 -0
  232. package/dist/nexus/ops.d.ts.map +1 -1
  233. package/dist/nexus/project-activity.d.ts +104 -0
  234. package/dist/nexus/project-activity.d.ts.map +1 -0
  235. package/dist/nexus/project-activity.js +150 -0
  236. package/dist/nexus/project-activity.js.map +1 -0
  237. package/dist/nexus/query.d.ts +2 -2
  238. package/dist/nexus/query.d.ts.map +1 -1
  239. package/dist/nexus/query.js +4 -19
  240. package/dist/nexus/query.js.map +1 -1
  241. package/dist/nexus/registry-errors.d.ts +61 -0
  242. package/dist/nexus/registry-errors.d.ts.map +1 -0
  243. package/dist/nexus/registry-errors.js +85 -0
  244. package/dist/nexus/registry-errors.js.map +1 -0
  245. package/dist/nexus/registry.d.ts +30 -5
  246. package/dist/nexus/registry.d.ts.map +1 -1
  247. package/dist/nexus/registry.js +115 -70
  248. package/dist/nexus/registry.js.map +1 -1
  249. package/dist/orchestrate/pivot.d.ts +4 -0
  250. package/dist/orchestrate/pivot.d.ts.map +1 -1
  251. package/dist/orchestrate/pivot.js +75 -12
  252. package/dist/orchestrate/pivot.js.map +1 -1
  253. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  254. package/dist/orchestrate/query-ops.js +29 -27
  255. package/dist/orchestrate/query-ops.js.map +1 -1
  256. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  257. package/dist/orchestrate/spawn-ops.js +29 -3
  258. package/dist/orchestrate/spawn-ops.js.map +1 -1
  259. package/dist/orchestration/bootstrap.d.ts.map +1 -1
  260. package/dist/orchestration/bootstrap.js +20 -14
  261. package/dist/orchestration/bootstrap.js.map +1 -1
  262. package/dist/orchestration/index.d.ts +15 -1
  263. package/dist/orchestration/index.d.ts.map +1 -1
  264. package/dist/orchestration/index.js +25 -6
  265. package/dist/orchestration/index.js.map +1 -1
  266. package/dist/orchestration/lead-rollup.d.ts +7 -1
  267. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  268. package/dist/orchestration/lead-rollup.js +6 -3
  269. package/dist/orchestration/lead-rollup.js.map +1 -1
  270. package/dist/orchestration/spawn-prompt.js +1 -1
  271. package/dist/orchestration/spawn-prompt.js.map +1 -1
  272. package/dist/orchestration/waves.d.ts +21 -10
  273. package/dist/orchestration/waves.d.ts.map +1 -1
  274. package/dist/orchestration/waves.js +38 -35
  275. package/dist/orchestration/waves.js.map +1 -1
  276. package/dist/paths.d.ts +9 -2
  277. package/dist/paths.d.ts.map +1 -1
  278. package/dist/paths.js +30 -13
  279. package/dist/paths.js.map +1 -1
  280. package/dist/phases/index.d.ts +1 -1
  281. package/dist/phases/index.d.ts.map +1 -1
  282. package/dist/phases/index.js +3 -4
  283. package/dist/phases/index.js.map +1 -1
  284. package/dist/project-info.d.ts +40 -3
  285. package/dist/project-info.d.ts.map +1 -1
  286. package/dist/project-info.js +74 -6
  287. package/dist/project-info.js.map +1 -1
  288. package/dist/project-lifecycle.d.ts +28 -7
  289. package/dist/project-lifecycle.d.ts.map +1 -1
  290. package/dist/project-lifecycle.js +114 -47
  291. package/dist/project-lifecycle.js.map +1 -1
  292. package/dist/project-scope.d.ts +70 -3
  293. package/dist/project-scope.d.ts.map +1 -1
  294. package/dist/project-scope.js +154 -15
  295. package/dist/project-scope.js.map +1 -1
  296. package/dist/release/open.d.ts +12 -2
  297. package/dist/release/open.d.ts.map +1 -1
  298. package/dist/release/open.js +32 -3
  299. package/dist/release/open.js.map +1 -1
  300. package/dist/release/preflight-skip.d.ts +73 -0
  301. package/dist/release/preflight-skip.d.ts.map +1 -0
  302. package/dist/release/preflight-skip.js +254 -0
  303. package/dist/release/preflight-skip.js.map +1 -0
  304. package/dist/render/decide/index.d.ts +51 -0
  305. package/dist/render/decide/index.d.ts.map +1 -0
  306. package/dist/render/decide/index.js +289 -0
  307. package/dist/render/decide/index.js.map +1 -0
  308. package/dist/render/index.d.ts +1 -0
  309. package/dist/render/index.d.ts.map +1 -1
  310. package/dist/render/index.js +1 -0
  311. package/dist/render/index.js.map +1 -1
  312. package/dist/render/nexus/graph/index.d.ts +5 -0
  313. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  314. package/dist/render/nexus/graph/index.js +53 -0
  315. package/dist/render/nexus/graph/index.js.map +1 -1
  316. package/dist/scaffold/ensure-config.d.ts +14 -6
  317. package/dist/scaffold/ensure-config.d.ts.map +1 -1
  318. package/dist/scaffold/ensure-config.js +39 -17
  319. package/dist/scaffold/ensure-config.js.map +1 -1
  320. package/dist/scaffold/project-identity.d.ts +115 -23
  321. package/dist/scaffold/project-identity.d.ts.map +1 -1
  322. package/dist/scaffold/project-identity.js +196 -44
  323. package/dist/scaffold/project-identity.js.map +1 -1
  324. package/dist/selfimprove/fix-gen.js +3027 -1152
  325. package/dist/selfimprove/fix-gen.js.map +3 -3
  326. package/dist/sentient/cross-project-hygiene.d.ts +12 -6
  327. package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
  328. package/dist/sentient/cross-project-hygiene.js +15 -10
  329. package/dist/sentient/cross-project-hygiene.js.map +1 -1
  330. package/dist/session/engine-ops.d.ts +13 -4
  331. package/dist/session/engine-ops.d.ts.map +1 -1
  332. package/dist/session/engine-ops.js +38 -45
  333. package/dist/session/engine-ops.js.map +1 -1
  334. package/dist/sessions/briefing.d.ts +7 -3
  335. package/dist/sessions/briefing.d.ts.map +1 -1
  336. package/dist/sessions/briefing.js +10 -10
  337. package/dist/sessions/briefing.js.map +1 -1
  338. package/dist/sessions/drift-watchdog.d.ts.map +1 -1
  339. package/dist/sessions/drift-watchdog.js +11 -19
  340. package/dist/sessions/drift-watchdog.js.map +1 -1
  341. package/dist/sessions/focus-state-store.d.ts +103 -26
  342. package/dist/sessions/focus-state-store.d.ts.map +1 -1
  343. package/dist/sessions/focus-state-store.js +166 -37
  344. package/dist/sessions/focus-state-store.js.map +1 -1
  345. package/dist/sessions/handoff.d.ts.map +1 -1
  346. package/dist/sessions/handoff.js +9 -18
  347. package/dist/sessions/handoff.js.map +1 -1
  348. package/dist/sessions/index.d.ts +4 -2
  349. package/dist/sessions/index.d.ts.map +1 -1
  350. package/dist/sessions/index.js +35 -6
  351. package/dist/sessions/index.js.map +1 -1
  352. package/dist/sessions/session-drift.d.ts.map +1 -1
  353. package/dist/sessions/session-drift.js +4 -2
  354. package/dist/sessions/session-drift.js.map +1 -1
  355. package/dist/sessions/session-view.d.ts +8 -1
  356. package/dist/sessions/session-view.d.ts.map +1 -1
  357. package/dist/sessions/session-view.js +9 -2
  358. package/dist/sessions/session-view.js.map +1 -1
  359. package/dist/setup/config-json-merge.d.ts.map +1 -1
  360. package/dist/setup/config-json-merge.js +1 -0
  361. package/dist/setup/config-json-merge.js.map +1 -1
  362. package/dist/setup/index.d.ts +4 -2
  363. package/dist/setup/index.d.ts.map +1 -1
  364. package/dist/setup/index.js +6 -2
  365. package/dist/setup/index.js.map +1 -1
  366. package/dist/setup/sections/nexus-account.d.ts +32 -0
  367. package/dist/setup/sections/nexus-account.d.ts.map +1 -0
  368. package/dist/setup/sections/nexus-account.js +64 -0
  369. package/dist/setup/sections/nexus-account.js.map +1 -0
  370. package/dist/setup/wizard.d.ts +1 -1
  371. package/dist/setup/wizard.d.ts.map +1 -1
  372. package/dist/setup/wizard.js.map +1 -1
  373. package/dist/skills/orchestrator/startup.d.ts.map +1 -1
  374. package/dist/skills/orchestrator/startup.js +18 -31
  375. package/dist/skills/orchestrator/startup.js.map +1 -1
  376. package/dist/snapshot/index.d.ts.map +1 -1
  377. package/dist/snapshot/index.js +60 -53
  378. package/dist/snapshot/index.js.map +1 -1
  379. package/dist/spawn/agent-identity.d.ts +33 -1
  380. package/dist/spawn/agent-identity.d.ts.map +1 -1
  381. package/dist/spawn/agent-identity.js +53 -1
  382. package/dist/spawn/agent-identity.js.map +1 -1
  383. package/dist/spawn/index.d.ts +1 -1
  384. package/dist/spawn/index.d.ts.map +1 -1
  385. package/dist/spawn/index.js +1 -1
  386. package/dist/spawn/index.js.map +1 -1
  387. package/dist/stats/index.d.ts.map +1 -1
  388. package/dist/stats/index.js +3 -4
  389. package/dist/stats/index.js.map +1 -1
  390. package/dist/status/index.d.ts +12 -3
  391. package/dist/status/index.d.ts.map +1 -1
  392. package/dist/status/index.js +47 -5
  393. package/dist/status/index.js.map +1 -1
  394. package/dist/store/attachment-repair.d.ts.map +1 -1
  395. package/dist/store/attachment-repair.js +42 -3
  396. package/dist/store/attachment-repair.js.map +1 -1
  397. package/dist/store/attachment-store.d.ts.map +1 -1
  398. package/dist/store/attachment-store.js +30 -46
  399. package/dist/store/attachment-store.js.map +1 -1
  400. package/dist/store/backup-recover-brain.d.ts +4 -0
  401. package/dist/store/backup-recover-brain.d.ts.map +1 -1
  402. package/dist/store/backup-recover-brain.js +2 -0
  403. package/dist/store/backup-recover-brain.js.map +1 -1
  404. package/dist/store/backup-recover.d.ts +9 -0
  405. package/dist/store/backup-recover.d.ts.map +1 -1
  406. package/dist/store/backup-recover.js +28 -1
  407. package/dist/store/backup-recover.js.map +1 -1
  408. package/dist/store/backup-sidecar.d.ts +30 -0
  409. package/dist/store/backup-sidecar.d.ts.map +1 -1
  410. package/dist/store/backup-sidecar.js +90 -2
  411. package/dist/store/backup-sidecar.js.map +1 -1
  412. package/dist/store/blob-keep.d.ts +135 -0
  413. package/dist/store/blob-keep.d.ts.map +1 -0
  414. package/dist/store/blob-keep.js +283 -0
  415. package/dist/store/blob-keep.js.map +1 -0
  416. package/dist/store/converters.d.ts.map +1 -1
  417. package/dist/store/converters.js +11 -0
  418. package/dist/store/converters.js.map +1 -1
  419. package/dist/store/credential-transfer.d.ts +37 -5
  420. package/dist/store/credential-transfer.d.ts.map +1 -1
  421. package/dist/store/credential-transfer.js +73 -18
  422. package/dist/store/credential-transfer.js.map +1 -1
  423. package/dist/store/data-accessor.d.ts +1 -1
  424. package/dist/store/data-accessor.d.ts.map +1 -1
  425. package/dist/store/data-accessor.js.map +1 -1
  426. package/dist/store/db-helpers.d.ts +18 -0
  427. package/dist/store/db-helpers.d.ts.map +1 -1
  428. package/dist/store/db-helpers.js +46 -0
  429. package/dist/store/db-helpers.js.map +1 -1
  430. package/dist/store/exodus/on-open.d.ts.map +1 -1
  431. package/dist/store/exodus/on-open.js +35 -0
  432. package/dist/store/exodus/on-open.js.map +1 -1
  433. package/dist/store/exodus/runtime-targets.d.ts +3 -3
  434. package/dist/store/exodus/runtime-targets.js +3 -3
  435. package/dist/store/import-remap.d.ts +12 -1
  436. package/dist/store/import-remap.d.ts.map +1 -1
  437. package/dist/store/import-remap.js +14 -0
  438. package/dist/store/import-remap.js.map +1 -1
  439. package/dist/store/legacy-tasks-lineage.d.ts +3 -1
  440. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  441. package/dist/store/legacy-tasks-lineage.js +3 -1
  442. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  443. package/dist/store/memory-accessor.js +1 -1
  444. package/dist/store/memory-accessor.js.map +1 -1
  445. package/dist/store/migration-manager.d.ts +61 -0
  446. package/dist/store/migration-manager.d.ts.map +1 -1
  447. package/dist/store/migration-manager.js +102 -4
  448. package/dist/store/migration-manager.js.map +1 -1
  449. package/dist/store/nexus-validation-schemas.d.ts +64 -0
  450. package/dist/store/nexus-validation-schemas.d.ts.map +1 -1
  451. package/dist/store/portable-bundle-import.d.ts +8 -0
  452. package/dist/store/portable-bundle-import.d.ts.map +1 -1
  453. package/dist/store/portable-bundle-import.js +10 -0
  454. package/dist/store/portable-bundle-import.js.map +1 -1
  455. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  456. package/dist/store/portable-bundle-scan.js +1 -0
  457. package/dist/store/portable-bundle-scan.js.map +1 -1
  458. package/dist/store/portable-bundle.d.ts.map +1 -1
  459. package/dist/store/portable-bundle.js +15 -14
  460. package/dist/store/portable-bundle.js.map +1 -1
  461. package/dist/store/pre-repair-snapshot.d.ts +4 -1
  462. package/dist/store/pre-repair-snapshot.d.ts.map +1 -1
  463. package/dist/store/pre-repair-snapshot.js +5 -1
  464. package/dist/store/pre-repair-snapshot.js.map +1 -1
  465. package/dist/store/regenerators.d.ts +4 -2
  466. package/dist/store/regenerators.d.ts.map +1 -1
  467. package/dist/store/regenerators.js +7 -3
  468. package/dist/store/regenerators.js.map +1 -1
  469. package/dist/store/repair-malformed-dbs.d.ts +4 -0
  470. package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
  471. package/dist/store/repair-malformed-dbs.js +3 -0
  472. package/dist/store/repair-malformed-dbs.js.map +1 -1
  473. package/dist/store/safety-data-accessor.d.ts +8 -3
  474. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  475. package/dist/store/safety-data-accessor.js +11 -4
  476. package/dist/store/safety-data-accessor.js.map +1 -1
  477. package/dist/store/schema/cleo-global/nexus.d.ts +48 -0
  478. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  479. package/dist/store/schema/cleo-global/nexus.js +17 -0
  480. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  481. package/dist/store/schema/cleo-project/docs.d.ts +16 -0
  482. package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
  483. package/dist/store/schema/cleo-project/docs.js +10 -0
  484. package/dist/store/schema/cleo-project/docs.js.map +1 -1
  485. package/dist/store/schema/cleo-project/tasks-core.d.ts +80 -0
  486. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  487. package/dist/store/schema/cleo-project/tasks-core.js +25 -1
  488. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  489. package/dist/store/schema/cleo-shared/brain.d.ts +1 -1
  490. package/dist/store/schema/memory-schema.d.ts +1 -1
  491. package/dist/store/schema/nexus-schema.d.ts +48 -0
  492. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  493. package/dist/store/schema/nexus-schema.js +28 -7
  494. package/dist/store/schema/nexus-schema.js.map +1 -1
  495. package/dist/store/session-store.d.ts +65 -0
  496. package/dist/store/session-store.d.ts.map +1 -1
  497. package/dist/store/session-store.js +108 -7
  498. package/dist/store/session-store.js.map +1 -1
  499. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  500. package/dist/store/sqlite-data-accessor.js +245 -47
  501. package/dist/store/sqlite-data-accessor.js.map +1 -1
  502. package/dist/store/sqlite.d.ts +15 -3
  503. package/dist/store/sqlite.d.ts.map +1 -1
  504. package/dist/store/sqlite.js +52 -20
  505. package/dist/store/sqlite.js.map +1 -1
  506. package/dist/store/store-write-guard.d.ts +9 -3
  507. package/dist/store/store-write-guard.d.ts.map +1 -1
  508. package/dist/store/store-write-guard.js +25 -4
  509. package/dist/store/store-write-guard.js.map +1 -1
  510. package/dist/store/table-classification.d.ts +1 -1
  511. package/dist/store/table-classification.d.ts.map +1 -1
  512. package/dist/store/table-classification.js +34 -8
  513. package/dist/store/table-classification.js.map +1 -1
  514. package/dist/store/task-claim.d.ts +144 -0
  515. package/dist/store/task-claim.d.ts.map +1 -0
  516. package/dist/store/task-claim.js +195 -0
  517. package/dist/store/task-claim.js.map +1 -0
  518. package/dist/store/task-version.d.ts +43 -5
  519. package/dist/store/task-version.d.ts.map +1 -1
  520. package/dist/store/task-version.js +113 -17
  521. package/dist/store/task-version.js.map +1 -1
  522. package/dist/store/tasks-schema.d.ts +2 -0
  523. package/dist/store/tasks-schema.d.ts.map +1 -1
  524. package/dist/store/tasks-schema.js +1 -0
  525. package/dist/store/tasks-schema.js.map +1 -1
  526. package/dist/store/tasks-sqlite.js +1 -1
  527. package/dist/store/tasks-sqlite.js.map +1 -1
  528. package/dist/store/twin-collapse.d.ts +339 -22
  529. package/dist/store/twin-collapse.d.ts.map +1 -1
  530. package/dist/store/twin-collapse.js +1323 -48
  531. package/dist/store/twin-collapse.js.map +1 -1
  532. package/dist/store/umbrella-data-accessor.d.ts +8 -3
  533. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  534. package/dist/store/umbrella-data-accessor.js +10 -4
  535. package/dist/store/umbrella-data-accessor.js.map +1 -1
  536. package/dist/store/validation-schemas.d.ts +161 -1
  537. package/dist/store/validation-schemas.d.ts.map +1 -1
  538. package/dist/store/with-retry.d.ts +36 -0
  539. package/dist/store/with-retry.d.ts.map +1 -1
  540. package/dist/store/with-retry.js +51 -0
  541. package/dist/store/with-retry.js.map +1 -1
  542. package/dist/store/worktree-build-guard.d.ts +13 -4
  543. package/dist/store/worktree-build-guard.d.ts.map +1 -1
  544. package/dist/store/worktree-build-guard.js +21 -10
  545. package/dist/store/worktree-build-guard.js.map +1 -1
  546. package/dist/store/worktree-isolation-guard.d.ts +121 -10
  547. package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
  548. package/dist/store/worktree-isolation-guard.js +155 -34
  549. package/dist/store/worktree-isolation-guard.js.map +1 -1
  550. package/dist/system/backup.d.ts +7 -0
  551. package/dist/system/backup.d.ts.map +1 -1
  552. package/dist/system/backup.js +5 -0
  553. package/dist/system/backup.js.map +1 -1
  554. package/dist/system/health.d.ts.map +1 -1
  555. package/dist/system/health.js +3 -1
  556. package/dist/system/health.js.map +1 -1
  557. package/dist/system/inject-generate.d.ts.map +1 -1
  558. package/dist/system/inject-generate.js +23 -10
  559. package/dist/system/inject-generate.js.map +1 -1
  560. package/dist/system/project-health.d.ts +8 -0
  561. package/dist/system/project-health.d.ts.map +1 -1
  562. package/dist/system/project-health.js +13 -5
  563. package/dist/system/project-health.js.map +1 -1
  564. package/dist/task-tools/index.d.ts +1 -1
  565. package/dist/task-tools/index.d.ts.map +1 -1
  566. package/dist/task-tools/index.js +1 -1
  567. package/dist/task-tools/index.js.map +1 -1
  568. package/dist/task-tools/score-task-priority.d.ts +38 -0
  569. package/dist/task-tools/score-task-priority.d.ts.map +1 -1
  570. package/dist/task-tools/score-task-priority.js +51 -0
  571. package/dist/task-tools/score-task-priority.js.map +1 -1
  572. package/dist/task-work/claims.d.ts +215 -0
  573. package/dist/task-work/claims.d.ts.map +1 -0
  574. package/dist/task-work/claims.js +272 -0
  575. package/dist/task-work/claims.js.map +1 -0
  576. package/dist/task-work/index.d.ts +47 -3
  577. package/dist/task-work/index.d.ts.map +1 -1
  578. package/dist/task-work/index.js +74 -41
  579. package/dist/task-work/index.js.map +1 -1
  580. package/dist/tasks/add.d.ts.map +1 -1
  581. package/dist/tasks/add.js +3 -2
  582. package/dist/tasks/add.js.map +1 -1
  583. package/dist/tasks/analyze.d.ts.map +1 -1
  584. package/dist/tasks/analyze.js +3 -4
  585. package/dist/tasks/analyze.js.map +1 -1
  586. package/dist/tasks/change-set.d.ts +5 -0
  587. package/dist/tasks/change-set.d.ts.map +1 -1
  588. package/dist/tasks/change-set.js +59 -3
  589. package/dist/tasks/change-set.js.map +1 -1
  590. package/dist/tasks/complete.d.ts +16 -0
  591. package/dist/tasks/complete.d.ts.map +1 -1
  592. package/dist/tasks/complete.js +27 -7
  593. package/dist/tasks/complete.js.map +1 -1
  594. package/dist/tasks/component-pr.d.ts +162 -1
  595. package/dist/tasks/component-pr.d.ts.map +1 -1
  596. package/dist/tasks/component-pr.js +560 -59
  597. package/dist/tasks/component-pr.js.map +1 -1
  598. package/dist/tasks/done-record.d.ts +14 -1
  599. package/dist/tasks/done-record.d.ts.map +1 -1
  600. package/dist/tasks/done-record.js +37 -0
  601. package/dist/tasks/done-record.js.map +1 -1
  602. package/dist/tasks/duplicate-detector.d.ts +20 -1
  603. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  604. package/dist/tasks/duplicate-detector.js +10 -2
  605. package/dist/tasks/duplicate-detector.js.map +1 -1
  606. package/dist/tasks/engine-wrap-ops.d.ts +19 -10
  607. package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
  608. package/dist/tasks/engine-wrap-ops.js +38 -10
  609. package/dist/tasks/engine-wrap-ops.js.map +1 -1
  610. package/dist/tasks/graph-ops.d.ts +9 -2
  611. package/dist/tasks/graph-ops.d.ts.map +1 -1
  612. package/dist/tasks/graph-ops.js +24 -32
  613. package/dist/tasks/graph-ops.js.map +1 -1
  614. package/dist/tasks/plan.d.ts.map +1 -1
  615. package/dist/tasks/plan.js +16 -60
  616. package/dist/tasks/plan.js.map +1 -1
  617. package/dist/tasks/task-context.d.ts.map +1 -1
  618. package/dist/tasks/task-context.js +13 -0
  619. package/dist/tasks/task-context.js.map +1 -1
  620. package/dist/tasks/task-import.d.ts.map +1 -1
  621. package/dist/tasks/task-import.js +21 -12
  622. package/dist/tasks/task-import.js.map +1 -1
  623. package/dist/tasks/task-next.d.ts +25 -2
  624. package/dist/tasks/task-next.d.ts.map +1 -1
  625. package/dist/tasks/task-next.js +32 -13
  626. package/dist/tasks/task-next.js.map +1 -1
  627. package/dist/tasks/update.d.ts.map +1 -1
  628. package/dist/tasks/update.js +7 -5
  629. package/dist/tasks/update.js.map +1 -1
  630. package/dist/upgrade.d.ts +1 -1
  631. package/dist/upgrade.d.ts.map +1 -1
  632. package/dist/upgrade.js +48 -9
  633. package/dist/upgrade.js.map +1 -1
  634. package/dist/validation/doctor/checks.d.ts +20 -6
  635. package/dist/validation/doctor/checks.d.ts.map +1 -1
  636. package/dist/validation/doctor/checks.js +51 -8
  637. package/dist/validation/doctor/checks.js.map +1 -1
  638. package/dist/validation/validate-ops.d.ts.map +1 -1
  639. package/dist/validation/validate-ops.js +2 -3
  640. package/dist/validation/validate-ops.js.map +1 -1
  641. package/migrations/drizzle-cleo-global/20260929010000_t12512-registry-probed-opened/migration.sql +35 -0
  642. package/migrations/drizzle-cleo-global/20260929020000_t12721-git-state-head-committed-at/migration.sql +25 -0
  643. package/migrations/drizzle-cleo-project/20260929000000_t12535-docs-attachments-union-shape/migration.sql +21 -0
  644. package/migrations/drizzle-cleo-project/20260929120000_t12502-task-claim-leases/migration.sql +77 -0
  645. package/migrations/drizzle-cleo-project/20260929130000_t12736-claim-lease-iso-repair/migration.sql +37 -0
  646. package/package.json +23 -13
  647. package/schemas/project-info.schema.json +10 -4
  648. package/templates/CLEO-INJECTION.md +1 -1
  649. package/templates/CLEO-REFERENCE.md +3 -3
  650. package/templates/cleo-gitignore +11 -0
  651. package/templates/workflows/release-prepare.yml.tmpl +156 -10
@@ -10,7 +10,7 @@
10
10
  * @task T1609 insertHandoffEntry — write-once INSERT path for handoff data
11
11
  */
12
12
  import { ExitCode } from '@cleocode/contracts';
13
- import { and, desc, eq, isNull } from 'drizzle-orm';
13
+ import { and, desc, eq, isNull, lte, or } from 'drizzle-orm';
14
14
  import { CleoError } from '../errors.js';
15
15
  import { captureProjectScope, getProjectRoot, worktreeScope } from '../project-scope.js';
16
16
  import { getCurrentConnectionSessionId } from '../sessions/connection-session-handle.js';
@@ -18,8 +18,9 @@ import { resolveSessionIdFromEnv } from '../sessions/session-id.js';
18
18
  import { resolveTerminalKeys } from '../sessions/terminal-identity.js';
19
19
  import { rowToSession } from './converters.js';
20
20
  import { sessionTerminalBindings } from './session-binding-schema.js';
21
- import { getDb } from './sqlite.js';
21
+ import { getDb, getNativeTasksDb } from './sqlite.js';
22
22
  import * as schema from './tasks-schema.js';
23
+ import { runHeartbeatWrite } from './with-retry.js';
23
24
  // === CRUD OPERATIONS ===
24
25
  /** Create a new session. */
25
26
  export async function createSession(session, cwd) {
@@ -110,6 +111,43 @@ export async function updateSession(sessionId, updates, cwd) {
110
111
  return getSession(sessionId, scope.worktreeRoot);
111
112
  });
112
113
  }
114
+ /**
115
+ * Record the orchestrator session that spawned `sessionId` (T12502).
116
+ *
117
+ * This is the ONLY writer of `tasks_sessions.spawned_by_session_id` — the
118
+ * trusted spawn edge the task-claim chokepoint uses to let a spawn family
119
+ * pass a live lease between its members. It is write-once: an edge already
120
+ * recorded is never replaced, so a later caller cannot re-parent a session
121
+ * into its own family.
122
+ *
123
+ * @param sessionId - The spawned session.
124
+ * @param spawnerSessionId - The orchestrator session performing the spawn.
125
+ * @param cwd - Project root.
126
+ * @returns `true` when the edge was recorded now, or already names `spawnerSessionId`.
127
+ * @example
128
+ * ```ts
129
+ * await setSessionSpawnedBy(child.sessionId, orchestrator.id, projectRoot);
130
+ * ```
131
+ * @task T12502
132
+ */
133
+ export async function setSessionSpawnedBy(sessionId, spawnerSessionId, cwd) {
134
+ const scope = captureProjectScope(cwd ?? getProjectRoot(), worktreeScope.getStore());
135
+ return worktreeScope.run(scope, async () => {
136
+ const db = await getDb(scope.worktreeRoot);
137
+ await db
138
+ .update(schema.sessions)
139
+ .set({ spawnedBySessionId: spawnerSessionId })
140
+ .where(and(eq(schema.sessions.id, sessionId), isNull(schema.sessions.spawnedBySessionId)))
141
+ .run();
142
+ const [row] = await db
143
+ .select({ spawnedBy: schema.sessions.spawnedBySessionId })
144
+ .from(schema.sessions)
145
+ .where(eq(schema.sessions.id, sessionId))
146
+ .limit(1)
147
+ .all();
148
+ return row?.spawnedBy === spawnerSessionId;
149
+ });
150
+ }
113
151
  /**
114
152
  * Insert a handoff entry for a session (write-once, append-only).
115
153
  *
@@ -755,14 +793,77 @@ export async function hasActiveSession(cwd, nowMs = Date.now()) {
755
793
  .where(eq(schema.sessions.status, 'active'))
756
794
  .all();
757
795
  const cutoff = nowMs - SESSION_LIVE_TTL_MS;
758
- return rows.some((row) => {
759
- const seen = Math.max(Date.parse(row.startedAt ?? '') || 0, Date.parse(row.lastActivity ?? '') || 0);
760
- return seen >= cutoff;
761
- });
796
+ return rows.some((row) => sessionLastSeenMs(row) >= cutoff);
797
+ });
798
+ }
799
+ /**
800
+ * When a session was last seen alive, in epoch milliseconds (T12540): the
801
+ * newer of its `lastActivity` heartbeat and `startedAt`. Liveness and gc
802
+ * measure idleness from this, so a long-running session that keeps working
803
+ * stays live however long ago it started.
804
+ *
805
+ * @param session - Any shape carrying the two timestamps.
806
+ * @returns Epoch ms, or `0` when neither timestamp parses.
807
+ * @example
808
+ * ```ts
809
+ * const idleMs = Date.now() - sessionLastSeenMs(session);
810
+ * ```
811
+ * @task T12540
812
+ */
813
+ export function sessionLastSeenMs(session) {
814
+ return Math.max(Date.parse(session.startedAt ?? '') || 0, Date.parse(session.lastActivity ?? '') || 0);
815
+ }
816
+ /**
817
+ * Minimum interval between two `lastActivity` writes for one session, in
818
+ * milliseconds (T12540). Every bound mutation is activity, but the heartbeat
819
+ * writes at most once per window so a busy agent does not add a write per
820
+ * command.
821
+ */
822
+ export const SESSION_ACTIVITY_THROTTLE_MS = 60 * 1000;
823
+ /**
824
+ * Session activity heartbeat (T12540 · epic T12497): refresh an ACTIVE
825
+ * session's `lastActivity`, at most once per {@link SESSION_ACTIVITY_THROTTLE_MS}.
826
+ *
827
+ * Cheap and best-effort by construction:
828
+ * - one primary-key read decides whether the window has elapsed, so a
829
+ * throttled beat takes no write lock at all;
830
+ * - the write is ONE single-row UPDATE by primary key, whose `WHERE` repeats
831
+ * the throttle so two racing processes cannot both land a beat;
832
+ * - it runs through {@link runHeartbeatWrite}: a short `busy_timeout`, and a
833
+ * contended lock or an open transaction skips the beat instead of waiting.
834
+ *
835
+ * @param sessionId - The bound session that just did work.
836
+ * @param cwd - Working directory for DB resolution.
837
+ * @param nowMs - Clock override for tests.
838
+ * @returns `true` when `lastActivity` was written, `false` when throttled,
839
+ * skipped, or the session is not active.
840
+ * @task T12540
841
+ */
842
+ export async function touchSessionActivity(sessionId, cwd, nowMs = Date.now()) {
843
+ const scope = captureProjectScope(cwd ?? getProjectRoot(), worktreeScope.getStore());
844
+ return worktreeScope.run(scope, async () => {
845
+ const db = await getDb(scope.worktreeRoot);
846
+ const [row] = await db
847
+ .select({ status: schema.sessions.status, lastActivity: schema.sessions.lastActivity })
848
+ .from(schema.sessions)
849
+ .where(eq(schema.sessions.id, sessionId))
850
+ .limit(1)
851
+ .all();
852
+ if (row?.status !== 'active')
853
+ return false;
854
+ const due = nowMs - SESSION_ACTIVITY_THROTTLE_MS;
855
+ if ((Date.parse(row.lastActivity ?? '') || 0) > due)
856
+ return false;
857
+ const changes = runHeartbeatWrite(db, getNativeTasksDb(scope.worktreeRoot), () => Number(db
858
+ .update(schema.sessions)
859
+ .set({ lastActivity: new Date(nowMs).toISOString() })
860
+ .where(and(eq(schema.sessions.id, sessionId), eq(schema.sessions.status, 'active'), or(isNull(schema.sessions.lastActivity), lte(schema.sessions.lastActivity, new Date(due).toISOString()))))
861
+ .run().changes));
862
+ return (changes ?? 0) > 0;
762
863
  });
763
864
  }
764
865
  /** How to bind a caller to a session — shared by every E_SESSION_UNBOUND (T12500). */
765
- export const SESSION_UNBOUND_FIX = "Bind this terminal to a session: run 'cleo session start --scope <scope> --name <name>' " +
866
+ export const SESSION_UNBOUND_FIX = 'Bind this terminal to a session: run \'cleo session start --scope global --name "<name>"\' ' +
766
867
  "(or 'cleo session resume <id>' for an existing one), or set CLEO_SESSION_ID=<id>. " +
767
868
  "Read-only commands can name one explicitly (e.g. 'cleo session show <id>').";
768
869
  /** Copy-paste remedies attached to every E_SESSION_UNBOUND (T12500). */
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/store/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/store/session-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAoB,MAAM,kCAAkC,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,0BAA0B;AAE1B,4BAA4B;AAC5B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAgB,EAAE,GAAY;IAChE,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC5B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;aACvB,MAAM,CAAC;YACN,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;YACxC,WAAW,EAAE,EAAE,EAAE,MAAM;YACvB,aAAa,EAAE,EAAE,EAAE,KAAK;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YAC/D,kBAAkB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1F,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;YACpF,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,iFAAiF;YACjF,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;SACjD,CAAC;aACD,GAAG,EAAE,CAAC;QAET,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2BAA2B;AAC3B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB,EAAE,GAAY;IAC9D,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;aACxC,GAAG,EAAE,CAAC;QAET,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAyB,EACzB,GAAY;IAEZ,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,SAAS,GAA4B,EAAE,CAAC;QAE9C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACpE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACvE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACjE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YACtC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YACpC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpE,+BAA+B;QAC/B,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAC1D,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACzF,iCAAiC;QACjC,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,SAAS,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/F,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,SAAS,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/F,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAC1D,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAC1D,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACnF,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAEnF,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAEzF,OAAO,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,gBAAwB,EACxB,GAAY;IAEZ,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,EAAE;aACL,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;aACvB,GAAG,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;aAC7C,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;aACzF,GAAG,EAAE,CAAC;QACT,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;aACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;aACxC,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,EAAE,SAAS,KAAK,gBAAgB,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,WAAmB,EACnB,GAAY;IAEZ,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAGC,EACD,GAAY;IAEZ,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,EAAE;aACb,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrB,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qBAAqB;AACrB,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,IAAa,EACb,GAAY;IAEZ,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,OAAO,GAAqB;YAChC,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAClC,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+BAA+B;AAE/B,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAiB,EAAE,MAAc,EAAE,GAAY;IAC7E,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,oDAAoD;QACpD,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;aAC9B,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;aACvB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,EAC/C,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CACzC,CACF;aACA,GAAG,EAAE,CAAC;QAET,kCAAkC;QAClC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAElF,gCAAgC;QAChC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;aACvB,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;aAChD,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;aACxC,GAAG,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,GAAY;IAEZ,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,CAAC;YACN,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;YACxC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;SAC7C,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;aACxC,GAAG,EAAE,CAAC;QAET,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5D,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,aAAa,EAAE,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,SAAiB,EAAE,GAAY;IAC5D,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,mCAAmC;QACnC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;aAC9B,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;aACvB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,EAC/C,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CACzC,CACF;aACA,GAAG,EAAE,CAAC;QAET,+BAA+B;QAC/B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;aACvB,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC/C,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;aACxC,GAAG,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,QAAgB,EAAE,EAClB,GAAY;IAEZ,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;aAC5B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACtD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aAC5E,KAAK,CAAC,KAAK,CAAC;aACZ,GAAG,EAAE,CAAC;QAET,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4BAA4B;AAE5B,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,aAAqB,EAAE,EAAE,GAAY;IACpE,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QAEpD,kCAAkC;QAClC,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;aAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;aAC/C,GAAG,EAAE,CAAC;QAET,MAAM,QAAQ,GAAG,MAAM,CAAC;QAExB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACvB,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;iBAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC1C,GAAG,EAAE,CAAC;QACX,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAY;IACjD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aACxC,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,EAAE,CAAC;QAET,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAcD;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,IAA4B;IACrD,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;QACjD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QAChD,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;KAClE,CAAC;AACJ,CAAC;AAQD;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CACxB,EAAqC,EACrC,GAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,MAAM,CAAC;QACN,SAAS,EAAE,uBAAuB,CAAC,SAAS;QAC5C,eAAe,EAAE,uBAAuB,CAAC,eAAe;KACzD,CAAC;SACD,IAAI,CAAC,uBAAuB,CAAC;SAC7B,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;SACtD,KAAK,CAAC,CAAC,CAAC;SACR,GAAG,EAAE,CAAC;IACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CACpB,EAAqC,EACrC,GAAgB,EAChB,SAAiB,EACjB,eAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC;QACN,UAAU,EAAE,GAAG,CAAC,GAAG;QACnB,SAAS,EAAE,GAAG,CAAC,MAAM;QACrB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,SAAS;QACT,eAAe;QACf,OAAO;KACR,CAAC;SACD,kBAAkB,CAAC;QAClB,MAAM,EAAE,uBAAuB,CAAC,UAAU;QAC1C,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE;KACvF,CAAC;SACD,GAAG,EAAE,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAiB,EACjB,GAAY,EACZ,OAA+B,mBAAmB,EAAE;IAEpD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,KAAK,SAAS,CACzC,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,wEAAwE;YACxE,kEAAkE;YAClE,sEAAsE;YACtE,oEAAoE;YACpE,IAAI,QAAQ,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC5C,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC9E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;oBACtE,IAAI,IAAI,EAAE,MAAM,KAAK,QAAQ;wBAAE,SAAS;gBAC1C,CAAC;YACH,CAAC;YACD,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,SAAiB,EAAE,GAAY;IACvE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;QACxC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5E,OAAO,CAAC,MAAM,qBAAqB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,6DAA6D;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAeD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAY,EACZ,OAA+B,mBAAmB,EAAE;IAEpD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,KAAK,EAAE,EAAU,EAA2B,EAAE;YAClE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YACzD,OAAO,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,CAAC,CAAC;QACF,oEAAoE;QACpE,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAiB,EAAE,GAAgB,EAAoB,EAAE;YAC3F,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,CAAC,EAAE,UAAU,EAAE,uBAAuB,CAAC,UAAU,EAAE,CAAC;iBAC1D,IAAI,CAAC,uBAAuB,CAAC;iBAC7B,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAChD,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,EAC/C,EAAE,CAAC,uBAAuB,CAAC,eAAe,EAAE,IAAI,CAAC,CAClD,CACF;iBACA,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC5C,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACnD,IAAI,OAAO;wBAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;gBACjE,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC;YAC3B,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,GAAG,CAAC,eAAe;oBAAE,OAAO,IAAI,CAAC;gBACrC,IAAI,MAAM,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC;oBAAE,OAAO,IAAI,CAAC;YACvE,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,6DAA6D;gBAC/D,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;YACxE,iEAAiE;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAY,EACZ,OAA+B,mBAAmB,EAAE;IAEpD,OAAO,CAAC,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAiB,EAAE,GAAY;IAC1E,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE;aACd,MAAM,CAAC,uBAAuB,CAAC;aAC/B,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACvD,GAAG,EAAE,CAAC;QACT,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAY;IACtD,OAAO,CAAC,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAAY;IACxD,OAAO,CAAC,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC;AAChE,CAAC;AAmBD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAY;IACpD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,MAAM,GAAG,6BAA6B,EAAE,CAAC;QAC/C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,MAAM;gBAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,YAAqB,EAAE,CAAC;YACnE,oEAAoE;QACtE,CAAC;QACD,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAc,EAAE,CAAC;YAC1D,4EAA4E;QAC9E,CAAC;QACD,uDAAuD;QACvD,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,GAAG,EAAE,UAAmB;gBACxB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAY;IACtD,OAAO,CAAC,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC;AAC9D,CAAC;AAcD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAY;IACtD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAY,EAAE,QAAgB,IAAI,CAAC,GAAG,EAAE;IAC7E,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,CAAC;YACN,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;YACpC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY;SAC3C,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC3C,GAAG,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,KAAK,GAAG,mBAAmB,CAAC;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAGjC;IACC,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,EACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAiB,EACjB,GAAY,EACZ,QAAgB,IAAI,CAAC,GAAG,EAAE;IAE1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;aACtF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACrB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;aACxC,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,EAAE,CAAC;QACT,IAAI,GAAG,EAAE,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,GAAG,4BAA4B,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAClE,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAC/E,MAAM,CACJ,EAAE;aACC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;aACvB,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;aACpD,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,EACjC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EACpC,EAAE,CACA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EACpC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAC/D,CACF,CACF;aACA,GAAG,EAAE,CAAC,OAAO,CACjB,CACF,CAAC;QACF,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,MAAM,mBAAmB,GAC9B,6FAA6F;IAC7F,oFAAoF;IACpF,6EAA6E,CAAC;AAEhF,wEAAwE;AACxE,MAAM,CAAC,MAAM,4BAA4B,GAAuD;IAC9F;QACE,MAAM,EAAE,0BAA0B;QAClC,OAAO,EAAE,mDAAmD;KAC7D;IACD,EAAE,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,iCAAiC,EAAE;IAClF,EAAE,MAAM,EAAE,iCAAiC,EAAE,OAAO,EAAE,oCAAoC,EAAE;IAC5F,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,mCAAmC,EAAE;CACjF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,OAAO,CACL,UAAU,SAAS,6EAA6E;QAChG,yFAAyF;QACzF,6CAA6C,CAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,GAAY;IAEZ,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE;YAC9E,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,CAAC,GAAG,4BAA4B,CAAC;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,OAAO,CACL,WAAW,SAAS,oEAAoE;QACxF,2FAA2F;QAC3F,wCAAwC,SAAS,sCAAsC;QACvF,wCAAwC,CACzC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,GAAY;IAC1D,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;YACnB,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACxF,GAAG,EAAE,mCAAmC,KAAK,CAAC,OAAO,CAAC,EAAE,kDAAkD;aAC3G,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAChC,OAAO,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-data-accessor.d.ts","sourceRoot":"","sources":["../../src/store/sqlite-data-accessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoBhD,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAEV,YAAY,EAOZ,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAyD5B,yEAAyE;AACzE,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAGf;AA4BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyB/F;AAkDD;;;;;;;;GAQG;AACH,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEtF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,YAAY,GAAG,mBAAmB,EAChF,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,GACnB,CAAC,CAmBH;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAQlF"}
1
+ {"version":3,"file":"sqlite-data-accessor.d.ts","sourceRoot":"","sources":["../../src/store/sqlite-data-accessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyBhD,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAEV,YAAY,EASZ,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAoE5B,yEAAyE;AACzE,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAGf;AA4BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyB/F;AAkDD;;;;;;;;GAQG;AACH,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AA6FtF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,YAAY,GAAG,mBAAmB,EAChF,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,GACnB,CAAC,CAmBH;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAQlF"}
@@ -12,21 +12,23 @@
12
12
  */
13
13
  import { AsyncLocalStorage } from 'node:async_hooks';
14
14
  import { resolve } from 'node:path';
15
- import { ARCHIVE_REASON_TOMBSTONE, } from '@cleocode/contracts';
16
- import { and, eq, getTableColumns, inArray, isNull, like, ne, notInArray, or, sql, } from 'drizzle-orm';
15
+ import { ARCHIVE_REASON_TOMBSTONE, ExitCode, } from '@cleocode/contracts';
16
+ import { and, eq, getTableColumns, inArray, isNull, like, lte, ne, notInArray, or, sql, } from 'drizzle-orm';
17
+ import { CleoError } from '../errors.js';
17
18
  import { captureProjectScope as captureTaskAccessorScope, getProjectRoot, worktreeScope, } from '../project-scope.js';
18
19
  import { withBackgroundOpCommitBoundary } from './background-ops.js';
19
20
  import { archivedTaskToRow, rowToSession, rowToTask, taskToRow } from './converters.js';
20
21
  import { cleanupBrainRefsOnSessionDelete } from './cross-db-cleanup.js';
21
- import { batchUpdateDependencies, loadDependenciesForTasks, loadRelationsForTasks, parseLabels, updateDependencies, updateTaskLabels, upsertSession, upsertTask, } from './db-helpers.js';
22
+ import { batchUpdateDependencies, insertNewTask, loadDependenciesForTasks, loadRelationsForTasks, parseLabels, updateDependencies, updateTaskLabels, upsertSession, upsertTask, } from './db-helpers.js';
22
23
  import { tasksAuditLog } from './schema/cleo-project/audit.js';
23
24
  import { resolveCurrentSession } from './session-store.js';
24
25
  import { closeDb, getDb, getNativeTasksDb } from './sqlite.js';
25
26
  import { TERMINAL_TASK_STATUSES } from './status-registry.js';
26
- import { assertTaskVersion, nextTaskVersion } from './task-version.js';
27
+ import { claimAllows, claimColumnsOf, claimFromColumns, isClaimExpired, leaseExpiresAtFrom, taskClaimedError, taskClaimLeaseMs, } from './task-claim.js';
28
+ import { nextTaskVersion, taskConflictError, taskVersion } from './task-version.js';
27
29
  import * as schema from './tasks-schema.js';
28
30
  import { assertTwinCollapseWritable, bareCounterOf, mirrorCounterToBare } from './twin-collapse.js';
29
- import { withWriteRetry } from './with-retry.js';
31
+ import { runHeartbeatWrite, withWriteRetry } from './with-retry.js';
30
32
  /**
31
33
  * Per-process monotonic counter for unique nested SAVEPOINT names (T9814).
32
34
  * Only used when DataAccessor.transaction() is called from within an
@@ -70,7 +72,7 @@ export async function setMetaValue(cwd, key, value) {
70
72
  async function writeMetaValue(cwd, key, value) {
71
73
  const db = await getDb(cwd);
72
74
  // T12535: fail fast on a store degraded by a failed twin collapse.
73
- assertTwinCollapseWritable(getNativeTasksDb(cwd));
75
+ assertTwinCollapseWritable(getNativeTasksDb(cwd), 'schema_meta');
74
76
  const json = JSON.stringify(value);
75
77
  await db
76
78
  .insert(schema.schemaMeta)
@@ -105,7 +107,7 @@ async function writeMetaValue(cwd, key, value) {
105
107
  * @task T12535
106
108
  */
107
109
  export function advanceTaskIdSequence(nativeDb, floor) {
108
- assertTwinCollapseWritable(nativeDb);
110
+ assertTwinCollapseWritable(nativeDb, 'schema_meta');
109
111
  // T12535: an id the older build reserved in the bare counter is taken too.
110
112
  const lowest = Math.max(floor, bareCounterOf(nativeDb, 'task_id_sequence'));
111
113
  nativeDb
@@ -189,6 +191,87 @@ async function scheduleTaskBackground(native, work) {
189
191
  * ```
190
192
  */
191
193
  export { captureProjectScope as captureTaskAccessorScope } from '../project-scope.js';
194
+ /** The claim lease columns, selected alongside a row's version (T12502). */
195
+ const CLAIM_COLUMNS = {
196
+ claimedBySession: schema.tasks.claimedBySession,
197
+ claimedByAgent: schema.tasks.claimedByAgent,
198
+ claimedAt: schema.tasks.claimedAt,
199
+ leaseExpiresAt: schema.tasks.leaseExpiresAt,
200
+ };
201
+ /**
202
+ * The claim compare-and-set predicate for an UPDATE's WHERE clause (T12502).
203
+ * The SQL mirror of `claimAllows`; `force` adds no predicate.
204
+ *
205
+ * @param guard - The claim guard.
206
+ * @param allowedHolders - Holders `acquire` / `take-over` may replace even
207
+ * while live (hand-off source, spawn-edge parent and children).
208
+ */
209
+ function claimPredicate(guard, allowedHolders) {
210
+ const holder = schema.tasks.claimedBySession;
211
+ if (guard.mode === 'force')
212
+ return undefined;
213
+ const mine = guard.sessionId === null ? undefined : eq(holder, guard.sessionId);
214
+ if (guard.mode === 'renew' || guard.mode === 'release')
215
+ return mine ?? sql `0`;
216
+ const related = allowedHolders.length > 0 ? inArray(holder, [...allowedHolders]) : undefined;
217
+ const expired = guard.mode === 'take-over'
218
+ ? or(isNull(schema.tasks.leaseExpiresAt), lte(schema.tasks.leaseExpiresAt, guard.now))
219
+ : undefined;
220
+ return or(isNull(holder), mine, related, expired);
221
+ }
222
+ /** Throw `E_TASK_CLAIMED` when the stored holder refuses this claim write. */
223
+ function assertClaimAllowed(taskId, row, guard, allowedHolders) {
224
+ const stored = claimFromColumns(row);
225
+ if (claimAllows(stored, guard.mode, guard.sessionId, guard.now, allowedHolders))
226
+ return;
227
+ if (!stored) {
228
+ throw new CleoError(ExitCode.NOT_FOUND, `Task ${taskId} has no claim held by session ${guard.sessionId ?? '(unbound)'} to ${guard.mode}`, { fix: `Take the claim first: cleo claim ${taskId}` });
229
+ }
230
+ throw taskClaimedError(taskId, stored, { sessionId: guard.sessionId, agentId: null }, guard.now);
231
+ }
232
+ /**
233
+ * The holders an `acquire` / `take-over` claim write may replace even while
234
+ * their lease is live (T12502): the explicit hand-off source, plus the
235
+ * caller's claim family — the session that spawned it and the sessions it
236
+ * spawned (`tasks_sessions.spawned_by_session_id`, written only by the spawn
237
+ * itself). The self-declared `parent_session_id` (from
238
+ * `CLEO_PARENT_SESSION_ID` at `session start`) is NOT trusted here: any
239
+ * process can name any parent, so honouring it would let a forged child take
240
+ * a live lease silently. A spawned worker whose calls
241
+ * resolve to its orchestrator's session, or an orchestrator taking a task
242
+ * back from its own worker, is a hand-off, not a conflict.
243
+ *
244
+ * @param db - The project DB handle (inside the write transaction).
245
+ * @param guard - The claim guard.
246
+ * @returns Distinct session ids other than the caller's.
247
+ */
248
+ async function claimAllowedHolders(db, guard) {
249
+ if (guard.mode !== 'acquire' && guard.mode !== 'take-over')
250
+ return [];
251
+ const holders = new Set();
252
+ if (guard.handoffFrom)
253
+ holders.add(guard.handoffFrom);
254
+ const sessionId = guard.sessionId;
255
+ if (sessionId) {
256
+ const [self] = await db
257
+ .select({ parent: schema.sessions.spawnedBySessionId })
258
+ .from(schema.sessions)
259
+ .where(eq(schema.sessions.id, sessionId))
260
+ .limit(1)
261
+ .all();
262
+ if (self?.parent)
263
+ holders.add(self.parent);
264
+ const children = await db
265
+ .select({ id: schema.sessions.id })
266
+ .from(schema.sessions)
267
+ .where(eq(schema.sessions.spawnedBySessionId, sessionId))
268
+ .all();
269
+ for (const child of children)
270
+ holders.add(child.id);
271
+ holders.delete(sessionId);
272
+ }
273
+ return [...holders];
274
+ }
192
275
  /**
193
276
  * Bind all asynchronous accessor methods, including transaction ports, to one project.
194
277
  * @typeParam T - Concrete accessor contract retained by the scoped wrapper.
@@ -445,6 +528,9 @@ async function createOwnedSqliteDataAccessor(cwd, accessorScope) {
445
528
  async upsertSingleTask(task) {
446
529
  await accessor.transaction((tx) => tx.upsertSingleTask(task));
447
530
  },
531
+ async insertNewTask(task) {
532
+ await accessor.transaction((tx) => tx.insertNewTask(task));
533
+ },
448
534
  async addRelation(taskId, relatedTo, relationType, reason) {
449
535
  return accessor.transaction(async () => {
450
536
  const db = await getDb(cwd);
@@ -1018,24 +1104,54 @@ async function createOwnedSqliteDataAccessor(cwd, accessorScope) {
1018
1104
  // E_CONFLICT, and advance the version strictly so a same-millisecond
1019
1105
  // write can never reproduce a version a stale reader already holds.
1020
1106
  const [current] = await db
1021
- .select({ updatedAt: schema.tasks.updatedAt, createdAt: schema.tasks.createdAt })
1107
+ .select({
1108
+ updatedAt: schema.tasks.updatedAt,
1109
+ createdAt: schema.tasks.createdAt,
1110
+ ...CLAIM_COLUMNS,
1111
+ })
1022
1112
  .from(schema.tasks)
1023
1113
  .where(eq(schema.tasks.id, taskId))
1024
1114
  .limit(1)
1025
1115
  .all();
1026
1116
  if (!current)
1027
1117
  throw new Error(`Task not found: ${taskId}`);
1028
- assertTaskVersion(taskId, current, guard?.expectedUpdatedAt);
1118
+ // T12502: refuse a claim write the stored holder does not allow before
1119
+ // touching anything, with the holder named. The WHERE clause below
1120
+ // repeats the predicate, so the write itself is the compare-and-set.
1121
+ const claimGuard = guard?.claim;
1122
+ const allowedHolders = claimGuard ? await claimAllowedHolders(db, claimGuard) : [];
1123
+ if (claimGuard)
1124
+ assertClaimAllowed(taskId, current, claimGuard, allowedHolders);
1125
+ const expected = guard?.expectedUpdatedAt;
1126
+ if (expected !== undefined && taskVersion(current) !== expected) {
1127
+ throw taskConflictError(taskId, expected, (await accessor.loadSingleTask(taskId)) ?? current, guard?.baseline);
1128
+ }
1029
1129
  const updateRow = {
1030
1130
  ...fields,
1031
- updatedAt: fields.updatedAt ?? nextTaskVersion(current),
1131
+ updatedAt: fields.updatedAt ?? (guard?.keepVersion ? current.updatedAt : nextTaskVersion(current)),
1032
1132
  };
1133
+ // T12503: a guarded write is a compare-and-set in SQL — the UPDATE
1134
+ // matches only while the stored version is still the expected one, so
1135
+ // the check and the write are one statement, not a read-then-write.
1136
+ const versionMatch = expected === undefined
1137
+ ? undefined
1138
+ : current.updatedAt === null
1139
+ ? isNull(schema.tasks.updatedAt)
1140
+ : eq(schema.tasks.updatedAt, current.updatedAt);
1141
+ const where = and(eq(schema.tasks.id, taskId), versionMatch, claimGuard ? claimPredicate(claimGuard, allowedHolders) : undefined);
1033
1142
  // gh#391: this is the chokepoint for `cleo update <id> --add-labels`.
1034
1143
  // Parallel invocations from a single shell used to lose ~50% of writes
1035
1144
  // to SQLITE_BUSY; withWriteRetry recovers them.
1036
- const result = await withWriteRetry(() => db.update(schema.tasks).set(updateRow).where(eq(schema.tasks.id, taskId)).run());
1037
- if (Number(result.changes) !== 1)
1038
- throw new Error(`Task not found: ${taskId}`);
1145
+ const result = await withWriteRetry(() => db.update(schema.tasks).set(updateRow).where(where).run());
1146
+ if (Number(result.changes) !== 1) {
1147
+ const stored = await accessor.loadSingleTask(taskId);
1148
+ if (!stored)
1149
+ throw new Error(`Task not found: ${taskId}`);
1150
+ if (claimGuard) {
1151
+ assertClaimAllowed(taskId, claimColumnsOf(stored.claim), claimGuard, allowedHolders);
1152
+ }
1153
+ throw taskConflictError(taskId, expected ?? taskVersion(current), stored, guard?.baseline);
1154
+ }
1039
1155
  if (fields.labelsJson !== undefined) {
1040
1156
  await updateTaskLabels(db, taskId, parseLabels(fields.labelsJson));
1041
1157
  }
@@ -1089,6 +1205,14 @@ async function createOwnedSqliteDataAccessor(cwd, accessorScope) {
1089
1205
  await updateDependencies(db, task.id, task.depends ?? []);
1090
1206
  });
1091
1207
  },
1208
+ async insertNewTask(task) {
1209
+ scope.assertActive();
1210
+ return accessor.transaction(async () => {
1211
+ scope.assertActive();
1212
+ await insertNewTask(db, taskToRow(task));
1213
+ await updateDependencies(db, task.id, task.depends ?? []);
1214
+ });
1215
+ },
1092
1216
  async archiveSingleTask(taskId, fields) {
1093
1217
  scope.assertActive();
1094
1218
  return accessor.transaction(async () => {
@@ -1378,51 +1502,125 @@ async function createOwnedSqliteDataAccessor(cwd, accessorScope) {
1378
1502
  const { getAgentInstance: getAgent } = await import('../agents/registry.js');
1379
1503
  return getAgent(agentId, cwd);
1380
1504
  },
1381
- // ---- Agent task claiming ----
1382
- async claimTask(taskId, agentId) {
1505
+ // ---- Agent task claiming (leased, T12502) ----
1506
+ async claimTask(taskId, request) {
1507
+ const now = request.now ?? new Date().toISOString();
1508
+ const guard = {
1509
+ sessionId: request.sessionId,
1510
+ mode: request.mode,
1511
+ now,
1512
+ handoffFrom: request.handoffFrom ?? null,
1513
+ };
1383
1514
  return accessor.transaction(async () => {
1384
- const nativeDb = await requireNativeDb();
1385
- if (!nativeDb) {
1386
- throw new Error('Native database not initialized');
1387
- }
1388
- // Verify the task exists first
1389
- const existsRow = nativeDb
1390
- .prepare('SELECT assignee FROM tasks_tasks WHERE id = ?')
1391
- .get(taskId);
1392
- if (!existsRow) {
1515
+ const task = await accessor.loadSingleTask(taskId);
1516
+ if (!task)
1393
1517
  throw new Error(`Task not found: ${taskId}`);
1518
+ const before = task.claim;
1519
+ if (request.sessionId === null) {
1520
+ // An override names who takes the task; an unbound caller has no
1521
+ // session to record, so it is refused rather than silently ignored.
1522
+ if (request.mode === 'take-over' || request.mode === 'force') {
1523
+ const flag = request.mode === 'force' ? '--force-claim' : '--take-over';
1524
+ throw new CleoError(ExitCode.SESSION_UNBOUND, `Cannot ${flag} task ${taskId}: this caller is not bound to a session, so there is no session to hand the claim to.`, {
1525
+ fix: `Bind a session first (cleo session start --scope global --name "<work>", cleo session resume <id>, or export CLEO_SESSION_ID=<id>), then retry with ${flag}.`,
1526
+ });
1527
+ }
1528
+ // An unbound caller holds no lease; the guarded no-op write still
1529
+ // proves, under the write lock, that no other session holds it.
1530
+ await accessor.updateTaskFields(taskId, {}, { claim: guard, keepVersion: true });
1531
+ return null;
1394
1532
  }
1395
- // Atomic claim: only succeeds if assignee IS NULL or already claimed by this agent.
1396
- // This prevents race conditions between concurrent agents.
1397
- const result = nativeDb
1398
- .prepare('UPDATE tasks_tasks SET assignee = ?, updated_at = ? WHERE id = ? AND (assignee IS NULL OR assignee = ?)')
1399
- .run(agentId, new Date().toISOString(), taskId, agentId);
1400
- if (result.changes === 0) {
1401
- // Row was not updated — task is claimed by a different agent
1402
- const currentRow = nativeDb
1403
- .prepare('SELECT assignee FROM tasks_tasks WHERE id = ?')
1404
- .get(taskId);
1405
- throw new Error(`Task ${taskId} is already claimed by agent: ${currentRow?.assignee ?? 'unknown'}`);
1533
+ const renewing = before?.sessionId === request.sessionId;
1534
+ const lease = {
1535
+ sessionId: request.sessionId,
1536
+ agentId: request.agentId ?? (renewing ? (before?.agentId ?? null) : null),
1537
+ claimedAt: renewing && before ? before.claimedAt : now,
1538
+ leaseExpiresAt: leaseExpiresAtFrom(now, request.leaseMs ?? taskClaimLeaseMs()),
1539
+ };
1540
+ await accessor.updateTaskFields(taskId, {
1541
+ claimedBySession: lease.sessionId,
1542
+ claimedByAgent: lease.agentId,
1543
+ claimedAt: lease.claimedAt,
1544
+ leaseExpiresAt: lease.leaseExpiresAt,
1545
+ },
1546
+ // Renewing one's own lease is bookkeeping, not an edit: it must not
1547
+ // move the version another writer holds for --if-match.
1548
+ { claim: guard, keepVersion: renewing });
1549
+ const replaced = before && before.sessionId !== request.sessionId ? before : undefined;
1550
+ if (replaced) {
1551
+ // A write the predicate allowed over a LIVE lease without `force` is
1552
+ // a claim-family hand-off (spawn source, spawn-edge parent or child).
1553
+ const handoff = request.mode !== 'force' && !isClaimExpired(replaced, now);
1554
+ await accessor.appendLog({
1555
+ action: handoff
1556
+ ? 'task_claim_handoff'
1557
+ : request.mode === 'force'
1558
+ ? 'task_claim_force'
1559
+ : 'task_claim_takeover',
1560
+ taskId,
1561
+ actor: request.agentId ?? request.sessionId,
1562
+ sessionId: request.sessionId,
1563
+ timestamp: now,
1564
+ details: {
1565
+ mode: request.mode,
1566
+ leaseExpired: replaced.leaseExpiresAt <= now,
1567
+ },
1568
+ before: replaced,
1569
+ after: lease,
1570
+ });
1406
1571
  }
1572
+ return lease;
1407
1573
  });
1408
1574
  },
1409
- async unclaimTask(taskId) {
1575
+ async unclaimTask(taskId, release) {
1576
+ const now = new Date().toISOString();
1410
1577
  return accessor.transaction(async () => {
1411
- const nativeDb = await requireNativeDb();
1412
- if (!nativeDb) {
1413
- throw new Error('Native database not initialized');
1414
- }
1415
- // Verify the task exists
1416
- const existsRow = nativeDb.prepare('SELECT id FROM tasks_tasks WHERE id = ?').get(taskId);
1417
- if (!existsRow) {
1578
+ const task = await accessor.loadSingleTask(taskId);
1579
+ if (!task)
1418
1580
  throw new Error(`Task not found: ${taskId}`);
1581
+ const held = task.claim;
1582
+ if (!held)
1583
+ return false;
1584
+ await accessor.updateTaskFields(taskId, { claimedBySession: null, claimedByAgent: null, claimedAt: null, leaseExpiresAt: null }, {
1585
+ claim: { sessionId: release.sessionId, mode: release.force ? 'force' : 'release', now },
1586
+ keepVersion: true,
1587
+ });
1588
+ if (held.sessionId !== release.sessionId) {
1589
+ await accessor.appendLog({
1590
+ action: 'task_claim_force_release',
1591
+ taskId,
1592
+ actor: release.sessionId ?? 'unbound',
1593
+ sessionId: release.sessionId,
1594
+ timestamp: now,
1595
+ details: { mode: 'force', leaseExpired: held.leaseExpiresAt <= now },
1596
+ before: held,
1597
+ });
1419
1598
  }
1420
- // Clear the assignee — no-op if already null
1421
- nativeDb
1422
- .prepare('UPDATE tasks_tasks SET assignee = NULL, updated_at = ? WHERE id = ?')
1423
- .run(new Date().toISOString(), taskId);
1599
+ return true;
1424
1600
  });
1425
1601
  },
1602
+ async renewSessionClaims(sessionId, leaseExpiresAt) {
1603
+ // The heartbeat follows EVERY mutation of a bound session, and almost no
1604
+ // session holds a lease. Probe the claimed_by_session index first and
1605
+ // write only when there is a lease to extend, so the common case costs
1606
+ // one indexed read and no lock.
1607
+ const db = await getDb(cwd);
1608
+ const [held] = await db
1609
+ .select({ id: schema.tasks.id })
1610
+ .from(schema.tasks)
1611
+ .where(eq(schema.tasks.claimedBySession, sessionId))
1612
+ .limit(1)
1613
+ .all();
1614
+ if (!held)
1615
+ return 0;
1616
+ // Bounded lock wait, skipped on SQLITE_BUSY or inside another caller's
1617
+ // transaction — see runHeartbeatWrite. The next mutation renews.
1618
+ return (runHeartbeatWrite(db, getNativeTasksDb(cwd), () => Number(db
1619
+ .update(schema.tasks)
1620
+ .set({ leaseExpiresAt })
1621
+ .where(eq(schema.tasks.claimedBySession, sessionId))
1622
+ .run().changes)) ?? 0);
1623
+ },
1426
1624
  };
1427
1625
  return accessor;
1428
1626
  }