@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.
- package/LICENSE +21 -0
- package/README.md +68 -2
- package/dist/builders/create-git-candidate-comparison-tools.d.ts +13 -0
- package/dist/builders/create-git-candidate-comparison-tools.d.ts.map +1 -0
- package/dist/builders/create-git-candidate-comparison-tools.js +41 -0
- package/dist/builders/create-git-candidate-comparison-tools.js.map +1 -0
- package/dist/builders/create-git-commit-and-push-builder.d.ts +18 -0
- package/dist/builders/create-git-commit-and-push-builder.d.ts.map +1 -0
- package/dist/builders/create-git-commit-and-push-builder.js +65 -0
- package/dist/builders/create-git-commit-and-push-builder.js.map +1 -0
- package/dist/builders/create-git-cow-worktree-builder.d.ts +15 -0
- package/dist/builders/create-git-cow-worktree-builder.d.ts.map +1 -0
- package/dist/builders/create-git-cow-worktree-builder.js +64 -0
- package/dist/builders/create-git-cow-worktree-builder.js.map +1 -0
- package/dist/builders/create-git-discard-branch-builder.d.ts +13 -0
- package/dist/builders/create-git-discard-branch-builder.d.ts.map +1 -0
- package/dist/builders/create-git-discard-branch-builder.js +22 -0
- package/dist/builders/create-git-discard-branch-builder.js.map +1 -0
- package/dist/builders/create-git-keep-worktree-builder.d.ts +13 -0
- package/dist/builders/create-git-keep-worktree-builder.d.ts.map +1 -0
- package/dist/builders/create-git-keep-worktree-builder.js +22 -0
- package/dist/builders/create-git-keep-worktree-builder.js.map +1 -0
- package/dist/builders/create-git-merge-queue-builder.d.ts +19 -0
- package/dist/builders/create-git-merge-queue-builder.d.ts.map +1 -0
- package/dist/builders/create-git-merge-queue-builder.js +59 -0
- package/dist/builders/create-git-merge-queue-builder.js.map +1 -0
- package/dist/builders/create-git-patch-equivalence-builder.d.ts +13 -0
- package/dist/builders/create-git-patch-equivalence-builder.d.ts.map +1 -0
- package/dist/builders/create-git-patch-equivalence-builder.js +32 -0
- package/dist/builders/create-git-patch-equivalence-builder.js.map +1 -0
- package/dist/builders/create-git-public-surface-cross-tester-builder.d.ts +14 -0
- package/dist/builders/create-git-public-surface-cross-tester-builder.d.ts.map +1 -0
- package/dist/builders/create-git-public-surface-cross-tester-builder.js +36 -0
- package/dist/builders/create-git-public-surface-cross-tester-builder.js.map +1 -0
- package/dist/builders/create-git-ref-reader-tools.d.ts +13 -0
- package/dist/builders/create-git-ref-reader-tools.d.ts.map +1 -0
- package/dist/builders/create-git-ref-reader-tools.js +41 -0
- package/dist/builders/create-git-ref-reader-tools.js.map +1 -0
- package/dist/builders/create-git-reset-worktree-builder.d.ts +13 -0
- package/dist/builders/create-git-reset-worktree-builder.d.ts.map +1 -0
- package/dist/builders/create-git-reset-worktree-builder.js +22 -0
- package/dist/builders/create-git-reset-worktree-builder.js.map +1 -0
- package/dist/builders/create-git-snapshot-and-reset-builder.d.ts +13 -0
- package/dist/builders/create-git-snapshot-and-reset-builder.d.ts.map +1 -0
- package/dist/builders/create-git-snapshot-and-reset-builder.js +23 -0
- package/dist/builders/create-git-snapshot-and-reset-builder.js.map +1 -0
- package/dist/builders/git-commit-and-push-builder.d.ts +44 -0
- package/dist/builders/git-commit-and-push-builder.d.ts.map +1 -0
- package/dist/builders/git-commit-and-push-builder.js +2 -0
- package/dist/builders/git-commit-and-push-builder.js.map +1 -0
- package/dist/builders/git-commit-and-push-options.d.ts +22 -0
- package/dist/builders/git-commit-and-push-options.d.ts.map +1 -0
- package/dist/builders/git-commit-and-push-options.js +2 -0
- package/dist/builders/git-commit-and-push-options.js.map +1 -0
- package/dist/builders/git-cow-worktree-builder.d.ts +64 -0
- package/dist/builders/git-cow-worktree-builder.d.ts.map +1 -0
- package/dist/builders/git-cow-worktree-builder.js +2 -0
- package/dist/builders/git-cow-worktree-builder.js.map +1 -0
- package/dist/builders/git-cow-worktree-options.d.ts +42 -0
- package/dist/builders/git-cow-worktree-options.d.ts.map +1 -0
- package/dist/builders/git-cow-worktree-options.js +2 -0
- package/dist/builders/git-cow-worktree-options.js.map +1 -0
- package/dist/builders/git-merge-queue-builder.d.ts +37 -0
- package/dist/builders/git-merge-queue-builder.d.ts.map +1 -0
- package/dist/builders/git-merge-queue-builder.js +2 -0
- package/dist/builders/git-merge-queue-builder.js.map +1 -0
- package/dist/builders/git-merge-queue-options.d.ts +23 -0
- package/dist/builders/git-merge-queue-options.d.ts.map +1 -0
- package/dist/builders/git-merge-queue-options.js +2 -0
- package/dist/builders/git-merge-queue-options.js.map +1 -0
- package/dist/builders/git-namespace-contract.d.ts +141 -0
- package/dist/builders/git-namespace-contract.d.ts.map +1 -0
- package/dist/builders/git-namespace-contract.js +2 -0
- package/dist/builders/git-namespace-contract.js.map +1 -0
- package/dist/builders/git-namespace.d.ts +6 -0
- package/dist/builders/git-namespace.d.ts.map +1 -0
- package/dist/builders/git-namespace.js +32 -0
- package/dist/builders/git-namespace.js.map +1 -0
- package/dist/builders/git-public-surface-cross-tester-options.d.ts +16 -0
- package/dist/builders/git-public-surface-cross-tester-options.d.ts.map +1 -0
- package/dist/builders/git-public-surface-cross-tester-options.js +2 -0
- package/dist/builders/git-public-surface-cross-tester-options.js.map +1 -0
- package/dist/builders/git-reconcile-strategy-options.d.ts +16 -0
- package/dist/builders/git-reconcile-strategy-options.d.ts.map +1 -0
- package/dist/builders/git-reconcile-strategy-options.js +2 -0
- package/dist/builders/git-reconcile-strategy-options.js.map +1 -0
- package/dist/builders/internal/build-git-cow-worktree-node.d.ts +35 -0
- package/dist/builders/internal/build-git-cow-worktree-node.d.ts.map +1 -0
- package/dist/builders/internal/build-git-cow-worktree-node.js +77 -0
- package/dist/builders/internal/build-git-cow-worktree-node.js.map +1 -0
- package/dist/executors/create-git-executors.d.ts +12 -0
- package/dist/executors/create-git-executors.d.ts.map +1 -0
- package/dist/executors/create-git-executors.js +43 -0
- package/dist/executors/create-git-executors.js.map +1 -0
- package/dist/executors/git-checkpoint-payload.d.ts +44 -0
- package/dist/executors/git-checkpoint-payload.d.ts.map +1 -0
- package/dist/executors/git-checkpoint-payload.js +2 -0
- package/dist/executors/git-checkpoint-payload.js.map +1 -0
- package/dist/executors/git-commit-and-merge-steps.d.ts +33 -0
- package/dist/executors/git-commit-and-merge-steps.d.ts.map +1 -0
- package/dist/executors/git-commit-and-merge-steps.js +52 -0
- package/dist/executors/git-commit-and-merge-steps.js.map +1 -0
- package/dist/executors/git-cow-worktree-scope.d.ts +201 -0
- package/dist/executors/git-cow-worktree-scope.d.ts.map +1 -0
- package/dist/executors/git-cow-worktree-scope.js +260 -0
- package/dist/executors/git-cow-worktree-scope.js.map +1 -0
- package/dist/executors/git-cross-verifiers-and-tools.d.ts +42 -0
- package/dist/executors/git-cross-verifiers-and-tools.d.ts.map +1 -0
- package/dist/executors/git-cross-verifiers-and-tools.js +112 -0
- package/dist/executors/git-cross-verifiers-and-tools.js.map +1 -0
- package/dist/executors/git-executors.constants.d.ts +4 -0
- package/dist/executors/git-executors.constants.d.ts.map +1 -0
- package/dist/executors/git-executors.constants.js +4 -0
- package/dist/executors/git-executors.constants.js.map +1 -0
- package/dist/executors/git-hooks-and-checks.d.ts +51 -0
- package/dist/executors/git-hooks-and-checks.d.ts.map +1 -0
- package/dist/executors/git-hooks-and-checks.js +139 -0
- package/dist/executors/git-hooks-and-checks.js.map +1 -0
- package/dist/executors/internal/checkpoint-restore-steps.d.ts +50 -0
- package/dist/executors/internal/checkpoint-restore-steps.d.ts.map +1 -0
- package/dist/executors/internal/checkpoint-restore-steps.js +184 -0
- package/dist/executors/internal/checkpoint-restore-steps.js.map +1 -0
- package/dist/executors/internal/checkpoint-staging-and-integrity.d.ts +51 -0
- package/dist/executors/internal/checkpoint-staging-and-integrity.d.ts.map +1 -0
- package/dist/executors/internal/checkpoint-staging-and-integrity.js +192 -0
- package/dist/executors/internal/checkpoint-staging-and-integrity.js.map +1 -0
- package/dist/executors/internal/compute-worktree-status-options.d.ts +15 -0
- package/dist/executors/internal/compute-worktree-status-options.d.ts.map +1 -0
- package/dist/executors/internal/compute-worktree-status-options.js +2 -0
- package/dist/executors/internal/compute-worktree-status-options.js.map +1 -0
- package/dist/executors/internal/cow-worktree-hydrator.d.ts +51 -0
- package/dist/executors/internal/cow-worktree-hydrator.d.ts.map +1 -0
- package/dist/executors/internal/cow-worktree-hydrator.js +174 -0
- package/dist/executors/internal/cow-worktree-hydrator.js.map +1 -0
- package/dist/executors/internal/file-digest-and-globs.d.ts +58 -0
- package/dist/executors/internal/file-digest-and-globs.d.ts.map +1 -0
- package/dist/executors/internal/file-digest-and-globs.js +188 -0
- package/dist/executors/internal/file-digest-and-globs.js.map +1 -0
- package/dist/executors/internal/git-checkpoint-diff-effects.d.ts +16 -0
- package/dist/executors/internal/git-checkpoint-diff-effects.d.ts.map +1 -0
- package/dist/executors/internal/git-checkpoint-diff-effects.js +38 -0
- package/dist/executors/internal/git-checkpoint-diff-effects.js.map +1 -0
- package/dist/executors/internal/git-checkpoint-restore.d.ts +14 -0
- package/dist/executors/internal/git-checkpoint-restore.d.ts.map +1 -0
- package/dist/executors/internal/git-checkpoint-restore.js +37 -0
- package/dist/executors/internal/git-checkpoint-restore.js.map +1 -0
- package/dist/executors/internal/git-checkpoint-serialize.d.ts +13 -0
- package/dist/executors/internal/git-checkpoint-serialize.d.ts.map +1 -0
- package/dist/executors/internal/git-checkpoint-serialize.js +48 -0
- package/dist/executors/internal/git-checkpoint-serialize.js.map +1 -0
- package/dist/executors/internal/git-checkpoint-status-map.d.ts +14 -0
- package/dist/executors/internal/git-checkpoint-status-map.d.ts.map +1 -0
- package/dist/executors/internal/git-checkpoint-status-map.js +27 -0
- package/dist/executors/internal/git-checkpoint-status-map.js.map +1 -0
- package/dist/executors/internal/git-cli-command-options.d.ts +21 -0
- package/dist/executors/internal/git-cli-command-options.d.ts.map +1 -0
- package/dist/executors/internal/git-cli-command-options.js +2 -0
- package/dist/executors/internal/git-cli-command-options.js.map +1 -0
- package/dist/executors/internal/git-cli-command-result.d.ts +16 -0
- package/dist/executors/internal/git-cli-command-result.d.ts.map +1 -0
- package/dist/executors/internal/git-cli-command-result.js +2 -0
- package/dist/executors/internal/git-cli-command-result.js.map +1 -0
- package/dist/executors/internal/git-cli-runner.d.ts +73 -0
- package/dist/executors/internal/git-cli-runner.d.ts.map +1 -0
- package/dist/executors/internal/git-cli-runner.js +157 -0
- package/dist/executors/internal/git-cli-runner.js.map +1 -0
- package/dist/executors/internal/git-cross-test-import-scanner.d.ts +68 -0
- package/dist/executors/internal/git-cross-test-import-scanner.d.ts.map +1 -0
- package/dist/executors/internal/git-cross-test-import-scanner.js +226 -0
- package/dist/executors/internal/git-cross-test-import-scanner.js.map +1 -0
- package/dist/executors/internal/git-executor.constants.d.ts +29 -0
- package/dist/executors/internal/git-executor.constants.d.ts.map +1 -0
- package/dist/executors/internal/git-executor.constants.js +40 -0
- package/dist/executors/internal/git-executor.constants.js.map +1 -0
- package/dist/executors/internal/git-merge-train-bisect.d.ts +51 -0
- package/dist/executors/internal/git-merge-train-bisect.d.ts.map +1 -0
- package/dist/executors/internal/git-merge-train-bisect.js +152 -0
- package/dist/executors/internal/git-merge-train-bisect.js.map +1 -0
- package/dist/executors/internal/git-tool-dispatchers.d.ts +26 -0
- package/dist/executors/internal/git-tool-dispatchers.d.ts.map +1 -0
- package/dist/executors/internal/git-tool-dispatchers.js +174 -0
- package/dist/executors/internal/git-tool-dispatchers.js.map +1 -0
- package/dist/executors/internal/git-worktree-acquire-root.d.ts +22 -0
- package/dist/executors/internal/git-worktree-acquire-root.d.ts.map +1 -0
- package/dist/executors/internal/git-worktree-acquire-root.js +67 -0
- package/dist/executors/internal/git-worktree-acquire-root.js.map +1 -0
- package/dist/executors/internal/git-worktree-commit-child.d.ts +26 -0
- package/dist/executors/internal/git-worktree-commit-child.d.ts.map +1 -0
- package/dist/executors/internal/git-worktree-commit-child.js +88 -0
- package/dist/executors/internal/git-worktree-commit-child.js.map +1 -0
- package/dist/executors/internal/git-worktree-flush-and-prune.d.ts +43 -0
- package/dist/executors/internal/git-worktree-flush-and-prune.d.ts.map +1 -0
- package/dist/executors/internal/git-worktree-flush-and-prune.js +169 -0
- package/dist/executors/internal/git-worktree-flush-and-prune.js.map +1 -0
- package/dist/executors/internal/git-worktree-fork-and-release.d.ts +37 -0
- package/dist/executors/internal/git-worktree-fork-and-release.d.ts.map +1 -0
- package/dist/executors/internal/git-worktree-fork-and-release.js +159 -0
- package/dist/executors/internal/git-worktree-fork-and-release.js.map +1 -0
- package/dist/executors/internal/git-worktree-materialize-merge.d.ts +51 -0
- package/dist/executors/internal/git-worktree-materialize-merge.d.ts.map +1 -0
- package/dist/executors/internal/git-worktree-materialize-merge.js +161 -0
- package/dist/executors/internal/git-worktree-materialize-merge.js.map +1 -0
- package/dist/executors/internal/git-worktree-reattach.d.ts +57 -0
- package/dist/executors/internal/git-worktree-reattach.d.ts.map +1 -0
- package/dist/executors/internal/git-worktree-reattach.js +324 -0
- package/dist/executors/internal/git-worktree-reattach.js.map +1 -0
- package/dist/executors/internal/git-worktree-sync-child-and-root.d.ts +26 -0
- package/dist/executors/internal/git-worktree-sync-child-and-root.d.ts.map +1 -0
- package/dist/executors/internal/git-worktree-sync-child-and-root.js +82 -0
- package/dist/executors/internal/git-worktree-sync-child-and-root.js.map +1 -0
- package/dist/executors/internal/host-repository-head-state.d.ts +10 -0
- package/dist/executors/internal/host-repository-head-state.d.ts.map +1 -0
- package/dist/executors/internal/host-repository-head-state.js +2 -0
- package/dist/executors/internal/host-repository-head-state.js.map +1 -0
- package/dist/executors/internal/merge-train-candidate.d.ts +14 -0
- package/dist/executors/internal/merge-train-candidate.d.ts.map +1 -0
- package/dist/executors/internal/merge-train-candidate.js +2 -0
- package/dist/executors/internal/merge-train-candidate.js.map +1 -0
- package/dist/executors/internal/merge-train-chain-entry.d.ts +13 -0
- package/dist/executors/internal/merge-train-chain-entry.d.ts.map +1 -0
- package/dist/executors/internal/merge-train-chain-entry.js +2 -0
- package/dist/executors/internal/merge-train-chain-entry.js.map +1 -0
- package/dist/executors/internal/merge-train-result.d.ts +19 -0
- package/dist/executors/internal/merge-train-result.d.ts.map +1 -0
- package/dist/executors/internal/merge-train-result.js +2 -0
- package/dist/executors/internal/merge-train-result.js.map +1 -0
- package/dist/executors/internal/merge-train-runner.d.ts +16 -0
- package/dist/executors/internal/merge-train-runner.d.ts.map +1 -0
- package/dist/executors/internal/merge-train-runner.js +141 -0
- package/dist/executors/internal/merge-train-runner.js.map +1 -0
- package/dist/executors/internal/merge-tree-materializer-params.d.ts +19 -0
- package/dist/executors/internal/merge-tree-materializer-params.d.ts.map +1 -0
- package/dist/executors/internal/merge-tree-materializer-params.js +2 -0
- package/dist/executors/internal/merge-tree-materializer-params.js.map +1 -0
- package/dist/executors/internal/parent-fast-forward.d.ts +47 -0
- package/dist/executors/internal/parent-fast-forward.d.ts.map +1 -0
- package/dist/executors/internal/parent-fast-forward.js +138 -0
- package/dist/executors/internal/parent-fast-forward.js.map +1 -0
- package/dist/executors/internal/porcelain-v2-parser.d.ts +49 -0
- package/dist/executors/internal/porcelain-v2-parser.d.ts.map +1 -0
- package/dist/executors/internal/porcelain-v2-parser.js +165 -0
- package/dist/executors/internal/porcelain-v2-parser.js.map +1 -0
- package/dist/executors/internal/resolve-effective-base-branch.d.ts +13 -0
- package/dist/executors/internal/resolve-effective-base-branch.d.ts.map +1 -0
- package/dist/executors/internal/resolve-effective-base-branch.js +38 -0
- package/dist/executors/internal/resolve-effective-base-branch.js.map +1 -0
- package/dist/executors/internal/squash-rebase-and-push.d.ts +14 -0
- package/dist/executors/internal/squash-rebase-and-push.d.ts.map +1 -0
- package/dist/executors/internal/squash-rebase-and-push.js +192 -0
- package/dist/executors/internal/squash-rebase-and-push.js.map +1 -0
- package/dist/executors/internal/staged-checkpoint-tree-result.d.ts +13 -0
- package/dist/executors/internal/staged-checkpoint-tree-result.d.ts.map +1 -0
- package/dist/executors/internal/staged-checkpoint-tree-result.js +2 -0
- package/dist/executors/internal/staged-checkpoint-tree-result.js.map +1 -0
- package/dist/executors/internal/stateless-merge-tree-result.d.ts +12 -0
- package/dist/executors/internal/stateless-merge-tree-result.d.ts.map +1 -0
- package/dist/executors/internal/stateless-merge-tree-result.js +2 -0
- package/dist/executors/internal/stateless-merge-tree-result.js.map +1 -0
- package/dist/executors/internal/synthesized-working-tree-commit.d.ts +10 -0
- package/dist/executors/internal/synthesized-working-tree-commit.d.ts.map +1 -0
- package/dist/executors/internal/synthesized-working-tree-commit.js +2 -0
- package/dist/executors/internal/synthesized-working-tree-commit.js.map +1 -0
- package/dist/executors/internal/worktree-integrity-verdict.d.ts +10 -0
- package/dist/executors/internal/worktree-integrity-verdict.d.ts.map +1 -0
- package/dist/executors/internal/worktree-integrity-verdict.js +2 -0
- package/dist/executors/internal/worktree-integrity-verdict.js.map +1 -0
- package/dist/executors/internal/worktree-status-snapshot.d.ts +17 -0
- package/dist/executors/internal/worktree-status-snapshot.d.ts.map +1 -0
- package/dist/executors/internal/worktree-status-snapshot.js +2 -0
- package/dist/executors/internal/worktree-status-snapshot.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/git-receipts.schema.d.ts +174 -0
- package/dist/schemas/git-receipts.schema.d.ts.map +1 -0
- package/dist/schemas/git-receipts.schema.js +123 -0
- package/dist/schemas/git-receipts.schema.js.map +1 -0
- 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
|
-
#
|
|
1
|
+
# @paraharness/git
|
|
2
2
|
|
|
3
|
-
|
|
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"}
|