@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,618 @@
1
+ import { createHash } from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ export const PROJECT_FILE_BASELINE_SOURCE = "pactile-project-file-baseline-v1";
5
+ export const PROJECT_FILE_SNAPSHOT_POLICY = "project-files-bounded-v1";
6
+ export const PROJECT_FILE_CANDIDATE_OBSERVER_VERSION = "project-files-v1";
7
+ export const PROJECT_FILE_CANDIDATE_ENTRY_REF = "pactile:verification:project-files-v1";
8
+ export const PROJECT_FILE_SNAPSHOT_MAX_FILES = 4_096;
9
+ export const PROJECT_FILE_SNAPSHOT_MAX_FILE_BYTES = 2 * 1024 * 1024;
10
+ export const PROJECT_FILE_SNAPSHOT_MAX_TOTAL_BYTES = 32 * 1024 * 1024;
11
+ export const PROJECT_FILE_SNAPSHOT_MAX_DIRECTORY_ENTRIES = 4_096;
12
+ export const PROJECT_FILE_SNAPSHOT_MAX_DIRECTORIES = 4_096;
13
+ export const PROJECT_FILE_SNAPSHOT_MAX_ENTRIES = 8_192;
14
+ const MAX_AFFECTED_PATHS = 1_000;
15
+ const MAX_PATH_LENGTH = 4_096;
16
+ export const PROJECT_FILE_SNAPSHOT_EXCLUDED_DIRECTORIES = [
17
+ ".git",
18
+ ".pactile",
19
+ ".tmp",
20
+ ".tools",
21
+ ".codegraph",
22
+ ".cache",
23
+ ".pnpm-store",
24
+ ".pytest_cache",
25
+ ".mypy_cache",
26
+ ".ruff_cache",
27
+ ".tox",
28
+ ".nox",
29
+ ".venv",
30
+ ".next",
31
+ ".nuxt",
32
+ ".turbo",
33
+ ".svelte-kit",
34
+ ".ssh",
35
+ ".aws",
36
+ ".azure",
37
+ ".kube",
38
+ ".gnupg",
39
+ "node_modules",
40
+ "vendor",
41
+ "venv",
42
+ "dist",
43
+ "build",
44
+ "out",
45
+ "coverage",
46
+ "__pycache__",
47
+ "target",
48
+ ];
49
+ export const PROJECT_FILE_SNAPSHOT_EXCLUDED_FILE_RULES = [
50
+ ".env",
51
+ ".env.*",
52
+ "*.pem",
53
+ "*.key",
54
+ "*.p12",
55
+ "*.pfx",
56
+ "id_rsa*",
57
+ "id_ed25519*",
58
+ ];
59
+ const EXCLUDED_DIRECTORY_NAMES = new Set(PROJECT_FILE_SNAPSHOT_EXCLUDED_DIRECTORIES.map((name) => name.toLowerCase()));
60
+ const SECRET_FILE_SUFFIXES = [".pem", ".key", ".p12", ".pfx"];
61
+ function compareProjectPaths(left, right) {
62
+ const normalize = (value) => process.platform === "win32" ? value.toLowerCase() : value;
63
+ const a = normalize(left);
64
+ const b = normalize(right);
65
+ return a < b ? -1 : a > b ? 1 : 0;
66
+ }
67
+ export class ProjectFileObservationError extends Error {
68
+ code;
69
+ constructor(code, message) {
70
+ super(message);
71
+ this.name = "ProjectFileObservationError";
72
+ this.code = code;
73
+ }
74
+ }
75
+ function sha256(value) {
76
+ return createHash("sha256").update(value).digest("hex");
77
+ }
78
+ function stableFingerprint(value) {
79
+ return sha256(JSON.stringify(value));
80
+ }
81
+ function samePath(left, right) {
82
+ const normalize = (value) => process.platform === "win32" ? value.toLowerCase() : value;
83
+ return normalize(path.resolve(left)) === normalize(path.resolve(right));
84
+ }
85
+ function isWithinRoot(root, candidate) {
86
+ const relative = path.relative(root, candidate);
87
+ return (relative === "" ||
88
+ (relative !== ".." &&
89
+ !relative.startsWith(`..${path.sep}`) &&
90
+ !path.isAbsolute(relative)));
91
+ }
92
+ function statFingerprint(stat) {
93
+ return [
94
+ stat.dev,
95
+ stat.ino,
96
+ stat.mode,
97
+ stat.size,
98
+ stat.mtimeMs,
99
+ stat.ctimeMs,
100
+ ].join(":");
101
+ }
102
+ function readDirectoryNames(absoluteDirectory, relativeDirectory) {
103
+ let directory;
104
+ try {
105
+ directory = fs.opendirSync(absoluteDirectory);
106
+ }
107
+ catch {
108
+ throw new ProjectFileObservationError("candidate-mismatch", `Project directory ${relativeDirectory || "."} cannot be scanned.`);
109
+ }
110
+ const names = [];
111
+ let failure;
112
+ try {
113
+ for (;;) {
114
+ const entry = directory.readSync();
115
+ if (entry === null)
116
+ break;
117
+ names.push(entry.name);
118
+ if (names.length > PROJECT_FILE_SNAPSHOT_MAX_DIRECTORY_ENTRIES) {
119
+ throw new ProjectFileObservationError("observation-limit-exceeded", `Project directory ${relativeDirectory || "."} exceeds the ${PROJECT_FILE_SNAPSHOT_MAX_DIRECTORY_ENTRIES}-entry limit.`);
120
+ }
121
+ }
122
+ }
123
+ catch (error) {
124
+ failure = error;
125
+ }
126
+ try {
127
+ directory.closeSync();
128
+ }
129
+ catch (error) {
130
+ failure ??= error;
131
+ }
132
+ if (failure instanceof ProjectFileObservationError)
133
+ throw failure;
134
+ if (failure !== undefined) {
135
+ throw new ProjectFileObservationError("candidate-mismatch", `Project directory ${relativeDirectory || "."} cannot be scanned.`);
136
+ }
137
+ return names.sort();
138
+ }
139
+ function sameStat(left, right) {
140
+ return statFingerprint(left) === statFingerprint(right);
141
+ }
142
+ function safeRelativePath(value, label) {
143
+ const normalized = value.replace(/\\/g, "/");
144
+ const segments = normalized.split("/");
145
+ if (normalized.length === 0 ||
146
+ normalized.length > MAX_PATH_LENGTH ||
147
+ normalized.startsWith("/") ||
148
+ /^[A-Za-z]:/.test(normalized) ||
149
+ segments.some((segment) => segment.length === 0 ||
150
+ segment === "." ||
151
+ segment === ".." ||
152
+ [...segment].some((character) => {
153
+ const code = character.charCodeAt(0);
154
+ return code <= 0x1f || code === 0x7f;
155
+ }))) {
156
+ throw new ProjectFileObservationError("invalid-write-set", `${label} must be a safe project-relative path.`);
157
+ }
158
+ return segments.join("/");
159
+ }
160
+ function excludedFileName(name) {
161
+ const lower = name.toLowerCase();
162
+ return (lower === ".env" ||
163
+ lower.startsWith(".env.") ||
164
+ SECRET_FILE_SUFFIXES.some((suffix) => lower.endsWith(suffix)) ||
165
+ lower.startsWith("id_rsa") ||
166
+ lower.startsWith("id_ed25519"));
167
+ }
168
+ export function isExcludedProjectPath(repositoryPath) {
169
+ let normalized;
170
+ try {
171
+ normalized = safeRelativePath(repositoryPath, "project path");
172
+ }
173
+ catch {
174
+ return true;
175
+ }
176
+ const segments = normalized.split("/");
177
+ return (segments.some((segment) => EXCLUDED_DIRECTORY_NAMES.has(segment.toLowerCase())) || excludedFileName(segments.at(-1) ?? ""));
178
+ }
179
+ function normalizeWriteSet(paths) {
180
+ const exactPaths = [];
181
+ const directoryPrefixes = [];
182
+ if (paths.length > MAX_AFFECTED_PATHS) {
183
+ throw new ProjectFileObservationError("observation-limit-exceeded", `Run write set exceeds the ${MAX_AFFECTED_PATHS}-path limit.`);
184
+ }
185
+ for (const entry of paths) {
186
+ if (typeof entry !== "string") {
187
+ throw new ProjectFileObservationError("invalid-write-set", "Run write-set entries must be strings.");
188
+ }
189
+ const isDirectory = /[\\/]$/.test(entry);
190
+ const repositoryPath = safeRelativePath(isDirectory ? entry.slice(0, -1) : entry, "Run write-set path");
191
+ if (isExcludedProjectPath(repositoryPath)) {
192
+ throw new ProjectFileObservationError("invalid-write-set", `Run write set includes excluded project path ${repositoryPath}.`);
193
+ }
194
+ (isDirectory ? directoryPrefixes : exactPaths).push(repositoryPath);
195
+ }
196
+ if (new Set([...exactPaths, ...directoryPrefixes].map((value) => process.platform === "win32" ? value.toLowerCase() : value)).size !== exactPaths.length + directoryPrefixes.length) {
197
+ throw new ProjectFileObservationError("invalid-write-set", "Run write-set paths must be unique after platform path normalization.");
198
+ }
199
+ const normalize = (values) => [...values].sort(compareProjectPaths);
200
+ return {
201
+ exactPaths: normalize(exactPaths),
202
+ directoryPrefixes: normalize(directoryPrefixes),
203
+ };
204
+ }
205
+ function pathIsAllowed(repositoryPath, writeSet) {
206
+ const normalize = (value) => process.platform === "win32" ? value.toLowerCase() : value;
207
+ const candidate = normalize(repositoryPath);
208
+ return (writeSet.exactPaths.some((entry) => normalize(entry) === candidate) ||
209
+ writeSet.directoryPrefixes.some((entry) => {
210
+ const prefix = normalize(entry);
211
+ return candidate === prefix || candidate.startsWith(`${prefix}/`);
212
+ }));
213
+ }
214
+ function writeSetTouchesExcludedPath(repositoryPath, writeSet) {
215
+ const normalize = (value) => process.platform === "win32" ? value.toLowerCase() : value;
216
+ const excluded = normalize(repositoryPath);
217
+ return (pathIsAllowed(repositoryPath, writeSet) ||
218
+ writeSet.exactPaths.some((entry) => normalize(entry).startsWith(`${excluded}/`)) ||
219
+ writeSet.directoryPrefixes.some((entry) => {
220
+ const prefix = normalize(entry);
221
+ return (prefix === excluded ||
222
+ prefix.startsWith(`${excluded}/`) ||
223
+ excluded.startsWith(`${prefix}/`));
224
+ }));
225
+ }
226
+ function assertNoExcludedWriteSetOverlap(excludedPaths, writeSet) {
227
+ const overlap = excludedPaths.find((repositoryPath) => writeSetTouchesExcludedPath(repositoryPath, writeSet));
228
+ if (overlap) {
229
+ throw new ProjectFileObservationError("invalid-write-set", `Run write set overlaps excluded project path ${overlap}.`);
230
+ }
231
+ }
232
+ function ensureNoGitMetadata(root) {
233
+ if (!hasGitMetadataAtProjectRoot(root))
234
+ return;
235
+ throw new ProjectFileObservationError("candidate-mismatch", "Project gained Git metadata after its non-Git Run baseline was captured.");
236
+ }
237
+ export function hasGitMetadataAtProjectRoot(rootPath) {
238
+ const gitPath = path.join(rootPath, ".git");
239
+ try {
240
+ fs.lstatSync(gitPath);
241
+ return true;
242
+ }
243
+ catch (error) {
244
+ if (error.code === "ENOENT")
245
+ return false;
246
+ throw new ProjectFileObservationError("invalid-root", "Cannot determine whether the project root contains Git metadata.");
247
+ }
248
+ }
249
+ function resolveProjectRoot(rootPath) {
250
+ let rootStat;
251
+ try {
252
+ rootStat = fs.lstatSync(rootPath);
253
+ }
254
+ catch {
255
+ throw new ProjectFileObservationError("invalid-root", "Project root cannot be inspected.");
256
+ }
257
+ if (!rootStat.isDirectory() || rootStat.isSymbolicLink()) {
258
+ throw new ProjectFileObservationError("invalid-root", "Non-Git project root must be a real directory, not a symlink.");
259
+ }
260
+ let root;
261
+ try {
262
+ root = fs.realpathSync(rootPath);
263
+ }
264
+ catch {
265
+ throw new ProjectFileObservationError("invalid-root", "Project root cannot be resolved.");
266
+ }
267
+ if (!samePath(rootPath, root)) {
268
+ throw new ProjectFileObservationError("invalid-root", "Project root must not resolve through a symlink.");
269
+ }
270
+ ensureNoGitMetadata(root);
271
+ return {
272
+ root,
273
+ identity: sha256(process.platform === "win32" ? root.toLowerCase() : root),
274
+ };
275
+ }
276
+ function assertNoSymlinkSegments(root, repositoryPath) {
277
+ let current = root;
278
+ const segments = repositoryPath.split("/");
279
+ for (const [index, segment] of segments.entries()) {
280
+ current = path.join(current, segment);
281
+ let stat;
282
+ try {
283
+ stat = fs.lstatSync(current);
284
+ }
285
+ catch {
286
+ throw new ProjectFileObservationError("candidate-mismatch", `Project path ${repositoryPath} changed or disappeared during observation.`);
287
+ }
288
+ if (stat.isSymbolicLink()) {
289
+ throw new ProjectFileObservationError("unsafe-path", `Project path ${repositoryPath} crosses a symbolic link.`);
290
+ }
291
+ if (index < segments.length - 1 && !stat.isDirectory()) {
292
+ throw new ProjectFileObservationError("unsafe-path", `Project path ${repositoryPath} crosses a non-directory.`);
293
+ }
294
+ }
295
+ let realPath;
296
+ try {
297
+ realPath = fs.realpathSync(current);
298
+ }
299
+ catch {
300
+ throw new ProjectFileObservationError("candidate-mismatch", `Project path ${repositoryPath} changed during observation.`);
301
+ }
302
+ if (!isWithinRoot(root, realPath)) {
303
+ throw new ProjectFileObservationError("unsafe-path", `Project path ${repositoryPath} escapes the project root.`);
304
+ }
305
+ }
306
+ function readRegularFile(root, repositoryPath, expectedStat, totalBytes) {
307
+ const absolutePath = path.join(root, ...repositoryPath.split("/"));
308
+ assertNoSymlinkSegments(root, repositoryPath);
309
+ const before = fs.lstatSync(absolutePath);
310
+ if (!before.isFile() || before.isSymbolicLink()) {
311
+ throw new ProjectFileObservationError("unsafe-path", `Project path ${repositoryPath} is not a regular file.`);
312
+ }
313
+ if (!sameStat(expectedStat, before)) {
314
+ throw new ProjectFileObservationError("candidate-mismatch", `Project file ${repositoryPath} changed during traversal.`);
315
+ }
316
+ if (before.size > PROJECT_FILE_SNAPSHOT_MAX_FILE_BYTES) {
317
+ throw new ProjectFileObservationError("observation-limit-exceeded", `Project file ${repositoryPath} exceeds the ${PROJECT_FILE_SNAPSHOT_MAX_FILE_BYTES}-byte limit.`);
318
+ }
319
+ if (totalBytes.value + before.size > PROJECT_FILE_SNAPSHOT_MAX_TOTAL_BYTES) {
320
+ throw new ProjectFileObservationError("observation-limit-exceeded", `Project snapshot exceeds the ${PROJECT_FILE_SNAPSHOT_MAX_TOTAL_BYTES}-byte total limit.`);
321
+ }
322
+ const flags = fs.constants.O_RDONLY | (fs.constants.O_NOFOLLOW ?? 0);
323
+ let fd;
324
+ try {
325
+ fd = fs.openSync(absolutePath, flags);
326
+ }
327
+ catch {
328
+ throw new ProjectFileObservationError("candidate-mismatch", `Project file ${repositoryPath} cannot be opened safely.`);
329
+ }
330
+ let bytes;
331
+ try {
332
+ const descriptorBefore = fs.fstatSync(fd);
333
+ if (!descriptorBefore.isFile() ||
334
+ descriptorBefore.isSymbolicLink() ||
335
+ !sameStat(before, descriptorBefore)) {
336
+ throw new ProjectFileObservationError("candidate-mismatch", `Project file ${repositoryPath} changed before it could be read.`);
337
+ }
338
+ const first = fs.readFileSync(fd);
339
+ const descriptorAfterFirst = fs.fstatSync(fd);
340
+ const second = fs.readFileSync(absolutePath);
341
+ const descriptorAfterSecond = fs.fstatSync(fd);
342
+ if (!sameStat(descriptorBefore, descriptorAfterFirst) ||
343
+ !sameStat(descriptorBefore, descriptorAfterSecond) ||
344
+ !first.equals(second)) {
345
+ throw new ProjectFileObservationError("candidate-mismatch", `Project file ${repositoryPath} changed while it was read.`);
346
+ }
347
+ bytes = first;
348
+ }
349
+ finally {
350
+ fs.closeSync(fd);
351
+ }
352
+ assertNoSymlinkSegments(root, repositoryPath);
353
+ const after = fs.lstatSync(absolutePath);
354
+ if (!sameStat(before, after) || bytes.byteLength !== after.size) {
355
+ throw new ProjectFileObservationError("candidate-mismatch", `Project file ${repositoryPath} changed after it was read.`);
356
+ }
357
+ totalBytes.value += bytes.byteLength;
358
+ return {
359
+ path: repositoryPath,
360
+ sizeBytes: bytes.byteLength,
361
+ sha256: sha256(bytes),
362
+ };
363
+ }
364
+ function scanProjectOnce(rootInput) {
365
+ const { root, identity } = resolveProjectRoot(rootInput);
366
+ const files = [];
367
+ const directoryStates = [];
368
+ const excludedPaths = [];
369
+ const seenPaths = new Set();
370
+ const totalBytes = { value: 0 };
371
+ let totalEntries = 0;
372
+ let scannedDirectories = 0;
373
+ const visit = (absoluteDirectory, relativeDirectory) => {
374
+ if (relativeDirectory) {
375
+ scannedDirectories += 1;
376
+ if (scannedDirectories > PROJECT_FILE_SNAPSHOT_MAX_DIRECTORIES) {
377
+ throw new ProjectFileObservationError("observation-limit-exceeded", `Project snapshot exceeds the ${PROJECT_FILE_SNAPSHOT_MAX_DIRECTORIES}-directory limit.`);
378
+ }
379
+ }
380
+ const before = fs.lstatSync(absoluteDirectory);
381
+ if (!before.isDirectory() || before.isSymbolicLink()) {
382
+ throw new ProjectFileObservationError("unsafe-path", `Project directory ${relativeDirectory || "."} is not a real directory.`);
383
+ }
384
+ const realDirectory = fs.realpathSync(absoluteDirectory);
385
+ if (!isWithinRoot(root, realDirectory)) {
386
+ throw new ProjectFileObservationError("unsafe-path", `Project directory ${relativeDirectory || "."} escapes the project root.`);
387
+ }
388
+ const names = readDirectoryNames(absoluteDirectory, relativeDirectory);
389
+ const stateIndex = directoryStates.length;
390
+ directoryStates.push(`${relativeDirectory}\0${statFingerprint(before)}\0${names.join("\0")}`);
391
+ for (const name of names) {
392
+ totalEntries += 1;
393
+ if (totalEntries > PROJECT_FILE_SNAPSHOT_MAX_ENTRIES) {
394
+ throw new ProjectFileObservationError("observation-limit-exceeded", `Project snapshot exceeds the ${PROJECT_FILE_SNAPSHOT_MAX_ENTRIES}-entry limit.`);
395
+ }
396
+ if (name.length === 0 ||
397
+ name === "." ||
398
+ name === ".." ||
399
+ name.includes("/") ||
400
+ name.includes("\\") ||
401
+ [...name].some((character) => {
402
+ const code = character.charCodeAt(0);
403
+ return code <= 0x1f || code === 0x7f;
404
+ })) {
405
+ throw new ProjectFileObservationError("unsafe-path", "Project contains a path name that cannot be represented safely.");
406
+ }
407
+ const repositoryPath = safeRelativePath(relativeDirectory ? `${relativeDirectory}/${name}` : name, "scanned project path");
408
+ const pathKey = process.platform === "win32"
409
+ ? repositoryPath.toLowerCase()
410
+ : repositoryPath;
411
+ if (seenPaths.has(pathKey)) {
412
+ throw new ProjectFileObservationError("unsafe-path", `Project path ${repositoryPath} collides after platform path normalization.`);
413
+ }
414
+ seenPaths.add(pathKey);
415
+ const absolutePath = path.join(absoluteDirectory, name);
416
+ let entryStat;
417
+ try {
418
+ entryStat = fs.lstatSync(absolutePath);
419
+ }
420
+ catch {
421
+ throw new ProjectFileObservationError("candidate-mismatch", `Project path ${repositoryPath} changed during scanning.`);
422
+ }
423
+ if (entryStat.isSymbolicLink()) {
424
+ throw new ProjectFileObservationError("unsafe-path", `Project path ${repositoryPath} is a symbolic link.`);
425
+ }
426
+ if (entryStat.isDirectory()) {
427
+ if (EXCLUDED_DIRECTORY_NAMES.has(name.toLowerCase())) {
428
+ excludedPaths.push(repositoryPath);
429
+ continue;
430
+ }
431
+ visit(absolutePath, repositoryPath);
432
+ continue;
433
+ }
434
+ if (!entryStat.isFile()) {
435
+ throw new ProjectFileObservationError("unsafe-path", `Project path ${repositoryPath} is not a regular file or directory.`);
436
+ }
437
+ if (excludedFileName(name)) {
438
+ excludedPaths.push(repositoryPath);
439
+ continue;
440
+ }
441
+ if (files.length >= PROJECT_FILE_SNAPSHOT_MAX_FILES) {
442
+ throw new ProjectFileObservationError("observation-limit-exceeded", `Project snapshot exceeds the ${PROJECT_FILE_SNAPSHOT_MAX_FILES}-file limit.`);
443
+ }
444
+ files.push(readRegularFile(root, repositoryPath, entryStat, totalBytes));
445
+ }
446
+ const after = fs.lstatSync(absoluteDirectory);
447
+ const namesAfter = readDirectoryNames(absoluteDirectory, relativeDirectory);
448
+ if (!sameStat(before, after) || names.join("\0") !== namesAfter.join("\0")) {
449
+ throw new ProjectFileObservationError("candidate-mismatch", `Project directory ${relativeDirectory || "."} changed during scanning.`);
450
+ }
451
+ directoryStates[stateIndex] =
452
+ `${relativeDirectory}\0${statFingerprint(after)}\0${namesAfter.join("\0")}`;
453
+ };
454
+ visit(root, "");
455
+ files.sort((a, b) => compareProjectPaths(a.path, b.path));
456
+ excludedPaths.sort(compareProjectPaths);
457
+ return { root, rootIdentitySha256: identity, files, directoryStates, excludedPaths };
458
+ }
459
+ function stableProjectScan(root) {
460
+ const first = scanProjectOnce(root);
461
+ const second = scanProjectOnce(root);
462
+ const content = (scan) => ({
463
+ rootIdentitySha256: scan.rootIdentitySha256,
464
+ files: scan.files,
465
+ directoryStates: scan.directoryStates,
466
+ excludedPaths: scan.excludedPaths,
467
+ });
468
+ if (stableFingerprint(content(first)) !== stableFingerprint(content(second))) {
469
+ throw new ProjectFileObservationError("candidate-mismatch", "Project files changed between bounded snapshot passes; retry after the tree is stable.");
470
+ }
471
+ return second;
472
+ }
473
+ function baselineBody(input) {
474
+ return {
475
+ schemaVersion: 1,
476
+ source: PROJECT_FILE_BASELINE_SOURCE,
477
+ policy: PROJECT_FILE_SNAPSHOT_POLICY,
478
+ rootIdentitySha256: input.rootIdentitySha256,
479
+ files: input.files.map((file) => ({ ...file })),
480
+ };
481
+ }
482
+ export function verifyProjectFileBaseline(baseline) {
483
+ try {
484
+ if (baseline.schemaVersion !== 1 ||
485
+ baseline.source !== PROJECT_FILE_BASELINE_SOURCE ||
486
+ baseline.policy !== PROJECT_FILE_SNAPSHOT_POLICY ||
487
+ !/^[a-f0-9]{64}$/.test(baseline.rootIdentitySha256) ||
488
+ !Array.isArray(baseline.files) ||
489
+ baseline.files.length > PROJECT_FILE_SNAPSHOT_MAX_FILES) {
490
+ return false;
491
+ }
492
+ const seen = new Set();
493
+ let totalBytes = 0;
494
+ let previous = "";
495
+ for (const entry of baseline.files) {
496
+ const repositoryPath = safeRelativePath(entry.path, "baseline path");
497
+ const key = process.platform === "win32"
498
+ ? repositoryPath.toLowerCase()
499
+ : repositoryPath;
500
+ if (isExcludedProjectPath(repositoryPath) ||
501
+ seen.has(key) ||
502
+ (previous && compareProjectPaths(previous, repositoryPath) > 0) ||
503
+ !Number.isSafeInteger(entry.sizeBytes) ||
504
+ entry.sizeBytes < 0 ||
505
+ entry.sizeBytes > PROJECT_FILE_SNAPSHOT_MAX_FILE_BYTES ||
506
+ !/^[a-f0-9]{64}$/.test(entry.sha256)) {
507
+ return false;
508
+ }
509
+ seen.add(key);
510
+ previous = repositoryPath;
511
+ totalBytes += entry.sizeBytes;
512
+ if (totalBytes > PROJECT_FILE_SNAPSHOT_MAX_TOTAL_BYTES)
513
+ return false;
514
+ }
515
+ return stableFingerprint(baselineBody(baseline)) === baseline.fingerprint;
516
+ }
517
+ catch {
518
+ return false;
519
+ }
520
+ }
521
+ /** Record a bounded, secret-safe regular-file baseline for a non-Git Run. */
522
+ export function captureProjectFileBaseline(root, writeSetSnapshot) {
523
+ const writeSet = normalizeWriteSet(writeSetSnapshot);
524
+ const scan = stableProjectScan(root);
525
+ assertNoExcludedWriteSetOverlap(scan.excludedPaths, writeSet);
526
+ const body = baselineBody(scan);
527
+ return { ...body, fingerprint: stableFingerprint(body) };
528
+ }
529
+ /** Re-scan a non-Git project and compare every included file with the Run baseline. */
530
+ export function observeProjectFileCandidate(input) {
531
+ const { root, baseline, writeSetSnapshot } = input;
532
+ if (!verifyProjectFileBaseline(baseline)) {
533
+ throw new ProjectFileObservationError("candidate-mismatch", "Non-Git Run baseline is missing or has an invalid fingerprint.");
534
+ }
535
+ const writeSet = normalizeWriteSet(writeSetSnapshot);
536
+ const scan = stableProjectScan(root);
537
+ if (scan.rootIdentitySha256 !== baseline.rootIdentitySha256) {
538
+ throw new ProjectFileObservationError("candidate-mismatch", "Project root identity changed after the Run baseline was captured.");
539
+ }
540
+ assertNoExcludedWriteSetOverlap(scan.excludedPaths, writeSet);
541
+ const baselineFiles = new Map(baseline.files.map((file) => [file.path, file]));
542
+ const currentFilesByPath = new Map(scan.files.map((file) => [file.path, file]));
543
+ const allPaths = [...new Set([...baselineFiles.keys(), ...currentFilesByPath.keys()])].sort(compareProjectPaths);
544
+ const affectedPaths = allPaths.filter((repositoryPath) => {
545
+ const before = baselineFiles.get(repositoryPath);
546
+ const after = currentFilesByPath.get(repositoryPath);
547
+ return (before?.sizeBytes !== after?.sizeBytes ||
548
+ before?.sha256 !== after?.sha256);
549
+ });
550
+ if (affectedPaths.length > MAX_AFFECTED_PATHS) {
551
+ throw new ProjectFileObservationError("observation-limit-exceeded", `Affected path count exceeded the ${MAX_AFFECTED_PATHS}-path limit.`);
552
+ }
553
+ const inScopePaths = affectedPaths.filter((repositoryPath) => pathIsAllowed(repositoryPath, writeSet));
554
+ const outOfScopePaths = affectedPaths.filter((repositoryPath) => !pathIsAllowed(repositoryPath, writeSet));
555
+ const observationPaths = [
556
+ ...new Set([...inScopePaths, ...writeSet.exactPaths]),
557
+ ].sort(compareProjectPaths);
558
+ const candidateFiles = observationPaths.map((repositoryPath) => {
559
+ const current = currentFilesByPath.get(repositoryPath);
560
+ return current
561
+ ? {
562
+ path: repositoryPath,
563
+ kind: "regular-file",
564
+ sizeBytes: current.sizeBytes,
565
+ sha256: current.sha256,
566
+ }
567
+ : {
568
+ path: repositoryPath,
569
+ kind: "missing",
570
+ sizeBytes: 0,
571
+ sha256: null,
572
+ };
573
+ });
574
+ const scopeStatus = outOfScopePaths.length
575
+ ? "out-of-scope"
576
+ : "within-write-set";
577
+ const fingerprintInput = {
578
+ rootIdentitySha256: scan.rootIdentitySha256,
579
+ baselineFingerprint: baseline.fingerprint,
580
+ allowedWriteSet: writeSet,
581
+ affectedPaths,
582
+ inScopePaths,
583
+ outOfScopePaths,
584
+ currentFiles: candidateFiles,
585
+ scopeStatus,
586
+ };
587
+ return {
588
+ schemaVersion: 1,
589
+ source: PROJECT_FILE_CANDIDATE_OBSERVER_VERSION,
590
+ repositoryRoot: scan.root,
591
+ observedAt: new Date().toISOString(),
592
+ ...fingerprintInput,
593
+ fingerprint: stableFingerprint(fingerprintInput),
594
+ };
595
+ }
596
+ export function verifyProjectFileCandidateObservation(observation) {
597
+ try {
598
+ const { rootIdentitySha256, baselineFingerprint, allowedWriteSet, affectedPaths, inScopePaths, outOfScopePaths, currentFiles, scopeStatus, } = observation;
599
+ return (observation.schemaVersion === 1 &&
600
+ observation.source === PROJECT_FILE_CANDIDATE_OBSERVER_VERSION &&
601
+ /^[a-f0-9]{64}$/.test(rootIdentitySha256) &&
602
+ /^[a-f0-9]{64}$/.test(baselineFingerprint) &&
603
+ stableFingerprint({
604
+ rootIdentitySha256,
605
+ baselineFingerprint,
606
+ allowedWriteSet,
607
+ affectedPaths,
608
+ inScopePaths,
609
+ outOfScopePaths,
610
+ currentFiles,
611
+ scopeStatus,
612
+ }) === observation.fingerprint);
613
+ }
614
+ catch {
615
+ return false;
616
+ }
617
+ }
618
+ //# sourceMappingURL=project-file-observer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-file-observer.js","sourceRoot":"","sources":["../../../src/core/task/project-file-observer.ts"],"names":[],"mappings":"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"}