@paraharness/git 0.0.0-stage → 0.1.0

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 (279) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -2
  3. package/dist/builders/create-git-candidate-comparison-tools.d.ts +13 -0
  4. package/dist/builders/create-git-candidate-comparison-tools.d.ts.map +1 -0
  5. package/dist/builders/create-git-candidate-comparison-tools.js +41 -0
  6. package/dist/builders/create-git-candidate-comparison-tools.js.map +1 -0
  7. package/dist/builders/create-git-commit-and-push-builder.d.ts +18 -0
  8. package/dist/builders/create-git-commit-and-push-builder.d.ts.map +1 -0
  9. package/dist/builders/create-git-commit-and-push-builder.js +65 -0
  10. package/dist/builders/create-git-commit-and-push-builder.js.map +1 -0
  11. package/dist/builders/create-git-cow-worktree-builder.d.ts +15 -0
  12. package/dist/builders/create-git-cow-worktree-builder.d.ts.map +1 -0
  13. package/dist/builders/create-git-cow-worktree-builder.js +64 -0
  14. package/dist/builders/create-git-cow-worktree-builder.js.map +1 -0
  15. package/dist/builders/create-git-discard-branch-builder.d.ts +13 -0
  16. package/dist/builders/create-git-discard-branch-builder.d.ts.map +1 -0
  17. package/dist/builders/create-git-discard-branch-builder.js +22 -0
  18. package/dist/builders/create-git-discard-branch-builder.js.map +1 -0
  19. package/dist/builders/create-git-keep-worktree-builder.d.ts +13 -0
  20. package/dist/builders/create-git-keep-worktree-builder.d.ts.map +1 -0
  21. package/dist/builders/create-git-keep-worktree-builder.js +22 -0
  22. package/dist/builders/create-git-keep-worktree-builder.js.map +1 -0
  23. package/dist/builders/create-git-merge-queue-builder.d.ts +19 -0
  24. package/dist/builders/create-git-merge-queue-builder.d.ts.map +1 -0
  25. package/dist/builders/create-git-merge-queue-builder.js +59 -0
  26. package/dist/builders/create-git-merge-queue-builder.js.map +1 -0
  27. package/dist/builders/create-git-patch-equivalence-builder.d.ts +13 -0
  28. package/dist/builders/create-git-patch-equivalence-builder.d.ts.map +1 -0
  29. package/dist/builders/create-git-patch-equivalence-builder.js +32 -0
  30. package/dist/builders/create-git-patch-equivalence-builder.js.map +1 -0
  31. package/dist/builders/create-git-public-surface-cross-tester-builder.d.ts +14 -0
  32. package/dist/builders/create-git-public-surface-cross-tester-builder.d.ts.map +1 -0
  33. package/dist/builders/create-git-public-surface-cross-tester-builder.js +36 -0
  34. package/dist/builders/create-git-public-surface-cross-tester-builder.js.map +1 -0
  35. package/dist/builders/create-git-ref-reader-tools.d.ts +13 -0
  36. package/dist/builders/create-git-ref-reader-tools.d.ts.map +1 -0
  37. package/dist/builders/create-git-ref-reader-tools.js +41 -0
  38. package/dist/builders/create-git-ref-reader-tools.js.map +1 -0
  39. package/dist/builders/create-git-reset-worktree-builder.d.ts +13 -0
  40. package/dist/builders/create-git-reset-worktree-builder.d.ts.map +1 -0
  41. package/dist/builders/create-git-reset-worktree-builder.js +22 -0
  42. package/dist/builders/create-git-reset-worktree-builder.js.map +1 -0
  43. package/dist/builders/create-git-snapshot-and-reset-builder.d.ts +13 -0
  44. package/dist/builders/create-git-snapshot-and-reset-builder.d.ts.map +1 -0
  45. package/dist/builders/create-git-snapshot-and-reset-builder.js +23 -0
  46. package/dist/builders/create-git-snapshot-and-reset-builder.js.map +1 -0
  47. package/dist/builders/git-commit-and-push-builder.d.ts +44 -0
  48. package/dist/builders/git-commit-and-push-builder.d.ts.map +1 -0
  49. package/dist/builders/git-commit-and-push-builder.js +2 -0
  50. package/dist/builders/git-commit-and-push-builder.js.map +1 -0
  51. package/dist/builders/git-commit-and-push-options.d.ts +22 -0
  52. package/dist/builders/git-commit-and-push-options.d.ts.map +1 -0
  53. package/dist/builders/git-commit-and-push-options.js +2 -0
  54. package/dist/builders/git-commit-and-push-options.js.map +1 -0
  55. package/dist/builders/git-cow-worktree-builder.d.ts +64 -0
  56. package/dist/builders/git-cow-worktree-builder.d.ts.map +1 -0
  57. package/dist/builders/git-cow-worktree-builder.js +2 -0
  58. package/dist/builders/git-cow-worktree-builder.js.map +1 -0
  59. package/dist/builders/git-cow-worktree-options.d.ts +42 -0
  60. package/dist/builders/git-cow-worktree-options.d.ts.map +1 -0
  61. package/dist/builders/git-cow-worktree-options.js +2 -0
  62. package/dist/builders/git-cow-worktree-options.js.map +1 -0
  63. package/dist/builders/git-merge-queue-builder.d.ts +37 -0
  64. package/dist/builders/git-merge-queue-builder.d.ts.map +1 -0
  65. package/dist/builders/git-merge-queue-builder.js +2 -0
  66. package/dist/builders/git-merge-queue-builder.js.map +1 -0
  67. package/dist/builders/git-merge-queue-options.d.ts +23 -0
  68. package/dist/builders/git-merge-queue-options.d.ts.map +1 -0
  69. package/dist/builders/git-merge-queue-options.js +2 -0
  70. package/dist/builders/git-merge-queue-options.js.map +1 -0
  71. package/dist/builders/git-namespace-contract.d.ts +141 -0
  72. package/dist/builders/git-namespace-contract.d.ts.map +1 -0
  73. package/dist/builders/git-namespace-contract.js +2 -0
  74. package/dist/builders/git-namespace-contract.js.map +1 -0
  75. package/dist/builders/git-namespace.d.ts +6 -0
  76. package/dist/builders/git-namespace.d.ts.map +1 -0
  77. package/dist/builders/git-namespace.js +32 -0
  78. package/dist/builders/git-namespace.js.map +1 -0
  79. package/dist/builders/git-public-surface-cross-tester-options.d.ts +16 -0
  80. package/dist/builders/git-public-surface-cross-tester-options.d.ts.map +1 -0
  81. package/dist/builders/git-public-surface-cross-tester-options.js +2 -0
  82. package/dist/builders/git-public-surface-cross-tester-options.js.map +1 -0
  83. package/dist/builders/git-reconcile-strategy-options.d.ts +16 -0
  84. package/dist/builders/git-reconcile-strategy-options.d.ts.map +1 -0
  85. package/dist/builders/git-reconcile-strategy-options.js +2 -0
  86. package/dist/builders/git-reconcile-strategy-options.js.map +1 -0
  87. package/dist/builders/internal/build-git-cow-worktree-node.d.ts +35 -0
  88. package/dist/builders/internal/build-git-cow-worktree-node.d.ts.map +1 -0
  89. package/dist/builders/internal/build-git-cow-worktree-node.js +77 -0
  90. package/dist/builders/internal/build-git-cow-worktree-node.js.map +1 -0
  91. package/dist/executors/create-git-executors.d.ts +12 -0
  92. package/dist/executors/create-git-executors.d.ts.map +1 -0
  93. package/dist/executors/create-git-executors.js +43 -0
  94. package/dist/executors/create-git-executors.js.map +1 -0
  95. package/dist/executors/git-checkpoint-payload.d.ts +44 -0
  96. package/dist/executors/git-checkpoint-payload.d.ts.map +1 -0
  97. package/dist/executors/git-checkpoint-payload.js +2 -0
  98. package/dist/executors/git-checkpoint-payload.js.map +1 -0
  99. package/dist/executors/git-commit-and-merge-steps.d.ts +33 -0
  100. package/dist/executors/git-commit-and-merge-steps.d.ts.map +1 -0
  101. package/dist/executors/git-commit-and-merge-steps.js +52 -0
  102. package/dist/executors/git-commit-and-merge-steps.js.map +1 -0
  103. package/dist/executors/git-cow-worktree-scope.d.ts +201 -0
  104. package/dist/executors/git-cow-worktree-scope.d.ts.map +1 -0
  105. package/dist/executors/git-cow-worktree-scope.js +260 -0
  106. package/dist/executors/git-cow-worktree-scope.js.map +1 -0
  107. package/dist/executors/git-cross-verifiers-and-tools.d.ts +42 -0
  108. package/dist/executors/git-cross-verifiers-and-tools.d.ts.map +1 -0
  109. package/dist/executors/git-cross-verifiers-and-tools.js +112 -0
  110. package/dist/executors/git-cross-verifiers-and-tools.js.map +1 -0
  111. package/dist/executors/git-executors.constants.d.ts +4 -0
  112. package/dist/executors/git-executors.constants.d.ts.map +1 -0
  113. package/dist/executors/git-executors.constants.js +4 -0
  114. package/dist/executors/git-executors.constants.js.map +1 -0
  115. package/dist/executors/git-hooks-and-checks.d.ts +51 -0
  116. package/dist/executors/git-hooks-and-checks.d.ts.map +1 -0
  117. package/dist/executors/git-hooks-and-checks.js +139 -0
  118. package/dist/executors/git-hooks-and-checks.js.map +1 -0
  119. package/dist/executors/internal/checkpoint-restore-steps.d.ts +50 -0
  120. package/dist/executors/internal/checkpoint-restore-steps.d.ts.map +1 -0
  121. package/dist/executors/internal/checkpoint-restore-steps.js +184 -0
  122. package/dist/executors/internal/checkpoint-restore-steps.js.map +1 -0
  123. package/dist/executors/internal/checkpoint-staging-and-integrity.d.ts +51 -0
  124. package/dist/executors/internal/checkpoint-staging-and-integrity.d.ts.map +1 -0
  125. package/dist/executors/internal/checkpoint-staging-and-integrity.js +192 -0
  126. package/dist/executors/internal/checkpoint-staging-and-integrity.js.map +1 -0
  127. package/dist/executors/internal/compute-worktree-status-options.d.ts +15 -0
  128. package/dist/executors/internal/compute-worktree-status-options.d.ts.map +1 -0
  129. package/dist/executors/internal/compute-worktree-status-options.js +2 -0
  130. package/dist/executors/internal/compute-worktree-status-options.js.map +1 -0
  131. package/dist/executors/internal/cow-worktree-hydrator.d.ts +51 -0
  132. package/dist/executors/internal/cow-worktree-hydrator.d.ts.map +1 -0
  133. package/dist/executors/internal/cow-worktree-hydrator.js +174 -0
  134. package/dist/executors/internal/cow-worktree-hydrator.js.map +1 -0
  135. package/dist/executors/internal/file-digest-and-globs.d.ts +58 -0
  136. package/dist/executors/internal/file-digest-and-globs.d.ts.map +1 -0
  137. package/dist/executors/internal/file-digest-and-globs.js +188 -0
  138. package/dist/executors/internal/file-digest-and-globs.js.map +1 -0
  139. package/dist/executors/internal/git-checkpoint-diff-effects.d.ts +16 -0
  140. package/dist/executors/internal/git-checkpoint-diff-effects.d.ts.map +1 -0
  141. package/dist/executors/internal/git-checkpoint-diff-effects.js +38 -0
  142. package/dist/executors/internal/git-checkpoint-diff-effects.js.map +1 -0
  143. package/dist/executors/internal/git-checkpoint-restore.d.ts +14 -0
  144. package/dist/executors/internal/git-checkpoint-restore.d.ts.map +1 -0
  145. package/dist/executors/internal/git-checkpoint-restore.js +37 -0
  146. package/dist/executors/internal/git-checkpoint-restore.js.map +1 -0
  147. package/dist/executors/internal/git-checkpoint-serialize.d.ts +13 -0
  148. package/dist/executors/internal/git-checkpoint-serialize.d.ts.map +1 -0
  149. package/dist/executors/internal/git-checkpoint-serialize.js +48 -0
  150. package/dist/executors/internal/git-checkpoint-serialize.js.map +1 -0
  151. package/dist/executors/internal/git-checkpoint-status-map.d.ts +14 -0
  152. package/dist/executors/internal/git-checkpoint-status-map.d.ts.map +1 -0
  153. package/dist/executors/internal/git-checkpoint-status-map.js +27 -0
  154. package/dist/executors/internal/git-checkpoint-status-map.js.map +1 -0
  155. package/dist/executors/internal/git-cli-command-options.d.ts +21 -0
  156. package/dist/executors/internal/git-cli-command-options.d.ts.map +1 -0
  157. package/dist/executors/internal/git-cli-command-options.js +2 -0
  158. package/dist/executors/internal/git-cli-command-options.js.map +1 -0
  159. package/dist/executors/internal/git-cli-command-result.d.ts +16 -0
  160. package/dist/executors/internal/git-cli-command-result.d.ts.map +1 -0
  161. package/dist/executors/internal/git-cli-command-result.js +2 -0
  162. package/dist/executors/internal/git-cli-command-result.js.map +1 -0
  163. package/dist/executors/internal/git-cli-runner.d.ts +73 -0
  164. package/dist/executors/internal/git-cli-runner.d.ts.map +1 -0
  165. package/dist/executors/internal/git-cli-runner.js +157 -0
  166. package/dist/executors/internal/git-cli-runner.js.map +1 -0
  167. package/dist/executors/internal/git-cross-test-import-scanner.d.ts +68 -0
  168. package/dist/executors/internal/git-cross-test-import-scanner.d.ts.map +1 -0
  169. package/dist/executors/internal/git-cross-test-import-scanner.js +226 -0
  170. package/dist/executors/internal/git-cross-test-import-scanner.js.map +1 -0
  171. package/dist/executors/internal/git-executor.constants.d.ts +29 -0
  172. package/dist/executors/internal/git-executor.constants.d.ts.map +1 -0
  173. package/dist/executors/internal/git-executor.constants.js +40 -0
  174. package/dist/executors/internal/git-executor.constants.js.map +1 -0
  175. package/dist/executors/internal/git-merge-train-bisect.d.ts +51 -0
  176. package/dist/executors/internal/git-merge-train-bisect.d.ts.map +1 -0
  177. package/dist/executors/internal/git-merge-train-bisect.js +152 -0
  178. package/dist/executors/internal/git-merge-train-bisect.js.map +1 -0
  179. package/dist/executors/internal/git-tool-dispatchers.d.ts +26 -0
  180. package/dist/executors/internal/git-tool-dispatchers.d.ts.map +1 -0
  181. package/dist/executors/internal/git-tool-dispatchers.js +174 -0
  182. package/dist/executors/internal/git-tool-dispatchers.js.map +1 -0
  183. package/dist/executors/internal/git-worktree-acquire-root.d.ts +22 -0
  184. package/dist/executors/internal/git-worktree-acquire-root.d.ts.map +1 -0
  185. package/dist/executors/internal/git-worktree-acquire-root.js +67 -0
  186. package/dist/executors/internal/git-worktree-acquire-root.js.map +1 -0
  187. package/dist/executors/internal/git-worktree-commit-child.d.ts +26 -0
  188. package/dist/executors/internal/git-worktree-commit-child.d.ts.map +1 -0
  189. package/dist/executors/internal/git-worktree-commit-child.js +88 -0
  190. package/dist/executors/internal/git-worktree-commit-child.js.map +1 -0
  191. package/dist/executors/internal/git-worktree-flush-and-prune.d.ts +43 -0
  192. package/dist/executors/internal/git-worktree-flush-and-prune.d.ts.map +1 -0
  193. package/dist/executors/internal/git-worktree-flush-and-prune.js +169 -0
  194. package/dist/executors/internal/git-worktree-flush-and-prune.js.map +1 -0
  195. package/dist/executors/internal/git-worktree-fork-and-release.d.ts +37 -0
  196. package/dist/executors/internal/git-worktree-fork-and-release.d.ts.map +1 -0
  197. package/dist/executors/internal/git-worktree-fork-and-release.js +159 -0
  198. package/dist/executors/internal/git-worktree-fork-and-release.js.map +1 -0
  199. package/dist/executors/internal/git-worktree-materialize-merge.d.ts +51 -0
  200. package/dist/executors/internal/git-worktree-materialize-merge.d.ts.map +1 -0
  201. package/dist/executors/internal/git-worktree-materialize-merge.js +161 -0
  202. package/dist/executors/internal/git-worktree-materialize-merge.js.map +1 -0
  203. package/dist/executors/internal/git-worktree-reattach.d.ts +57 -0
  204. package/dist/executors/internal/git-worktree-reattach.d.ts.map +1 -0
  205. package/dist/executors/internal/git-worktree-reattach.js +324 -0
  206. package/dist/executors/internal/git-worktree-reattach.js.map +1 -0
  207. package/dist/executors/internal/git-worktree-sync-child-and-root.d.ts +26 -0
  208. package/dist/executors/internal/git-worktree-sync-child-and-root.d.ts.map +1 -0
  209. package/dist/executors/internal/git-worktree-sync-child-and-root.js +82 -0
  210. package/dist/executors/internal/git-worktree-sync-child-and-root.js.map +1 -0
  211. package/dist/executors/internal/host-repository-head-state.d.ts +10 -0
  212. package/dist/executors/internal/host-repository-head-state.d.ts.map +1 -0
  213. package/dist/executors/internal/host-repository-head-state.js +2 -0
  214. package/dist/executors/internal/host-repository-head-state.js.map +1 -0
  215. package/dist/executors/internal/merge-train-candidate.d.ts +14 -0
  216. package/dist/executors/internal/merge-train-candidate.d.ts.map +1 -0
  217. package/dist/executors/internal/merge-train-candidate.js +2 -0
  218. package/dist/executors/internal/merge-train-candidate.js.map +1 -0
  219. package/dist/executors/internal/merge-train-chain-entry.d.ts +13 -0
  220. package/dist/executors/internal/merge-train-chain-entry.d.ts.map +1 -0
  221. package/dist/executors/internal/merge-train-chain-entry.js +2 -0
  222. package/dist/executors/internal/merge-train-chain-entry.js.map +1 -0
  223. package/dist/executors/internal/merge-train-result.d.ts +19 -0
  224. package/dist/executors/internal/merge-train-result.d.ts.map +1 -0
  225. package/dist/executors/internal/merge-train-result.js +2 -0
  226. package/dist/executors/internal/merge-train-result.js.map +1 -0
  227. package/dist/executors/internal/merge-train-runner.d.ts +16 -0
  228. package/dist/executors/internal/merge-train-runner.d.ts.map +1 -0
  229. package/dist/executors/internal/merge-train-runner.js +141 -0
  230. package/dist/executors/internal/merge-train-runner.js.map +1 -0
  231. package/dist/executors/internal/merge-tree-materializer-params.d.ts +19 -0
  232. package/dist/executors/internal/merge-tree-materializer-params.d.ts.map +1 -0
  233. package/dist/executors/internal/merge-tree-materializer-params.js +2 -0
  234. package/dist/executors/internal/merge-tree-materializer-params.js.map +1 -0
  235. package/dist/executors/internal/parent-fast-forward.d.ts +47 -0
  236. package/dist/executors/internal/parent-fast-forward.d.ts.map +1 -0
  237. package/dist/executors/internal/parent-fast-forward.js +138 -0
  238. package/dist/executors/internal/parent-fast-forward.js.map +1 -0
  239. package/dist/executors/internal/porcelain-v2-parser.d.ts +49 -0
  240. package/dist/executors/internal/porcelain-v2-parser.d.ts.map +1 -0
  241. package/dist/executors/internal/porcelain-v2-parser.js +165 -0
  242. package/dist/executors/internal/porcelain-v2-parser.js.map +1 -0
  243. package/dist/executors/internal/resolve-effective-base-branch.d.ts +13 -0
  244. package/dist/executors/internal/resolve-effective-base-branch.d.ts.map +1 -0
  245. package/dist/executors/internal/resolve-effective-base-branch.js +38 -0
  246. package/dist/executors/internal/resolve-effective-base-branch.js.map +1 -0
  247. package/dist/executors/internal/squash-rebase-and-push.d.ts +14 -0
  248. package/dist/executors/internal/squash-rebase-and-push.d.ts.map +1 -0
  249. package/dist/executors/internal/squash-rebase-and-push.js +192 -0
  250. package/dist/executors/internal/squash-rebase-and-push.js.map +1 -0
  251. package/dist/executors/internal/staged-checkpoint-tree-result.d.ts +13 -0
  252. package/dist/executors/internal/staged-checkpoint-tree-result.d.ts.map +1 -0
  253. package/dist/executors/internal/staged-checkpoint-tree-result.js +2 -0
  254. package/dist/executors/internal/staged-checkpoint-tree-result.js.map +1 -0
  255. package/dist/executors/internal/stateless-merge-tree-result.d.ts +12 -0
  256. package/dist/executors/internal/stateless-merge-tree-result.d.ts.map +1 -0
  257. package/dist/executors/internal/stateless-merge-tree-result.js +2 -0
  258. package/dist/executors/internal/stateless-merge-tree-result.js.map +1 -0
  259. package/dist/executors/internal/synthesized-working-tree-commit.d.ts +10 -0
  260. package/dist/executors/internal/synthesized-working-tree-commit.d.ts.map +1 -0
  261. package/dist/executors/internal/synthesized-working-tree-commit.js +2 -0
  262. package/dist/executors/internal/synthesized-working-tree-commit.js.map +1 -0
  263. package/dist/executors/internal/worktree-integrity-verdict.d.ts +10 -0
  264. package/dist/executors/internal/worktree-integrity-verdict.d.ts.map +1 -0
  265. package/dist/executors/internal/worktree-integrity-verdict.js +2 -0
  266. package/dist/executors/internal/worktree-integrity-verdict.js.map +1 -0
  267. package/dist/executors/internal/worktree-status-snapshot.d.ts +17 -0
  268. package/dist/executors/internal/worktree-status-snapshot.d.ts.map +1 -0
  269. package/dist/executors/internal/worktree-status-snapshot.js +2 -0
  270. package/dist/executors/internal/worktree-status-snapshot.js.map +1 -0
  271. package/dist/index.d.ts +31 -0
  272. package/dist/index.d.ts.map +1 -0
  273. package/dist/index.js +20 -0
  274. package/dist/index.js.map +1 -0
  275. package/dist/schemas/git-receipts.schema.d.ts +174 -0
  276. package/dist/schemas/git-receipts.schema.d.ts.map +1 -0
  277. package/dist/schemas/git-receipts.schema.js +123 -0
  278. package/dist/schemas/git-receipts.schema.js.map +1 -0
  279. package/package.json +71 -3
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2026 Tornike Tsomaia
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,69 @@
1
- # Temporary Holding Version
1
+ # @paraharness/git
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Copy-on-Write (CoW) hierarchical Git worktree isolation scope, git-index checkpointing, stateless 3-way `git merge-tree --write-tree` reconciliation, and candidate comparison tools for [Paraharness](https://github.com/paraharness/paraharness). This package isolates every flow run, subagent fork, and speculative branch inside its own worktree sharing the host repository's object store while providing deterministic post-flight rollback, abort snapshots, and retry-safe branch pushing.
4
+
5
+ ## Installation
6
+
7
+ With npm:
8
+
9
+ ```bash
10
+ npm install @paraharness/git @paraharness/core zod
11
+ ```
12
+
13
+ With yarn:
14
+
15
+ ```bash
16
+ yarn add @paraharness/git @paraharness/core zod
17
+ ```
18
+
19
+ With pnpm:
20
+
21
+ ```bash
22
+ pnpm add @paraharness/git @paraharness/core zod
23
+ ```
24
+
25
+ ## Usage
26
+
27
+ ```ts
28
+ import { P, z } from '@paraharness/core';
29
+ import { createExecutorRegistry } from '@paraharness/core/runtime';
30
+ import { git, gitExecutors } from '@paraharness/git';
31
+ import { local, nodeExecutors } from '@paraharness/node';
32
+
33
+ const TaskInput = z.object({
34
+ id: z.string(),
35
+ title: z.string(),
36
+ });
37
+
38
+ const runner = local.runner({ slots: 4 });
39
+
40
+ const worktreeScope = git
41
+ .cowWorktree({ repo: '.', dir: '.harness/worktrees' })
42
+ .excludeFromCloneGlobs(['dist/**', 'coverage/**'])
43
+ .lockfileGate('pnpm-lock.yaml')
44
+ .reconcileStrategy('rebase-onto-base');
45
+
46
+ const landChanges = git
47
+ .commitAndPush('land-changes', {
48
+ branch: (item: z.infer<typeof TaskInput>) => `feat/${item.id}`,
49
+ message: (item: z.infer<typeof TaskInput>) => `feat(${item.id}): ${item.title}`,
50
+ })
51
+ .input(TaskInput)
52
+ .runner(runner);
53
+
54
+ const flow = P.flow('git-delivery-flow')
55
+ .input(TaskInput)
56
+ .scope(worktreeScope)
57
+ .step('push', landChanges)
58
+ .exit('done');
59
+
60
+ const registry = createExecutorRegistry(gitExecutors, nodeExecutors);
61
+ ```
62
+
63
+ ## Documentation
64
+
65
+ See the [`@paraharness/git` API Reference](https://paraharness.github.io/paraharness/modules/_paraharness_git.html) for full type and builder specifications.
66
+
67
+ ## License
68
+
69
+ [MIT](./LICENSE) © Tornike Tsomaia
@@ -0,0 +1,13 @@
1
+ import { type GitCandidateComparisonToolNode, type GitWorktreeHandle, type MaybeBuilder, type NodeRunnerNode } from '@paraharness/core';
2
+ /**
3
+ * Creates the speculative candidate comparison and benchmark tool bundle (`git.candidateComparisonTools(runner)`).
4
+ *
5
+ * Emits passive `GitCandidateComparisonToolNode` descriptors for `diffCandidates`, `readCandidateFile`,
6
+ * and checkpoint-sandboxed `evalInCandidates` over `refs/harness/candidates/<run-id>/<branch-index>`.
7
+ *
8
+ * @param {MaybeBuilder<NodeRunnerNode>} runner - Subprocess runner pool governing git and benchmark command slots.
9
+ *
10
+ * @returns {readonly GitCandidateComparisonToolNode<GitWorktreeHandle>[]} Frozen tuple of candidate comparison tool AST nodes.
11
+ */
12
+ export declare function createGitCandidateComparisonTools(runner: MaybeBuilder<NodeRunnerNode>): readonly GitCandidateComparisonToolNode<GitWorktreeHandle>[];
13
+ //# sourceMappingURL=create-git-candidate-comparison-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-candidate-comparison-tools.d.ts","sourceRoot":"","sources":["../../src/builders/create-git-candidate-comparison-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAO3B;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,GACnC,SAAS,8BAA8B,CAAC,iBAAiB,CAAC,EAAE,CA2B9D"}
@@ -0,0 +1,41 @@
1
+ import { extractAST, } from '@paraharness/core';
2
+ import { DiffCandidatesInputSchema, EvalInCandidatesInputSchema, ReadCandidateFileInputSchema, } from '../schemas/git-receipts.schema.js';
3
+ /**
4
+ * Creates the speculative candidate comparison and benchmark tool bundle (`git.candidateComparisonTools(runner)`).
5
+ *
6
+ * Emits passive `GitCandidateComparisonToolNode` descriptors for `diffCandidates`, `readCandidateFile`,
7
+ * and checkpoint-sandboxed `evalInCandidates` over `refs/harness/candidates/<run-id>/<branch-index>`.
8
+ *
9
+ * @param {MaybeBuilder<NodeRunnerNode>} runner - Subprocess runner pool governing git and benchmark command slots.
10
+ *
11
+ * @returns {readonly GitCandidateComparisonToolNode<GitWorktreeHandle>[]} Frozen tuple of candidate comparison tool AST nodes.
12
+ */
13
+ export function createGitCandidateComparisonTools(runner) {
14
+ const runnerNode = extractAST(runner);
15
+ const diffCandidatesNode = Object.freeze({
16
+ type: 'git:candidate-comparison-tool',
17
+ name: 'diffCandidates',
18
+ description: 'Computes the unified diff between two speculative candidate branches.',
19
+ inputSchema: DiffCandidatesInputSchema,
20
+ effectTracking: 'declared',
21
+ runner: runnerNode,
22
+ });
23
+ const readCandidateFileNode = Object.freeze({
24
+ type: 'git:candidate-comparison-tool',
25
+ name: 'readCandidateFile',
26
+ description: 'Reads a file from a speculative candidate branch by branchIndex and path.',
27
+ inputSchema: ReadCandidateFileInputSchema,
28
+ effectTracking: 'declared',
29
+ runner: runnerNode,
30
+ });
31
+ const evalInCandidatesNode = Object.freeze({
32
+ type: 'git:candidate-comparison-tool',
33
+ name: 'evalInCandidates',
34
+ description: 'Executes a benchmark or check command across candidate worktrees inside a serialize/restore checkpoint sandbox.',
35
+ inputSchema: EvalInCandidatesInputSchema,
36
+ effectTracking: 'declared',
37
+ runner: runnerNode,
38
+ });
39
+ return Object.freeze([diffCandidatesNode, readCandidateFileNode, evalInCandidatesNode]);
40
+ }
41
+ //# sourceMappingURL=create-git-candidate-comparison-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-candidate-comparison-tools.js","sourceRoot":"","sources":["../../src/builders/create-git-candidate-comparison-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAKX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAoC;IAEpC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAoD;QAC1F,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,yBAAyB;QACtC,cAAc,EAAE,UAAU;QAC1B,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAoD;QAC7F,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE,4BAA4B;QACzC,cAAc,EAAE,UAAU;QAC1B,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAoD;QAC5F,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,iHAAiH;QAC9H,WAAW,EAAE,2BAA2B;QACxC,cAAc,EAAE,UAAU;QAC1B,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { GitCommitAndPushBuilder } from './git-commit-and-push-builder.js';
2
+ import type { GitCommitAndPushOptions } from './git-commit-and-push-options.js';
3
+ /**
4
+ * Creates a fluent `GitCommitAndPushBuilder` (`git.commitAndPush(id, options)`).
5
+ *
6
+ * Compiles into a passive `GitCommitAndPushNode<TIn>` with zero import-time or declaration-time I/O.
7
+ *
8
+ * @template TIn Step input payload type.
9
+ *
10
+ * @param {string} id - Unique step node identifier.
11
+ * @param {GitCommitAndPushOptions<TIn>} options - Branch projection, commit message projection, and optional bindings.
12
+ *
13
+ * @returns {GitCommitAndPushBuilder<TIn>} Immutable fluent `GitCommitAndPushBuilder` instance.
14
+ *
15
+ * @throws {Error} If `id` is empty.
16
+ */
17
+ export declare function createGitCommitAndPushBuilder<TIn = unknown>(id: string, options: GitCommitAndPushOptions<TIn>): GitCommitAndPushBuilder<TIn>;
18
+ //# sourceMappingURL=create-git-commit-and-push-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-commit-and-push-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-git-commit-and-push-builder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,GAAG,OAAO,EACzD,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,GACpC,uBAAuB,CAAC,GAAG,CAAC,CAoD9B"}
@@ -0,0 +1,65 @@
1
+ import { extractAST, z, } from '@paraharness/core';
2
+ /**
3
+ * Creates a fluent `GitCommitAndPushBuilder` (`git.commitAndPush(id, options)`).
4
+ *
5
+ * Compiles into a passive `GitCommitAndPushNode<TIn>` with zero import-time or declaration-time I/O.
6
+ *
7
+ * @template TIn Step input payload type.
8
+ *
9
+ * @param {string} id - Unique step node identifier.
10
+ * @param {GitCommitAndPushOptions<TIn>} options - Branch projection, commit message projection, and optional bindings.
11
+ *
12
+ * @returns {GitCommitAndPushBuilder<TIn>} Immutable fluent `GitCommitAndPushBuilder` instance.
13
+ *
14
+ * @throws {Error} If `id` is empty.
15
+ */
16
+ export function createGitCommitAndPushBuilder(id, options) {
17
+ if (id.trim().length === 0) {
18
+ throw new Error("git.commitAndPush: 'id' must be a non-empty string.");
19
+ }
20
+ return Object.freeze({
21
+ input(schema) {
22
+ return createGitCommitAndPushBuilder(id, {
23
+ branch: options.branch,
24
+ message: options.message,
25
+ inputSchema: schema,
26
+ runner: options.runner,
27
+ env: options.env,
28
+ });
29
+ },
30
+ runner(runnerNode) {
31
+ return createGitCommitAndPushBuilder(id, {
32
+ ...options,
33
+ runner: runnerNode,
34
+ });
35
+ },
36
+ env(envMap) {
37
+ return createGitCommitAndPushBuilder(id, {
38
+ ...options,
39
+ env: Object.freeze({ ...envMap }),
40
+ });
41
+ },
42
+ toAST() {
43
+ const resolvedRunner = options.runner !== undefined
44
+ ? extractAST(options.runner)
45
+ : Object.freeze({
46
+ type: 'node:runner',
47
+ id: 'git-default-runner',
48
+ slots: 4,
49
+ maxDaemons: 2,
50
+ });
51
+ const inputSchema = options.inputSchema ?? z.custom(() => true);
52
+ return Object.freeze({
53
+ type: 'git:commit-and-push',
54
+ id,
55
+ inputSchema,
56
+ outputSchema: z.void(),
57
+ branch: options.branch,
58
+ message: options.message,
59
+ runner: resolvedRunner,
60
+ env: options.env,
61
+ });
62
+ },
63
+ });
64
+ }
65
+ //# sourceMappingURL=create-git-commit-and-push-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-commit-and-push-builder.js","sourceRoot":"","sources":["../../src/builders/create-git-commit-and-push-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,CAAC,GAKF,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,6BAA6B,CAC3C,EAAU,EACV,OAAqC;IAErC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAA+B;QACjD,KAAK,CACH,MAA0B;YAE1B,OAAO,6BAA6B,CAAU,EAAE,EAAE;gBAChD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,UAAwC;YAC7C,OAAO,6BAA6B,CAAM,EAAE,EAAE;gBAC5C,GAAG,OAAO;gBACV,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAiD;YACnD,OAAO,6BAA6B,CAAM,EAAE,EAAE;gBAC5C,GAAG,OAAO;gBACV,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QACD,KAAK;YACH,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC1B,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAiB;oBAC5B,IAAI,EAAE,aAAa;oBACnB,EAAE,EAAE,oBAAoB;oBACxB,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,CAAC;iBACd,CAAC,CAAC;YACT,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,CAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC,MAAM,CAA4B;gBAC9C,IAAI,EAAE,qBAAqB;gBAC3B,EAAE;gBACF,WAAW;gBACX,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,cAAc;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { GitCowWorktreeBuilder } from './git-cow-worktree-builder.js';
2
+ import type { GitCowWorktreeOptions } from './git-cow-worktree-options.js';
3
+ /**
4
+ * Creates a fluent `GitCowWorktreeBuilder` (`git.cowWorktree({ repo, dir })`).
5
+ *
6
+ * Validates that `repo` and `dir` are non-empty strings at declaration time without performing any filesystem I/O.
7
+ *
8
+ * @param {GitCowWorktreeOptions} options - Repository path, worktree base directory, and optional builder state.
9
+ *
10
+ * @returns {GitCowWorktreeBuilder} Immutable fluent worktree scope builder.
11
+ *
12
+ * @throws {Error} If `options.repo` or `options.dir` is empty.
13
+ */
14
+ export declare function createGitCowWorktreeBuilder(options: GitCowWorktreeOptions): GitCowWorktreeBuilder;
15
+ //# sourceMappingURL=create-git-cow-worktree-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-cow-worktree-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-git-cow-worktree-builder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AAOvC;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,qBAAqB,GAC7B,qBAAqB,CAoDvB"}
@@ -0,0 +1,64 @@
1
+ import { extractAST, } from '@paraharness/core';
2
+ import { buildGitCowWorktreeNode, resolveReconcileStrategyConfig, } from './internal/build-git-cow-worktree-node.js';
3
+ /**
4
+ * Creates a fluent `GitCowWorktreeBuilder` (`git.cowWorktree({ repo, dir })`).
5
+ *
6
+ * Validates that `repo` and `dir` are non-empty strings at declaration time without performing any filesystem I/O.
7
+ *
8
+ * @param {GitCowWorktreeOptions} options - Repository path, worktree base directory, and optional builder state.
9
+ *
10
+ * @returns {GitCowWorktreeBuilder} Immutable fluent worktree scope builder.
11
+ *
12
+ * @throws {Error} If `options.repo` or `options.dir` is empty.
13
+ */
14
+ export function createGitCowWorktreeBuilder(options) {
15
+ if (options.repo.trim().length === 0) {
16
+ throw new Error("git.cowWorktree: 'repo' must be a non-empty repository path.");
17
+ }
18
+ if (options.dir.trim().length === 0) {
19
+ throw new Error("git.cowWorktree: 'dir' must be a non-empty worktree base directory.");
20
+ }
21
+ return Object.freeze({
22
+ excludeFromCloneGlobs(globs) {
23
+ return createGitCowWorktreeBuilder({
24
+ ...options,
25
+ excludeFromCloneGlobs: Object.freeze([...globs]),
26
+ });
27
+ },
28
+ setup(...commands) {
29
+ const nextSetup = [...(options.setupCommands ?? [])];
30
+ for (const command of commands) {
31
+ nextSetup.push(extractAST(command));
32
+ }
33
+ return createGitCowWorktreeBuilder({
34
+ ...options,
35
+ setupCommands: Object.freeze(nextSetup),
36
+ });
37
+ },
38
+ lockfileGate(lockfilePath) {
39
+ if (lockfilePath.trim().length === 0) {
40
+ throw new Error("git.cowWorktree.lockfileGate: 'lockfilePath' must be non-empty.");
41
+ }
42
+ return createGitCowWorktreeBuilder({
43
+ ...options,
44
+ lockfileGatePath: lockfilePath,
45
+ });
46
+ },
47
+ checkpointPolicy(policy) {
48
+ return createGitCowWorktreeBuilder({
49
+ ...options,
50
+ checkpointPolicy: policy,
51
+ });
52
+ },
53
+ reconcileStrategy(modeOrOptions, strategyOptions) {
54
+ return createGitCowWorktreeBuilder({
55
+ ...options,
56
+ reconcileStrategy: resolveReconcileStrategyConfig(modeOrOptions, strategyOptions),
57
+ });
58
+ },
59
+ toAST() {
60
+ return buildGitCowWorktreeNode(options);
61
+ },
62
+ });
63
+ }
64
+ //# sourceMappingURL=create-git-cow-worktree-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-cow-worktree-builder.js","sourceRoot":"","sources":["../../src/builders/create-git-cow-worktree-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAOX,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,2CAA2C,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA8B;IAE9B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAwB;QAC1C,qBAAqB,CAAC,KAAwB;YAC5C,OAAO,2BAA2B,CAAC;gBACjC,GAAG,OAAO;gBACV,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;aACjD,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,GAAG,QAA8C;YACrD,MAAM,SAAS,GAAc,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;YAChE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,2BAA2B,CAAC;gBACjC,GAAG,OAAO;gBACV,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QACD,YAAY,CAAC,YAAoB;YAC/B,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,2BAA2B,CAAC;gBACjC,GAAG,OAAO;gBACV,gBAAgB,EAAE,YAAY;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,gBAAgB,CAAC,MAAsC;YACrD,OAAO,2BAA2B,CAAC;gBACjC,GAAG,OAAO;gBACV,gBAAgB,EAAE,MAAM;aACzB,CAAC,CAAC;QACL,CAAC;QACD,iBAAiB,CACf,aAAqF,EACrF,eAA6C;YAE7C,OAAO,2BAA2B,CAAC;gBACjC,GAAG,OAAO;gBACV,iBAAiB,EAAE,8BAA8B,CAAC,aAAa,EAAE,eAAe,CAAC;aAClF,CAAC,CAAC;QACL,CAAC;QACD,KAAK;YACH,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { AstBuilder, GitDiscardBranchNode } from '@paraharness/core';
2
+ /**
3
+ * Creates a fluent `AstBuilder<GitDiscardBranchNode>` (`git.discardBranch()`).
4
+ *
5
+ * Alias for `createGitResetWorktreeBuilder` compiling to a passive `GitDiscardBranchNode`
6
+ * (`type: 'git:discard-branch'`, `resetsRunOverlay: true`).
7
+ *
8
+ * @param {string} [id='git-discard-branch'] - Optional custom identifier for the rewind hook node.
9
+ *
10
+ * @returns {AstBuilder<GitDiscardBranchNode>} Immutable rewind hook builder instance.
11
+ */
12
+ export declare function createGitDiscardBranchBuilder(id?: string): AstBuilder<GitDiscardBranchNode>;
13
+ //# sourceMappingURL=create-git-discard-branch-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-discard-branch-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-git-discard-branch-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,SAAuB,GACxB,UAAU,CAAC,oBAAoB,CAAC,CAUlC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Creates a fluent `AstBuilder<GitDiscardBranchNode>` (`git.discardBranch()`).
3
+ *
4
+ * Alias for `createGitResetWorktreeBuilder` compiling to a passive `GitDiscardBranchNode`
5
+ * (`type: 'git:discard-branch'`, `resetsRunOverlay: true`).
6
+ *
7
+ * @param {string} [id='git-discard-branch'] - Optional custom identifier for the rewind hook node.
8
+ *
9
+ * @returns {AstBuilder<GitDiscardBranchNode>} Immutable rewind hook builder instance.
10
+ */
11
+ export function createGitDiscardBranchBuilder(id = 'git-discard-branch') {
12
+ return Object.freeze({
13
+ toAST() {
14
+ return Object.freeze({
15
+ type: 'git:discard-branch',
16
+ id,
17
+ resetsRunOverlay: true,
18
+ });
19
+ },
20
+ });
21
+ }
22
+ //# sourceMappingURL=create-git-discard-branch-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-discard-branch-builder.js","sourceRoot":"","sources":["../../src/builders/create-git-discard-branch-builder.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CAC3C,EAAE,GAAG,oBAAoB;IAEzB,OAAO,MAAM,CAAC,MAAM,CAAmC;QACrD,KAAK;YACH,OAAO,MAAM,CAAC,MAAM,CAAuB;gBACzC,IAAI,EAAE,oBAAoB;gBAC1B,EAAE;gBACF,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { AstBuilder, GitKeepWorktreeNode } from '@paraharness/core';
2
+ /**
3
+ * Creates a fluent `AstBuilder<GitKeepWorktreeNode>` (`git.keepWorktree()`).
4
+ *
5
+ * Compiles into a passive `GitKeepWorktreeNode` (`type: 'git:keep-worktree'`, `resetsRunOverlay: false`)
6
+ * that preserves the active worktree and uncommitted topology overlay across a `.rewindTo()` signal.
7
+ *
8
+ * @param {string} [id='git-keep-worktree'] - Optional custom identifier for the rewind hook node.
9
+ *
10
+ * @returns {AstBuilder<GitKeepWorktreeNode>} Immutable rewind hook builder instance.
11
+ */
12
+ export declare function createGitKeepWorktreeBuilder(id?: string): AstBuilder<GitKeepWorktreeNode>;
13
+ //# sourceMappingURL=create-git-keep-worktree-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-keep-worktree-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-git-keep-worktree-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEzE;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,EAAE,SAAsB,GACvB,UAAU,CAAC,mBAAmB,CAAC,CAUjC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Creates a fluent `AstBuilder<GitKeepWorktreeNode>` (`git.keepWorktree()`).
3
+ *
4
+ * Compiles into a passive `GitKeepWorktreeNode` (`type: 'git:keep-worktree'`, `resetsRunOverlay: false`)
5
+ * that preserves the active worktree and uncommitted topology overlay across a `.rewindTo()` signal.
6
+ *
7
+ * @param {string} [id='git-keep-worktree'] - Optional custom identifier for the rewind hook node.
8
+ *
9
+ * @returns {AstBuilder<GitKeepWorktreeNode>} Immutable rewind hook builder instance.
10
+ */
11
+ export function createGitKeepWorktreeBuilder(id = 'git-keep-worktree') {
12
+ return Object.freeze({
13
+ toAST() {
14
+ return Object.freeze({
15
+ type: 'git:keep-worktree',
16
+ id,
17
+ resetsRunOverlay: false,
18
+ });
19
+ },
20
+ });
21
+ }
22
+ //# sourceMappingURL=create-git-keep-worktree-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-keep-worktree-builder.js","sourceRoot":"","sources":["../../src/builders/create-git-keep-worktree-builder.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAC1C,EAAE,GAAG,mBAAmB;IAExB,OAAO,MAAM,CAAC,MAAM,CAAkC;QACpD,KAAK;YACH,OAAO,MAAM,CAAC,MAAM,CAAsB;gBACxC,IAAI,EAAE,mBAAmB;gBACzB,EAAE;gBACF,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { GitMergeQueueBuilder } from './git-merge-queue-builder.js';
2
+ import type { GitMergeQueueOptions } from './git-merge-queue-options.js';
3
+ /**
4
+ * Creates a fluent `GitMergeQueueBuilder` (`git.mergeQueue(id, options)`).
5
+ *
6
+ * Compiles into a passive `GitMergeQueueNode<TIn, TOut>` configuring cumulative merge-train batching and binary bisection.
7
+ *
8
+ * @template TIn Validated step input type.
9
+ * @template TOut Validated step output type.
10
+ *
11
+ * @param {string} id - Unique merge queue step identifier.
12
+ * @param {GitMergeQueueOptions<TIn, TOut>} options - Target branch, batch size, and verification check configuration.
13
+ *
14
+ * @returns {GitMergeQueueBuilder<TIn, TOut>} Immutable fluent `GitMergeQueueBuilder` instance.
15
+ *
16
+ * @throws {Error} If `id` is empty or `maxBatchSize` is not a positive integer.
17
+ */
18
+ export declare function createGitMergeQueueBuilder<TIn = unknown, TOut = unknown>(id: string, options: GitMergeQueueOptions<TIn, TOut>): GitMergeQueueBuilder<TIn, TOut>;
19
+ //# sourceMappingURL=create-git-merge-queue-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-merge-queue-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-git-merge-queue-builder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EACtE,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,GACvC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CA+CjC"}
@@ -0,0 +1,59 @@
1
+ import { extractAST, z, } from '@paraharness/core';
2
+ /**
3
+ * Creates a fluent `GitMergeQueueBuilder` (`git.mergeQueue(id, options)`).
4
+ *
5
+ * Compiles into a passive `GitMergeQueueNode<TIn, TOut>` configuring cumulative merge-train batching and binary bisection.
6
+ *
7
+ * @template TIn Validated step input type.
8
+ * @template TOut Validated step output type.
9
+ *
10
+ * @param {string} id - Unique merge queue step identifier.
11
+ * @param {GitMergeQueueOptions<TIn, TOut>} options - Target branch, batch size, and verification check configuration.
12
+ *
13
+ * @returns {GitMergeQueueBuilder<TIn, TOut>} Immutable fluent `GitMergeQueueBuilder` instance.
14
+ *
15
+ * @throws {Error} If `id` is empty or `maxBatchSize` is not a positive integer.
16
+ */
17
+ export function createGitMergeQueueBuilder(id, options) {
18
+ if (id.trim().length === 0) {
19
+ throw new Error("git.mergeQueue: 'id' must be a non-empty string.");
20
+ }
21
+ const maxBatchSize = options.maxBatchSize ?? 4;
22
+ if (!Number.isInteger(maxBatchSize) || maxBatchSize < 1) {
23
+ throw new Error(`git.mergeQueue: 'maxBatchSize' must be a positive integer (received ${maxBatchSize}).`);
24
+ }
25
+ return Object.freeze({
26
+ input(schema) {
27
+ return createGitMergeQueueBuilder(id, {
28
+ targetBranch: options.targetBranch,
29
+ maxBatchSize: options.maxBatchSize,
30
+ verifyWith: options.verifyWith,
31
+ inputSchema: schema,
32
+ outputSchema: options.outputSchema,
33
+ });
34
+ },
35
+ output(schema) {
36
+ return createGitMergeQueueBuilder(id, {
37
+ targetBranch: options.targetBranch,
38
+ maxBatchSize: options.maxBatchSize,
39
+ verifyWith: options.verifyWith,
40
+ inputSchema: options.inputSchema,
41
+ outputSchema: schema,
42
+ });
43
+ },
44
+ toAST() {
45
+ const inputSchema = options.inputSchema ?? z.custom(() => true);
46
+ const outputSchema = options.outputSchema ?? z.custom(() => true);
47
+ return Object.freeze({
48
+ type: 'git:merge-queue',
49
+ id,
50
+ inputSchema,
51
+ outputSchema,
52
+ targetBranch: options.targetBranch ?? 'main',
53
+ maxBatchSize,
54
+ verifyWith: extractAST(options.verifyWith),
55
+ });
56
+ },
57
+ });
58
+ }
59
+ //# sourceMappingURL=create-git-merge-queue-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-merge-queue-builder.js","sourceRoot":"","sources":["../../src/builders/create-git-merge-queue-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,CAAC,GAEF,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CACxC,EAAU,EACV,OAAwC;IAExC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,uEAAuE,YAAY,IAAI,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAkC;QACpD,KAAK,CACH,MAA0B;YAE1B,OAAO,0BAA0B,CAAgB,EAAE,EAAE;gBACnD,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,WAAW,EAAE,MAAM;gBACnB,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CACJ,MAA2B;YAE3B,OAAO,0BAA0B,CAAgB,EAAE,EAAE;gBACnD,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QACD,KAAK;YACH,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,CAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,CAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC,MAAM,CAA+B;gBACjD,IAAI,EAAE,iBAAiB;gBACvB,EAAE;gBACF,WAAW;gBACX,YAAY;gBACZ,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,MAAM;gBAC5C,YAAY;gBACZ,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;aAC3C,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type CrossVerifierBuilder, type GitPatchEquivalenceNode, type GitScopeReceipt, type GitWorktreeHandle } from '@paraharness/core';
2
+ /**
3
+ * Creates a `CrossVerifierBuilder` for normalized patch equivalence clustering (`git.patchEquivalence`).
4
+ *
5
+ * Exposes `.id`, `.reportSchema`, and `.toAST()` producing a passive `GitPatchEquivalenceNode`
6
+ * that groups surviving speculative branches with equivalent normalized diffs into equivalence classes.
7
+ *
8
+ * @param {string} [id='git-patch-equivalence'] - Optional unique identifier for the cross-verifier node.
9
+ *
10
+ * @returns {CrossVerifierBuilder<GitWorktreeHandle, GitScopeReceipt, Record<string, unknown>, GitPatchEquivalenceNode>} Immutable cross-verifier builder.
11
+ */
12
+ export declare function createGitPatchEquivalenceBuilder(id?: string): CrossVerifierBuilder<GitWorktreeHandle, GitScopeReceipt, Record<string, unknown>, GitPatchEquivalenceNode>;
13
+ //# sourceMappingURL=create-git-patch-equivalence-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-patch-equivalence-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-git-patch-equivalence-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,EAAE,SAA0B,GAC3B,oBAAoB,CACrB,iBAAiB,EACjB,eAAe,EACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,uBAAuB,CACxB,CA0BA"}
@@ -0,0 +1,32 @@
1
+ import { z, } from '@paraharness/core';
2
+ /**
3
+ * Creates a `CrossVerifierBuilder` for normalized patch equivalence clustering (`git.patchEquivalence`).
4
+ *
5
+ * Exposes `.id`, `.reportSchema`, and `.toAST()` producing a passive `GitPatchEquivalenceNode`
6
+ * that groups surviving speculative branches with equivalent normalized diffs into equivalence classes.
7
+ *
8
+ * @param {string} [id='git-patch-equivalence'] - Optional unique identifier for the cross-verifier node.
9
+ *
10
+ * @returns {CrossVerifierBuilder<GitWorktreeHandle, GitScopeReceipt, Record<string, unknown>, GitPatchEquivalenceNode>} Immutable cross-verifier builder.
11
+ */
12
+ export function createGitPatchEquivalenceBuilder(id = 'git-patch-equivalence') {
13
+ const reportSchema = z
14
+ .object({
15
+ equivalenceGroupIndex: z.number(),
16
+ equivalentBranchIndices: z.array(z.number()),
17
+ normalizedPatchDigest: z.string(),
18
+ })
19
+ .passthrough();
20
+ return Object.freeze({
21
+ id,
22
+ reportSchema,
23
+ toAST() {
24
+ return Object.freeze({
25
+ type: 'git:patch-equivalence',
26
+ id,
27
+ reportSchema,
28
+ });
29
+ },
30
+ });
31
+ }
32
+ //# sourceMappingURL=create-git-patch-equivalence-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-patch-equivalence-builder.js","sourceRoot":"","sources":["../../src/builders/create-git-patch-equivalence-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,CAAC,GAKF,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;GASG;AACH,MAAM,UAAU,gCAAgC,CAC9C,EAAE,GAAG,uBAAuB;IAO5B,MAAM,YAAY,GAAuC,CAAC;SACvD,MAAM,CAAC;QACN,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;QACjC,uBAAuB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;KAClC,CAAC;SACD,WAAW,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC,MAAM,CAOlB;QACA,EAAE;QACF,YAAY;QACZ,KAAK;YACH,OAAO,MAAM,CAAC,MAAM,CAA0B;gBAC5C,IAAI,EAAE,uBAAuB;gBAC7B,EAAE;gBACF,YAAY;aACb,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type CrossVerifierBuilder, type GitPublicSurfaceCrossTesterNode, type GitScopeReceipt, type GitWorktreeHandle } from '@paraharness/core';
2
+ import type { GitPublicSurfaceCrossTesterOptions } from './git-public-surface-cross-tester-options.js';
3
+ /**
4
+ * Creates a `CrossVerifierBuilder` for AST-gated public-boundary cross-testing (`git.publicSurfaceCrossTester`).
5
+ *
6
+ * Exposes `.id`, `.reportSchema`, and `.toAST()` producing a passive `GitPublicSurfaceCrossTesterNode`
7
+ * that transplants boundary-only tests across surviving speculative candidate branches.
8
+ *
9
+ * @param {GitPublicSurfaceCrossTesterOptions} options - Runner pool and filesystem partition map configuration.
10
+ *
11
+ * @returns {CrossVerifierBuilder<GitWorktreeHandle, GitScopeReceipt, Record<string, unknown>, GitPublicSurfaceCrossTesterNode>} Immutable cross-verifier builder.
12
+ */
13
+ export declare function createGitPublicSurfaceCrossTesterBuilder(options: GitPublicSurfaceCrossTesterOptions): CrossVerifierBuilder<GitWorktreeHandle, GitScopeReceipt, Record<string, unknown>, GitPublicSurfaceCrossTesterNode>;
14
+ //# sourceMappingURL=create-git-public-surface-cross-tester-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-git-public-surface-cross-tester-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-git-public-surface-cross-tester-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAEvG;;;;;;;;;GASG;AACH,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,kCAAkC,GAC1C,oBAAoB,CACrB,iBAAiB,EACjB,eAAe,EACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,+BAA+B,CAChC,CA8BA"}