@blxzer/pactile 0.6.0-beta.2 → 0.6.0-beta.5

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 (704) hide show
  1. package/README.md +93 -84
  2. package/README.zh-CN.md +90 -81
  3. package/dist/bin/compat-warning.d.ts +2 -0
  4. package/dist/bin/compat-warning.d.ts.map +1 -0
  5. package/dist/bin/compat-warning.js +8 -0
  6. package/dist/bin/compat-warning.js.map +1 -0
  7. package/dist/bin/cstl.d.ts +3 -0
  8. package/dist/bin/cstl.d.ts.map +1 -0
  9. package/{bin → dist/bin}/cstl.js +2 -3
  10. package/dist/bin/cstl.js.map +1 -0
  11. package/dist/bin/pactile.d.ts +3 -0
  12. package/dist/bin/pactile.d.ts.map +1 -0
  13. package/dist/bin/pactile.js +4 -0
  14. package/dist/bin/pactile.js.map +1 -0
  15. package/dist/cli/index.d.ts.map +1 -1
  16. package/dist/cli/index.js +77 -17
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/commands/capability.d.ts +3 -0
  19. package/dist/commands/capability.d.ts.map +1 -0
  20. package/dist/commands/capability.js +129 -0
  21. package/dist/commands/capability.js.map +1 -0
  22. package/dist/commands/codex.d.ts.map +1 -1
  23. package/dist/commands/codex.js +54 -6
  24. package/dist/commands/codex.js.map +1 -1
  25. package/dist/commands/context.d.ts +2 -0
  26. package/dist/commands/context.d.ts.map +1 -1
  27. package/dist/commands/context.js +367 -41
  28. package/dist/commands/context.js.map +1 -1
  29. package/dist/commands/detach.d.ts.map +1 -1
  30. package/dist/commands/detach.js +5 -4
  31. package/dist/commands/detach.js.map +1 -1
  32. package/dist/commands/init.d.ts.map +1 -1
  33. package/dist/commands/init.js +615 -259
  34. package/dist/commands/init.js.map +1 -1
  35. package/dist/commands/legacy-task.d.ts +3 -0
  36. package/dist/commands/legacy-task.d.ts.map +1 -0
  37. package/dist/commands/legacy-task.js +295 -0
  38. package/dist/commands/legacy-task.js.map +1 -0
  39. package/dist/commands/pi.d.ts +3 -2
  40. package/dist/commands/pi.d.ts.map +1 -1
  41. package/dist/commands/pi.js +333 -10
  42. package/dist/commands/pi.js.map +1 -1
  43. package/dist/commands/session.d.ts.map +1 -1
  44. package/dist/commands/session.js +148 -24
  45. package/dist/commands/session.js.map +1 -1
  46. package/dist/commands/task-schedule.d.ts +17 -0
  47. package/dist/commands/task-schedule.d.ts.map +1 -0
  48. package/dist/commands/task-schedule.js +395 -0
  49. package/dist/commands/task-schedule.js.map +1 -0
  50. package/dist/commands/task-verify-plan.d.ts +3 -0
  51. package/dist/commands/task-verify-plan.d.ts.map +1 -0
  52. package/dist/commands/task-verify-plan.js +503 -0
  53. package/dist/commands/task-verify-plan.js.map +1 -0
  54. package/dist/commands/task-worktree-close.d.ts +4 -0
  55. package/dist/commands/task-worktree-close.d.ts.map +1 -0
  56. package/dist/commands/task-worktree-close.js +81 -0
  57. package/dist/commands/task-worktree-close.js.map +1 -0
  58. package/dist/commands/task.d.ts +3 -0
  59. package/dist/commands/task.d.ts.map +1 -1
  60. package/dist/commands/task.js +1373 -184
  61. package/dist/commands/task.js.map +1 -1
  62. package/dist/commands/tile-selection.d.ts +3 -0
  63. package/dist/commands/tile-selection.d.ts.map +1 -0
  64. package/dist/commands/tile-selection.js +174 -0
  65. package/dist/commands/tile-selection.js.map +1 -0
  66. package/dist/commands/update.d.ts +1 -1
  67. package/dist/commands/update.d.ts.map +1 -1
  68. package/dist/commands/update.js +80 -55
  69. package/dist/commands/update.js.map +1 -1
  70. package/dist/commands/worktree.d.ts +4 -0
  71. package/dist/commands/worktree.d.ts.map +1 -0
  72. package/dist/commands/worktree.js +198 -0
  73. package/dist/commands/worktree.js.map +1 -0
  74. package/dist/configurators/shared.js +1 -1
  75. package/dist/configurators/shared.js.map +1 -1
  76. package/dist/core/compat/environment.d.ts +0 -1
  77. package/dist/core/compat/environment.d.ts.map +1 -1
  78. package/dist/core/compat/environment.js +1 -9
  79. package/dist/core/compat/environment.js.map +1 -1
  80. package/dist/core/pactile/bounded-capabilities.d.ts +127 -0
  81. package/dist/core/pactile/bounded-capabilities.d.ts.map +1 -0
  82. package/dist/core/pactile/bounded-capabilities.js +188 -0
  83. package/dist/core/pactile/bounded-capabilities.js.map +1 -0
  84. package/dist/core/pactile/index.d.ts +1 -0
  85. package/dist/core/pactile/index.d.ts.map +1 -1
  86. package/dist/core/pactile/index.js +1 -0
  87. package/dist/core/pactile/index.js.map +1 -1
  88. package/dist/core/task/index.d.ts +4 -2
  89. package/dist/core/task/index.d.ts.map +1 -1
  90. package/dist/core/task/index.js +2 -1
  91. package/dist/core/task/index.js.map +1 -1
  92. package/dist/core/task/kernel-cli.d.ts +14 -1
  93. package/dist/core/task/kernel-cli.d.ts.map +1 -1
  94. package/dist/core/task/kernel-cli.js +128 -0
  95. package/dist/core/task/kernel-cli.js.map +1 -1
  96. package/dist/core/task/kernel-contract.d.ts +6 -3
  97. package/dist/core/task/kernel-contract.d.ts.map +1 -1
  98. package/dist/core/task/kernel-contract.js +71 -23
  99. package/dist/core/task/kernel-contract.js.map +1 -1
  100. package/dist/core/task/kernel-store.d.ts +6 -0
  101. package/dist/core/task/kernel-store.d.ts.map +1 -1
  102. package/dist/core/task/kernel-store.js +54 -2
  103. package/dist/core/task/kernel-store.js.map +1 -1
  104. package/dist/core/task/legacy-task-migration-reader.d.ts +137 -0
  105. package/dist/core/task/legacy-task-migration-reader.d.ts.map +1 -0
  106. package/dist/core/task/legacy-task-migration-reader.js +512 -0
  107. package/dist/core/task/legacy-task-migration-reader.js.map +1 -0
  108. package/dist/core/task/legacy-task-migration.d.ts +105 -0
  109. package/dist/core/task/legacy-task-migration.d.ts.map +1 -0
  110. package/dist/core/task/legacy-task-migration.js +562 -0
  111. package/dist/core/task/legacy-task-migration.js.map +1 -0
  112. package/dist/core/task/legacy-task-overlay-durable-io.d.ts +18 -0
  113. package/dist/core/task/legacy-task-overlay-durable-io.d.ts.map +1 -0
  114. package/dist/core/task/legacy-task-overlay-durable-io.js +66 -0
  115. package/dist/core/task/legacy-task-overlay-durable-io.js.map +1 -0
  116. package/dist/core/task/legacy-task-reconciliation-reader.d.ts +26 -0
  117. package/dist/core/task/legacy-task-reconciliation-reader.d.ts.map +1 -0
  118. package/dist/core/task/legacy-task-reconciliation-reader.js +324 -0
  119. package/dist/core/task/legacy-task-reconciliation-reader.js.map +1 -0
  120. package/dist/core/task/legacy-task-v2-import.d.ts +67 -0
  121. package/dist/core/task/legacy-task-v2-import.d.ts.map +1 -0
  122. package/dist/core/task/legacy-task-v2-import.js +1046 -0
  123. package/dist/core/task/legacy-task-v2-import.js.map +1 -0
  124. package/dist/core/task/project-file-observer.d.ts +46 -0
  125. package/dist/core/task/project-file-observer.d.ts.map +1 -0
  126. package/dist/core/task/project-file-observer.js +618 -0
  127. package/dist/core/task/project-file-observer.js.map +1 -0
  128. package/dist/core/task/start-authority.d.ts +14 -0
  129. package/dist/core/task/start-authority.d.ts.map +1 -0
  130. package/dist/core/task/start-authority.js +146 -0
  131. package/dist/core/task/start-authority.js.map +1 -0
  132. package/dist/core/task/strategy.d.ts +24 -0
  133. package/dist/core/task/strategy.d.ts.map +1 -0
  134. package/dist/core/task/strategy.js +136 -0
  135. package/dist/core/task/strategy.js.map +1 -0
  136. package/dist/core/task/task-candidate-observer.d.ts +111 -0
  137. package/dist/core/task/task-candidate-observer.d.ts.map +1 -0
  138. package/dist/core/task/task-candidate-observer.js +762 -0
  139. package/dist/core/task/task-candidate-observer.js.map +1 -0
  140. package/dist/core/task/task-kernel-close.d.ts +5 -0
  141. package/dist/core/task/task-kernel-close.d.ts.map +1 -0
  142. package/dist/core/task/task-kernel-close.js +367 -0
  143. package/dist/core/task/task-kernel-close.js.map +1 -0
  144. package/dist/core/task/task-kernel-dependencies.d.ts +3 -0
  145. package/dist/core/task/task-kernel-dependencies.d.ts.map +1 -0
  146. package/dist/core/task/task-kernel-dependencies.js +24 -0
  147. package/dist/core/task/task-kernel-dependencies.js.map +1 -0
  148. package/dist/core/task/task-kernel-host.d.ts +5 -0
  149. package/dist/core/task/task-kernel-host.d.ts.map +1 -0
  150. package/dist/core/task/task-kernel-host.js +136 -0
  151. package/dist/core/task/task-kernel-host.js.map +1 -0
  152. package/dist/core/task/task-kernel-paths.d.ts +19 -0
  153. package/dist/core/task/task-kernel-paths.d.ts.map +1 -0
  154. package/dist/core/task/task-kernel-paths.js +237 -0
  155. package/dist/core/task/task-kernel-paths.js.map +1 -0
  156. package/dist/core/task/task-kernel-reviews.d.ts +3 -0
  157. package/dist/core/task/task-kernel-reviews.d.ts.map +1 -0
  158. package/dist/core/task/task-kernel-reviews.js +100 -0
  159. package/dist/core/task/task-kernel-reviews.js.map +1 -0
  160. package/dist/core/task/task-kernel-runs.d.ts +5 -0
  161. package/dist/core/task/task-kernel-runs.d.ts.map +1 -0
  162. package/dist/core/task/task-kernel-runs.js +196 -0
  163. package/dist/core/task/task-kernel-runs.js.map +1 -0
  164. package/dist/core/task/task-kernel-schema.d.ts +29 -0
  165. package/dist/core/task/task-kernel-schema.d.ts.map +1 -0
  166. package/dist/core/task/task-kernel-schema.js +1169 -0
  167. package/dist/core/task/task-kernel-schema.js.map +1 -0
  168. package/dist/core/task/task-kernel-store-v2.d.ts +33 -0
  169. package/dist/core/task/task-kernel-store-v2.d.ts.map +1 -0
  170. package/dist/core/task/task-kernel-store-v2.js +574 -0
  171. package/dist/core/task/task-kernel-store-v2.js.map +1 -0
  172. package/dist/core/task/task-kernel-types.d.ts +585 -0
  173. package/dist/core/task/task-kernel-types.d.ts.map +1 -0
  174. package/dist/core/task/task-kernel-types.js +31 -0
  175. package/dist/core/task/task-kernel-types.js.map +1 -0
  176. package/dist/core/task/task-kernel-workspaces.d.ts +10 -0
  177. package/dist/core/task/task-kernel-workspaces.d.ts.map +1 -0
  178. package/dist/core/task/task-kernel-workspaces.js +250 -0
  179. package/dist/core/task/task-kernel-workspaces.js.map +1 -0
  180. package/dist/core/task/task-kernel-write-set.d.ts +3 -0
  181. package/dist/core/task/task-kernel-write-set.d.ts.map +1 -0
  182. package/dist/core/task/task-kernel-write-set.js +12 -0
  183. package/dist/core/task/task-kernel-write-set.js.map +1 -0
  184. package/dist/core/task/task-kernel.d.ts +19 -0
  185. package/dist/core/task/task-kernel.d.ts.map +1 -0
  186. package/dist/core/task/task-kernel.js +17 -0
  187. package/dist/core/task/task-kernel.js.map +1 -0
  188. package/dist/core/task/task-pull-request-observer.d.ts +25 -0
  189. package/dist/core/task/task-pull-request-observer.d.ts.map +1 -0
  190. package/dist/core/task/task-pull-request-observer.js +187 -0
  191. package/dist/core/task/task-pull-request-observer.js.map +1 -0
  192. package/dist/core/task/task-review-evidence.d.ts +27 -0
  193. package/dist/core/task/task-review-evidence.d.ts.map +1 -0
  194. package/dist/core/task/task-review-evidence.js +383 -0
  195. package/dist/core/task/task-review-evidence.js.map +1 -0
  196. package/dist/migrations/index.d.ts +1 -1
  197. package/dist/migrations/index.d.ts.map +1 -1
  198. package/dist/migrations/index.js +5 -3
  199. package/dist/migrations/index.js.map +1 -1
  200. package/dist/migrations/manifests/0.6.0-beta.3.json +9 -0
  201. package/dist/migrations/manifests/0.6.0-beta.4.json +9 -0
  202. package/dist/migrations/manifests/0.6.0-beta.5.json +9 -0
  203. package/dist/pactile/artifacts/documents.d.ts +72 -0
  204. package/dist/pactile/artifacts/documents.d.ts.map +1 -0
  205. package/dist/pactile/artifacts/documents.js +406 -0
  206. package/dist/pactile/artifacts/documents.js.map +1 -0
  207. package/dist/pactile/artifacts/index.d.ts +6 -0
  208. package/dist/pactile/artifacts/index.d.ts.map +1 -0
  209. package/dist/pactile/artifacts/index.js +6 -0
  210. package/dist/pactile/artifacts/index.js.map +1 -0
  211. package/dist/pactile/artifacts/projection.d.ts +50 -0
  212. package/dist/pactile/artifacts/projection.d.ts.map +1 -0
  213. package/dist/pactile/artifacts/projection.js +139 -0
  214. package/dist/pactile/artifacts/projection.js.map +1 -0
  215. package/dist/pactile/artifacts/reader.d.ts +20 -0
  216. package/dist/pactile/artifacts/reader.d.ts.map +1 -0
  217. package/dist/pactile/artifacts/reader.js +559 -0
  218. package/dist/pactile/artifacts/reader.js.map +1 -0
  219. package/dist/pactile/artifacts/schema.d.ts +4 -0
  220. package/dist/pactile/artifacts/schema.d.ts.map +1 -0
  221. package/dist/pactile/artifacts/schema.js +217 -0
  222. package/dist/pactile/artifacts/schema.js.map +1 -0
  223. package/dist/pactile/artifacts/types.d.ts +66 -0
  224. package/dist/pactile/artifacts/types.d.ts.map +1 -0
  225. package/dist/pactile/artifacts/types.js +45 -0
  226. package/dist/pactile/artifacts/types.js.map +1 -0
  227. package/dist/pactile/capabilities/claim.d.ts +3 -0
  228. package/dist/pactile/capabilities/claim.d.ts.map +1 -0
  229. package/dist/pactile/capabilities/claim.js +97 -0
  230. package/dist/pactile/capabilities/claim.js.map +1 -0
  231. package/dist/pactile/capabilities/command.d.ts +6 -0
  232. package/dist/pactile/capabilities/command.d.ts.map +1 -0
  233. package/dist/pactile/capabilities/command.js +253 -0
  234. package/dist/pactile/capabilities/command.js.map +1 -0
  235. package/dist/pactile/capabilities/discover.d.ts +6 -0
  236. package/dist/pactile/capabilities/discover.d.ts.map +1 -0
  237. package/dist/pactile/capabilities/discover.js +48 -0
  238. package/dist/pactile/capabilities/discover.js.map +1 -0
  239. package/dist/pactile/capabilities/node.d.ts +15 -0
  240. package/dist/pactile/capabilities/node.d.ts.map +1 -0
  241. package/dist/pactile/capabilities/node.js +292 -0
  242. package/dist/pactile/capabilities/node.js.map +1 -0
  243. package/dist/pactile/capabilities/read.d.ts +6 -0
  244. package/dist/pactile/capabilities/read.d.ts.map +1 -0
  245. package/dist/pactile/capabilities/read.js +100 -0
  246. package/dist/pactile/capabilities/read.js.map +1 -0
  247. package/dist/pactile/capabilities/receipts.d.ts +17 -0
  248. package/dist/pactile/capabilities/receipts.d.ts.map +1 -0
  249. package/dist/pactile/capabilities/receipts.js +90 -0
  250. package/dist/pactile/capabilities/receipts.js.map +1 -0
  251. package/dist/pactile/capabilities/search.d.ts +6 -0
  252. package/dist/pactile/capabilities/search.d.ts.map +1 -0
  253. package/dist/pactile/capabilities/search.js +181 -0
  254. package/dist/pactile/capabilities/search.js.map +1 -0
  255. package/dist/pactile/capabilities/shared.d.ts +29 -0
  256. package/dist/pactile/capabilities/shared.d.ts.map +1 -0
  257. package/dist/pactile/capabilities/shared.js +134 -0
  258. package/dist/pactile/capabilities/shared.js.map +1 -0
  259. package/dist/pactile/capabilities/workspace.d.ts +19 -0
  260. package/dist/pactile/capabilities/workspace.d.ts.map +1 -0
  261. package/dist/pactile/capabilities/workspace.js +273 -0
  262. package/dist/pactile/capabilities/workspace.js.map +1 -0
  263. package/dist/pactile/codex/bridge.d.ts +105 -2
  264. package/dist/pactile/codex/bridge.d.ts.map +1 -1
  265. package/dist/pactile/codex/bridge.js +1266 -92
  266. package/dist/pactile/codex/bridge.js.map +1 -1
  267. package/dist/pactile/codex/dispatch-stop-proof.d.ts +43 -0
  268. package/dist/pactile/codex/dispatch-stop-proof.d.ts.map +1 -0
  269. package/dist/pactile/codex/dispatch-stop-proof.js +177 -0
  270. package/dist/pactile/codex/dispatch-stop-proof.js.map +1 -0
  271. package/dist/pactile/codex/host-stop.d.ts +47 -0
  272. package/dist/pactile/codex/host-stop.d.ts.map +1 -0
  273. package/dist/pactile/codex/host-stop.js +344 -0
  274. package/dist/pactile/codex/host-stop.js.map +1 -0
  275. package/dist/pactile/coordination/index.d.ts +4 -0
  276. package/dist/pactile/coordination/index.d.ts.map +1 -0
  277. package/dist/pactile/coordination/index.js +4 -0
  278. package/dist/pactile/coordination/index.js.map +1 -0
  279. package/dist/pactile/coordination/journal.d.ts +10 -0
  280. package/dist/pactile/coordination/journal.d.ts.map +1 -0
  281. package/dist/pactile/coordination/journal.js +255 -0
  282. package/dist/pactile/coordination/journal.js.map +1 -0
  283. package/dist/pactile/coordination/kernel-resume.d.ts +8 -0
  284. package/dist/pactile/coordination/kernel-resume.d.ts.map +1 -0
  285. package/dist/pactile/coordination/kernel-resume.js +87 -0
  286. package/dist/pactile/coordination/kernel-resume.js.map +1 -0
  287. package/dist/pactile/coordination/model.d.ts +553 -0
  288. package/dist/pactile/coordination/model.d.ts.map +1 -0
  289. package/dist/pactile/coordination/model.js +239 -0
  290. package/dist/pactile/coordination/model.js.map +1 -0
  291. package/dist/pactile/coordination/state.d.ts +46 -0
  292. package/dist/pactile/coordination/state.d.ts.map +1 -0
  293. package/dist/pactile/coordination/state.js +301 -0
  294. package/dist/pactile/coordination/state.js.map +1 -0
  295. package/dist/pactile/coordination/store.d.ts +94 -0
  296. package/dist/pactile/coordination/store.d.ts.map +1 -0
  297. package/dist/pactile/coordination/store.js +396 -0
  298. package/dist/pactile/coordination/store.js.map +1 -0
  299. package/dist/pactile/index.d.ts +7 -1
  300. package/dist/pactile/index.d.ts.map +1 -1
  301. package/dist/pactile/index.js +7 -1
  302. package/dist/pactile/index.js.map +1 -1
  303. package/dist/pactile/jev/contracts.d.ts +104 -0
  304. package/dist/pactile/jev/contracts.d.ts.map +1 -0
  305. package/dist/pactile/jev/contracts.js +53 -0
  306. package/dist/pactile/jev/contracts.js.map +1 -0
  307. package/dist/pactile/jev/decision.d.ts +58 -0
  308. package/dist/pactile/jev/decision.d.ts.map +1 -0
  309. package/dist/pactile/jev/decision.js +149 -0
  310. package/dist/pactile/jev/decision.js.map +1 -0
  311. package/dist/pactile/jev/http.d.ts +25 -0
  312. package/dist/pactile/jev/http.d.ts.map +1 -0
  313. package/dist/pactile/jev/http.js +234 -0
  314. package/dist/pactile/jev/http.js.map +1 -0
  315. package/dist/pactile/jev/index.d.ts +8 -0
  316. package/dist/pactile/jev/index.d.ts.map +1 -0
  317. package/dist/pactile/jev/index.js +4 -0
  318. package/dist/pactile/jev/index.js.map +1 -0
  319. package/dist/pactile/jev/outbound.d.ts +15 -0
  320. package/dist/pactile/jev/outbound.d.ts.map +1 -0
  321. package/dist/pactile/jev/outbound.js +264 -0
  322. package/dist/pactile/jev/outbound.js.map +1 -0
  323. package/dist/pactile/jev/project-policy.d.ts +10 -0
  324. package/dist/pactile/jev/project-policy.d.ts.map +1 -0
  325. package/dist/pactile/jev/project-policy.js +53 -0
  326. package/dist/pactile/jev/project-policy.js.map +1 -0
  327. package/dist/pactile/jev/response.d.ts +17 -0
  328. package/dist/pactile/jev/response.d.ts.map +1 -0
  329. package/dist/pactile/jev/response.js +280 -0
  330. package/dist/pactile/jev/response.js.map +1 -0
  331. package/dist/pactile/jev/scheduler-advice.d.ts +92 -0
  332. package/dist/pactile/jev/scheduler-advice.d.ts.map +1 -0
  333. package/dist/pactile/jev/scheduler-advice.js +323 -0
  334. package/dist/pactile/jev/scheduler-advice.js.map +1 -0
  335. package/dist/pactile/jev/transport.d.ts +6 -0
  336. package/dist/pactile/jev/transport.d.ts.map +1 -0
  337. package/dist/pactile/jev/transport.js +87 -0
  338. package/dist/pactile/jev/transport.js.map +1 -0
  339. package/dist/pactile/lifecycle/deferred-live.d.ts +17 -0
  340. package/dist/pactile/lifecycle/deferred-live.d.ts.map +1 -0
  341. package/dist/pactile/lifecycle/deferred-live.js +173 -0
  342. package/dist/pactile/lifecycle/deferred-live.js.map +1 -0
  343. package/dist/pactile/lifecycle/legacy-import.d.ts +1 -1
  344. package/dist/pactile/lifecycle/legacy-import.js +3 -3
  345. package/dist/pactile/lifecycle/legacy-import.js.map +1 -1
  346. package/dist/pactile/lifecycle/project-files.d.ts.map +1 -1
  347. package/dist/pactile/lifecycle/project-files.js +1 -0
  348. package/dist/pactile/lifecycle/project-files.js.map +1 -1
  349. package/dist/pactile/migration/legacy-task-batch-generation.d.ts +23 -0
  350. package/dist/pactile/migration/legacy-task-batch-generation.d.ts.map +1 -0
  351. package/dist/pactile/migration/legacy-task-batch-generation.js +102 -0
  352. package/dist/pactile/migration/legacy-task-batch-generation.js.map +1 -0
  353. package/dist/pactile/migration/legacy-task-batch-io.d.ts +9 -0
  354. package/dist/pactile/migration/legacy-task-batch-io.d.ts.map +1 -0
  355. package/dist/pactile/migration/legacy-task-batch-io.js +208 -0
  356. package/dist/pactile/migration/legacy-task-batch-io.js.map +1 -0
  357. package/dist/pactile/migration/legacy-task-batch-journal.d.ts +6 -0
  358. package/dist/pactile/migration/legacy-task-batch-journal.d.ts.map +1 -0
  359. package/dist/pactile/migration/legacy-task-batch-journal.js +121 -0
  360. package/dist/pactile/migration/legacy-task-batch-journal.js.map +1 -0
  361. package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts +18 -0
  362. package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts.map +1 -0
  363. package/dist/pactile/migration/legacy-task-batch-orchestrator.js +634 -0
  364. package/dist/pactile/migration/legacy-task-batch-orchestrator.js.map +1 -0
  365. package/dist/pactile/migration/legacy-task-batch-source.d.ts +8 -0
  366. package/dist/pactile/migration/legacy-task-batch-source.d.ts.map +1 -0
  367. package/dist/pactile/migration/legacy-task-batch-source.js +158 -0
  368. package/dist/pactile/migration/legacy-task-batch-source.js.map +1 -0
  369. package/dist/pactile/migration/legacy-task-batch-types.d.ts +127 -0
  370. package/dist/pactile/migration/legacy-task-batch-types.d.ts.map +1 -0
  371. package/dist/pactile/migration/legacy-task-batch-types.js +127 -0
  372. package/dist/pactile/migration/legacy-task-batch-types.js.map +1 -0
  373. package/dist/pactile/migration/legacy-task-batch.d.ts +3 -0
  374. package/dist/pactile/migration/legacy-task-batch.d.ts.map +1 -0
  375. package/dist/pactile/migration/legacy-task-batch.js +2 -0
  376. package/dist/pactile/migration/legacy-task-batch.js.map +1 -0
  377. package/dist/pactile/migration/legacy-task-held-source-reader.d.ts +27 -0
  378. package/dist/pactile/migration/legacy-task-held-source-reader.d.ts.map +1 -0
  379. package/dist/pactile/migration/legacy-task-held-source-reader.js +261 -0
  380. package/dist/pactile/migration/legacy-task-held-source-reader.js.map +1 -0
  381. package/dist/pactile/migration/legacy-task-reconciliation.d.ts +46 -0
  382. package/dist/pactile/migration/legacy-task-reconciliation.d.ts.map +1 -0
  383. package/dist/pactile/migration/legacy-task-reconciliation.js +589 -0
  384. package/dist/pactile/migration/legacy-task-reconciliation.js.map +1 -0
  385. package/dist/pactile/migration/legacy-task-update.d.ts +19 -0
  386. package/dist/pactile/migration/legacy-task-update.d.ts.map +1 -0
  387. package/dist/pactile/migration/legacy-task-update.js +164 -0
  388. package/dist/pactile/migration/legacy-task-update.js.map +1 -0
  389. package/dist/pactile/parallel/batch.d.ts +21 -2
  390. package/dist/pactile/parallel/batch.d.ts.map +1 -1
  391. package/dist/pactile/parallel/batch.js +271 -50
  392. package/dist/pactile/parallel/batch.js.map +1 -1
  393. package/dist/pactile/parallel/policy.d.ts +1 -1
  394. package/dist/pactile/parallel/policy.d.ts.map +1 -1
  395. package/dist/pactile/parallel/policy.js +130 -102
  396. package/dist/pactile/parallel/policy.js.map +1 -1
  397. package/dist/pactile/pi/bridge.d.ts +139 -2
  398. package/dist/pactile/pi/bridge.d.ts.map +1 -1
  399. package/dist/pactile/pi/bridge.js +1317 -106
  400. package/dist/pactile/pi/bridge.js.map +1 -1
  401. package/dist/pactile/pi/rpc.d.ts +23 -4
  402. package/dist/pactile/pi/rpc.d.ts.map +1 -1
  403. package/dist/pactile/pi/rpc.js +243 -42
  404. package/dist/pactile/pi/rpc.js.map +1 -1
  405. package/dist/pactile/pi/v2-dispatch.d.ts +113 -0
  406. package/dist/pactile/pi/v2-dispatch.d.ts.map +1 -0
  407. package/dist/pactile/pi/v2-dispatch.js +919 -0
  408. package/dist/pactile/pi/v2-dispatch.js.map +1 -0
  409. package/dist/pactile/projection/planner.js +1 -1
  410. package/dist/pactile/projection/planner.js.map +1 -1
  411. package/dist/pactile/registry.d.ts +63 -1
  412. package/dist/pactile/registry.d.ts.map +1 -1
  413. package/dist/pactile/registry.js +633 -4
  414. package/dist/pactile/registry.js.map +1 -1
  415. package/dist/pactile/retrieval/index.d.ts +1 -0
  416. package/dist/pactile/retrieval/index.d.ts.map +1 -1
  417. package/dist/pactile/retrieval/index.js +1 -0
  418. package/dist/pactile/retrieval/index.js.map +1 -1
  419. package/dist/pactile/retrieval/jev-planning.d.ts +28 -0
  420. package/dist/pactile/retrieval/jev-planning.d.ts.map +1 -0
  421. package/dist/pactile/retrieval/jev-planning.js +96 -0
  422. package/dist/pactile/retrieval/jev-planning.js.map +1 -0
  423. package/dist/pactile/review/contract.d.ts +232 -0
  424. package/dist/pactile/review/contract.d.ts.map +1 -0
  425. package/dist/pactile/review/contract.js +695 -0
  426. package/dist/pactile/review/contract.js.map +1 -0
  427. package/dist/pactile/review/escalation-artifacts.d.ts +41 -0
  428. package/dist/pactile/review/escalation-artifacts.d.ts.map +1 -0
  429. package/dist/pactile/review/escalation-artifacts.js +415 -0
  430. package/dist/pactile/review/escalation-artifacts.js.map +1 -0
  431. package/dist/pactile/review/escalation-contract.d.ts +115 -0
  432. package/dist/pactile/review/escalation-contract.d.ts.map +1 -0
  433. package/dist/pactile/review/escalation-contract.js +151 -0
  434. package/dist/pactile/review/escalation-contract.js.map +1 -0
  435. package/dist/pactile/review/escalation-finalize.d.ts +14 -0
  436. package/dist/pactile/review/escalation-finalize.d.ts.map +1 -0
  437. package/dist/pactile/review/escalation-finalize.js +319 -0
  438. package/dist/pactile/review/escalation-finalize.js.map +1 -0
  439. package/dist/pactile/review/escalation-reply.d.ts +10 -0
  440. package/dist/pactile/review/escalation-reply.d.ts.map +1 -0
  441. package/dist/pactile/review/escalation-reply.js +61 -0
  442. package/dist/pactile/review/escalation-reply.js.map +1 -0
  443. package/dist/pactile/review/escalation-transport.d.ts +32 -0
  444. package/dist/pactile/review/escalation-transport.d.ts.map +1 -0
  445. package/dist/pactile/review/escalation-transport.js +216 -0
  446. package/dist/pactile/review/escalation-transport.js.map +1 -0
  447. package/dist/pactile/review/escalation.d.ts +7 -0
  448. package/dist/pactile/review/escalation.d.ts.map +1 -0
  449. package/dist/pactile/review/escalation.js +6 -0
  450. package/dist/pactile/review/escalation.js.map +1 -0
  451. package/dist/pactile/review/evidence.d.ts +25 -0
  452. package/dist/pactile/review/evidence.d.ts.map +1 -0
  453. package/dist/pactile/review/evidence.js +58 -0
  454. package/dist/pactile/review/evidence.js.map +1 -0
  455. package/dist/pactile/review/jev-escalation-advice.d.ts +77 -0
  456. package/dist/pactile/review/jev-escalation-advice.d.ts.map +1 -0
  457. package/dist/pactile/review/jev-escalation-advice.js +358 -0
  458. package/dist/pactile/review/jev-escalation-advice.js.map +1 -0
  459. package/dist/pactile/scheduler/index.d.ts +6 -0
  460. package/dist/pactile/scheduler/index.d.ts.map +1 -0
  461. package/dist/pactile/scheduler/index.js +5 -0
  462. package/dist/pactile/scheduler/index.js.map +1 -0
  463. package/dist/pactile/scheduler/project-lease-store.d.ts +35 -0
  464. package/dist/pactile/scheduler/project-lease-store.d.ts.map +1 -0
  465. package/dist/pactile/scheduler/project-lease-store.js +189 -0
  466. package/dist/pactile/scheduler/project-lease-store.js.map +1 -0
  467. package/dist/pactile/scheduler/scheduler.d.ts +91 -0
  468. package/dist/pactile/scheduler/scheduler.d.ts.map +1 -0
  469. package/dist/pactile/scheduler/scheduler.js +589 -0
  470. package/dist/pactile/scheduler/scheduler.js.map +1 -0
  471. package/dist/pactile/scheduler/task-kernel-admission.d.ts +173 -0
  472. package/dist/pactile/scheduler/task-kernel-admission.d.ts.map +1 -0
  473. package/dist/pactile/scheduler/task-kernel-admission.js +1560 -0
  474. package/dist/pactile/scheduler/task-kernel-admission.js.map +1 -0
  475. package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts +184 -0
  476. package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts.map +1 -0
  477. package/dist/pactile/scheduler/task-kernel-wave-dispatch.js +952 -0
  478. package/dist/pactile/scheduler/task-kernel-wave-dispatch.js.map +1 -0
  479. package/dist/pactile/scheduler/task-map-scheduler.d.ts +116 -0
  480. package/dist/pactile/scheduler/task-map-scheduler.d.ts.map +1 -0
  481. package/dist/pactile/scheduler/task-map-scheduler.js +1448 -0
  482. package/dist/pactile/scheduler/task-map-scheduler.js.map +1 -0
  483. package/dist/pactile/scheduler/task-run-dispatch-state.d.ts +7 -0
  484. package/dist/pactile/scheduler/task-run-dispatch-state.d.ts.map +1 -0
  485. package/dist/pactile/scheduler/task-run-dispatch-state.js +69 -0
  486. package/dist/pactile/scheduler/task-run-dispatch-state.js.map +1 -0
  487. package/dist/pactile/task/authorization.d.ts +3 -0
  488. package/dist/pactile/task/authorization.d.ts.map +1 -0
  489. package/dist/pactile/task/authorization.js +43 -0
  490. package/dist/pactile/task/authorization.js.map +1 -0
  491. package/dist/pactile/task/creation.d.ts +22 -0
  492. package/dist/pactile/task/creation.d.ts.map +1 -0
  493. package/dist/pactile/task/creation.js +95 -0
  494. package/dist/pactile/task/creation.js.map +1 -0
  495. package/dist/pactile/task/guards.d.ts +1 -4
  496. package/dist/pactile/task/guards.d.ts.map +1 -1
  497. package/dist/pactile/task/guards.js +5 -57
  498. package/dist/pactile/task/guards.js.map +1 -1
  499. package/dist/pactile/task/session-jev-receipt.d.ts +58 -0
  500. package/dist/pactile/task/session-jev-receipt.d.ts.map +1 -0
  501. package/dist/pactile/task/session-jev-receipt.js +375 -0
  502. package/dist/pactile/task/session-jev-receipt.js.map +1 -0
  503. package/dist/pactile/task/session-jev.d.ts +7 -0
  504. package/dist/pactile/task/session-jev.d.ts.map +1 -0
  505. package/dist/pactile/task/session-jev.js +217 -0
  506. package/dist/pactile/task/session-jev.js.map +1 -0
  507. package/dist/pactile/task/session-pack.d.ts.map +1 -1
  508. package/dist/pactile/task/session-pack.js +155 -16
  509. package/dist/pactile/task/session-pack.js.map +1 -1
  510. package/dist/pactile/task/session-retrieval-jev-receipt.d.ts +49 -0
  511. package/dist/pactile/task/session-retrieval-jev-receipt.d.ts.map +1 -0
  512. package/dist/pactile/task/session-retrieval-jev-receipt.js +97 -0
  513. package/dist/pactile/task/session-retrieval-jev-receipt.js.map +1 -0
  514. package/dist/pactile/task/session-retrieval-jev.d.ts +8 -0
  515. package/dist/pactile/task/session-retrieval-jev.d.ts.map +1 -0
  516. package/dist/pactile/task/session-retrieval-jev.js +352 -0
  517. package/dist/pactile/task/session-retrieval-jev.js.map +1 -0
  518. package/dist/pactile/task/strategy.d.ts +1 -23
  519. package/dist/pactile/task/strategy.d.ts.map +1 -1
  520. package/dist/pactile/task/strategy.js +2 -135
  521. package/dist/pactile/task/strategy.js.map +1 -1
  522. package/dist/pactile/tiles/jev-selection.d.ts +44 -0
  523. package/dist/pactile/tiles/jev-selection.d.ts.map +1 -0
  524. package/dist/pactile/tiles/jev-selection.js +210 -0
  525. package/dist/pactile/tiles/jev-selection.js.map +1 -0
  526. package/dist/pactile/tiles/safe-yaml.d.ts +5 -1
  527. package/dist/pactile/tiles/safe-yaml.d.ts.map +1 -1
  528. package/dist/pactile/tiles/safe-yaml.js +8 -8
  529. package/dist/pactile/tiles/safe-yaml.js.map +1 -1
  530. package/dist/pactile/tiles/selection-receipts.d.ts +71 -0
  531. package/dist/pactile/tiles/selection-receipts.d.ts.map +1 -0
  532. package/dist/pactile/tiles/selection-receipts.js +319 -0
  533. package/dist/pactile/tiles/selection-receipts.js.map +1 -0
  534. package/dist/pactile/tiles/selection.d.ts +185 -0
  535. package/dist/pactile/tiles/selection.d.ts.map +1 -0
  536. package/dist/pactile/tiles/selection.js +985 -0
  537. package/dist/pactile/tiles/selection.js.map +1 -0
  538. package/dist/pactile/verification/git-observer.d.ts +3 -0
  539. package/dist/pactile/verification/git-observer.d.ts.map +1 -0
  540. package/dist/pactile/verification/git-observer.js +3 -0
  541. package/dist/pactile/verification/git-observer.js.map +1 -0
  542. package/dist/pactile/verification/index.d.ts +11 -0
  543. package/dist/pactile/verification/index.d.ts.map +1 -0
  544. package/dist/pactile/verification/index.js +6 -0
  545. package/dist/pactile/verification/index.js.map +1 -0
  546. package/dist/pactile/verification/jev-advice.d.ts +78 -0
  547. package/dist/pactile/verification/jev-advice.d.ts.map +1 -0
  548. package/dist/pactile/verification/jev-advice.js +397 -0
  549. package/dist/pactile/verification/jev-advice.js.map +1 -0
  550. package/dist/pactile/verification/planner.d.ts +15 -0
  551. package/dist/pactile/verification/planner.d.ts.map +1 -0
  552. package/dist/pactile/verification/planner.js +412 -0
  553. package/dist/pactile/verification/planner.js.map +1 -0
  554. package/dist/pactile/verification/receipt.d.ts +101 -0
  555. package/dist/pactile/verification/receipt.d.ts.map +1 -0
  556. package/dist/pactile/verification/receipt.js +400 -0
  557. package/dist/pactile/verification/receipt.js.map +1 -0
  558. package/dist/pactile/verification/types.d.ts +72 -0
  559. package/dist/pactile/verification/types.d.ts.map +1 -0
  560. package/dist/pactile/verification/types.js +21 -0
  561. package/dist/pactile/verification/types.js.map +1 -0
  562. package/dist/pactile/worktree/git-probe.d.ts +32 -0
  563. package/dist/pactile/worktree/git-probe.d.ts.map +1 -0
  564. package/dist/pactile/worktree/git-probe.js +336 -0
  565. package/dist/pactile/worktree/git-probe.js.map +1 -0
  566. package/dist/pactile/worktree/git-removal.d.ts +3 -0
  567. package/dist/pactile/worktree/git-removal.d.ts.map +1 -0
  568. package/dist/pactile/worktree/git-removal.js +11 -0
  569. package/dist/pactile/worktree/git-removal.js.map +1 -0
  570. package/dist/pactile/worktree/index.d.ts +2 -0
  571. package/dist/pactile/worktree/index.d.ts.map +1 -0
  572. package/dist/pactile/worktree/index.js +2 -0
  573. package/dist/pactile/worktree/index.js.map +1 -0
  574. package/dist/pactile/worktree/integration-evidence.d.ts +80 -0
  575. package/dist/pactile/worktree/integration-evidence.d.ts.map +1 -0
  576. package/dist/pactile/worktree/integration-evidence.js +166 -0
  577. package/dist/pactile/worktree/integration-evidence.js.map +1 -0
  578. package/dist/pactile/worktree/manager-core.d.ts +50 -0
  579. package/dist/pactile/worktree/manager-core.d.ts.map +1 -0
  580. package/dist/pactile/worktree/manager-core.js +359 -0
  581. package/dist/pactile/worktree/manager-core.js.map +1 -0
  582. package/dist/pactile/worktree/manager-provenance.d.ts +32 -0
  583. package/dist/pactile/worktree/manager-provenance.d.ts.map +1 -0
  584. package/dist/pactile/worktree/manager-provenance.js +409 -0
  585. package/dist/pactile/worktree/manager-provenance.js.map +1 -0
  586. package/dist/pactile/worktree/manager-types.d.ts +84 -0
  587. package/dist/pactile/worktree/manager-types.d.ts.map +1 -0
  588. package/dist/pactile/worktree/manager-types.js +11 -0
  589. package/dist/pactile/worktree/manager-types.js.map +1 -0
  590. package/dist/pactile/worktree/manager.d.ts +10 -0
  591. package/dist/pactile/worktree/manager.d.ts.map +1 -0
  592. package/dist/pactile/worktree/manager.js +6 -0
  593. package/dist/pactile/worktree/manager.js.map +1 -0
  594. package/dist/pactile/worktree/run-workspace-cleanup.d.ts +10 -0
  595. package/dist/pactile/worktree/run-workspace-cleanup.d.ts.map +1 -0
  596. package/dist/pactile/worktree/run-workspace-cleanup.js +695 -0
  597. package/dist/pactile/worktree/run-workspace-cleanup.js.map +1 -0
  598. package/dist/pactile/worktree/run-workspace-lifecycle.d.ts +65 -0
  599. package/dist/pactile/worktree/run-workspace-lifecycle.d.ts.map +1 -0
  600. package/dist/pactile/worktree/run-workspace-lifecycle.js +276 -0
  601. package/dist/pactile/worktree/run-workspace-lifecycle.js.map +1 -0
  602. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-hooks.md +1 -1
  603. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/generated-files.md +1 -1
  604. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/hooks-and-settings.md +1 -1
  605. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/overview.md +1 -1
  606. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/platform-map.md +1 -1
  607. package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +2 -0
  608. package/dist/templates/common/skills/brainstorm.md +19 -13
  609. package/dist/templates/markdown/agents.md +2 -2
  610. package/dist/templates/markdown/framework/execution-strategy.md.txt +1 -1
  611. package/dist/templates/markdown/framework/index.md.txt +1 -1
  612. package/dist/templates/markdown/framework/parallel-first-execution.md.txt +17 -105
  613. package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +3 -3
  614. package/dist/templates/markdown/framework/release-boundary.md.txt +9 -10
  615. package/dist/templates/markdown/framework/retrieval-daily-guide.md.txt +1 -1
  616. package/dist/templates/pactile/CONTEXT.md +48 -36
  617. package/dist/templates/pactile/modules/approval-personal/contract.md +12 -24
  618. package/dist/templates/pactile/modules/close-basic/contract.md +15 -18
  619. package/dist/templates/pactile/modules/debug-recovery/contract.md +4 -4
  620. package/dist/templates/pactile/modules/define-basic/contract.md +15 -19
  621. package/dist/templates/pactile/modules/define-extended/contract.md +3 -3
  622. package/dist/templates/pactile/modules/execute-agent/contract.md +11 -19
  623. package/dist/templates/pactile/modules/intake-basic/contract.md +16 -13
  624. package/dist/templates/pactile/modules/verify-basic/contract.md +11 -20
  625. package/dist/templates/pactile/tasks/templates/release-execution/design.md +5 -5
  626. package/dist/templates/pactile/tasks/templates/release-readiness/design.md +6 -6
  627. package/dist/templates/pactile/tasks/templates/release-readiness/handoff-template.md +8 -2
  628. package/dist/templates/pactile/workflow.md +37 -41
  629. package/dist/templates/template-utils.d.ts +1 -2
  630. package/dist/templates/template-utils.d.ts.map +1 -1
  631. package/dist/templates/template-utils.js +2 -13
  632. package/dist/templates/template-utils.js.map +1 -1
  633. package/dist/types/ai-tools.d.ts +1 -1
  634. package/dist/types/ai-tools.js +1 -1
  635. package/dist/utils/manifest-prune.js +1 -1
  636. package/dist/utils/manifest-prune.js.map +1 -1
  637. package/dist/utils/p36-upgrade.d.ts +2 -2
  638. package/dist/utils/p36-upgrade.d.ts.map +1 -1
  639. package/dist/utils/p36-upgrade.js +2 -10
  640. package/dist/utils/p36-upgrade.js.map +1 -1
  641. package/dist/utils/post-update-smoke.js +1 -1
  642. package/dist/utils/post-update-smoke.js.map +1 -1
  643. package/dist/utils/readiness.d.ts +2 -2
  644. package/dist/utils/readiness.js +2 -2
  645. package/dist/utils/uninstall-scrubbers.js +1 -1
  646. package/dist/utils/workflow-dir.d.ts +1 -1
  647. package/dist/utils/workflow-dir.d.ts.map +1 -1
  648. package/dist/utils/workflow-dir.js +1 -1
  649. package/dist/utils/workflow-dir.js.map +1 -1
  650. package/package.json +42 -37
  651. package/CHANGELOG.md +0 -651
  652. package/bin/compat-warning.js +0 -11
  653. package/bin/pactile.js +0 -3
  654. package/bin/smart-search.js +0 -38
  655. package/dist/migrations/manifests/0.1.0.json +0 -9
  656. package/dist/migrations/manifests/0.1.1.json +0 -9
  657. package/dist/migrations/manifests/0.1.2.json +0 -9
  658. package/dist/migrations/manifests/0.1.3.json +0 -9
  659. package/dist/migrations/manifests/0.1.4.json +0 -9
  660. package/dist/migrations/manifests/0.2.1.json +0 -9
  661. package/dist/migrations/manifests/0.2.10.json +0 -374
  662. package/dist/migrations/manifests/0.2.2.json +0 -9
  663. package/dist/migrations/manifests/0.2.3.json +0 -9
  664. package/dist/migrations/manifests/0.2.4.json +0 -9
  665. package/dist/migrations/manifests/0.2.5.json +0 -9
  666. package/dist/migrations/manifests/0.2.6.json +0 -9
  667. package/dist/migrations/manifests/0.2.7.json +0 -9
  668. package/dist/migrations/manifests/0.2.8.json +0 -9
  669. package/dist/migrations/manifests/0.2.9.json +0 -9
  670. package/dist/migrations/manifests/0.3.0.json +0 -89
  671. package/dist/migrations/manifests/0.3.1.json +0 -32
  672. package/dist/migrations/manifests/0.3.2.json +0 -16
  673. package/dist/migrations/manifests/0.3.3.json +0 -9
  674. package/dist/migrations/manifests/0.3.4.json +0 -9
  675. package/dist/migrations/manifests/0.3.5.json +0 -9
  676. package/dist/migrations/manifests/0.3.6.json +0 -9
  677. package/dist/migrations/manifests/0.4.0.json +0 -9
  678. package/dist/migrations/manifests/0.4.1.json +0 -9
  679. package/dist/migrations/manifests/0.4.2.json +0 -9
  680. package/dist/migrations/manifests/0.4.3.json +0 -9
  681. package/dist/migrations/manifests/0.5.0-beta.0.json +0 -9
  682. package/dist/migrations/manifests/0.5.0-beta.1.json +0 -9
  683. package/dist/migrations/manifests/0.5.0-beta.2.json +0 -9
  684. package/dist/migrations/manifests/0.5.0-beta.3.json +0 -9
  685. package/dist/migrations/manifests/0.5.0-beta.4.json +0 -9
  686. package/dist/migrations/manifests/0.5.0-beta.5.json +0 -9
  687. package/dist/migrations/manifests/0.5.0.json +0 -9
  688. package/dist/pactile/compat/retired-alternate-client.d.ts +0 -42
  689. package/dist/pactile/compat/retired-alternate-client.d.ts.map +0 -1
  690. package/dist/pactile/compat/retired-alternate-client.js +0 -153
  691. package/dist/pactile/compat/retired-alternate-client.js.map +0 -1
  692. package/dist/pactile/compat/update-residue.d.ts +0 -4
  693. package/dist/pactile/compat/update-residue.d.ts.map +0 -1
  694. package/dist/pactile/compat/update-residue.js +0 -55
  695. package/dist/pactile/compat/update-residue.js.map +0 -1
  696. package/dist/utils/cursor-retrieval-env.d.ts +0 -17
  697. package/dist/utils/cursor-retrieval-env.d.ts.map +0 -1
  698. package/dist/utils/cursor-retrieval-env.js +0 -19
  699. package/dist/utils/cursor-retrieval-env.js.map +0 -1
  700. package/dist/utils/proxy.d.ts +0 -25
  701. package/dist/utils/proxy.d.ts.map +0 -1
  702. package/dist/utils/proxy.js +0 -60
  703. package/dist/utils/proxy.js.map +0 -1
  704. package/scripts/postinstall.js +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/pactile/coordination/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,239 @@
1
+ import { createHash } from "node:crypto";
2
+ import { z } from "zod";
3
+ export const COORDINATION_MAX_EVENT_BYTES = 16 * 1024;
4
+ export const COORDINATION_MAX_LOG_BYTES = 16 * 1024 * 1024;
5
+ export const COORDINATION_MAX_LOG_EVENTS = 20_000;
6
+ export class CoordinationError extends Error {
7
+ code;
8
+ constructor(code) {
9
+ super(code);
10
+ this.code = code;
11
+ this.name = "CoordinationError";
12
+ }
13
+ }
14
+ const logicalId = z
15
+ .string()
16
+ .min(1)
17
+ .max(128)
18
+ .regex(/^[A-Za-z0-9][A-Za-z0-9._:-]*$/)
19
+ .refine((value) => value !== "." && value !== "..");
20
+ const eventId = z.string().uuid();
21
+ const timestamp = z.string().datetime();
22
+ const hash = z.string().regex(/^[0-9a-f]{64}$/);
23
+ const evidenceLevel = z.enum([
24
+ "local",
25
+ "simulated",
26
+ "desktop-native",
27
+ "provider",
28
+ ]);
29
+ const actor = z
30
+ .object({
31
+ platform: z.enum(["codex", "pi", "pactile", "user", "host", "other"]),
32
+ id: logicalId.nullable(),
33
+ })
34
+ .strict();
35
+ const safeText = z
36
+ .string()
37
+ .min(1)
38
+ .max(4_096)
39
+ .refine((value) => Buffer.byteLength(value, "utf8") <= 4_096)
40
+ .refine((value) => !hasForbiddenCoordinationControl(value));
41
+ const evidenceRef = z
42
+ .string()
43
+ .min(1)
44
+ .max(512)
45
+ .refine((value) => {
46
+ if (value.startsWith("/") ||
47
+ value.startsWith("\\") ||
48
+ /^[A-Za-z]:/u.test(value) ||
49
+ value.includes("\\") ||
50
+ /[<>:"|?*]/u.test(value) ||
51
+ hasForbiddenCoordinationControl(value)) {
52
+ return false;
53
+ }
54
+ const parts = value.split("/");
55
+ return parts.every((part) => part.length > 0 && part !== "." && part !== "..");
56
+ });
57
+ const base = {
58
+ schema_version: z.literal(1),
59
+ event_id: eventId,
60
+ recorded_at: timestamp,
61
+ };
62
+ export const coordinationEventSchema = z.discriminatedUnion("type", [
63
+ z
64
+ .object({
65
+ ...base,
66
+ type: z.literal("message.created"),
67
+ message_id: logicalId,
68
+ from_task_id: logicalId,
69
+ to_task_id: logicalId,
70
+ from_run_id: logicalId.nullable(),
71
+ to_run_id: logicalId.nullable(),
72
+ sender: actor,
73
+ evidence_level: evidenceLevel,
74
+ body: safeText,
75
+ request_id: logicalId.nullable(),
76
+ host_ref: logicalId.nullable(),
77
+ })
78
+ .strict(),
79
+ z
80
+ .object({
81
+ ...base,
82
+ type: z.literal("message.receipt"),
83
+ message_id: logicalId,
84
+ receipt_id: logicalId,
85
+ status: z.enum(["queued", "sent", "delivered", "acknowledged", "failed"]),
86
+ actor,
87
+ evidence_level: evidenceLevel,
88
+ external_ref: logicalId.nullable(),
89
+ note: safeText.nullable(),
90
+ })
91
+ .strict(),
92
+ z
93
+ .object({
94
+ ...base,
95
+ type: z.literal("task.blocked"),
96
+ task_id: logicalId,
97
+ block_id: logicalId,
98
+ blocked_by_task_id: logicalId.nullable(),
99
+ message_id: logicalId.nullable(),
100
+ reason: safeText,
101
+ actor,
102
+ evidence_level: evidenceLevel,
103
+ })
104
+ .strict(),
105
+ z
106
+ .object({
107
+ ...base,
108
+ type: z.literal("task.unblocked"),
109
+ task_id: logicalId,
110
+ block_id: logicalId,
111
+ unblocked_by_task_id: logicalId.nullable(),
112
+ resolution_message_id: logicalId.nullable(),
113
+ run_id: logicalId.nullable().optional(),
114
+ kernel_revision_at_unblock: z.number().int().min(0).nullable().optional(),
115
+ kernel_event_id_at_unblock: eventId.nullable().optional(),
116
+ reason: safeText,
117
+ actor,
118
+ evidence_level: evidenceLevel,
119
+ })
120
+ .strict(),
121
+ z
122
+ .object({
123
+ ...base,
124
+ type: z.literal("run.resume-authorized"),
125
+ task_id: logicalId,
126
+ run_id: logicalId,
127
+ unblock_event_id: eventId,
128
+ kernel_revision: z.number().int().min(1),
129
+ kernel_event_id: eventId,
130
+ actor,
131
+ evidence_level: z.literal("local"),
132
+ })
133
+ .strict(),
134
+ z
135
+ .object({
136
+ ...base,
137
+ type: z.literal("run.started"),
138
+ task_id: logicalId,
139
+ run_id: logicalId,
140
+ role: logicalId.nullable(),
141
+ workspace_id: logicalId.nullable(),
142
+ provider_run_id: logicalId.nullable(),
143
+ actor,
144
+ evidence_level: evidenceLevel,
145
+ })
146
+ .strict(),
147
+ z
148
+ .object({
149
+ ...base,
150
+ type: z.literal("run.progress"),
151
+ task_id: logicalId,
152
+ run_id: logicalId,
153
+ sequence: z.number().int().min(0).max(1_000_000_000),
154
+ name: logicalId,
155
+ summary: safeText,
156
+ evidence_refs: z.array(evidenceRef).max(16),
157
+ actor,
158
+ evidence_level: evidenceLevel,
159
+ })
160
+ .strict(),
161
+ z
162
+ .object({
163
+ ...base,
164
+ type: z.literal("run.result"),
165
+ task_id: logicalId,
166
+ run_id: logicalId,
167
+ outcome: z.enum([
168
+ "settled",
169
+ "needs_review",
170
+ "failed",
171
+ "cancelled",
172
+ "timed_out",
173
+ "interrupted",
174
+ ]),
175
+ summary: safeText,
176
+ evidence_refs: z.array(evidenceRef).max(16),
177
+ actor,
178
+ evidence_level: evidenceLevel,
179
+ })
180
+ .strict(),
181
+ ]);
182
+ export const coordinationEnvelopeSchema = z
183
+ .object({
184
+ schema_version: z.literal(1),
185
+ previous_hash: hash,
186
+ hash,
187
+ event: coordinationEventSchema,
188
+ })
189
+ .strict();
190
+ export const COORDINATION_GENESIS_HASH = "0".repeat(64);
191
+ export function hasForbiddenCoordinationControl(value) {
192
+ for (const character of value) {
193
+ const codePoint = character.codePointAt(0);
194
+ if (codePoint !== undefined &&
195
+ ((codePoint < 0x20 && ![0x09, 0x0a, 0x0d].includes(codePoint)) ||
196
+ codePoint === 0x7f)) {
197
+ return true;
198
+ }
199
+ }
200
+ return false;
201
+ }
202
+ function stripForbiddenControls(value) {
203
+ return Array.from(value)
204
+ .filter((character) => !hasForbiddenCoordinationControl(character))
205
+ .join("");
206
+ }
207
+ /** Stable JSON representation used only for journal hashing and replay checks. */
208
+ export function canonicalCoordinationJson(value) {
209
+ if (value === null || typeof value !== "object") {
210
+ const encoded = JSON.stringify(value);
211
+ if (encoded === undefined)
212
+ throw new Error("coordination-invalid-json");
213
+ return encoded;
214
+ }
215
+ if (Array.isArray(value)) {
216
+ return `[${value.map(canonicalCoordinationJson).join(",")}]`;
217
+ }
218
+ const record = value;
219
+ const keys = Object.keys(record).sort();
220
+ return `{${keys
221
+ .map((key) => `${JSON.stringify(key)}:${canonicalCoordinationJson(record[key])}`)
222
+ .join(",")}}`;
223
+ }
224
+ export function coordinationEventHash(previousHash, event) {
225
+ return createHash("sha256")
226
+ .update(previousHash)
227
+ .update("\n")
228
+ .update(canonicalCoordinationJson(event))
229
+ .digest("hex");
230
+ }
231
+ export function redactCoordinationText(value) {
232
+ const redacted = value
233
+ .replace(/\b(?:sk[-_]|ghp_|gho_|glpat-|plane_api_)[A-Za-z0-9_-]{12,}\b/gi, "[redacted]")
234
+ .replace(/\bBearer\s+[A-Za-z0-9._~-]{12,}\b/gi, "Bearer [redacted]")
235
+ .replace(/\b(api[_-]?key|token|password|secret)\s*[:=]\s*\S+/gi, "$1=[redacted]")
236
+ .replace(/\r\n?/g, "\n");
237
+ return stripForbiddenControls(redacted).trim();
238
+ }
239
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/pactile/coordination/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { type CoordinationActor, type CoordinationEvent, type CoordinationMessageCreated, type CoordinationMessageReceipt, type CoordinationRunProgress, type CoordinationRunResult, type CoordinationRunResumeAuthorized, type CoordinationRunStarted, type CoordinationSnapshot, type CoordinationTaskBlocked, type CoordinationTaskUnblocked } from "./model.js";
2
+ interface RunState {
3
+ started: CoordinationRunStarted;
4
+ progress: CoordinationRunProgress[];
5
+ result: CoordinationRunResult | null;
6
+ }
7
+ export interface CoordinationReplayState {
8
+ events: CoordinationEvent[];
9
+ eventIds: Set<string>;
10
+ messages: Map<string, CoordinationMessageCreated>;
11
+ receipts: Map<string, CoordinationMessageReceipt[]>;
12
+ receiptIds: Map<string, CoordinationMessageReceipt>;
13
+ blocks: Map<string, CoordinationTaskBlocked>;
14
+ activeBlocks: Map<string, CoordinationTaskBlocked>;
15
+ unblocks: Map<string, CoordinationTaskUnblocked>;
16
+ resumeAuthorizations: Map<string, CoordinationRunResumeAuthorized>;
17
+ runs: Map<string, RunState>;
18
+ }
19
+ export type TransactionDecision<T extends CoordinationEvent> = {
20
+ kind: "append";
21
+ event: T;
22
+ } | {
23
+ kind: "existing";
24
+ event: T;
25
+ };
26
+ export declare function createCoordinationReplayState(): CoordinationReplayState;
27
+ export declare function replayCoordinationEvents(events: readonly CoordinationEvent[]): CoordinationReplayState;
28
+ export declare function cloneCoordinationEvent<T extends CoordinationEvent>(event: T): T;
29
+ export declare function sameCoordinationEventPayload(existing: CoordinationEvent, candidate: CoordinationEvent): boolean;
30
+ export declare function validateCoordinationInput<T>(action: () => T): T;
31
+ export declare function normalizeCoordinationId(value: string): string;
32
+ export declare function normalizeCoordinationNullableId(value: string | null | undefined): string | null;
33
+ export declare function normalizeCoordinationActor(value: CoordinationActor): CoordinationActor;
34
+ export declare function normalizeCoordinationText(value: string): string;
35
+ export declare function normalizeCoordinationEvidenceRefs(values: string[] | undefined): string[];
36
+ export declare function newCoordinationEventBase(type: CoordinationEvent["type"]): {
37
+ schema_version: 1;
38
+ event_id: string;
39
+ recorded_at: string;
40
+ type: CoordinationEvent["type"];
41
+ };
42
+ export declare function parseCoordinationEvent<T extends CoordinationEvent>(event: T): T;
43
+ export declare function applyCoordinationEvent(state: CoordinationReplayState, event: CoordinationEvent): void;
44
+ export declare function toCoordinationSnapshot(state: CoordinationReplayState): CoordinationSnapshot;
45
+ export {};
46
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/pactile/coordination/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,301 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { canonicalCoordinationJson, coordinationEventSchema, CoordinationError, hasForbiddenCoordinationControl, redactCoordinationText, } from "./model.js";
3
+ const LOGICAL_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
4
+ const RECEIPT_TRANSITIONS = {
5
+ pending: ["queued", "sent", "delivered", "acknowledged", "failed"],
6
+ queued: ["sent", "delivered", "acknowledged", "failed"],
7
+ sent: ["delivered", "acknowledged", "failed"],
8
+ delivered: ["acknowledged", "failed"],
9
+ acknowledged: [],
10
+ failed: [],
11
+ };
12
+ export function createCoordinationReplayState() {
13
+ return {
14
+ events: [],
15
+ eventIds: new Set(),
16
+ messages: new Map(),
17
+ receipts: new Map(),
18
+ receiptIds: new Map(),
19
+ blocks: new Map(),
20
+ activeBlocks: new Map(),
21
+ unblocks: new Map(),
22
+ resumeAuthorizations: new Map(),
23
+ runs: new Map(),
24
+ };
25
+ }
26
+ export function replayCoordinationEvents(events) {
27
+ const state = createCoordinationReplayState();
28
+ try {
29
+ for (const event of events)
30
+ applyCoordinationEvent(state, event);
31
+ }
32
+ catch {
33
+ throw new CoordinationError("store-corrupt");
34
+ }
35
+ return state;
36
+ }
37
+ function runStateKey(runId) {
38
+ return runId;
39
+ }
40
+ function receiptStateKey(messageId, receiptId) {
41
+ return `${messageId}\u0000${receiptId}`;
42
+ }
43
+ function resumeAuthorizationStateKey(taskId, runId, unblockEventId) {
44
+ return `${taskId}\u0000${runId}\u0000${unblockEventId}`;
45
+ }
46
+ export function cloneCoordinationEvent(event) {
47
+ return JSON.parse(JSON.stringify(event));
48
+ }
49
+ export function sameCoordinationEventPayload(existing, candidate) {
50
+ const stripMeta = (event) => {
51
+ const payload = { ...event };
52
+ delete payload.event_id;
53
+ delete payload.recorded_at;
54
+ return payload;
55
+ };
56
+ return (canonicalCoordinationJson(stripMeta(existing)) ===
57
+ canonicalCoordinationJson(stripMeta(candidate)));
58
+ }
59
+ export function validateCoordinationInput(action) {
60
+ try {
61
+ return action();
62
+ }
63
+ catch (error) {
64
+ if (error instanceof CoordinationError)
65
+ throw error;
66
+ throw new CoordinationError("invalid-input");
67
+ }
68
+ }
69
+ export function normalizeCoordinationId(value) {
70
+ if (typeof value !== "string" ||
71
+ !LOGICAL_ID_PATTERN.test(value) ||
72
+ value === "." ||
73
+ value === "..") {
74
+ throw new CoordinationError("invalid-input");
75
+ }
76
+ return value;
77
+ }
78
+ export function normalizeCoordinationNullableId(value) {
79
+ return value == null ? null : normalizeCoordinationId(value);
80
+ }
81
+ export function normalizeCoordinationActor(value) {
82
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
83
+ throw new CoordinationError("invalid-input");
84
+ }
85
+ if (!["codex", "pi", "pactile", "user", "host", "other"].includes(value.platform)) {
86
+ throw new CoordinationError("invalid-input");
87
+ }
88
+ return {
89
+ platform: value.platform,
90
+ id: normalizeCoordinationNullableId(value.id),
91
+ };
92
+ }
93
+ export function normalizeCoordinationText(value) {
94
+ if (typeof value !== "string")
95
+ throw new CoordinationError("invalid-input");
96
+ const normalized = redactCoordinationText(value);
97
+ if (!normalized || Buffer.byteLength(normalized, "utf8") > 4_096) {
98
+ throw new CoordinationError("invalid-input");
99
+ }
100
+ return normalized;
101
+ }
102
+ export function normalizeCoordinationEvidenceRefs(values) {
103
+ if (values === undefined)
104
+ return [];
105
+ if (!Array.isArray(values) || values.length > 16) {
106
+ throw new CoordinationError("invalid-input");
107
+ }
108
+ return values.map((value) => {
109
+ if (typeof value !== "string" ||
110
+ !value ||
111
+ value.length > 512 ||
112
+ value.startsWith("/") ||
113
+ value.startsWith("\\") ||
114
+ /^[A-Za-z]:/u.test(value) ||
115
+ value.includes("\\") ||
116
+ /[<>:"|?*]/u.test(value) ||
117
+ hasForbiddenCoordinationControl(value) ||
118
+ value.split("/").some((part) => !part || part === "." || part === "..")) {
119
+ throw new CoordinationError("invalid-input");
120
+ }
121
+ return value;
122
+ });
123
+ }
124
+ export function newCoordinationEventBase(type) {
125
+ return {
126
+ schema_version: 1,
127
+ event_id: randomUUID(),
128
+ recorded_at: new Date().toISOString(),
129
+ type,
130
+ };
131
+ }
132
+ export function parseCoordinationEvent(event) {
133
+ const parsed = coordinationEventSchema.safeParse(event);
134
+ if (!parsed.success)
135
+ throw new CoordinationError("invalid-input");
136
+ return parsed.data;
137
+ }
138
+ function currentMessageStatus(state, messageId) {
139
+ return state.receipts.get(messageId)?.at(-1)?.status ?? "pending";
140
+ }
141
+ function assertRunBinding(state, taskId, runId) {
142
+ const run = state.runs.get(runStateKey(runId));
143
+ if (run?.started.task_id !== taskId) {
144
+ throw new CoordinationError("state-conflict");
145
+ }
146
+ return run;
147
+ }
148
+ export function applyCoordinationEvent(state, event) {
149
+ if (state.eventIds.has(event.event_id)) {
150
+ throw new CoordinationError("state-conflict");
151
+ }
152
+ switch (event.type) {
153
+ case "message.created": {
154
+ if (event.from_task_id === event.to_task_id ||
155
+ state.messages.has(event.message_id)) {
156
+ throw new CoordinationError("state-conflict");
157
+ }
158
+ if (event.from_run_id) {
159
+ assertRunBinding(state, event.from_task_id, event.from_run_id);
160
+ }
161
+ if (event.to_run_id) {
162
+ assertRunBinding(state, event.to_task_id, event.to_run_id);
163
+ }
164
+ state.messages.set(event.message_id, event);
165
+ state.receipts.set(event.message_id, []);
166
+ break;
167
+ }
168
+ case "message.receipt": {
169
+ const message = state.messages.get(event.message_id);
170
+ if (!message)
171
+ throw new CoordinationError("state-conflict");
172
+ const key = receiptStateKey(event.message_id, event.receipt_id);
173
+ if (state.receiptIds.has(key))
174
+ throw new CoordinationError("state-conflict");
175
+ const status = currentMessageStatus(state, event.message_id);
176
+ if (!RECEIPT_TRANSITIONS[status].includes(event.status)) {
177
+ throw new CoordinationError("state-conflict");
178
+ }
179
+ state.receiptIds.set(key, event);
180
+ state.receipts.get(event.message_id)?.push(event);
181
+ break;
182
+ }
183
+ case "task.blocked": {
184
+ if (state.blocks.has(event.block_id) ||
185
+ state.activeBlocks.has(event.task_id)) {
186
+ throw new CoordinationError("state-conflict");
187
+ }
188
+ if (event.message_id) {
189
+ const message = state.messages.get(event.message_id);
190
+ if (message?.to_task_id !== event.task_id ||
191
+ (event.blocked_by_task_id !== null &&
192
+ message?.from_task_id !== event.blocked_by_task_id)) {
193
+ throw new CoordinationError("state-conflict");
194
+ }
195
+ }
196
+ state.blocks.set(event.block_id, event);
197
+ state.activeBlocks.set(event.task_id, event);
198
+ break;
199
+ }
200
+ case "task.unblocked": {
201
+ const block = state.blocks.get(event.block_id);
202
+ const hasLegacyBarrierOmission = event.run_id === undefined &&
203
+ event.kernel_revision_at_unblock === undefined &&
204
+ event.kernel_event_id_at_unblock === undefined;
205
+ const hasLegacyNullBarrier = event.run_id === null &&
206
+ event.kernel_revision_at_unblock === null &&
207
+ event.kernel_event_id_at_unblock === null;
208
+ const hasCompleteKernelBarrier = (event.run_id === null || typeof event.run_id === "string") &&
209
+ typeof event.kernel_revision_at_unblock === "number" &&
210
+ typeof event.kernel_event_id_at_unblock === "string";
211
+ if (block?.task_id !== event.task_id ||
212
+ state.activeBlocks.get(event.task_id)?.block_id !== event.block_id ||
213
+ state.unblocks.has(event.block_id) ||
214
+ (!hasLegacyBarrierOmission &&
215
+ !hasLegacyNullBarrier &&
216
+ !hasCompleteKernelBarrier)) {
217
+ throw new CoordinationError("state-conflict");
218
+ }
219
+ if (event.resolution_message_id) {
220
+ const message = state.messages.get(event.resolution_message_id);
221
+ if (message?.to_task_id !== event.task_id ||
222
+ (event.unblocked_by_task_id !== null &&
223
+ message?.from_task_id !== event.unblocked_by_task_id)) {
224
+ throw new CoordinationError("state-conflict");
225
+ }
226
+ }
227
+ state.unblocks.set(event.block_id, event);
228
+ state.activeBlocks.delete(event.task_id);
229
+ break;
230
+ }
231
+ case "run.resume-authorized": {
232
+ const unblock = state.events.find((prior) => prior.type === "task.unblocked" &&
233
+ prior.event_id === event.unblock_event_id);
234
+ const latestUnblock = [...state.events]
235
+ .reverse()
236
+ .find((prior) => prior.type === "task.unblocked" && prior.task_id === event.task_id);
237
+ const key = resumeAuthorizationStateKey(event.task_id, event.run_id, event.unblock_event_id);
238
+ if (unblock?.task_id !== event.task_id ||
239
+ latestUnblock?.event_id !== event.unblock_event_id ||
240
+ typeof unblock.kernel_revision_at_unblock !== "number" ||
241
+ typeof unblock.kernel_event_id_at_unblock !== "string" ||
242
+ (unblock.run_id !== null && unblock.run_id !== event.run_id) ||
243
+ state.activeBlocks.has(event.task_id) ||
244
+ state.resumeAuthorizations.has(key)) {
245
+ throw new CoordinationError("state-conflict");
246
+ }
247
+ state.resumeAuthorizations.set(key, event);
248
+ break;
249
+ }
250
+ case "run.started": {
251
+ if (state.runs.has(runStateKey(event.run_id))) {
252
+ throw new CoordinationError("state-conflict");
253
+ }
254
+ state.runs.set(runStateKey(event.run_id), {
255
+ started: event,
256
+ progress: [],
257
+ result: null,
258
+ });
259
+ break;
260
+ }
261
+ case "run.progress": {
262
+ const run = assertRunBinding(state, event.task_id, event.run_id);
263
+ const lastProgress = run.progress.at(-1);
264
+ if (run.result ||
265
+ (lastProgress !== undefined && event.sequence <= lastProgress.sequence)) {
266
+ throw new CoordinationError("state-conflict");
267
+ }
268
+ run.progress.push(event);
269
+ break;
270
+ }
271
+ case "run.result": {
272
+ const run = assertRunBinding(state, event.task_id, event.run_id);
273
+ if (run.result)
274
+ throw new CoordinationError("state-conflict");
275
+ run.result = event;
276
+ break;
277
+ }
278
+ }
279
+ state.eventIds.add(event.event_id);
280
+ state.events.push(event);
281
+ }
282
+ export function toCoordinationSnapshot(state) {
283
+ const messages = [
284
+ ...state.messages.values(),
285
+ ].map((message) => {
286
+ const receipts = state.receipts.get(message.message_id) ?? [];
287
+ return {
288
+ message,
289
+ status: receipts.at(-1)?.status ?? "pending",
290
+ receipts,
291
+ };
292
+ });
293
+ const runs = [...state.runs.values()].map(({ started, progress, result }) => ({ started, progress, result }));
294
+ return {
295
+ events: state.events.map((event) => cloneCoordinationEvent(event)),
296
+ messages: messages.map((message) => JSON.parse(JSON.stringify(message))),
297
+ blocked_tasks: [...state.activeBlocks.values()].map((event) => cloneCoordinationEvent(event)),
298
+ runs: runs.map((run) => JSON.parse(JSON.stringify(run))),
299
+ };
300
+ }
301
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/pactile/coordination/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,+BAA+B,EAC/B,sBAAsB,GAevB,MAAM,YAAY,CAAC;AAyBpB,MAAM,kBAAkB,GAAG,qCAAqC,CAAC;AACjE,MAAM,mBAAmB,GAGrB;IACF,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,CAAC;IAClE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,CAAC;IACvD,IAAI,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,QAAQ,CAAC;IAC7C,SAAS,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;IACrC,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,MAAM,EAAE,IAAI,GAAG,EAAE;QACjB,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,oBAAoB,EAAE,IAAI,GAAG,EAAE;QAC/B,IAAI,EAAE,IAAI,GAAG,EAAE;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAoC;IAEpC,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB,EAAE,SAAiB;IAC3D,OAAO,GAAG,SAAS,SAAS,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAc,EACd,KAAa,EACb,cAAsB;IAEtB,OAAO,GAAG,MAAM,SAAS,KAAK,SAAS,cAAc,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAQ;IAER,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAA2B,EAC3B,SAA4B;IAE5B,MAAM,SAAS,GAAG,CAAC,KAAwB,EAA2B,EAAE;QACtE,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAA6B,CAAC;QACxD,OAAO,OAAO,CAAC,QAAQ,CAAC;QACxB,OAAO,OAAO,CAAC,WAAW,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,OAAO,CACL,yBAAyB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,yBAAyB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAI,MAAe;IAC1D,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,iBAAiB;YAAE,MAAM,KAAK,CAAC;QACpD,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B,KAAK,KAAK,GAAG;QACb,KAAK,KAAK,IAAI,EACd,CAAC;QACD,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAgC;IAEhC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAAwB;IAExB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACD,IACE,CAAE,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAW,CAAC,QAAQ,CACtE,KAAK,CAAC,QAAQ,CACf,EACD,CAAC;QACD,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,EAAE,EAAE,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;QACjE,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,MAA4B;IAE5B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK;YACN,KAAK,CAAC,MAAM,GAAG,GAAG;YAClB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YACrB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,+BAA+B,CAAC,KAAK,CAAC;YACtC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,EACvE,CAAC;YACD,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAA+B;IAMtE,OAAO;QACL,cAAc,EAAE,CAAC;QACjB,QAAQ,EAAE,UAAU,EAAE;QACtB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAQ;IAER,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,IAAS,CAAC;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA8B,EAC9B,SAAiB;IAEjB,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC;AACpE,CAAC;AAED,SAAS,gBAAgB,CACvB,KAA8B,EAC9B,MAAc,EACd,KAAa;IAEb,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,IAAI,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA8B,EAC9B,KAAwB;IAExB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,IACE,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,UAAU;gBACvC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EACpC,CAAC;gBACD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7D,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC5C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC3B,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IACE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAChC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EACrC,CAAC;gBACD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACrD,IACE,OAAO,EAAE,UAAU,KAAK,KAAK,CAAC,OAAO;oBACrC,CAAC,KAAK,CAAC,kBAAkB,KAAK,IAAI;wBAChC,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC,kBAAkB,CAAC,EACrD,CAAC;oBACD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,wBAAwB,GAC5B,KAAK,CAAC,MAAM,KAAK,SAAS;gBAC1B,KAAK,CAAC,0BAA0B,KAAK,SAAS;gBAC9C,KAAK,CAAC,0BAA0B,KAAK,SAAS,CAAC;YACjD,MAAM,oBAAoB,GACxB,KAAK,CAAC,MAAM,KAAK,IAAI;gBACrB,KAAK,CAAC,0BAA0B,KAAK,IAAI;gBACzC,KAAK,CAAC,0BAA0B,KAAK,IAAI,CAAC;YAC5C,MAAM,wBAAwB,GAC5B,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;gBAC3D,OAAO,KAAK,CAAC,0BAA0B,KAAK,QAAQ;gBACpD,OAAO,KAAK,CAAC,0BAA0B,KAAK,QAAQ,CAAC;YACvD,IACE,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO;gBAChC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,KAAK,KAAK,CAAC,QAAQ;gBAClE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAClC,CAAC,CAAC,wBAAwB;oBACxB,CAAC,oBAAoB;oBACrB,CAAC,wBAAwB,CAAC,EAC5B,CAAC;gBACD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBAChE,IACE,OAAO,EAAE,UAAU,KAAK,KAAK,CAAC,OAAO;oBACrC,CAAC,KAAK,CAAC,oBAAoB,KAAK,IAAI;wBAClC,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC,oBAAoB,CAAC,EACvD,CAAC;oBACD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1C,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAC/B,CAAC,KAAK,EAAsC,EAAE,CAC5C,KAAK,CAAC,IAAI,KAAK,gBAAgB;gBAC/B,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,gBAAgB,CAC5C,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;iBACpC,OAAO,EAAE;iBACT,IAAI,CACH,CAAC,KAAK,EAAsC,EAAE,CAC5C,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CACrE,CAAC;YACJ,MAAM,GAAG,GAAG,2BAA2B,CACrC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,gBAAgB,CACvB,CAAC;YACF,IACE,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO;gBAClC,aAAa,EAAE,QAAQ,KAAK,KAAK,CAAC,gBAAgB;gBAClD,OAAO,OAAO,CAAC,0BAA0B,KAAK,QAAQ;gBACtD,OAAO,OAAO,CAAC,0BAA0B,KAAK,QAAQ;gBACtD,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;gBAC5D,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;gBACrC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EACnC,CAAC;gBACD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM;QACR,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBACxC,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjE,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,IACE,GAAG,CAAC,MAAM;gBACV,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,EACvE,CAAC;gBACD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,GAAG,CAAC,MAAM;gBAAE,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAC9D,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA8B;IAE9B,MAAM,QAAQ,GAAkC;QAC9C,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;KAC3B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC9D,OAAO;YACL,OAAO;YACP,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS;YAC5C,QAAQ;SACT,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAA8B,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAClE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CACnE,CAAC;IACF,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAClE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CACpB,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAgC,CACrE;QACD,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5D,sBAAsB,CAAC,KAAK,CAAC,CAC9B;QACD,IAAI,EAAE,IAAI,CAAC,GAAG,CACZ,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAA4B,CACpE;KACF,CAAC;AACJ,CAAC"}