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

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 (703) 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/pactile/artifacts/documents.d.ts +72 -0
  203. package/dist/pactile/artifacts/documents.d.ts.map +1 -0
  204. package/dist/pactile/artifacts/documents.js +406 -0
  205. package/dist/pactile/artifacts/documents.js.map +1 -0
  206. package/dist/pactile/artifacts/index.d.ts +6 -0
  207. package/dist/pactile/artifacts/index.d.ts.map +1 -0
  208. package/dist/pactile/artifacts/index.js +6 -0
  209. package/dist/pactile/artifacts/index.js.map +1 -0
  210. package/dist/pactile/artifacts/projection.d.ts +50 -0
  211. package/dist/pactile/artifacts/projection.d.ts.map +1 -0
  212. package/dist/pactile/artifacts/projection.js +139 -0
  213. package/dist/pactile/artifacts/projection.js.map +1 -0
  214. package/dist/pactile/artifacts/reader.d.ts +20 -0
  215. package/dist/pactile/artifacts/reader.d.ts.map +1 -0
  216. package/dist/pactile/artifacts/reader.js +559 -0
  217. package/dist/pactile/artifacts/reader.js.map +1 -0
  218. package/dist/pactile/artifacts/schema.d.ts +4 -0
  219. package/dist/pactile/artifacts/schema.d.ts.map +1 -0
  220. package/dist/pactile/artifacts/schema.js +217 -0
  221. package/dist/pactile/artifacts/schema.js.map +1 -0
  222. package/dist/pactile/artifacts/types.d.ts +66 -0
  223. package/dist/pactile/artifacts/types.d.ts.map +1 -0
  224. package/dist/pactile/artifacts/types.js +45 -0
  225. package/dist/pactile/artifacts/types.js.map +1 -0
  226. package/dist/pactile/capabilities/claim.d.ts +3 -0
  227. package/dist/pactile/capabilities/claim.d.ts.map +1 -0
  228. package/dist/pactile/capabilities/claim.js +97 -0
  229. package/dist/pactile/capabilities/claim.js.map +1 -0
  230. package/dist/pactile/capabilities/command.d.ts +6 -0
  231. package/dist/pactile/capabilities/command.d.ts.map +1 -0
  232. package/dist/pactile/capabilities/command.js +253 -0
  233. package/dist/pactile/capabilities/command.js.map +1 -0
  234. package/dist/pactile/capabilities/discover.d.ts +6 -0
  235. package/dist/pactile/capabilities/discover.d.ts.map +1 -0
  236. package/dist/pactile/capabilities/discover.js +48 -0
  237. package/dist/pactile/capabilities/discover.js.map +1 -0
  238. package/dist/pactile/capabilities/node.d.ts +15 -0
  239. package/dist/pactile/capabilities/node.d.ts.map +1 -0
  240. package/dist/pactile/capabilities/node.js +292 -0
  241. package/dist/pactile/capabilities/node.js.map +1 -0
  242. package/dist/pactile/capabilities/read.d.ts +6 -0
  243. package/dist/pactile/capabilities/read.d.ts.map +1 -0
  244. package/dist/pactile/capabilities/read.js +100 -0
  245. package/dist/pactile/capabilities/read.js.map +1 -0
  246. package/dist/pactile/capabilities/receipts.d.ts +17 -0
  247. package/dist/pactile/capabilities/receipts.d.ts.map +1 -0
  248. package/dist/pactile/capabilities/receipts.js +90 -0
  249. package/dist/pactile/capabilities/receipts.js.map +1 -0
  250. package/dist/pactile/capabilities/search.d.ts +6 -0
  251. package/dist/pactile/capabilities/search.d.ts.map +1 -0
  252. package/dist/pactile/capabilities/search.js +181 -0
  253. package/dist/pactile/capabilities/search.js.map +1 -0
  254. package/dist/pactile/capabilities/shared.d.ts +29 -0
  255. package/dist/pactile/capabilities/shared.d.ts.map +1 -0
  256. package/dist/pactile/capabilities/shared.js +134 -0
  257. package/dist/pactile/capabilities/shared.js.map +1 -0
  258. package/dist/pactile/capabilities/workspace.d.ts +19 -0
  259. package/dist/pactile/capabilities/workspace.d.ts.map +1 -0
  260. package/dist/pactile/capabilities/workspace.js +273 -0
  261. package/dist/pactile/capabilities/workspace.js.map +1 -0
  262. package/dist/pactile/codex/bridge.d.ts +105 -2
  263. package/dist/pactile/codex/bridge.d.ts.map +1 -1
  264. package/dist/pactile/codex/bridge.js +1266 -92
  265. package/dist/pactile/codex/bridge.js.map +1 -1
  266. package/dist/pactile/codex/dispatch-stop-proof.d.ts +43 -0
  267. package/dist/pactile/codex/dispatch-stop-proof.d.ts.map +1 -0
  268. package/dist/pactile/codex/dispatch-stop-proof.js +177 -0
  269. package/dist/pactile/codex/dispatch-stop-proof.js.map +1 -0
  270. package/dist/pactile/codex/host-stop.d.ts +47 -0
  271. package/dist/pactile/codex/host-stop.d.ts.map +1 -0
  272. package/dist/pactile/codex/host-stop.js +344 -0
  273. package/dist/pactile/codex/host-stop.js.map +1 -0
  274. package/dist/pactile/coordination/index.d.ts +4 -0
  275. package/dist/pactile/coordination/index.d.ts.map +1 -0
  276. package/dist/pactile/coordination/index.js +4 -0
  277. package/dist/pactile/coordination/index.js.map +1 -0
  278. package/dist/pactile/coordination/journal.d.ts +10 -0
  279. package/dist/pactile/coordination/journal.d.ts.map +1 -0
  280. package/dist/pactile/coordination/journal.js +255 -0
  281. package/dist/pactile/coordination/journal.js.map +1 -0
  282. package/dist/pactile/coordination/kernel-resume.d.ts +8 -0
  283. package/dist/pactile/coordination/kernel-resume.d.ts.map +1 -0
  284. package/dist/pactile/coordination/kernel-resume.js +87 -0
  285. package/dist/pactile/coordination/kernel-resume.js.map +1 -0
  286. package/dist/pactile/coordination/model.d.ts +553 -0
  287. package/dist/pactile/coordination/model.d.ts.map +1 -0
  288. package/dist/pactile/coordination/model.js +239 -0
  289. package/dist/pactile/coordination/model.js.map +1 -0
  290. package/dist/pactile/coordination/state.d.ts +46 -0
  291. package/dist/pactile/coordination/state.d.ts.map +1 -0
  292. package/dist/pactile/coordination/state.js +301 -0
  293. package/dist/pactile/coordination/state.js.map +1 -0
  294. package/dist/pactile/coordination/store.d.ts +94 -0
  295. package/dist/pactile/coordination/store.d.ts.map +1 -0
  296. package/dist/pactile/coordination/store.js +396 -0
  297. package/dist/pactile/coordination/store.js.map +1 -0
  298. package/dist/pactile/index.d.ts +7 -1
  299. package/dist/pactile/index.d.ts.map +1 -1
  300. package/dist/pactile/index.js +7 -1
  301. package/dist/pactile/index.js.map +1 -1
  302. package/dist/pactile/jev/contracts.d.ts +104 -0
  303. package/dist/pactile/jev/contracts.d.ts.map +1 -0
  304. package/dist/pactile/jev/contracts.js +53 -0
  305. package/dist/pactile/jev/contracts.js.map +1 -0
  306. package/dist/pactile/jev/decision.d.ts +58 -0
  307. package/dist/pactile/jev/decision.d.ts.map +1 -0
  308. package/dist/pactile/jev/decision.js +149 -0
  309. package/dist/pactile/jev/decision.js.map +1 -0
  310. package/dist/pactile/jev/http.d.ts +25 -0
  311. package/dist/pactile/jev/http.d.ts.map +1 -0
  312. package/dist/pactile/jev/http.js +234 -0
  313. package/dist/pactile/jev/http.js.map +1 -0
  314. package/dist/pactile/jev/index.d.ts +8 -0
  315. package/dist/pactile/jev/index.d.ts.map +1 -0
  316. package/dist/pactile/jev/index.js +4 -0
  317. package/dist/pactile/jev/index.js.map +1 -0
  318. package/dist/pactile/jev/outbound.d.ts +15 -0
  319. package/dist/pactile/jev/outbound.d.ts.map +1 -0
  320. package/dist/pactile/jev/outbound.js +264 -0
  321. package/dist/pactile/jev/outbound.js.map +1 -0
  322. package/dist/pactile/jev/project-policy.d.ts +10 -0
  323. package/dist/pactile/jev/project-policy.d.ts.map +1 -0
  324. package/dist/pactile/jev/project-policy.js +53 -0
  325. package/dist/pactile/jev/project-policy.js.map +1 -0
  326. package/dist/pactile/jev/response.d.ts +17 -0
  327. package/dist/pactile/jev/response.d.ts.map +1 -0
  328. package/dist/pactile/jev/response.js +280 -0
  329. package/dist/pactile/jev/response.js.map +1 -0
  330. package/dist/pactile/jev/scheduler-advice.d.ts +92 -0
  331. package/dist/pactile/jev/scheduler-advice.d.ts.map +1 -0
  332. package/dist/pactile/jev/scheduler-advice.js +323 -0
  333. package/dist/pactile/jev/scheduler-advice.js.map +1 -0
  334. package/dist/pactile/jev/transport.d.ts +6 -0
  335. package/dist/pactile/jev/transport.d.ts.map +1 -0
  336. package/dist/pactile/jev/transport.js +87 -0
  337. package/dist/pactile/jev/transport.js.map +1 -0
  338. package/dist/pactile/lifecycle/deferred-live.d.ts +17 -0
  339. package/dist/pactile/lifecycle/deferred-live.d.ts.map +1 -0
  340. package/dist/pactile/lifecycle/deferred-live.js +173 -0
  341. package/dist/pactile/lifecycle/deferred-live.js.map +1 -0
  342. package/dist/pactile/lifecycle/legacy-import.d.ts +1 -1
  343. package/dist/pactile/lifecycle/legacy-import.js +3 -3
  344. package/dist/pactile/lifecycle/legacy-import.js.map +1 -1
  345. package/dist/pactile/lifecycle/project-files.d.ts.map +1 -1
  346. package/dist/pactile/lifecycle/project-files.js +1 -0
  347. package/dist/pactile/lifecycle/project-files.js.map +1 -1
  348. package/dist/pactile/migration/legacy-task-batch-generation.d.ts +23 -0
  349. package/dist/pactile/migration/legacy-task-batch-generation.d.ts.map +1 -0
  350. package/dist/pactile/migration/legacy-task-batch-generation.js +102 -0
  351. package/dist/pactile/migration/legacy-task-batch-generation.js.map +1 -0
  352. package/dist/pactile/migration/legacy-task-batch-io.d.ts +9 -0
  353. package/dist/pactile/migration/legacy-task-batch-io.d.ts.map +1 -0
  354. package/dist/pactile/migration/legacy-task-batch-io.js +208 -0
  355. package/dist/pactile/migration/legacy-task-batch-io.js.map +1 -0
  356. package/dist/pactile/migration/legacy-task-batch-journal.d.ts +6 -0
  357. package/dist/pactile/migration/legacy-task-batch-journal.d.ts.map +1 -0
  358. package/dist/pactile/migration/legacy-task-batch-journal.js +121 -0
  359. package/dist/pactile/migration/legacy-task-batch-journal.js.map +1 -0
  360. package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts +18 -0
  361. package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts.map +1 -0
  362. package/dist/pactile/migration/legacy-task-batch-orchestrator.js +634 -0
  363. package/dist/pactile/migration/legacy-task-batch-orchestrator.js.map +1 -0
  364. package/dist/pactile/migration/legacy-task-batch-source.d.ts +8 -0
  365. package/dist/pactile/migration/legacy-task-batch-source.d.ts.map +1 -0
  366. package/dist/pactile/migration/legacy-task-batch-source.js +158 -0
  367. package/dist/pactile/migration/legacy-task-batch-source.js.map +1 -0
  368. package/dist/pactile/migration/legacy-task-batch-types.d.ts +127 -0
  369. package/dist/pactile/migration/legacy-task-batch-types.d.ts.map +1 -0
  370. package/dist/pactile/migration/legacy-task-batch-types.js +127 -0
  371. package/dist/pactile/migration/legacy-task-batch-types.js.map +1 -0
  372. package/dist/pactile/migration/legacy-task-batch.d.ts +3 -0
  373. package/dist/pactile/migration/legacy-task-batch.d.ts.map +1 -0
  374. package/dist/pactile/migration/legacy-task-batch.js +2 -0
  375. package/dist/pactile/migration/legacy-task-batch.js.map +1 -0
  376. package/dist/pactile/migration/legacy-task-held-source-reader.d.ts +27 -0
  377. package/dist/pactile/migration/legacy-task-held-source-reader.d.ts.map +1 -0
  378. package/dist/pactile/migration/legacy-task-held-source-reader.js +261 -0
  379. package/dist/pactile/migration/legacy-task-held-source-reader.js.map +1 -0
  380. package/dist/pactile/migration/legacy-task-reconciliation.d.ts +46 -0
  381. package/dist/pactile/migration/legacy-task-reconciliation.d.ts.map +1 -0
  382. package/dist/pactile/migration/legacy-task-reconciliation.js +589 -0
  383. package/dist/pactile/migration/legacy-task-reconciliation.js.map +1 -0
  384. package/dist/pactile/migration/legacy-task-update.d.ts +19 -0
  385. package/dist/pactile/migration/legacy-task-update.d.ts.map +1 -0
  386. package/dist/pactile/migration/legacy-task-update.js +164 -0
  387. package/dist/pactile/migration/legacy-task-update.js.map +1 -0
  388. package/dist/pactile/parallel/batch.d.ts +21 -2
  389. package/dist/pactile/parallel/batch.d.ts.map +1 -1
  390. package/dist/pactile/parallel/batch.js +271 -50
  391. package/dist/pactile/parallel/batch.js.map +1 -1
  392. package/dist/pactile/parallel/policy.d.ts +1 -1
  393. package/dist/pactile/parallel/policy.d.ts.map +1 -1
  394. package/dist/pactile/parallel/policy.js +130 -102
  395. package/dist/pactile/parallel/policy.js.map +1 -1
  396. package/dist/pactile/pi/bridge.d.ts +139 -2
  397. package/dist/pactile/pi/bridge.d.ts.map +1 -1
  398. package/dist/pactile/pi/bridge.js +1317 -106
  399. package/dist/pactile/pi/bridge.js.map +1 -1
  400. package/dist/pactile/pi/rpc.d.ts +23 -4
  401. package/dist/pactile/pi/rpc.d.ts.map +1 -1
  402. package/dist/pactile/pi/rpc.js +243 -42
  403. package/dist/pactile/pi/rpc.js.map +1 -1
  404. package/dist/pactile/pi/v2-dispatch.d.ts +113 -0
  405. package/dist/pactile/pi/v2-dispatch.d.ts.map +1 -0
  406. package/dist/pactile/pi/v2-dispatch.js +919 -0
  407. package/dist/pactile/pi/v2-dispatch.js.map +1 -0
  408. package/dist/pactile/projection/planner.js +1 -1
  409. package/dist/pactile/projection/planner.js.map +1 -1
  410. package/dist/pactile/registry.d.ts +63 -1
  411. package/dist/pactile/registry.d.ts.map +1 -1
  412. package/dist/pactile/registry.js +633 -4
  413. package/dist/pactile/registry.js.map +1 -1
  414. package/dist/pactile/retrieval/index.d.ts +1 -0
  415. package/dist/pactile/retrieval/index.d.ts.map +1 -1
  416. package/dist/pactile/retrieval/index.js +1 -0
  417. package/dist/pactile/retrieval/index.js.map +1 -1
  418. package/dist/pactile/retrieval/jev-planning.d.ts +28 -0
  419. package/dist/pactile/retrieval/jev-planning.d.ts.map +1 -0
  420. package/dist/pactile/retrieval/jev-planning.js +96 -0
  421. package/dist/pactile/retrieval/jev-planning.js.map +1 -0
  422. package/dist/pactile/review/contract.d.ts +232 -0
  423. package/dist/pactile/review/contract.d.ts.map +1 -0
  424. package/dist/pactile/review/contract.js +695 -0
  425. package/dist/pactile/review/contract.js.map +1 -0
  426. package/dist/pactile/review/escalation-artifacts.d.ts +41 -0
  427. package/dist/pactile/review/escalation-artifacts.d.ts.map +1 -0
  428. package/dist/pactile/review/escalation-artifacts.js +415 -0
  429. package/dist/pactile/review/escalation-artifacts.js.map +1 -0
  430. package/dist/pactile/review/escalation-contract.d.ts +115 -0
  431. package/dist/pactile/review/escalation-contract.d.ts.map +1 -0
  432. package/dist/pactile/review/escalation-contract.js +151 -0
  433. package/dist/pactile/review/escalation-contract.js.map +1 -0
  434. package/dist/pactile/review/escalation-finalize.d.ts +14 -0
  435. package/dist/pactile/review/escalation-finalize.d.ts.map +1 -0
  436. package/dist/pactile/review/escalation-finalize.js +319 -0
  437. package/dist/pactile/review/escalation-finalize.js.map +1 -0
  438. package/dist/pactile/review/escalation-reply.d.ts +10 -0
  439. package/dist/pactile/review/escalation-reply.d.ts.map +1 -0
  440. package/dist/pactile/review/escalation-reply.js +61 -0
  441. package/dist/pactile/review/escalation-reply.js.map +1 -0
  442. package/dist/pactile/review/escalation-transport.d.ts +32 -0
  443. package/dist/pactile/review/escalation-transport.d.ts.map +1 -0
  444. package/dist/pactile/review/escalation-transport.js +216 -0
  445. package/dist/pactile/review/escalation-transport.js.map +1 -0
  446. package/dist/pactile/review/escalation.d.ts +7 -0
  447. package/dist/pactile/review/escalation.d.ts.map +1 -0
  448. package/dist/pactile/review/escalation.js +6 -0
  449. package/dist/pactile/review/escalation.js.map +1 -0
  450. package/dist/pactile/review/evidence.d.ts +25 -0
  451. package/dist/pactile/review/evidence.d.ts.map +1 -0
  452. package/dist/pactile/review/evidence.js +58 -0
  453. package/dist/pactile/review/evidence.js.map +1 -0
  454. package/dist/pactile/review/jev-escalation-advice.d.ts +77 -0
  455. package/dist/pactile/review/jev-escalation-advice.d.ts.map +1 -0
  456. package/dist/pactile/review/jev-escalation-advice.js +358 -0
  457. package/dist/pactile/review/jev-escalation-advice.js.map +1 -0
  458. package/dist/pactile/scheduler/index.d.ts +6 -0
  459. package/dist/pactile/scheduler/index.d.ts.map +1 -0
  460. package/dist/pactile/scheduler/index.js +5 -0
  461. package/dist/pactile/scheduler/index.js.map +1 -0
  462. package/dist/pactile/scheduler/project-lease-store.d.ts +35 -0
  463. package/dist/pactile/scheduler/project-lease-store.d.ts.map +1 -0
  464. package/dist/pactile/scheduler/project-lease-store.js +189 -0
  465. package/dist/pactile/scheduler/project-lease-store.js.map +1 -0
  466. package/dist/pactile/scheduler/scheduler.d.ts +91 -0
  467. package/dist/pactile/scheduler/scheduler.d.ts.map +1 -0
  468. package/dist/pactile/scheduler/scheduler.js +589 -0
  469. package/dist/pactile/scheduler/scheduler.js.map +1 -0
  470. package/dist/pactile/scheduler/task-kernel-admission.d.ts +173 -0
  471. package/dist/pactile/scheduler/task-kernel-admission.d.ts.map +1 -0
  472. package/dist/pactile/scheduler/task-kernel-admission.js +1560 -0
  473. package/dist/pactile/scheduler/task-kernel-admission.js.map +1 -0
  474. package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts +184 -0
  475. package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts.map +1 -0
  476. package/dist/pactile/scheduler/task-kernel-wave-dispatch.js +952 -0
  477. package/dist/pactile/scheduler/task-kernel-wave-dispatch.js.map +1 -0
  478. package/dist/pactile/scheduler/task-map-scheduler.d.ts +116 -0
  479. package/dist/pactile/scheduler/task-map-scheduler.d.ts.map +1 -0
  480. package/dist/pactile/scheduler/task-map-scheduler.js +1448 -0
  481. package/dist/pactile/scheduler/task-map-scheduler.js.map +1 -0
  482. package/dist/pactile/scheduler/task-run-dispatch-state.d.ts +7 -0
  483. package/dist/pactile/scheduler/task-run-dispatch-state.d.ts.map +1 -0
  484. package/dist/pactile/scheduler/task-run-dispatch-state.js +69 -0
  485. package/dist/pactile/scheduler/task-run-dispatch-state.js.map +1 -0
  486. package/dist/pactile/task/authorization.d.ts +3 -0
  487. package/dist/pactile/task/authorization.d.ts.map +1 -0
  488. package/dist/pactile/task/authorization.js +43 -0
  489. package/dist/pactile/task/authorization.js.map +1 -0
  490. package/dist/pactile/task/creation.d.ts +22 -0
  491. package/dist/pactile/task/creation.d.ts.map +1 -0
  492. package/dist/pactile/task/creation.js +95 -0
  493. package/dist/pactile/task/creation.js.map +1 -0
  494. package/dist/pactile/task/guards.d.ts +1 -4
  495. package/dist/pactile/task/guards.d.ts.map +1 -1
  496. package/dist/pactile/task/guards.js +5 -57
  497. package/dist/pactile/task/guards.js.map +1 -1
  498. package/dist/pactile/task/session-jev-receipt.d.ts +58 -0
  499. package/dist/pactile/task/session-jev-receipt.d.ts.map +1 -0
  500. package/dist/pactile/task/session-jev-receipt.js +375 -0
  501. package/dist/pactile/task/session-jev-receipt.js.map +1 -0
  502. package/dist/pactile/task/session-jev.d.ts +7 -0
  503. package/dist/pactile/task/session-jev.d.ts.map +1 -0
  504. package/dist/pactile/task/session-jev.js +217 -0
  505. package/dist/pactile/task/session-jev.js.map +1 -0
  506. package/dist/pactile/task/session-pack.d.ts.map +1 -1
  507. package/dist/pactile/task/session-pack.js +155 -16
  508. package/dist/pactile/task/session-pack.js.map +1 -1
  509. package/dist/pactile/task/session-retrieval-jev-receipt.d.ts +49 -0
  510. package/dist/pactile/task/session-retrieval-jev-receipt.d.ts.map +1 -0
  511. package/dist/pactile/task/session-retrieval-jev-receipt.js +97 -0
  512. package/dist/pactile/task/session-retrieval-jev-receipt.js.map +1 -0
  513. package/dist/pactile/task/session-retrieval-jev.d.ts +8 -0
  514. package/dist/pactile/task/session-retrieval-jev.d.ts.map +1 -0
  515. package/dist/pactile/task/session-retrieval-jev.js +352 -0
  516. package/dist/pactile/task/session-retrieval-jev.js.map +1 -0
  517. package/dist/pactile/task/strategy.d.ts +1 -23
  518. package/dist/pactile/task/strategy.d.ts.map +1 -1
  519. package/dist/pactile/task/strategy.js +2 -135
  520. package/dist/pactile/task/strategy.js.map +1 -1
  521. package/dist/pactile/tiles/jev-selection.d.ts +44 -0
  522. package/dist/pactile/tiles/jev-selection.d.ts.map +1 -0
  523. package/dist/pactile/tiles/jev-selection.js +210 -0
  524. package/dist/pactile/tiles/jev-selection.js.map +1 -0
  525. package/dist/pactile/tiles/safe-yaml.d.ts +5 -1
  526. package/dist/pactile/tiles/safe-yaml.d.ts.map +1 -1
  527. package/dist/pactile/tiles/safe-yaml.js +8 -8
  528. package/dist/pactile/tiles/safe-yaml.js.map +1 -1
  529. package/dist/pactile/tiles/selection-receipts.d.ts +71 -0
  530. package/dist/pactile/tiles/selection-receipts.d.ts.map +1 -0
  531. package/dist/pactile/tiles/selection-receipts.js +319 -0
  532. package/dist/pactile/tiles/selection-receipts.js.map +1 -0
  533. package/dist/pactile/tiles/selection.d.ts +185 -0
  534. package/dist/pactile/tiles/selection.d.ts.map +1 -0
  535. package/dist/pactile/tiles/selection.js +985 -0
  536. package/dist/pactile/tiles/selection.js.map +1 -0
  537. package/dist/pactile/verification/git-observer.d.ts +3 -0
  538. package/dist/pactile/verification/git-observer.d.ts.map +1 -0
  539. package/dist/pactile/verification/git-observer.js +3 -0
  540. package/dist/pactile/verification/git-observer.js.map +1 -0
  541. package/dist/pactile/verification/index.d.ts +11 -0
  542. package/dist/pactile/verification/index.d.ts.map +1 -0
  543. package/dist/pactile/verification/index.js +6 -0
  544. package/dist/pactile/verification/index.js.map +1 -0
  545. package/dist/pactile/verification/jev-advice.d.ts +78 -0
  546. package/dist/pactile/verification/jev-advice.d.ts.map +1 -0
  547. package/dist/pactile/verification/jev-advice.js +397 -0
  548. package/dist/pactile/verification/jev-advice.js.map +1 -0
  549. package/dist/pactile/verification/planner.d.ts +15 -0
  550. package/dist/pactile/verification/planner.d.ts.map +1 -0
  551. package/dist/pactile/verification/planner.js +412 -0
  552. package/dist/pactile/verification/planner.js.map +1 -0
  553. package/dist/pactile/verification/receipt.d.ts +101 -0
  554. package/dist/pactile/verification/receipt.d.ts.map +1 -0
  555. package/dist/pactile/verification/receipt.js +400 -0
  556. package/dist/pactile/verification/receipt.js.map +1 -0
  557. package/dist/pactile/verification/types.d.ts +72 -0
  558. package/dist/pactile/verification/types.d.ts.map +1 -0
  559. package/dist/pactile/verification/types.js +21 -0
  560. package/dist/pactile/verification/types.js.map +1 -0
  561. package/dist/pactile/worktree/git-probe.d.ts +32 -0
  562. package/dist/pactile/worktree/git-probe.d.ts.map +1 -0
  563. package/dist/pactile/worktree/git-probe.js +336 -0
  564. package/dist/pactile/worktree/git-probe.js.map +1 -0
  565. package/dist/pactile/worktree/git-removal.d.ts +3 -0
  566. package/dist/pactile/worktree/git-removal.d.ts.map +1 -0
  567. package/dist/pactile/worktree/git-removal.js +11 -0
  568. package/dist/pactile/worktree/git-removal.js.map +1 -0
  569. package/dist/pactile/worktree/index.d.ts +2 -0
  570. package/dist/pactile/worktree/index.d.ts.map +1 -0
  571. package/dist/pactile/worktree/index.js +2 -0
  572. package/dist/pactile/worktree/index.js.map +1 -0
  573. package/dist/pactile/worktree/integration-evidence.d.ts +80 -0
  574. package/dist/pactile/worktree/integration-evidence.d.ts.map +1 -0
  575. package/dist/pactile/worktree/integration-evidence.js +166 -0
  576. package/dist/pactile/worktree/integration-evidence.js.map +1 -0
  577. package/dist/pactile/worktree/manager-core.d.ts +50 -0
  578. package/dist/pactile/worktree/manager-core.d.ts.map +1 -0
  579. package/dist/pactile/worktree/manager-core.js +359 -0
  580. package/dist/pactile/worktree/manager-core.js.map +1 -0
  581. package/dist/pactile/worktree/manager-provenance.d.ts +32 -0
  582. package/dist/pactile/worktree/manager-provenance.d.ts.map +1 -0
  583. package/dist/pactile/worktree/manager-provenance.js +409 -0
  584. package/dist/pactile/worktree/manager-provenance.js.map +1 -0
  585. package/dist/pactile/worktree/manager-types.d.ts +84 -0
  586. package/dist/pactile/worktree/manager-types.d.ts.map +1 -0
  587. package/dist/pactile/worktree/manager-types.js +11 -0
  588. package/dist/pactile/worktree/manager-types.js.map +1 -0
  589. package/dist/pactile/worktree/manager.d.ts +10 -0
  590. package/dist/pactile/worktree/manager.d.ts.map +1 -0
  591. package/dist/pactile/worktree/manager.js +6 -0
  592. package/dist/pactile/worktree/manager.js.map +1 -0
  593. package/dist/pactile/worktree/run-workspace-cleanup.d.ts +10 -0
  594. package/dist/pactile/worktree/run-workspace-cleanup.d.ts.map +1 -0
  595. package/dist/pactile/worktree/run-workspace-cleanup.js +695 -0
  596. package/dist/pactile/worktree/run-workspace-cleanup.js.map +1 -0
  597. package/dist/pactile/worktree/run-workspace-lifecycle.d.ts +65 -0
  598. package/dist/pactile/worktree/run-workspace-lifecycle.d.ts.map +1 -0
  599. package/dist/pactile/worktree/run-workspace-lifecycle.js +276 -0
  600. package/dist/pactile/worktree/run-workspace-lifecycle.js.map +1 -0
  601. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-hooks.md +1 -1
  602. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/generated-files.md +1 -1
  603. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/hooks-and-settings.md +1 -1
  604. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/overview.md +1 -1
  605. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/platform-map.md +1 -1
  606. package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +2 -0
  607. package/dist/templates/common/skills/brainstorm.md +19 -13
  608. package/dist/templates/markdown/agents.md +2 -2
  609. package/dist/templates/markdown/framework/execution-strategy.md.txt +1 -1
  610. package/dist/templates/markdown/framework/index.md.txt +1 -1
  611. package/dist/templates/markdown/framework/parallel-first-execution.md.txt +17 -105
  612. package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +3 -3
  613. package/dist/templates/markdown/framework/release-boundary.md.txt +9 -10
  614. package/dist/templates/markdown/framework/retrieval-daily-guide.md.txt +1 -1
  615. package/dist/templates/pactile/CONTEXT.md +48 -36
  616. package/dist/templates/pactile/modules/approval-personal/contract.md +12 -24
  617. package/dist/templates/pactile/modules/close-basic/contract.md +15 -18
  618. package/dist/templates/pactile/modules/debug-recovery/contract.md +4 -4
  619. package/dist/templates/pactile/modules/define-basic/contract.md +15 -19
  620. package/dist/templates/pactile/modules/define-extended/contract.md +3 -3
  621. package/dist/templates/pactile/modules/execute-agent/contract.md +11 -19
  622. package/dist/templates/pactile/modules/intake-basic/contract.md +16 -13
  623. package/dist/templates/pactile/modules/verify-basic/contract.md +11 -20
  624. package/dist/templates/pactile/tasks/templates/release-execution/design.md +5 -5
  625. package/dist/templates/pactile/tasks/templates/release-readiness/design.md +6 -6
  626. package/dist/templates/pactile/tasks/templates/release-readiness/handoff-template.md +8 -2
  627. package/dist/templates/pactile/workflow.md +37 -41
  628. package/dist/templates/template-utils.d.ts +1 -2
  629. package/dist/templates/template-utils.d.ts.map +1 -1
  630. package/dist/templates/template-utils.js +2 -13
  631. package/dist/templates/template-utils.js.map +1 -1
  632. package/dist/types/ai-tools.d.ts +1 -1
  633. package/dist/types/ai-tools.js +1 -1
  634. package/dist/utils/manifest-prune.js +1 -1
  635. package/dist/utils/manifest-prune.js.map +1 -1
  636. package/dist/utils/p36-upgrade.d.ts +2 -2
  637. package/dist/utils/p36-upgrade.d.ts.map +1 -1
  638. package/dist/utils/p36-upgrade.js +2 -10
  639. package/dist/utils/p36-upgrade.js.map +1 -1
  640. package/dist/utils/post-update-smoke.js +1 -1
  641. package/dist/utils/post-update-smoke.js.map +1 -1
  642. package/dist/utils/readiness.d.ts +2 -2
  643. package/dist/utils/readiness.js +2 -2
  644. package/dist/utils/uninstall-scrubbers.js +1 -1
  645. package/dist/utils/workflow-dir.d.ts +1 -1
  646. package/dist/utils/workflow-dir.d.ts.map +1 -1
  647. package/dist/utils/workflow-dir.js +1 -1
  648. package/dist/utils/workflow-dir.js.map +1 -1
  649. package/package.json +42 -37
  650. package/CHANGELOG.md +0 -651
  651. package/bin/compat-warning.js +0 -11
  652. package/bin/pactile.js +0 -3
  653. package/bin/smart-search.js +0 -38
  654. package/dist/migrations/manifests/0.1.0.json +0 -9
  655. package/dist/migrations/manifests/0.1.1.json +0 -9
  656. package/dist/migrations/manifests/0.1.2.json +0 -9
  657. package/dist/migrations/manifests/0.1.3.json +0 -9
  658. package/dist/migrations/manifests/0.1.4.json +0 -9
  659. package/dist/migrations/manifests/0.2.1.json +0 -9
  660. package/dist/migrations/manifests/0.2.10.json +0 -374
  661. package/dist/migrations/manifests/0.2.2.json +0 -9
  662. package/dist/migrations/manifests/0.2.3.json +0 -9
  663. package/dist/migrations/manifests/0.2.4.json +0 -9
  664. package/dist/migrations/manifests/0.2.5.json +0 -9
  665. package/dist/migrations/manifests/0.2.6.json +0 -9
  666. package/dist/migrations/manifests/0.2.7.json +0 -9
  667. package/dist/migrations/manifests/0.2.8.json +0 -9
  668. package/dist/migrations/manifests/0.2.9.json +0 -9
  669. package/dist/migrations/manifests/0.3.0.json +0 -89
  670. package/dist/migrations/manifests/0.3.1.json +0 -32
  671. package/dist/migrations/manifests/0.3.2.json +0 -16
  672. package/dist/migrations/manifests/0.3.3.json +0 -9
  673. package/dist/migrations/manifests/0.3.4.json +0 -9
  674. package/dist/migrations/manifests/0.3.5.json +0 -9
  675. package/dist/migrations/manifests/0.3.6.json +0 -9
  676. package/dist/migrations/manifests/0.4.0.json +0 -9
  677. package/dist/migrations/manifests/0.4.1.json +0 -9
  678. package/dist/migrations/manifests/0.4.2.json +0 -9
  679. package/dist/migrations/manifests/0.4.3.json +0 -9
  680. package/dist/migrations/manifests/0.5.0-beta.0.json +0 -9
  681. package/dist/migrations/manifests/0.5.0-beta.1.json +0 -9
  682. package/dist/migrations/manifests/0.5.0-beta.2.json +0 -9
  683. package/dist/migrations/manifests/0.5.0-beta.3.json +0 -9
  684. package/dist/migrations/manifests/0.5.0-beta.4.json +0 -9
  685. package/dist/migrations/manifests/0.5.0-beta.5.json +0 -9
  686. package/dist/migrations/manifests/0.5.0.json +0 -9
  687. package/dist/pactile/compat/retired-alternate-client.d.ts +0 -42
  688. package/dist/pactile/compat/retired-alternate-client.d.ts.map +0 -1
  689. package/dist/pactile/compat/retired-alternate-client.js +0 -153
  690. package/dist/pactile/compat/retired-alternate-client.js.map +0 -1
  691. package/dist/pactile/compat/update-residue.d.ts +0 -4
  692. package/dist/pactile/compat/update-residue.d.ts.map +0 -1
  693. package/dist/pactile/compat/update-residue.js +0 -55
  694. package/dist/pactile/compat/update-residue.js.map +0 -1
  695. package/dist/utils/cursor-retrieval-env.d.ts +0 -17
  696. package/dist/utils/cursor-retrieval-env.d.ts.map +0 -1
  697. package/dist/utils/cursor-retrieval-env.js +0 -19
  698. package/dist/utils/cursor-retrieval-env.js.map +0 -1
  699. package/dist/utils/proxy.d.ts +0 -25
  700. package/dist/utils/proxy.d.ts.map +0 -1
  701. package/dist/utils/proxy.js +0 -60
  702. package/dist/utils/proxy.js.map +0 -1
  703. package/scripts/postinstall.js +0 -6
@@ -0,0 +1,1046 @@
1
+ /** Build a deterministic, source-preserving V2 import generation for P36. */
2
+ import { createHash } from "node:crypto";
3
+ import { deriveStateForPhase, } from "./kernel-contract.js";
4
+ import { TASK_DELIVERY_LEVELS, fingerprintTaskValue, parseTaskKernelSnapshotV2, } from "./task-kernel.js";
5
+ const TASK_ID = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
6
+ const PLACEHOLDER = /^(?:\[[ xX]\]\s*)?(?:tbd|todo|tba|n\/?a|to be determined|to be supplied|待补充|待定义|未定义|待确定|待完善)(?:[.!…]*)$/i;
7
+ function stableHash(value) {
8
+ return createHash("sha256").update(stableJson(value)).digest("hex");
9
+ }
10
+ function stableJson(value) {
11
+ if (Array.isArray(value))
12
+ return `[${value.map(stableJson).join(",")}]`;
13
+ if (value && typeof value === "object") {
14
+ const record = value;
15
+ return `{${Object.keys(record)
16
+ .sort()
17
+ .map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`)
18
+ .join(",")}}`;
19
+ }
20
+ return JSON.stringify(value) ?? "null";
21
+ }
22
+ function jsonBytes(value) {
23
+ return Buffer.from(`${JSON.stringify(value, null, 2)}\n`, "utf8");
24
+ }
25
+ function factValue(fact) {
26
+ return fact.present ? fact.value : undefined;
27
+ }
28
+ function canonicalActiveTaskPath(value) {
29
+ if (!value ||
30
+ value.length > 2048 ||
31
+ value.includes("\\") ||
32
+ value.startsWith("/") ||
33
+ /^[A-Za-z]:/.test(value))
34
+ throw new Error("legacy-task-reconciliation-target-path-invalid");
35
+ const relative = value.startsWith(".pactile/tasks/")
36
+ ? value.slice(".pactile/tasks/".length)
37
+ : value;
38
+ const parts = relative.split("/");
39
+ if (parts.length === 0 ||
40
+ parts.length > 32 ||
41
+ parts.some((part) => !part ||
42
+ part === "." ||
43
+ part === ".." ||
44
+ part.length > 255 ||
45
+ part.toLowerCase() === "archive"))
46
+ throw new Error("legacy-task-reconciliation-target-path-invalid");
47
+ return `.pactile/tasks/${parts.join("/")}`;
48
+ }
49
+ function nonPlaceholder(value) {
50
+ return (typeof value === "string" &&
51
+ value.trim() !== "" &&
52
+ !PLACEHOLDER.test(value.trim()));
53
+ }
54
+ function parseModeFacts(facts, additional = []) {
55
+ const raw = [...facts, ...additional]
56
+ .filter((item) => item.present)
57
+ .map((item) => item.value);
58
+ const normalized = raw.map((value) => typeof value === "string" ? value.trim() : "invalid");
59
+ if (normalized.length === 0)
60
+ return { state: "warn", raw };
61
+ if (normalized.some((value) => !["block", "warn", "off"].includes(value))) {
62
+ return { state: "conflict", raw };
63
+ }
64
+ if (new Set(normalized).size > 1) {
65
+ return { state: normalized.includes("block") ? "conflict" : "warn", raw };
66
+ }
67
+ return { state: normalized[0], raw };
68
+ }
69
+ function parseYamlScalar(value) {
70
+ const stripped = value.replace(/\s+#.*$/, "").trim();
71
+ if (!stripped)
72
+ return null;
73
+ if (stripped.startsWith('"')) {
74
+ try {
75
+ const parsed = JSON.parse(stripped);
76
+ return typeof parsed === "string" ? parsed : null;
77
+ }
78
+ catch {
79
+ return null;
80
+ }
81
+ }
82
+ if (stripped.startsWith("'")) {
83
+ if (!stripped.endsWith("'") || stripped.length < 2)
84
+ return null;
85
+ return stripped.slice(1, -1).replaceAll("''", "'");
86
+ }
87
+ if (/[:{}[\],&*!|>'"%@`]/.test(stripped))
88
+ return null;
89
+ return stripped;
90
+ }
91
+ function parseYamlStringList(value) {
92
+ const trimmed = value.trim();
93
+ if (trimmed === "[]")
94
+ return { valid: true, values: [] };
95
+ if (!trimmed.startsWith("[") || !trimmed.endsWith("]")) {
96
+ return { valid: false, values: [] };
97
+ }
98
+ const inner = trimmed.slice(1, -1);
99
+ if (!inner.trim())
100
+ return { valid: true, values: [] };
101
+ const pieces = [];
102
+ let quote = null;
103
+ let start = 0;
104
+ for (let index = 0; index < inner.length; index++) {
105
+ const char = inner.charAt(index);
106
+ if (quote === '"' && char === "\\") {
107
+ index++;
108
+ continue;
109
+ }
110
+ if (quote === "'" && char === "'" && inner[index + 1] === "'") {
111
+ index++;
112
+ continue;
113
+ }
114
+ if (quote) {
115
+ if (char === quote)
116
+ quote = null;
117
+ }
118
+ else if (char === '"' || char === "'")
119
+ quote = char;
120
+ else if (char === ",") {
121
+ pieces.push(inner.slice(start, index).trim());
122
+ start = index + 1;
123
+ }
124
+ }
125
+ if (quote)
126
+ return { valid: false, values: [] };
127
+ pieces.push(inner.slice(start).trim());
128
+ const values = pieces.map(parseYamlScalar);
129
+ if (values.some((item) => item === null))
130
+ return { valid: false, values: [] };
131
+ return { valid: true, values: values };
132
+ }
133
+ /** Parse only the explicit simple frontmatter fields used by legacy Parent maps. */
134
+ function parseTaskMap(text) {
135
+ const frontmatter = text.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/);
136
+ if (!frontmatter) {
137
+ return {
138
+ entries: [],
139
+ topLevelDependsOn: [],
140
+ hasTopLevelDependsOn: false,
141
+ topLevelDependsMode: undefined,
142
+ hasTopLevelDependsMode: false,
143
+ topLevelDependsParseInvalid: false,
144
+ topLevelDependsModeParseInvalid: false,
145
+ unsupported: true,
146
+ };
147
+ }
148
+ const lines = (frontmatter[1] ?? "").split(/\r?\n/);
149
+ const entries = [];
150
+ let current = null;
151
+ let inChildren = false;
152
+ let unsupported = false;
153
+ let topLevelDependsOn = [];
154
+ let hasTopLevelDependsOn = false;
155
+ let topLevelDependsParseInvalid = false;
156
+ let topLevelDependsModeParseInvalid = false;
157
+ let topLevelDependsMode;
158
+ let hasTopLevelDependsMode = false;
159
+ const parseListValue = (raw) => {
160
+ if (raw.trim())
161
+ return parseYamlStringList(raw);
162
+ return { valid: true, values: [] };
163
+ };
164
+ for (let index = 0; index < lines.length; index++) {
165
+ const line = lines[index] ?? "";
166
+ const childHeader = line.match(/^\s{2}-\s+id:\s*(.*?)\s*$/);
167
+ if (childHeader) {
168
+ inChildren = true;
169
+ current = {
170
+ id: parseYamlScalar(childHeader[1] ?? ""),
171
+ dependsOn: [],
172
+ dependsMode: undefined,
173
+ hasDependsOn: false,
174
+ dependencyParseInvalid: false,
175
+ dependsModeParseInvalid: false,
176
+ };
177
+ if (!current.id)
178
+ unsupported = true;
179
+ entries.push(current);
180
+ continue;
181
+ }
182
+ if (/^\S/.test(line) && !line.startsWith(" ")) {
183
+ current = null;
184
+ inChildren = line.startsWith("children:");
185
+ const topMode = line.match(/^depends_mode:\s*(.*?)\s*$/);
186
+ if (topMode) {
187
+ if (hasTopLevelDependsMode) {
188
+ unsupported = true;
189
+ topLevelDependsModeParseInvalid = true;
190
+ }
191
+ hasTopLevelDependsMode = true;
192
+ topLevelDependsMode = parseYamlScalar(topMode[1] ?? "");
193
+ if (topLevelDependsMode === null) {
194
+ unsupported = true;
195
+ topLevelDependsModeParseInvalid = true;
196
+ }
197
+ }
198
+ const topDeps = line.match(/^depends_on:\s*(.*?)\s*$/);
199
+ if (topDeps) {
200
+ if (hasTopLevelDependsOn) {
201
+ unsupported = true;
202
+ topLevelDependsParseInvalid = true;
203
+ }
204
+ hasTopLevelDependsOn = true;
205
+ const raw = topDeps[1] ?? "";
206
+ let parsed = parseListValue(raw);
207
+ if (!raw.trim()) {
208
+ const nested = [];
209
+ let lookahead = index + 1;
210
+ while (lookahead < lines.length && /^\s{2}-\s+/.test(lines[lookahead] ?? "")) {
211
+ const nestedLine = lines[lookahead] ?? "";
212
+ const item = parseYamlScalar(nestedLine.replace(/^\s{2}-\s+/, ""));
213
+ if (item === null) {
214
+ unsupported = true;
215
+ topLevelDependsParseInvalid = true;
216
+ }
217
+ else
218
+ nested.push(item);
219
+ lookahead++;
220
+ }
221
+ if (/^\s+-\s+/.test(lines[lookahead] ?? "")) {
222
+ unsupported = true;
223
+ topLevelDependsParseInvalid = true;
224
+ }
225
+ parsed = { valid: !topLevelDependsParseInvalid, values: nested };
226
+ index = lookahead - 1;
227
+ }
228
+ if (!parsed.valid) {
229
+ unsupported = true;
230
+ topLevelDependsParseInvalid = true;
231
+ }
232
+ topLevelDependsOn = parsed.values;
233
+ }
234
+ if (!inChildren && !topMode && !topDeps && !/^\w[\w-]*\s*:/.test(line)) {
235
+ unsupported = true;
236
+ }
237
+ continue;
238
+ }
239
+ if (!current || !inChildren)
240
+ continue;
241
+ const mode = line.match(/^\s{4}depends_mode:\s*(.*?)\s*$/);
242
+ if (mode) {
243
+ if (current.dependsMode !== undefined) {
244
+ unsupported = true;
245
+ current.dependsModeParseInvalid = true;
246
+ }
247
+ current.dependsMode = parseYamlScalar(mode[1] ?? "");
248
+ if (current.dependsMode === null) {
249
+ unsupported = true;
250
+ current.dependsModeParseInvalid = true;
251
+ }
252
+ continue;
253
+ }
254
+ const dependency = line.match(/^\s{4}depends_on:\s*(.*?)\s*$/);
255
+ if (dependency) {
256
+ if (current.hasDependsOn) {
257
+ unsupported = true;
258
+ current.dependencyParseInvalid = true;
259
+ }
260
+ current.hasDependsOn = true;
261
+ const raw = dependency[1] ?? "";
262
+ if (raw.trim()) {
263
+ const parsed = parseListValue(raw);
264
+ if (!parsed.valid) {
265
+ unsupported = true;
266
+ current.dependencyParseInvalid = true;
267
+ }
268
+ current.dependsOn = parsed.values;
269
+ }
270
+ else {
271
+ const nested = [];
272
+ let lookahead = index + 1;
273
+ while (lookahead < lines.length &&
274
+ /^\s{6}-\s+/.test(lines[lookahead] ?? "")) {
275
+ const nestedLine = lines[lookahead] ?? "";
276
+ const item = parseYamlScalar(nestedLine.replace(/^\s{6}-\s+/, ""));
277
+ if (item === null) {
278
+ unsupported = true;
279
+ current.dependencyParseInvalid = true;
280
+ }
281
+ else
282
+ nested.push(item);
283
+ lookahead++;
284
+ }
285
+ if (/^\s+-\s+/.test(lines[lookahead] ?? "")) {
286
+ unsupported = true;
287
+ current.dependencyParseInvalid = true;
288
+ }
289
+ current.dependsOn = nested;
290
+ }
291
+ continue;
292
+ }
293
+ if (/^\s{2}-\s+/.test(line))
294
+ continue;
295
+ if (/^\s{4}[\w-]+\s*:/.test(line) || !line.trim())
296
+ continue;
297
+ if (/^\s+/.test(line) && current.hasDependsOn)
298
+ continue;
299
+ unsupported = true;
300
+ }
301
+ return {
302
+ entries,
303
+ topLevelDependsOn,
304
+ hasTopLevelDependsOn,
305
+ topLevelDependsMode,
306
+ hasTopLevelDependsMode,
307
+ topLevelDependsParseInvalid,
308
+ topLevelDependsModeParseInvalid,
309
+ unsupported,
310
+ };
311
+ }
312
+ function legacyId(task) {
313
+ return typeof task.legacyTaskId.value === "string"
314
+ ? task.legacyTaskId.value
315
+ : null;
316
+ }
317
+ function uniqueTaskForReference(reference, tasks) {
318
+ if (typeof reference !== "string" || !reference.trim()) {
319
+ return { task: null, reason: "invalid-reference" };
320
+ }
321
+ const value = reference.trim();
322
+ if (value.toLowerCase().startsWith("pool:")) {
323
+ return { task: null, reason: `pool-reference:${value}` };
324
+ }
325
+ const matches = tasks.filter((task) => legacyId(task) === value || task.directoryName === value);
326
+ if (matches.length === 0)
327
+ return { task: null, reason: `dangling-reference:${value}` };
328
+ if (matches.length > 1)
329
+ return { task: null, reason: `ambiguous-reference:${value}` };
330
+ const task = matches[0];
331
+ if (!task)
332
+ return { task: null, reason: `dangling-reference:${value}` };
333
+ if (task.archivedByPath)
334
+ return { task: null, reason: `archived-reference:${value}` };
335
+ const id = legacyId(task);
336
+ if (!id || !TASK_ID.test(id))
337
+ return { task: null, reason: `invalid-task-id:${value}` };
338
+ return { task, reason: null };
339
+ }
340
+ function taskJsonDependencies(source) {
341
+ const raw = factValue(source.dependencies.taskJsonDependsOn);
342
+ return Array.isArray(raw) ? raw : raw === undefined ? [] : [raw];
343
+ }
344
+ function taskMapDeclarations(tasks, byDirectory) {
345
+ const declarations = [];
346
+ for (const parent of tasks) {
347
+ if (!parent.taskMap)
348
+ continue;
349
+ const parsed = parseTaskMap(parent.taskMap.content);
350
+ const parentAssessment = byDirectory.get(parent.directory);
351
+ if (parsed.hasTopLevelDependsOn) {
352
+ declarations.push({
353
+ owner: parent,
354
+ ownerId: legacyId(parent),
355
+ references: parsed.topLevelDependsOn,
356
+ mode: parseModeFacts([
357
+ parent.dependencies.topLevelDependsMode,
358
+ parent.dependencies.metaDependsMode,
359
+ ], parsed.hasTopLevelDependsMode
360
+ ? [{ present: true, value: parsed.topLevelDependsMode }]
361
+ : []),
362
+ source: parent.taskMap.path,
363
+ });
364
+ }
365
+ for (const entry of parsed.entries) {
366
+ if (!entry.hasDependsOn)
367
+ continue;
368
+ const owners = tasks.filter((task) => legacyId(task) === entry.id || task.directoryName === entry.id);
369
+ const owner = owners.length === 1 ? (owners[0] ?? null) : null;
370
+ const rowMode = entry.dependsMode === undefined
371
+ ? []
372
+ : [{ present: true, value: entry.dependsMode }];
373
+ const declaration = {
374
+ owner,
375
+ ownerId: entry.id,
376
+ references: entry.dependsOn,
377
+ mode: owner
378
+ ? parseModeFacts([
379
+ owner.dependencies.topLevelDependsMode,
380
+ owner.dependencies.metaDependsMode,
381
+ ], rowMode)
382
+ : parseModeFacts([], rowMode),
383
+ source: parent.taskMap.path,
384
+ };
385
+ declarations.push(declaration);
386
+ if (owners.length !== 1 &&
387
+ declaration.mode.state !== "warn" &&
388
+ declaration.mode.state !== "off") {
389
+ parentAssessment?.coordinationReasons.add(`task-map-owner-${owners.length === 0 ? "unresolved" : "ambiguous"}:${String(entry.id)}`);
390
+ }
391
+ }
392
+ if (parsed.unsupported && parentAssessment) {
393
+ parentAssessment.dependencyDiagnostics.push(`task-map-contains-unsupported-frontmatter:${parent.taskMap.path}`);
394
+ }
395
+ if (parsed.topLevelDependsParseInvalid) {
396
+ const mode = parseModeFacts([
397
+ parent.dependencies.topLevelDependsMode,
398
+ parent.dependencies.metaDependsMode,
399
+ ], parsed.hasTopLevelDependsMode
400
+ ? [{ present: true, value: parsed.topLevelDependsMode }]
401
+ : []);
402
+ if (mode.state === "block" || mode.state === "conflict") {
403
+ parentAssessment?.coordinationReasons.add("task-map-top-level-dependency-frontmatter-unparsed");
404
+ }
405
+ }
406
+ if (parsed.topLevelDependsModeParseInvalid) {
407
+ parentAssessment?.coordinationReasons.add("task-map-top-level-dependency-mode-unparsed");
408
+ }
409
+ for (const entry of parsed.entries) {
410
+ if (!entry.dependencyParseInvalid && !entry.dependsModeParseInvalid)
411
+ continue;
412
+ const owners = tasks.filter((task) => legacyId(task) === entry.id || task.directoryName === entry.id);
413
+ const owner = owners.length === 1 ? (owners[0] ?? null) : null;
414
+ const ownerAssessment = owner ? byDirectory.get(owner.directory) : null;
415
+ const rowMode = entry.dependsMode === undefined
416
+ ? []
417
+ : [{ present: true, value: entry.dependsMode }];
418
+ const mode = owner
419
+ ? parseModeFacts([
420
+ owner.dependencies.topLevelDependsMode,
421
+ owner.dependencies.metaDependsMode,
422
+ ], rowMode)
423
+ : parseModeFacts([], rowMode);
424
+ if (mode.state === "warn" || mode.state === "off") {
425
+ if (entry.dependsModeParseInvalid) {
426
+ (ownerAssessment ?? parentAssessment)?.coordinationReasons.add("task-map-dependency-mode-unparsed");
427
+ continue;
428
+ }
429
+ (ownerAssessment ?? parentAssessment)?.dependencyDiagnostics.push(`${mode.state}-task-map-dependency-frontmatter-unparsed:${parent.taskMap.path}`);
430
+ continue;
431
+ }
432
+ if (mode.state !== "block" && mode.state !== "conflict")
433
+ continue;
434
+ if (ownerAssessment) {
435
+ ownerAssessment.coordinationReasons.add("task-map-dependency-frontmatter-unparsed");
436
+ }
437
+ else {
438
+ parentAssessment?.coordinationReasons.add(`task-map-block-owner-${owners.length === 0 ? "unresolved" : "ambiguous"}:${String(entry.id)}`);
439
+ }
440
+ }
441
+ }
442
+ return declarations;
443
+ }
444
+ function parsePrdAcceptanceCriteria(source) {
445
+ const prd = source.documents.find((file) => file.name === "prd.md");
446
+ if (prd?.encoding !== "utf8")
447
+ return null;
448
+ const lines = prd.content.split(/\r?\n/);
449
+ const headings = lines.flatMap((line, index) => {
450
+ const match = line.match(/^(#{1,6})\s+(?:Acceptance Criteria|验收标准)\s*#*\s*$/i);
451
+ return match ? [{ index, level: (match[1] ?? "").length }] : [];
452
+ });
453
+ if (headings.length !== 1)
454
+ return null;
455
+ const section = headings[0];
456
+ if (!section)
457
+ return null;
458
+ const content = [];
459
+ for (let index = section.index + 1; index < lines.length; index++) {
460
+ const line = lines[index] ?? "";
461
+ const heading = line.match(/^(#{1,6})\s+/);
462
+ if (heading && (heading[1] ?? "").length <= section.level)
463
+ break;
464
+ content.push(line);
465
+ }
466
+ const criteria = [];
467
+ for (const line of content) {
468
+ if (!line.trim() || /^\s*<!--/.test(line))
469
+ continue;
470
+ const item = line.match(/^\s*(?:[-+*]\s+|\d+[.)]\s+)(?:\[[ xX]\]\s*)?(.*?)\s*$/);
471
+ if (!item)
472
+ return null;
473
+ const description = item[1] ?? "";
474
+ if (!nonPlaceholder(description))
475
+ continue;
476
+ const id = `legacy-ac-${criteria.length + 1}-${stableHash({ path: source.directory, description }).slice(0, 8)}`;
477
+ criteria.push({ id, description });
478
+ }
479
+ return criteria.length ? criteria : null;
480
+ }
481
+ function assessmentFor(source) {
482
+ const taskId = legacyId(source) ?? "";
483
+ const raw = source.rawTaskData ?? {};
484
+ const title = nonPlaceholder(raw.title)
485
+ ? raw.title
486
+ : nonPlaceholder(raw.name)
487
+ ? raw.name
488
+ : null;
489
+ const deliverable = nonPlaceholder(raw.deliverable) ? raw.deliverable : null;
490
+ const deliveryLevel = TASK_DELIVERY_LEVELS.includes(raw.deliveryLevel)
491
+ ? raw.deliveryLevel
492
+ : null;
493
+ const acceptanceCriteria = parsePrdAcceptanceCriteria(source);
494
+ const missingDefinitionFields = new Set();
495
+ if (!TASK_ID.test(taskId))
496
+ missingDefinitionFields.add("taskId");
497
+ if (!title)
498
+ missingDefinitionFields.add("title");
499
+ if (!deliverable)
500
+ missingDefinitionFields.add("deliverable");
501
+ if (!deliveryLevel)
502
+ missingDefinitionFields.add("deliveryLevel");
503
+ if (!acceptanceCriteria)
504
+ missingDefinitionFields.add("acceptanceCriteria");
505
+ if (typeof raw.createdAt !== "string" ||
506
+ !raw.createdAt.trim() ||
507
+ Number.isNaN(Date.parse(raw.createdAt))) {
508
+ missingDefinitionFields.add("createdAt");
509
+ }
510
+ if (source.kernelJson?.parseError) {
511
+ missingDefinitionFields.add("legacyHistoryGap");
512
+ }
513
+ return {
514
+ source,
515
+ sourceTaskId: taskId,
516
+ taskId,
517
+ hardDependencies: new Set(),
518
+ dependencyDiagnostics: [],
519
+ coordinationReasons: new Set(),
520
+ legacyHistoryDiagnostics: source.kernelJson?.parseError
521
+ ? [`legacy-kernel-unparsed:${source.kernelJson.file.path}`]
522
+ : [],
523
+ missingDefinitionFields,
524
+ title,
525
+ description: typeof raw.description === "string" ? raw.description : "",
526
+ deliverable,
527
+ deliveryLevel,
528
+ createdAt: typeof raw.createdAt === "string" &&
529
+ raw.createdAt.trim() !== "" &&
530
+ !Number.isNaN(Date.parse(raw.createdAt))
531
+ ? raw.createdAt
532
+ : null,
533
+ acceptanceCriteria,
534
+ };
535
+ }
536
+ function applyReconciliationDefinition(assessment, input) {
537
+ const definition = input.definition ?? {};
538
+ const keys = Object.keys(definition);
539
+ if (keys.some((key) => !["title", "deliverable", "deliveryLevel", "createdAt", "acceptanceCriteria"].includes(key))) {
540
+ throw new Error("legacy-task-reconciliation-definition-field-invalid");
541
+ }
542
+ const takeMissing = (field) => {
543
+ if (!assessment.missingDefinitionFields.has(field))
544
+ throw new Error(`legacy-task-reconciliation-field-already-defined:${field}`);
545
+ assessment.missingDefinitionFields.delete(field);
546
+ };
547
+ if (Object.hasOwn(definition, "title")) {
548
+ if (!nonPlaceholder(definition.title))
549
+ throw new Error("legacy-task-reconciliation-title-invalid");
550
+ takeMissing("title");
551
+ assessment.title = definition.title.trim();
552
+ }
553
+ if (Object.hasOwn(definition, "deliverable")) {
554
+ if (!nonPlaceholder(definition.deliverable))
555
+ throw new Error("legacy-task-reconciliation-deliverable-invalid");
556
+ takeMissing("deliverable");
557
+ assessment.deliverable = definition.deliverable.trim();
558
+ }
559
+ if (Object.hasOwn(definition, "deliveryLevel")) {
560
+ if (!TASK_DELIVERY_LEVELS.includes(definition.deliveryLevel))
561
+ throw new Error("legacy-task-reconciliation-delivery-level-invalid");
562
+ takeMissing("deliveryLevel");
563
+ assessment.deliveryLevel = definition.deliveryLevel;
564
+ }
565
+ if (Object.hasOwn(definition, "createdAt")) {
566
+ if (typeof definition.createdAt !== "string" || Number.isNaN(Date.parse(definition.createdAt)))
567
+ throw new Error("legacy-task-reconciliation-created-at-invalid");
568
+ takeMissing("createdAt");
569
+ assessment.createdAt = definition.createdAt;
570
+ }
571
+ if (Object.hasOwn(definition, "acceptanceCriteria")) {
572
+ const supplied = definition.acceptanceCriteria;
573
+ if (!Array.isArray(supplied) ||
574
+ supplied.length === 0 ||
575
+ supplied.some((criterion) => !nonPlaceholder(criterion)))
576
+ throw new Error("legacy-task-reconciliation-acceptance-criteria-invalid");
577
+ takeMissing("acceptanceCriteria");
578
+ assessment.acceptanceCriteria = supplied.map((description, index) => ({
579
+ id: `legacy-ac-${index + 1}-${stableHash({ path: assessment.source.directory, description: description.trim() }).slice(0, 8)}`,
580
+ description: description.trim(),
581
+ }));
582
+ }
583
+ if (input.acknowledgeLegacyHistoryGap === true) {
584
+ if (!assessment.legacyHistoryDiagnostics.length ||
585
+ !assessment.missingDefinitionFields.has("legacyHistoryGap"))
586
+ throw new Error("legacy-task-reconciliation-history-gap-acknowledgement-not-required");
587
+ assessment.missingDefinitionFields.delete("legacyHistoryGap");
588
+ }
589
+ }
590
+ function explicitTaskJsonDeclaration(source) {
591
+ if (!source.dependencies.taskJsonDependsOn.present)
592
+ return null;
593
+ const references = taskJsonDependencies(source);
594
+ const raw = factValue(source.dependencies.taskJsonDependsOn);
595
+ const malformed = raw !== undefined && !Array.isArray(raw);
596
+ return {
597
+ owner: source,
598
+ ownerId: legacyId(source),
599
+ references: malformed ? [raw] : references,
600
+ mode: parseModeFacts([
601
+ source.dependencies.topLevelDependsMode,
602
+ source.dependencies.metaDependsMode,
603
+ ]),
604
+ source: source.taskJson?.file.path ?? `${source.directory}/task.json`,
605
+ };
606
+ }
607
+ function addDependencyDeclarations(declaration, tasks, byDirectory, explicitResolutions = new Map(), externalResolutions = new Map()) {
608
+ const owner = declaration.owner
609
+ ? byDirectory.get(declaration.owner.directory)
610
+ : null;
611
+ if (!owner)
612
+ return;
613
+ if (declaration.mode.state === "warn" || declaration.mode.state === "off") {
614
+ if (declaration.references.length) {
615
+ owner.dependencyDiagnostics.push(`${declaration.mode.state}-mode-preserved:${declaration.source}`);
616
+ for (const reference of declaration.references) {
617
+ const resolved = uniqueTaskForReference(reference, tasks);
618
+ if (resolved.reason) {
619
+ owner.dependencyDiagnostics.push(`${declaration.mode.state}-${resolved.reason}:${declaration.source}`);
620
+ }
621
+ }
622
+ }
623
+ return;
624
+ }
625
+ if (declaration.mode.state === "conflict") {
626
+ owner.coordinationReasons.add(`depends-mode-conflict:${declaration.source}`);
627
+ return;
628
+ }
629
+ for (const reference of declaration.references) {
630
+ const resolutionKey = `${declaration.source}\0${typeof reference === "string" ? reference.trim() : String(reference)}`;
631
+ const externalId = externalResolutions.get(resolutionKey);
632
+ if (externalId) {
633
+ if (externalId === owner.taskId)
634
+ owner.coordinationReasons.add(`dependency-self-cycle:${externalId}`);
635
+ else
636
+ owner.hardDependencies.add(externalId);
637
+ continue;
638
+ }
639
+ const resolved = explicitResolutions.has(resolutionKey)
640
+ ? { task: explicitResolutions.get(resolutionKey) ?? null, reason: null }
641
+ : uniqueTaskForReference(reference, tasks);
642
+ if (!resolved.task || resolved.reason) {
643
+ owner.coordinationReasons.add(`${resolved.reason ?? "dependency-unresolved"}:${declaration.source}`);
644
+ continue;
645
+ }
646
+ const dependencyId = legacyId(resolved.task);
647
+ if (!dependencyId) {
648
+ owner.coordinationReasons.add(`dependency-id-missing:${declaration.source}`);
649
+ continue;
650
+ }
651
+ if (dependencyId === owner.taskId) {
652
+ owner.coordinationReasons.add(`dependency-self-cycle:${dependencyId}`);
653
+ continue;
654
+ }
655
+ owner.hardDependencies.add(dependencyId);
656
+ }
657
+ }
658
+ function markHardDependencyCycles(assessments) {
659
+ const byId = new Map(assessments.map((assessment) => [assessment.taskId, assessment]));
660
+ const state = new Map();
661
+ const stack = [];
662
+ const visit = (taskId) => {
663
+ const current = byId.get(taskId);
664
+ if (!current)
665
+ return;
666
+ if (state.get(taskId) === 1) {
667
+ const start = stack.lastIndexOf(taskId);
668
+ for (const cycleId of stack.slice(Math.max(0, start))) {
669
+ byId
670
+ .get(cycleId)
671
+ ?.coordinationReasons.add(`hard-dependency-cycle:${taskId}`);
672
+ }
673
+ return;
674
+ }
675
+ if (state.get(taskId) === 2)
676
+ return;
677
+ state.set(taskId, 1);
678
+ stack.push(taskId);
679
+ for (const dependencyId of current.hardDependencies)
680
+ visit(dependencyId);
681
+ stack.pop();
682
+ state.set(taskId, 2);
683
+ };
684
+ for (const taskId of byId.keys())
685
+ visit(taskId);
686
+ }
687
+ function importedSnapshot(assessment, sourceFingerprint, activationAt) {
688
+ if (!assessment.title ||
689
+ !assessment.deliverable ||
690
+ !assessment.deliveryLevel ||
691
+ !assessment.acceptanceCriteria) {
692
+ throw new Error("legacy-task-import-definition-missing");
693
+ }
694
+ const raw = assessment.source.rawTaskData ?? {};
695
+ const createdAt = assessment.createdAt;
696
+ if (!createdAt)
697
+ throw new Error("legacy-task-import-created-at-missing");
698
+ const eventAt = activationAt ?? createdAt;
699
+ const actor = nonPlaceholder(raw.creator)
700
+ ? raw.creator
701
+ : "pactile-legacy-migration";
702
+ const definition = {
703
+ taskId: assessment.taskId,
704
+ title: assessment.title,
705
+ description: assessment.description,
706
+ deliverable: assessment.deliverable,
707
+ deliveryLevel: assessment.deliveryLevel,
708
+ acceptanceCriteria: assessment.acceptanceCriteria,
709
+ dependencies: [...assessment.hardDependencies].sort(),
710
+ createdAt,
711
+ createdBy: actor,
712
+ };
713
+ const idempotencyKey = `legacy-import:${sourceFingerprint}:${assessment.taskId}`;
714
+ const requestFingerprint = fingerprintTaskValue({
715
+ sourceFingerprint,
716
+ taskPath: assessment.source.directory,
717
+ definition,
718
+ });
719
+ const eventId = `legacy-import-${stableHash({ sourceFingerprint, taskId: assessment.taskId }).slice(0, 32)}`;
720
+ const state = deriveStateForPhase("define");
721
+ const event = {
722
+ id: eventId,
723
+ revision: 1,
724
+ at: eventAt,
725
+ actor: "pactile-legacy-migration",
726
+ idempotencyKey,
727
+ type: "task.created",
728
+ entityId: assessment.taskId,
729
+ requestFingerprint,
730
+ };
731
+ const audit = {
732
+ id: eventId,
733
+ at: eventAt,
734
+ actor: "pactile-legacy-migration",
735
+ idempotencyKey,
736
+ evidence: `Imported legacy Task source ${sourceFingerprint}; historical lifecycle evidence remains in the immutable source snapshot.`,
737
+ from: { ...state, revision: 0 },
738
+ to: { ...state, revision: 1 },
739
+ };
740
+ return parseTaskKernelSnapshotV2({
741
+ schemaVersion: 2,
742
+ identity: { taskId: assessment.taskId },
743
+ revision: 1,
744
+ ...state,
745
+ definition,
746
+ runs: [],
747
+ reviews: [],
748
+ closure: null,
749
+ audit: [audit],
750
+ events: [event],
751
+ });
752
+ }
753
+ function importRecord(assessment, sourceFingerprint, statusOverride) {
754
+ const dependencies = assessment.source.dependencies;
755
+ const modeFacts = [
756
+ dependencies.topLevelDependsMode,
757
+ dependencies.metaDependsMode,
758
+ ]
759
+ .filter((item) => item.present)
760
+ .map((item) => item.value);
761
+ const status = assessment.coordinationReasons.size
762
+ ? "needs-coordination"
763
+ : assessment.missingDefinitionFields.size
764
+ ? "needs-definition"
765
+ : "imported";
766
+ const taskJson = assessment.source.taskJson?.file;
767
+ const taskMap = assessment.source.taskMap;
768
+ return {
769
+ schemaVersion: 1,
770
+ kind: "legacy-task-import-record",
771
+ status: statusOverride ?? status,
772
+ taskPath: assessment.source.directory,
773
+ legacyTaskId: assessment.sourceTaskId,
774
+ sourceFingerprint,
775
+ sourceFiles: assessment.source.files.map((file) => ({
776
+ path: file.path,
777
+ fingerprint: file.sha256,
778
+ })),
779
+ legacySourceMetadata: {
780
+ parent: assessment.source.parent,
781
+ children: assessment.source.children,
782
+ typeMarkers: assessment.source.typeMarkers,
783
+ fileReferences: {
784
+ taskJson: taskJson
785
+ ? { path: taskJson.path, fingerprint: taskJson.sha256 }
786
+ : null,
787
+ taskMap: taskMap
788
+ ? { path: taskMap.path, fingerprint: taskMap.sha256 }
789
+ : null,
790
+ },
791
+ },
792
+ historicalStatus: assessment.source.status,
793
+ dependencyFacts: {
794
+ taskJsonDependsOn: dependencies.taskJsonDependsOn,
795
+ topLevelDependsMode: dependencies.topLevelDependsMode,
796
+ metaDependsMode: dependencies.metaDependsMode,
797
+ hardDependencies: [...assessment.hardDependencies].sort(),
798
+ diagnostics: [
799
+ ...assessment.dependencyDiagnostics,
800
+ ...assessment.coordinationReasons,
801
+ ].sort(),
802
+ rawModes: modeFacts,
803
+ },
804
+ legacyHistoryDiagnostics: [...assessment.legacyHistoryDiagnostics].sort(),
805
+ missingDefinitionFields: [...assessment.missingDefinitionFields].sort(),
806
+ coordinationReasons: [...assessment.coordinationReasons].sort(),
807
+ };
808
+ }
809
+ /**
810
+ * Convert the scan into one complete staged generation. The original Task,
811
+ * Kernel, Parent map and docs remain untouched; incomplete/cyclic/uncertain
812
+ * tasks get explicit reconciliation records and no runnable V2 Kernel.
813
+ */
814
+ export function buildLegacyTaskV2Import(plan) {
815
+ if (plan.preflight.status !== "clear-to-review" || !plan.sourceFingerprint) {
816
+ return {
817
+ sourceFingerprint: plan.sourceFingerprint,
818
+ targets: [],
819
+ imported: 0,
820
+ needsDefinition: 0,
821
+ needsCoordination: 0,
822
+ archived: plan.tasks.filter((task) => task.archivedByPath).length,
823
+ archivedTasks: [],
824
+ diagnostics: ["legacy-task-preflight-blocked"],
825
+ };
826
+ }
827
+ const active = plan.tasks.filter((task) => !task.archivedByPath);
828
+ const assessments = active.map(assessmentFor);
829
+ const byDirectory = new Map(assessments.map((item) => [item.source.directory, item]));
830
+ const declarations = active.flatMap((task) => {
831
+ const jsonDeclaration = explicitTaskJsonDeclaration(task);
832
+ return jsonDeclaration ? [jsonDeclaration] : [];
833
+ });
834
+ declarations.push(...taskMapDeclarations(plan.tasks, byDirectory));
835
+ for (const declaration of declarations)
836
+ addDependencyDeclarations(declaration, plan.tasks, byDirectory);
837
+ markHardDependencyCycles(assessments);
838
+ const archivedAssessments = plan.tasks
839
+ .filter((task) => task.archivedByPath)
840
+ .map(assessmentFor);
841
+ const archivedTasks = archivedAssessments.map((assessment) => ({
842
+ taskPath: assessment.source.directory,
843
+ legacyTaskId: assessment.sourceTaskId,
844
+ missingDefinitionFields: [...assessment.missingDefinitionFields].sort(),
845
+ sourceFiles: assessment.source.files.map((file) => ({
846
+ path: file.path,
847
+ fingerprint: file.sha256,
848
+ })),
849
+ }));
850
+ const targets = [];
851
+ for (const assessment of archivedAssessments) {
852
+ targets.push({
853
+ path: `${assessment.source.directory}/legacy-import.json`,
854
+ bytes: jsonBytes(importRecord(assessment, plan.sourceFingerprint, "archived-historical-only")),
855
+ });
856
+ }
857
+ const diagnostics = [];
858
+ let imported = 0;
859
+ let needsDefinition = 0;
860
+ let needsCoordination = 0;
861
+ for (const assessment of assessments) {
862
+ const relative = assessment.source.directory;
863
+ const root = relative;
864
+ const migrationStatus = assessment.coordinationReasons.size
865
+ ? "needs-coordination"
866
+ : assessment.missingDefinitionFields.size
867
+ ? "needs-definition"
868
+ : "imported";
869
+ const metadata = importRecord(assessment, plan.sourceFingerprint);
870
+ targets.push({
871
+ path: `${root}/legacy-import.json`,
872
+ bytes: jsonBytes(metadata),
873
+ });
874
+ if (migrationStatus === "imported") {
875
+ try {
876
+ const kernel = importedSnapshot(assessment, plan.sourceFingerprint);
877
+ targets.push({
878
+ path: `${root}/kernel.json`,
879
+ bytes: jsonBytes(kernel),
880
+ });
881
+ imported++;
882
+ }
883
+ catch (error) {
884
+ const reason = `invalid-v2-definition:${relative}:${error instanceof Error ? error.message : String(error)}`;
885
+ assessment.missingDefinitionFields.add("definition-validation");
886
+ diagnostics.push(reason);
887
+ const updatedMetadata = importRecord(assessment, plan.sourceFingerprint);
888
+ targets[targets.length - 1] = {
889
+ path: `${root}/legacy-import.json`,
890
+ bytes: jsonBytes(updatedMetadata),
891
+ };
892
+ needsDefinition++;
893
+ }
894
+ }
895
+ else if (migrationStatus === "needs-definition") {
896
+ needsDefinition++;
897
+ }
898
+ else {
899
+ needsCoordination++;
900
+ diagnostics.push(...assessment.coordinationReasons);
901
+ }
902
+ }
903
+ targets.sort((left, right) => left.path.localeCompare(right.path));
904
+ return {
905
+ sourceFingerprint: plan.sourceFingerprint,
906
+ targets,
907
+ imported,
908
+ needsDefinition,
909
+ needsCoordination,
910
+ archived: plan.tasks.filter((task) => task.archivedByPath).length,
911
+ archivedTasks,
912
+ diagnostics: [...new Set(diagnostics)].sort(),
913
+ };
914
+ }
915
+ /**
916
+ * Build one explicit, non-historical V2 activation for a previously held Task.
917
+ * This builder never changes the source scan and refuses to emit a kernel while
918
+ * any required definition field or blocking dependency remains unresolved.
919
+ */
920
+ export function buildLegacyTaskV2Reconciliation(plan, input, options = {}) {
921
+ if (plan.preflight.status !== "clear-to-review" ||
922
+ !plan.sourceFingerprint ||
923
+ !input.idempotencyKey.trim() ||
924
+ Number.isNaN(Date.parse(input.activationAt)))
925
+ throw new Error("legacy-task-reconciliation-preflight-blocked");
926
+ const source = plan.tasks.find((task) => task.directory === input.taskPath);
927
+ if (!source)
928
+ throw new Error("legacy-task-reconciliation-task-not-found");
929
+ const active = plan.tasks.filter((task) => !task.archivedByPath);
930
+ const targetTaskPath = input.targetTaskPath
931
+ ? canonicalActiveTaskPath(input.targetTaskPath)
932
+ : source.directory;
933
+ const isArchivedSource = source.archivedByPath;
934
+ const isInterruptedSource = Boolean(source.kernelJson?.parseError);
935
+ const requiresSeparateTarget = isArchivedSource ||
936
+ isInterruptedSource && input.acknowledgeLegacyHistoryGap === true;
937
+ if (requiresSeparateTarget && !input.targetTaskPath ||
938
+ !requiresSeparateTarget && input.targetTaskPath && targetTaskPath !== source.directory ||
939
+ isInterruptedSource && input.acknowledgeLegacyHistoryGap !== true && input.targetTaskPath !== undefined ||
940
+ targetTaskPath.split("/").some((part) => part.toLowerCase() === "archive") ||
941
+ plan.tasks.some((task) => task.directory === targetTaskPath && targetTaskPath !== source.directory))
942
+ throw new Error("legacy-task-reconciliation-target-path-invalid");
943
+ const assessments = [
944
+ ...active.map((task) => assessmentFor(task)),
945
+ ...(isArchivedSource ? [assessmentFor(source)] : []),
946
+ ];
947
+ const byDirectory = new Map(assessments.map((item) => [item.source.directory, item]));
948
+ const finalAssessment = byDirectory.get(source.directory);
949
+ if (!finalAssessment)
950
+ throw new Error("legacy-task-reconciliation-task-id-invalid");
951
+ const legacyTaskIdIsInvalid = finalAssessment.missingDefinitionFields.has("taskId");
952
+ if (input.targetTaskId !== undefined) {
953
+ if (!legacyTaskIdIsInvalid || !TASK_ID.test(input.targetTaskId))
954
+ throw new Error("legacy-task-reconciliation-target-task-id-invalid");
955
+ finalAssessment.taskId = input.targetTaskId;
956
+ finalAssessment.missingDefinitionFields.delete("taskId");
957
+ }
958
+ else if (legacyTaskIdIsInvalid) {
959
+ throw new Error("legacy-task-reconciliation-task-id-invalid");
960
+ }
961
+ applyReconciliationDefinition(finalAssessment, input);
962
+ const dependencySources = isArchivedSource ? [...active, source] : active;
963
+ const declarations = dependencySources.flatMap((task) => {
964
+ const jsonDeclaration = explicitTaskJsonDeclaration(task);
965
+ return jsonDeclaration ? [jsonDeclaration] : [];
966
+ });
967
+ declarations.push(...taskMapDeclarations(plan.tasks, byDirectory));
968
+ const selectedDeclaration = (declaration) => declaration.owner?.directory === source.directory;
969
+ const explicitResolutions = new Map();
970
+ const explicitExternalResolutions = new Map();
971
+ const seenReferences = new Set();
972
+ for (const item of input.dependencyResolutions ?? []) {
973
+ if (typeof item.reference !== "string" || !item.reference.trim() ||
974
+ typeof item.taskId !== "string" || !TASK_ID.test(item.taskId))
975
+ throw new Error("legacy-task-reconciliation-dependency-resolution-invalid");
976
+ const matching = declarations.filter((declaration) => {
977
+ if (!selectedDeclaration(declaration) || declaration.mode.state !== "block")
978
+ return false;
979
+ return declaration.references.some((reference) => typeof reference === "string" && reference.trim() === item.reference.trim() &&
980
+ uniqueTaskForReference(reference, plan.tasks).reason !== null);
981
+ });
982
+ if (matching.length !== 1)
983
+ throw new Error(`legacy-task-reconciliation-dependency-resolution-not-unique:${item.reference}`);
984
+ const declaration = matching[0];
985
+ if (!declaration)
986
+ throw new Error("legacy-task-reconciliation-dependency-resolution-invalid");
987
+ const resolutionKey = `${declaration.source}\0${item.reference.trim()}`;
988
+ if (seenReferences.has(resolutionKey))
989
+ throw new Error(`legacy-task-reconciliation-dependency-resolution-duplicate:${item.reference}`);
990
+ seenReferences.add(resolutionKey);
991
+ const targets = active.filter((task) => legacyId(task) === item.taskId);
992
+ if (targets.length > 1)
993
+ throw new Error(`legacy-task-reconciliation-dependency-target-not-unique:${item.taskId}`);
994
+ if (targets.length === 1) {
995
+ explicitResolutions.set(resolutionKey, targets[0]);
996
+ }
997
+ else if (options.externalDependencyIds?.has(item.taskId)) {
998
+ explicitExternalResolutions.set(resolutionKey, item.taskId);
999
+ }
1000
+ else {
1001
+ throw new Error(`legacy-task-reconciliation-dependency-target-not-unique:${item.taskId}`);
1002
+ }
1003
+ }
1004
+ for (const declaration of declarations)
1005
+ addDependencyDeclarations(declaration, plan.tasks, byDirectory, explicitResolutions, explicitExternalResolutions);
1006
+ markHardDependencyCycles(assessments);
1007
+ const reconciledAssessment = byDirectory.get(source.directory);
1008
+ if (!reconciledAssessment)
1009
+ throw new Error("legacy-task-reconciliation-assessment-missing");
1010
+ if (reconciledAssessment.coordinationReasons.size)
1011
+ throw new Error(`legacy-task-reconciliation-needs-coordination:${[...reconciledAssessment.coordinationReasons].sort().join(",")}`);
1012
+ if (reconciledAssessment.missingDefinitionFields.size)
1013
+ throw new Error(`legacy-task-reconciliation-needs-definition:${[...reconciledAssessment.missingDefinitionFields].sort().join(",")}`);
1014
+ const resolvedDependencies = [...(input.dependencyResolutions ?? [])].map((item) => ({
1015
+ reference: item.reference.trim(),
1016
+ taskId: item.taskId,
1017
+ }));
1018
+ if (isInterruptedSource && input.acknowledgeLegacyHistoryGap !== true)
1019
+ throw new Error("legacy-task-reconciliation-history-gap-acknowledgement-required");
1020
+ const record = importRecord(reconciledAssessment, plan.sourceFingerprint);
1021
+ record.taskPath = targetTaskPath;
1022
+ record.reconciliation = {
1023
+ schemaVersion: 1,
1024
+ kind: "explicit-legacy-task-reconciliation",
1025
+ activationAt: input.activationAt,
1026
+ idempotencyKey: input.idempotencyKey,
1027
+ requestFingerprint: input.requestFingerprint ?? null,
1028
+ suppliedDefinition: input.definition ?? {},
1029
+ ...(input.targetTaskId ? { mappedTaskId: input.targetTaskId } : {}),
1030
+ ...(input.acknowledgeLegacyHistoryGap === true
1031
+ ? { acknowledgedLegacyHistoryGap: true }
1032
+ : {}),
1033
+ resolvedDependencies,
1034
+ historyPolicy: "legacy-lifecycle-remains-source-only",
1035
+ };
1036
+ const kernel = importedSnapshot(reconciledAssessment, plan.sourceFingerprint, input.activationAt);
1037
+ const root = targetTaskPath;
1038
+ return {
1039
+ targets: [
1040
+ { path: `${root}/legacy-import.json`, bytes: jsonBytes(record) },
1041
+ { path: `${root}/kernel.json`, bytes: jsonBytes(kernel) },
1042
+ ].sort((left, right) => left.path.localeCompare(right.path)),
1043
+ diagnostics: [],
1044
+ };
1045
+ }
1046
+ //# sourceMappingURL=legacy-task-v2-import.js.map