dorfl 0.0.0 → 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/dist/advance-ci-template.d.ts +73 -0
- package/dist/advance-ci-template.d.ts.map +1 -0
- package/dist/advance-ci-template.js +104 -0
- package/dist/advance-ci-template.js.map +1 -0
- package/dist/advance-classify.d.ts +132 -0
- package/dist/advance-classify.d.ts.map +1 -0
- package/dist/advance-classify.js +120 -0
- package/dist/advance-classify.js.map +1 -0
- package/dist/advance-drivers.d.ts +182 -0
- package/dist/advance-drivers.d.ts.map +1 -0
- package/dist/advance-drivers.js +231 -0
- package/dist/advance-drivers.js.map +1 -0
- package/dist/advance-isolated.d.ts +156 -0
- package/dist/advance-isolated.d.ts.map +1 -0
- package/dist/advance-isolated.js +256 -0
- package/dist/advance-isolated.js.map +1 -0
- package/dist/advance-lifecycle-template.d.ts +107 -0
- package/dist/advance-lifecycle-template.d.ts.map +1 -0
- package/dist/advance-lifecycle-template.js +668 -0
- package/dist/advance-lifecycle-template.js.map +1 -0
- package/dist/advance-loop-driver.d.ts +325 -0
- package/dist/advance-loop-driver.d.ts.map +1 -0
- package/dist/advance-loop-driver.js +437 -0
- package/dist/advance-loop-driver.js.map +1 -0
- package/dist/advance-treeless-publish.d.ts +108 -0
- package/dist/advance-treeless-publish.d.ts.map +1 -0
- package/dist/advance-treeless-publish.js +71 -0
- package/dist/advance-treeless-publish.js.map +1 -0
- package/dist/advance.d.ts +340 -0
- package/dist/advance.d.ts.map +1 -0
- package/dist/advance.js +1122 -0
- package/dist/advance.js.map +1 -0
- package/dist/advancing-lock.d.ts +294 -0
- package/dist/advancing-lock.d.ts.map +1 -0
- package/dist/advancing-lock.js +594 -0
- package/dist/advancing-lock.js.map +1 -0
- package/dist/agent-launch.d.ts +79 -0
- package/dist/agent-launch.d.ts.map +1 -0
- package/dist/agent-launch.js +61 -0
- package/dist/agent-launch.js.map +1 -0
- package/dist/agent-stop.d.ts +149 -0
- package/dist/agent-stop.d.ts.map +1 -0
- package/dist/agent-stop.js +307 -0
- package/dist/agent-stop.js.map +1 -0
- package/dist/apply-decide.d.ts +127 -0
- package/dist/apply-decide.d.ts.map +1 -0
- package/dist/apply-decide.js +176 -0
- package/dist/apply-decide.js.map +1 -0
- package/dist/apply-merge-action.d.ts +206 -0
- package/dist/apply-merge-action.d.ts.map +1 -0
- package/dist/apply-merge-action.js +307 -0
- package/dist/apply-merge-action.js.map +1 -0
- package/dist/apply-persist.d.ts +174 -0
- package/dist/apply-persist.d.ts.map +1 -0
- package/dist/apply-persist.js +359 -0
- package/dist/apply-persist.js.map +1 -0
- package/dist/arbiter.d.ts +120 -0
- package/dist/arbiter.d.ts.map +1 -0
- package/dist/arbiter.js +255 -0
- package/dist/arbiter.js.map +1 -0
- package/dist/brand.d.ts +70 -0
- package/dist/brand.d.ts.map +1 -0
- package/dist/brand.js +84 -0
- package/dist/brand.js.map +1 -0
- package/dist/buildable-body.d.ts +132 -0
- package/dist/buildable-body.d.ts.map +1 -0
- package/dist/buildable-body.js +131 -0
- package/dist/buildable-body.js.map +1 -0
- package/dist/categorise.d.ts +66 -0
- package/dist/categorise.d.ts.map +1 -0
- package/dist/categorise.js +106 -0
- package/dist/categorise.js.map +1 -0
- package/dist/claim-cas.d.ts +117 -0
- package/dist/claim-cas.d.ts.map +1 -0
- package/dist/claim-cas.js +312 -0
- package/dist/claim-cas.js.map +1 -0
- package/dist/cli-spinner.d.ts +112 -0
- package/dist/cli-spinner.d.ts.map +1 -0
- package/dist/cli-spinner.js +157 -0
- package/dist/cli-spinner.js.map +1 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3094 -0
- package/dist/cli.js.map +1 -0
- package/dist/close-job-template.d.ts +70 -0
- package/dist/close-job-template.d.ts.map +1 -0
- package/dist/close-job-template.js +180 -0
- package/dist/close-job-template.js.map +1 -0
- package/dist/close-job.d.ts +95 -0
- package/dist/close-job.d.ts.map +1 -0
- package/dist/close-job.js +226 -0
- package/dist/close-job.js.map +1 -0
- package/dist/complete.d.ts +361 -0
- package/dist/complete.d.ts.map +1 -0
- package/dist/complete.js +885 -0
- package/dist/complete.js.map +1 -0
- package/dist/concurrency.d.ts +68 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +112 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/config-override.d.ts +76 -0
- package/dist/config-override.d.ts.map +1 -0
- package/dist/config-override.js +50 -0
- package/dist/config-override.js.map +1 -0
- package/dist/config.d.ts +668 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +241 -0
- package/dist/config.js.map +1 -0
- package/dist/continue-branch.d.ts +249 -0
- package/dist/continue-branch.d.ts.map +1 -0
- package/dist/continue-branch.js +389 -0
- package/dist/continue-branch.js.map +1 -0
- package/dist/cwd-section.d.ts +186 -0
- package/dist/cwd-section.d.ts.map +1 -0
- package/dist/cwd-section.js +209 -0
- package/dist/cwd-section.js.map +1 -0
- package/dist/decision-engine.d.ts +170 -0
- package/dist/decision-engine.d.ts.map +1 -0
- package/dist/decision-engine.js +136 -0
- package/dist/decision-engine.js.map +1 -0
- package/dist/detect.d.ts +17 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +118 -0
- package/dist/detect.js.map +1 -0
- package/dist/do-autopick.d.ts +85 -0
- package/dist/do-autopick.d.ts.map +1 -0
- package/dist/do-autopick.js +112 -0
- package/dist/do-autopick.js.map +1 -0
- package/dist/do-config.d.ts +312 -0
- package/dist/do-config.d.ts.map +1 -0
- package/dist/do-config.js +358 -0
- package/dist/do-config.js.map +1 -0
- package/dist/do-remote-auto.d.ts +75 -0
- package/dist/do-remote-auto.d.ts.map +1 -0
- package/dist/do-remote-auto.js +111 -0
- package/dist/do-remote-auto.js.map +1 -0
- package/dist/do.d.ts +621 -0
- package/dist/do.d.ts.map +1 -0
- package/dist/do.js +1882 -0
- package/dist/do.js.map +1 -0
- package/dist/drop-source.d.ts +96 -0
- package/dist/drop-source.d.ts.map +1 -0
- package/dist/drop-source.js +91 -0
- package/dist/drop-source.js.map +1 -0
- package/dist/eligibility.d.ts +46 -0
- package/dist/eligibility.d.ts.map +1 -0
- package/dist/eligibility.js +34 -0
- package/dist/eligibility.js.map +1 -0
- package/dist/env-config.d.ts +51 -0
- package/dist/env-config.d.ts.map +1 -0
- package/dist/env-config.js +272 -0
- package/dist/env-config.js.map +1 -0
- package/dist/failure-cause.d.ts +70 -0
- package/dist/failure-cause.d.ts.map +1 -0
- package/dist/failure-cause.js +126 -0
- package/dist/failure-cause.js.map +1 -0
- package/dist/format.d.ts +43 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +256 -0
- package/dist/format.js.map +1 -0
- package/dist/frontmatter.d.ts +215 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +345 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/gate-readiness.d.ts +84 -0
- package/dist/gate-readiness.d.ts.map +1 -0
- package/dist/gate-readiness.js +103 -0
- package/dist/gate-readiness.js.map +1 -0
- package/dist/gc.d.ts +165 -0
- package/dist/gc.d.ts.map +1 -0
- package/dist/gc.js +313 -0
- package/dist/gc.js.map +1 -0
- package/dist/gh-failure.d.ts +42 -0
- package/dist/gh-failure.d.ts.map +1 -0
- package/dist/gh-failure.js +49 -0
- package/dist/gh-failure.js.map +1 -0
- package/dist/git.d.ts +75 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +130 -0
- package/dist/git.js.map +1 -0
- package/dist/github.d.ts +187 -0
- package/dist/github.d.ts.map +1 -0
- package/dist/github.js +343 -0
- package/dist/github.js.map +1 -0
- package/dist/harness.d.ts +242 -0
- package/dist/harness.d.ts.map +1 -0
- package/dist/harness.js +157 -0
- package/dist/harness.js.map +1 -0
- package/dist/identity.d.ts +167 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +231 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +147 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/install-ci-branch-protection.d.ts +147 -0
- package/dist/install-ci-branch-protection.d.ts.map +1 -0
- package/dist/install-ci-branch-protection.js +166 -0
- package/dist/install-ci-branch-protection.js.map +1 -0
- package/dist/install-ci-capabilities/advance-lifecycle.d.ts +15 -0
- package/dist/install-ci-capabilities/advance-lifecycle.d.ts.map +1 -0
- package/dist/install-ci-capabilities/advance-lifecycle.js +28 -0
- package/dist/install-ci-capabilities/advance-lifecycle.js.map +1 -0
- package/dist/install-ci-capabilities/close-job.d.ts +13 -0
- package/dist/install-ci-capabilities/close-job.d.ts.map +1 -0
- package/dist/install-ci-capabilities/close-job.js +26 -0
- package/dist/install-ci-capabilities/close-job.js.map +1 -0
- package/dist/install-ci-capabilities/example-noop.d.ts +16 -0
- package/dist/install-ci-capabilities/example-noop.d.ts.map +1 -0
- package/dist/install-ci-capabilities/example-noop.js +23 -0
- package/dist/install-ci-capabilities/example-noop.js.map +1 -0
- package/dist/install-ci-capabilities/intake.d.ts +15 -0
- package/dist/install-ci-capabilities/intake.d.ts.map +1 -0
- package/dist/install-ci-capabilities/intake.js +28 -0
- package/dist/install-ci-capabilities/intake.js.map +1 -0
- package/dist/install-ci-capabilities/verify.d.ts +14 -0
- package/dist/install-ci-capabilities/verify.d.ts.map +1 -0
- package/dist/install-ci-capabilities/verify.js +27 -0
- package/dist/install-ci-capabilities/verify.js.map +1 -0
- package/dist/install-ci-core.d.ts +446 -0
- package/dist/install-ci-core.d.ts.map +1 -0
- package/dist/install-ci-core.js +760 -0
- package/dist/install-ci-core.js.map +1 -0
- package/dist/install-ci-github.d.ts +167 -0
- package/dist/install-ci-github.d.ts.map +1 -0
- package/dist/install-ci-github.js +315 -0
- package/dist/install-ci-github.js.map +1 -0
- package/dist/install-ci.d.ts +105 -0
- package/dist/install-ci.d.ts.map +1 -0
- package/dist/install-ci.js +363 -0
- package/dist/install-ci.js.map +1 -0
- package/dist/intake-event.d.ts +88 -0
- package/dist/intake-event.d.ts.map +1 -0
- package/dist/intake-event.js +66 -0
- package/dist/intake-event.js.map +1 -0
- package/dist/intake-marker.d.ts +95 -0
- package/dist/intake-marker.d.ts.map +1 -0
- package/dist/intake-marker.js +127 -0
- package/dist/intake-marker.js.map +1 -0
- package/dist/intake-triage.d.ts +48 -0
- package/dist/intake-triage.d.ts.map +1 -0
- package/dist/intake-triage.js +95 -0
- package/dist/intake-triage.js.map +1 -0
- package/dist/intake-trigger-template.d.ts +185 -0
- package/dist/intake-trigger-template.d.ts.map +1 -0
- package/dist/intake-trigger-template.js +449 -0
- package/dist/intake-trigger-template.js.map +1 -0
- package/dist/intake.d.ts +569 -0
- package/dist/intake.d.ts.map +1 -0
- package/dist/intake.js +1628 -0
- package/dist/intake.js.map +1 -0
- package/dist/integration-core.d.ts +539 -0
- package/dist/integration-core.d.ts.map +1 -0
- package/dist/integration-core.js +2195 -0
- package/dist/integration-core.js.map +1 -0
- package/dist/integrator.d.ts +343 -0
- package/dist/integrator.d.ts.map +1 -0
- package/dist/integrator.js +400 -0
- package/dist/integrator.js.map +1 -0
- package/dist/isolation.d.ts +219 -0
- package/dist/isolation.d.ts.map +1 -0
- package/dist/isolation.js +261 -0
- package/dist/isolation.js.map +1 -0
- package/dist/issue-provider.d.ts +349 -0
- package/dist/issue-provider.d.ts.map +1 -0
- package/dist/issue-provider.js +360 -0
- package/dist/issue-provider.js.map +1 -0
- package/dist/item-lock.d.ts +626 -0
- package/dist/item-lock.d.ts.map +1 -0
- package/dist/item-lock.js +1381 -0
- package/dist/item-lock.js.map +1 -0
- package/dist/item-path.d.ts +49 -0
- package/dist/item-path.d.ts.map +1 -0
- package/dist/item-path.js +66 -0
- package/dist/item-path.js.map +1 -0
- package/dist/ledger-lint.d.ts +129 -0
- package/dist/ledger-lint.d.ts.map +1 -0
- package/dist/ledger-lint.js +249 -0
- package/dist/ledger-lint.js.map +1 -0
- package/dist/ledger-read.d.ts +357 -0
- package/dist/ledger-read.d.ts.map +1 -0
- package/dist/ledger-read.js +442 -0
- package/dist/ledger-read.js.map +1 -0
- package/dist/ledger-write.d.ts +330 -0
- package/dist/ledger-write.d.ts.map +1 -0
- package/dist/ledger-write.js +411 -0
- package/dist/ledger-write.js.map +1 -0
- package/dist/lifecycle-gather.d.ts +30 -0
- package/dist/lifecycle-gather.d.ts.map +1 -0
- package/dist/lifecycle-gather.js +205 -0
- package/dist/lifecycle-gather.js.map +1 -0
- package/dist/lifecycle-pools.d.ts +180 -0
- package/dist/lifecycle-pools.d.ts.map +1 -0
- package/dist/lifecycle-pools.js +78 -0
- package/dist/lifecycle-pools.js.map +1 -0
- package/dist/merge-question-surfacer.d.ts +166 -0
- package/dist/merge-question-surfacer.d.ts.map +1 -0
- package/dist/merge-question-surfacer.js +297 -0
- package/dist/merge-question-surfacer.js.map +1 -0
- package/dist/mint-adr.d.ts +126 -0
- package/dist/mint-adr.d.ts.map +1 -0
- package/dist/mint-adr.js +257 -0
- package/dist/mint-adr.js.map +1 -0
- package/dist/mirror-pool-scan.d.ts +125 -0
- package/dist/mirror-pool-scan.d.ts.map +1 -0
- package/dist/mirror-pool-scan.js +104 -0
- package/dist/mirror-pool-scan.js.map +1 -0
- package/dist/needs-attention.d.ts +341 -0
- package/dist/needs-attention.d.ts.map +1 -0
- package/dist/needs-attention.js +900 -0
- package/dist/needs-attention.js.map +1 -0
- package/dist/orphan-sidecar.d.ts +79 -0
- package/dist/orphan-sidecar.d.ts.map +1 -0
- package/dist/orphan-sidecar.js +71 -0
- package/dist/orphan-sidecar.js.map +1 -0
- package/dist/output.d.ts +48 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +66 -0
- package/dist/output.js.map +1 -0
- package/dist/pi-harness.d.ts +179 -0
- package/dist/pi-harness.d.ts.map +1 -0
- package/dist/pi-harness.js +342 -0
- package/dist/pi-harness.js.map +1 -0
- package/dist/placement.d.ts +99 -0
- package/dist/placement.d.ts.map +1 -0
- package/dist/placement.js +67 -0
- package/dist/placement.js.map +1 -0
- package/dist/prd-to-spec.d.ts +315 -0
- package/dist/prd-to-spec.d.ts.map +1 -0
- package/dist/prd-to-spec.js +684 -0
- package/dist/prd-to-spec.js.map +1 -0
- package/dist/prepare.d.ts +121 -0
- package/dist/prepare.d.ts.map +1 -0
- package/dist/prepare.js +140 -0
- package/dist/prepare.js.map +1 -0
- package/dist/prompt.d.ts +360 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +499 -0
- package/dist/prompt.js.map +1 -0
- package/dist/protocol/ADR-FORMAT.md +47 -0
- package/dist/protocol/CLAIM-PROTOCOL.md +217 -0
- package/dist/protocol/REVIEW-PROTOCOL.md +119 -0
- package/dist/protocol/SURFACE-PROTOCOL.md +121 -0
- package/dist/protocol/TASKING-PROTOCOL.md +122 -0
- package/dist/protocol/WORK-CONTRACT.md +276 -0
- package/dist/protocol/spec-template.md +71 -0
- package/dist/protocol/task-template.md +65 -0
- package/dist/readiness.d.ts +66 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +36 -0
- package/dist/readiness.js.map +1 -0
- package/dist/reap-branches.d.ts +102 -0
- package/dist/reap-branches.d.ts.map +1 -0
- package/dist/reap-branches.js +149 -0
- package/dist/reap-branches.js.map +1 -0
- package/dist/recover-isolated.d.ts +72 -0
- package/dist/recover-isolated.d.ts.map +1 -0
- package/dist/recover-isolated.js +188 -0
- package/dist/recover-isolated.js.map +1 -0
- package/dist/registry.d.ts +172 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +296 -0
- package/dist/registry.js.map +1 -0
- package/dist/repo-config.d.ts +201 -0
- package/dist/repo-config.d.ts.map +1 -0
- package/dist/repo-config.js +414 -0
- package/dist/repo-config.js.map +1 -0
- package/dist/repo-key.d.ts +20 -0
- package/dist/repo-key.d.ts.map +1 -0
- package/dist/repo-key.js +68 -0
- package/dist/repo-key.js.map +1 -0
- package/dist/repo-mirror.d.ts +177 -0
- package/dist/repo-mirror.d.ts.map +1 -0
- package/dist/repo-mirror.js +271 -0
- package/dist/repo-mirror.js.map +1 -0
- package/dist/retry-backoff.d.ts +90 -0
- package/dist/retry-backoff.d.ts.map +1 -0
- package/dist/retry-backoff.js +98 -0
- package/dist/retry-backoff.js.map +1 -0
- package/dist/review-gate.d.ts +173 -0
- package/dist/review-gate.d.ts.map +1 -0
- package/dist/review-gate.js +261 -0
- package/dist/review-gate.js.map +1 -0
- package/dist/review-verdict.d.ts +149 -0
- package/dist/review-verdict.d.ts.map +1 -0
- package/dist/review-verdict.js +332 -0
- package/dist/review-verdict.js.map +1 -0
- package/dist/run.d.ts +221 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +963 -0
- package/dist/run.js.map +1 -0
- package/dist/scan.d.ts +308 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +374 -0
- package/dist/scan.js.map +1 -0
- package/dist/select-order.d.ts +75 -0
- package/dist/select-order.d.ts.map +1 -0
- package/dist/select-order.js +108 -0
- package/dist/select-order.js.map +1 -0
- package/dist/select-priority.d.ts +188 -0
- package/dist/select-priority.d.ts.map +1 -0
- package/dist/select-priority.js +80 -0
- package/dist/select-priority.js.map +1 -0
- package/dist/select.d.ts +25 -0
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +43 -0
- package/dist/select.js.map +1 -0
- package/dist/session-path.d.ts +36 -0
- package/dist/session-path.d.ts.map +1 -0
- package/dist/session-path.js +129 -0
- package/dist/session-path.js.map +1 -0
- package/dist/sidecar-apply.d.ts +83 -0
- package/dist/sidecar-apply.d.ts.map +1 -0
- package/dist/sidecar-apply.js +111 -0
- package/dist/sidecar-apply.js.map +1 -0
- package/dist/sidecar.d.ts +245 -0
- package/dist/sidecar.d.ts.map +1 -0
- package/dist/sidecar.js +481 -0
- package/dist/sidecar.js.map +1 -0
- package/dist/slug-namespace.d.ts +204 -0
- package/dist/slug-namespace.d.ts.map +1 -0
- package/dist/slug-namespace.js +229 -0
- package/dist/slug-namespace.js.map +1 -0
- package/dist/spec-complete.d.ts +44 -0
- package/dist/spec-complete.d.ts.map +1 -0
- package/dist/spec-complete.js +69 -0
- package/dist/spec-complete.js.map +1 -0
- package/dist/start.d.ts +97 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +633 -0
- package/dist/start.js.map +1 -0
- package/dist/status.d.ts +199 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +228 -0
- package/dist/status.js.map +1 -0
- package/dist/surface-gate.d.ts +162 -0
- package/dist/surface-gate.d.ts.map +1 -0
- package/dist/surface-gate.js +206 -0
- package/dist/surface-gate.js.map +1 -0
- package/dist/surface-persist.d.ts +86 -0
- package/dist/surface-persist.d.ts.map +1 -0
- package/dist/surface-persist.js +129 -0
- package/dist/surface-persist.js.map +1 -0
- package/dist/tasker-review-loop.d.ts +249 -0
- package/dist/tasker-review-loop.d.ts.map +1 -0
- package/dist/tasker-review-loop.js +369 -0
- package/dist/tasker-review-loop.js.map +1 -0
- package/dist/tasking-eligibility.d.ts +74 -0
- package/dist/tasking-eligibility.d.ts.map +1 -0
- package/dist/tasking-eligibility.js +52 -0
- package/dist/tasking-eligibility.js.map +1 -0
- package/dist/tasking-lock.d.ts +111 -0
- package/dist/tasking-lock.d.ts.map +1 -0
- package/dist/tasking-lock.js +256 -0
- package/dist/tasking-lock.js.map +1 -0
- package/dist/tasking.d.ts +275 -0
- package/dist/tasking.d.ts.map +1 -0
- package/dist/tasking.js +952 -0
- package/dist/tasking.js.map +1 -0
- package/dist/triage-gate.d.ts +127 -0
- package/dist/triage-gate.d.ts.map +1 -0
- package/dist/triage-gate.js +139 -0
- package/dist/triage-gate.js.map +1 -0
- package/dist/triage-persist.d.ts +163 -0
- package/dist/triage-persist.d.ts.map +1 -0
- package/dist/triage-persist.js +387 -0
- package/dist/triage-persist.js.map +1 -0
- package/dist/verdict-json.d.ts +32 -0
- package/dist/verdict-json.d.ts.map +1 -0
- package/dist/verdict-json.js +74 -0
- package/dist/verdict-json.js.map +1 -0
- package/dist/verify-workflow-template.d.ts +60 -0
- package/dist/verify-workflow-template.d.ts.map +1 -0
- package/dist/verify-workflow-template.js +126 -0
- package/dist/verify-workflow-template.js.map +1 -0
- package/dist/verify.d.ts +60 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +62 -0
- package/dist/verify.js.map +1 -0
- package/dist/watch-session.d.ts +112 -0
- package/dist/watch-session.d.ts.map +1 -0
- package/dist/watch-session.js +347 -0
- package/dist/watch-session.js.map +1 -0
- package/dist/work-layout.d.ts +198 -0
- package/dist/work-layout.d.ts.map +1 -0
- package/dist/work-layout.js +217 -0
- package/dist/work-layout.js.map +1 -0
- package/dist/work-on.d.ts +154 -0
- package/dist/work-on.d.ts.map +1 -0
- package/dist/work-on.js +387 -0
- package/dist/work-on.js.map +1 -0
- package/dist/workspace.d.ts +224 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +325 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +46 -2
- package/src/advance-ci-template.ts +203 -0
- package/src/advance-classify.ts +197 -0
- package/src/advance-drivers.ts +414 -0
- package/src/advance-isolated.ts +432 -0
- package/src/advance-lifecycle-template.ts +791 -0
- package/src/advance-loop-driver.ts +745 -0
- package/src/advance-treeless-publish.ts +177 -0
- package/src/advance.ts +1564 -0
- package/src/advancing-lock.ts +988 -0
- package/src/agent-launch.ts +137 -0
- package/src/agent-stop.ts +361 -0
- package/src/apply-decide.ts +242 -0
- package/src/apply-merge-action.ts +502 -0
- package/src/apply-persist.ts +518 -0
- package/src/arbiter.ts +372 -0
- package/src/brand.ts +111 -0
- package/src/buildable-body.ts +196 -0
- package/src/categorise.ts +158 -0
- package/src/claim-cas.ts +513 -0
- package/src/cli-spinner.ts +225 -0
- package/src/cli.ts +4369 -0
- package/src/close-job-template.ts +236 -0
- package/src/close-job.ts +319 -0
- package/src/complete.ts +1379 -0
- package/src/concurrency.ts +151 -0
- package/src/config-override.ts +116 -0
- package/src/config.ts +883 -0
- package/src/continue-branch.ts +542 -0
- package/src/cwd-section.ts +392 -0
- package/src/decision-engine.ts +272 -0
- package/src/detect.ts +124 -0
- package/src/do-autopick.ts +223 -0
- package/src/do-config.ts +589 -0
- package/src/do-remote-auto.ts +197 -0
- package/src/do.ts +2623 -0
- package/src/drop-source.ts +194 -0
- package/src/eligibility.ts +79 -0
- package/src/env-config.ts +305 -0
- package/src/failure-cause.ts +142 -0
- package/src/format.ts +313 -0
- package/src/frontmatter.ts +485 -0
- package/src/gate-readiness.ts +147 -0
- package/src/gc.ts +510 -0
- package/src/gh-failure.ts +53 -0
- package/src/git.ts +186 -0
- package/src/github.ts +468 -0
- package/src/harness.ts +355 -0
- package/src/identity.ts +322 -0
- package/src/index.ts +785 -0
- package/src/install-ci-branch-protection.ts +255 -0
- package/src/install-ci-capabilities/advance-lifecycle.ts +34 -0
- package/src/install-ci-capabilities/close-job.ts +32 -0
- package/src/install-ci-capabilities/example-noop.ts +24 -0
- package/src/install-ci-capabilities/intake.ts +34 -0
- package/src/install-ci-capabilities/verify.ts +33 -0
- package/src/install-ci-core.ts +1088 -0
- package/src/install-ci-github.ts +376 -0
- package/src/install-ci.ts +552 -0
- package/src/intake-event.ts +102 -0
- package/src/intake-marker.ts +195 -0
- package/src/intake-triage.ts +138 -0
- package/src/intake-trigger-template.ts +591 -0
- package/src/intake.ts +2445 -0
- package/src/integration-core.ts +3065 -0
- package/src/integrator.ts +771 -0
- package/src/isolation.ts +484 -0
- package/src/issue-provider.ts +733 -0
- package/src/item-lock.ts +1858 -0
- package/src/item-path.ts +75 -0
- package/src/ledger-lint.ts +332 -0
- package/src/ledger-read.ts +924 -0
- package/src/ledger-write.ts +865 -0
- package/src/lifecycle-gather.ts +298 -0
- package/src/lifecycle-pools.ts +250 -0
- package/src/merge-question-surfacer.ts +496 -0
- package/src/mint-adr.ts +362 -0
- package/src/mirror-pool-scan.ts +240 -0
- package/src/needs-attention.ts +1506 -0
- package/src/orphan-sidecar.ts +150 -0
- package/src/output.ts +89 -0
- package/src/pi-harness.ts +403 -0
- package/src/placement.ts +131 -0
- package/src/prd-to-spec.ts +1023 -0
- package/src/prepare.ts +230 -0
- package/src/prompt.ts +760 -0
- package/src/readiness.ts +98 -0
- package/src/reap-branches.ts +278 -0
- package/src/recover-isolated.ts +276 -0
- package/src/registry.ts +475 -0
- package/src/repo-config.ts +550 -0
- package/src/repo-key.ts +74 -0
- package/src/repo-mirror.ts +367 -0
- package/src/retry-backoff.ts +130 -0
- package/src/review-gate.ts +389 -0
- package/src/review-verdict.ts +422 -0
- package/src/run.ts +1430 -0
- package/src/scan.ts +611 -0
- package/src/select-order.ts +143 -0
- package/src/select-priority.ts +266 -0
- package/src/select.ts +62 -0
- package/src/session-path.ts +153 -0
- package/src/sidecar-apply.ts +216 -0
- package/src/sidecar.ts +700 -0
- package/src/slug-namespace.ts +367 -0
- package/src/spec-complete.ts +118 -0
- package/src/start.ts +974 -0
- package/src/status.ts +441 -0
- package/src/surface-gate.ts +337 -0
- package/src/surface-persist.ts +241 -0
- package/src/tasker-review-loop.ts +671 -0
- package/src/tasking-eligibility.ts +114 -0
- package/src/tasking-lock.ts +416 -0
- package/src/tasking.ts +1438 -0
- package/src/triage-gate.ts +248 -0
- package/src/triage-persist.ts +570 -0
- package/src/verdict-json.ts +73 -0
- package/src/verify-workflow-template.ts +159 -0
- package/src/verify.ts +123 -0
- package/src/watch-session.ts +397 -0
- package/src/work-layout.ts +262 -0
- package/src/work-on.ts +660 -0
- package/src/workspace.ts +502 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* The **work-layout** module: the SOLE source of every `work/...` path string,
|
|
4
|
+
* folder-name union/array, the item-scan predicate, and the prefix-task helpers
|
|
5
|
+
* used across `src/`.
|
|
6
|
+
*
|
|
7
|
+
* This is Phase 0 of the `folder-taxonomy-reorg-and-rename` prd — the de-risking
|
|
8
|
+
* checkpoint. EVERY raw work-path literal (`join(cwd, 'work', ...)`, `'work/<folder>'`,
|
|
9
|
+
* `'work/<folder>/'.length` prefix-tasks) and EVERY folder-name union/array that
|
|
10
|
+
* used to be scattered across ~70 files now routes through here. The NAMES are
|
|
11
|
+
* byte-identical to today (no rename, no behaviour change); only the SOURCE of the
|
|
12
|
+
* string has moved into this one module.
|
|
13
|
+
*
|
|
14
|
+
* The whole point of the seam: the LATER rename tasks flip the VALUES in
|
|
15
|
+
* {@link WORK_FOLDER_NAME} (and `git mv` the on-disk folders) and NOTHING ELSE.
|
|
16
|
+
* Call sites reference folders by their SYMBOLIC key (`'tasks-ready'`,
|
|
17
|
+
* `'specs-ready'`, …), never by a raw string, so a folder-VALUE flip never
|
|
18
|
+
* re-touches a single call site (a KEY rename, e.g. the prd→spec cutover below,
|
|
19
|
+
* is a mechanical relabel of the key literal at each site — behaviour-preserving).
|
|
20
|
+
*
|
|
21
|
+
* Domain note (crown-jewel invariant): a `work/` tree is a set of governance
|
|
22
|
+
* folders where "status IS the folder" — a CAS `git mv` between durable folders is
|
|
23
|
+
* the conflict-safe state machine. This module owns the folder NAMES that literally
|
|
24
|
+
* are that state machine, so it is deliberately the one place a careless rename can
|
|
25
|
+
* touch.
|
|
26
|
+
*
|
|
27
|
+
* The transient states (`in-progress`/`needs-attention`/`tasking`/`advancing`) are
|
|
28
|
+
* NOT folders — they are per-item lock-ref state (see `item-lock.ts`). A stray
|
|
29
|
+
* `in-progress` literal still referenced by some legacy/recovery readers routes
|
|
30
|
+
* through this module like any other folder, but is NOT part of the durable
|
|
31
|
+
* folder-as-status set.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* The repo-relative root of the `work/` governance tree. The single literal `'work'`
|
|
35
|
+
* the whole package shares — every path builder below is rooted here.
|
|
36
|
+
*/
|
|
37
|
+
export const WORK_ROOT = 'work';
|
|
38
|
+
/**
|
|
39
|
+
* Every work-folder SYMBOLIC KEY → its current on-disk folder NAME (byte-identical
|
|
40
|
+
* to today). This is the ONE place a folder name lives; the later taxonomy rename is
|
|
41
|
+
* a value-only flip of the right-hand side here.
|
|
42
|
+
*
|
|
43
|
+
* Folder kinds (kept here as a single registry, but their distinct roles matter):
|
|
44
|
+
* - TASK lifecycle, the `tasks/` Kanban board: `tasks/backlog` (staging, key
|
|
45
|
+
* `tasks-backlog`) → `tasks/ready` (the agent pool, key `tasks-ready`) →
|
|
46
|
+
* `tasks/done` / `tasks/cancelled` (the PER-REGIME won't-proceed terminal, key
|
|
47
|
+
* `cancelled`).
|
|
48
|
+
* - SPEC lifecycle, the `specs/` regime: `specs/proposed` (staging, key
|
|
49
|
+
* `specs-proposed`) → `specs/ready` (auto-task pool, key `specs-ready`) →
|
|
50
|
+
* `specs/tasked` (tasked, resting, key `specs-tasked`) / `specs/dropped`
|
|
51
|
+
* (the PER-REGIME won't-proceed terminal, key `specs-dropped`).
|
|
52
|
+
* - The PER-REGIME won't-proceed terminals (`tasks/cancelled` + `specs/dropped`)
|
|
53
|
+
* replace the previous shared top-level `work/dropped/`: a dropped task and a
|
|
54
|
+
* dropped spec sharing a slug used to COLLIDE on one bare-slug
|
|
55
|
+
* `work/dropped/<slug>.md`; namespacing each regime's terminal removes the
|
|
56
|
+
* collision. A dropped OBSERVATION needs no terminal — notes leave by deletion.
|
|
57
|
+
* - Capture buckets under the `notes/` umbrella (do NOT flow; leave by deletion):
|
|
58
|
+
* `notes/observations` / `notes/ideas` / `notes/findings`.
|
|
59
|
+
* - Top-level surfaces: `questions` (the "what needs me?" queue), `protocol`
|
|
60
|
+
* (propagated protocol docs). NEITHER is folded under an umbrella.
|
|
61
|
+
* - The stray transient `in-progress` still referenced by legacy/recovery readers
|
|
62
|
+
* and `needs-attention` (both are really lock-ref state, NOT durable folders;
|
|
63
|
+
* routed here only so no reader hand-writes the literal).
|
|
64
|
+
*
|
|
65
|
+
* NOTE on the prd→spec vocabulary cutover
|
|
66
|
+
* (`rename-spec-work-layout-and-folders`, migrate-batch 1 of
|
|
67
|
+
* `prd-to-spec-vocabulary-cutover-and-migration-command`): the spec-regime KEYS
|
|
68
|
+
* below now read in the `spec` vocabulary (`specs-proposed`/`specs-ready`/
|
|
69
|
+
* `specs-tasked`/`specs-dropped`) AND their VALUES flip to `work/specs/*` in
|
|
70
|
+
* lockstep with the on-disk `git mv work/prds/* → work/specs/*`. Unlike the earlier
|
|
71
|
+
* key-only relabel, this batch moves the folders too, so the KEY and VALUE change
|
|
72
|
+
* together and the self-renaming-folder guard stays green. The KEY rename is a
|
|
73
|
+
* mechanical relabel of the key literal at each call site (behaviour-preserving);
|
|
74
|
+
* the frontmatter `prd:` field (a DATA alias the migration command converts) is the
|
|
75
|
+
* one deliberate survivor; the `--specs-land-in` flag/`specsLandIn` config + the
|
|
76
|
+
* `Spec*` symbols were completed by the later batches + the contract task. The
|
|
77
|
+
* folder-as-status invariant is unchanged.
|
|
78
|
+
*/
|
|
79
|
+
export const WORK_FOLDER_NAME = {
|
|
80
|
+
'tasks-backlog': 'tasks/backlog',
|
|
81
|
+
'tasks-ready': 'tasks/ready',
|
|
82
|
+
'in-progress': 'in-progress',
|
|
83
|
+
'needs-attention': 'needs-attention',
|
|
84
|
+
done: 'tasks/done',
|
|
85
|
+
cancelled: 'tasks/cancelled',
|
|
86
|
+
'specs-proposed': 'specs/proposed',
|
|
87
|
+
'specs-ready': 'specs/ready',
|
|
88
|
+
'specs-tasked': 'specs/tasked',
|
|
89
|
+
'specs-dropped': 'specs/dropped',
|
|
90
|
+
observations: 'notes/observations',
|
|
91
|
+
ideas: 'notes/ideas',
|
|
92
|
+
findings: 'notes/findings',
|
|
93
|
+
questions: 'questions',
|
|
94
|
+
protocol: 'protocol',
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Resolve a folder's current on-disk NAME from its symbolic key. The ONE accessor
|
|
98
|
+
* every other folder-name lookup derives from, so the rename flips it in lockstep.
|
|
99
|
+
*/
|
|
100
|
+
export function workFolderName(folder) {
|
|
101
|
+
return WORK_FOLDER_NAME[folder];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Absolute path of a work folder under a repo/cwd root:
|
|
105
|
+
* `<root>/work/<folder-name>`. Replaces every `join(cwd, 'work', '<folder>')` and
|
|
106
|
+
* `join(repoPath, 'work', folder)` call site.
|
|
107
|
+
*/
|
|
108
|
+
export function workFolderPath(root, folder) {
|
|
109
|
+
return join(root, WORK_ROOT, workFolderName(folder));
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Absolute path of a single item's `.md` file in a work folder:
|
|
113
|
+
* `<root>/work/<folder-name>/<slug>.md`. Replaces every
|
|
114
|
+
* `join(cwd, 'work', folder, `${slug}.md`)` call site. `slug` is the bare slug
|
|
115
|
+
* (the `.md` suffix is appended here).
|
|
116
|
+
*/
|
|
117
|
+
export function workItemPath(root, folder, slug) {
|
|
118
|
+
return join(root, WORK_ROOT, workFolderName(folder), `${slug}.md`);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* REPO-RELATIVE path of a work folder: `work/<folder-name>` (no trailing slash, no
|
|
122
|
+
* root). The form used for `git mv` / `git`-relative paths and the staging/pool dir
|
|
123
|
+
* constants (`STAGED_TASKS_DIR`, etc.). Replaces raw `'work/<folder>'` literals.
|
|
124
|
+
*/
|
|
125
|
+
export function workFolderRel(folder) {
|
|
126
|
+
return `${WORK_ROOT}/${workFolderName(folder)}`;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* REPO-RELATIVE path of a single item file: `work/<folder-name>/<basename>`. The
|
|
130
|
+
* `basename` is a full filename (caller decides whether it carries `.md`), matching
|
|
131
|
+
* the existing `join('work', folder, '<file>')` call sites that pass either a
|
|
132
|
+
* `${slug}.md` or a pre-suffixed name.
|
|
133
|
+
*/
|
|
134
|
+
export function workItemRel(folder, basename) {
|
|
135
|
+
return `${WORK_ROOT}/${workFolderName(folder)}/${basename}`;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* The REPO-RELATIVE folder PREFIX (WITH trailing slash): `work/<folder-name>/`. The
|
|
139
|
+
* form a reader matches with `startsWith(...)` and tasks off to recover a filename
|
|
140
|
+
* (see {@link stripWorkFolderPrefix}). Replaces hand-written `'work/<folder>/'`
|
|
141
|
+
* literals and their `.length` prefix-tasks.
|
|
142
|
+
*/
|
|
143
|
+
export function workFolderPrefix(folder) {
|
|
144
|
+
return `${workFolderRel(folder)}/`;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Recover the filename portion of a repo-relative path that lives DIRECTLY under a
|
|
148
|
+
* work folder, by stripping its `work/<folder-name>/` prefix. Replaces the
|
|
149
|
+
* hand-written `path.slice('work/<folder>/'.length)` prefix-task. Returns
|
|
150
|
+
* `undefined` when `path` is not under that folder, so callers that already
|
|
151
|
+
* `startsWith`-guarded keep their exact behaviour (and callers that did not can
|
|
152
|
+
* branch on `undefined` instead of tasking a wrong length).
|
|
153
|
+
*/
|
|
154
|
+
export function stripWorkFolderPrefix(path, folder) {
|
|
155
|
+
const prefix = workFolderPrefix(folder);
|
|
156
|
+
return path.startsWith(prefix) ? path.slice(prefix.length) : undefined;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* The ITEM-SCAN predicate: does this directory entry NAME count as a `work/` item?
|
|
160
|
+
* Defined ONCE here so no reader re-implements the `.md` filter. Case-insensitive
|
|
161
|
+
* on the extension, matching every existing `name.toLowerCase().endsWith('.md')`
|
|
162
|
+
* call site verbatim.
|
|
163
|
+
*/
|
|
164
|
+
export function isWorkItemFile(name) {
|
|
165
|
+
return name.toLowerCase().endsWith('.md');
|
|
166
|
+
}
|
|
167
|
+
// --- Folder-name unions / arrays (one definition, derived from the registry) --
|
|
168
|
+
/**
|
|
169
|
+
* The TASK-RESOLUTION folders `resolveTask` (prompt.ts) walks, in precedence
|
|
170
|
+
* order: `in-progress` over `tasks-ready`, with `done` appended only behind the
|
|
171
|
+
* stranded-continue gate. Order is load-bearing — kept exactly as the original
|
|
172
|
+
* union/array. (`tasks-backlog` is NOT in this DEFAULT order: it is appended at
|
|
173
|
+
* the LOWEST priority ONLY behind the explicit `--allow-backlog` flag, prd
|
|
174
|
+
* `do-allow-backlog-drive-staged-tasks-without-promotion` — see
|
|
175
|
+
* {@link TaskResolutionFolder}.)
|
|
176
|
+
*/
|
|
177
|
+
export const TASK_RESOLUTION_FOLDERS = [
|
|
178
|
+
'in-progress',
|
|
179
|
+
'tasks-ready',
|
|
180
|
+
'done',
|
|
181
|
+
];
|
|
182
|
+
/**
|
|
183
|
+
* The task LIFECYCLE folders a `task:<slug>` / lone-task `issue:` can reside
|
|
184
|
+
* in (spec-complete.ts + close-job.ts `TASK_FOLDERS`): `tasks-ready`, `in-progress`,
|
|
185
|
+
* `needs-attention`, `done`.
|
|
186
|
+
*/
|
|
187
|
+
export const TASK_LIFECYCLE_FOLDERS = [
|
|
188
|
+
'tasks-ready',
|
|
189
|
+
'in-progress',
|
|
190
|
+
'needs-attention',
|
|
191
|
+
'done',
|
|
192
|
+
];
|
|
193
|
+
/**
|
|
194
|
+
* The DURABLE task-status folders the ledger lint / integration core treat as the
|
|
195
|
+
* one-slug-one-folder state machine: `tasks-ready`, `done`, `cancelled`
|
|
196
|
+
* (ledger-lint.ts + integration-core.ts `LEDGER_STATUS_FOLDERS`). The transient
|
|
197
|
+
* `in-progress`/`needs-attention`/`tasking` are NOT here (they are lock-ref state).
|
|
198
|
+
* `cancelled` is the task regime's won't-proceed terminal (the per-regime split
|
|
199
|
+
* of the previous shared `dropped/`); the spec regime's terminal `specs-dropped`
|
|
200
|
+
* is NOT here (this set is the TASK board's state machine, keyed by `tasks/`-slug,
|
|
201
|
+
* and a spec never co-resides with a task on the tasks board).
|
|
202
|
+
*/
|
|
203
|
+
export const LEDGER_STATUS_FOLDERS = [
|
|
204
|
+
'tasks-ready',
|
|
205
|
+
'done',
|
|
206
|
+
'cancelled',
|
|
207
|
+
];
|
|
208
|
+
/**
|
|
209
|
+
* The SPEC-lifecycle folders an `issue:`-bearing spec / a tasked spec can reside
|
|
210
|
+
* in: `specs-ready` (source / pool), `specs-tasked` (tasked, resting) —
|
|
211
|
+
* close-job.ts `SPEC_FOLDERS`.
|
|
212
|
+
*/
|
|
213
|
+
export const SPEC_FOLDERS = [
|
|
214
|
+
'specs-ready',
|
|
215
|
+
'specs-tasked',
|
|
216
|
+
];
|
|
217
|
+
//# sourceMappingURL=work-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-layout.js","sourceRoot":"","sources":["../src/work-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,MAAe,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC/B,eAAe,EAAE,eAAe;IAChC,aAAa,EAAE,aAAa;IAC5B,aAAa,EAAE,aAAa;IAC5B,iBAAiB,EAAE,iBAAiB;IACpC,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,iBAAiB;IAC5B,gBAAgB,EAAE,gBAAgB;IAClC,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,eAAe,EAAE,eAAe;IAChC,YAAY,EAAE,oBAAoB;IAClC,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;CACX,CAAC;AAKX;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAqB;IACnD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAqB;IACjE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC3B,IAAY,EACZ,MAAqB,EACrB,IAAY;IAEZ,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAqB;IAClD,OAAO,GAAG,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAqB,EAAE,QAAgB;IAClE,OAAO,GAAG,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACrD,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACpC,IAAY,EACZ,MAAqB;IAErB,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACtC,aAAa;IACb,aAAa;IACb,MAAM;CACsC,CAAC;AAa9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,MAAM;CACsC,CAAC;AAK9C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACpC,aAAa;IACb,MAAM;IACN,WAAW;CACiC,CAAC;AAK9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,aAAa;IACb,cAAc;CAC8B,CAAC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { encodeRepoKey } from './repo-mirror.js';
|
|
2
|
+
import { type Config } from './config.js';
|
|
3
|
+
import type { InteractiveLauncher } from './harness.js';
|
|
4
|
+
/**
|
|
5
|
+
* `dorfl work-on` — the HUMAN command to claim a task and create an
|
|
6
|
+
* isolated **worktree in a human-friendly location**, so a person can open their
|
|
7
|
+
* editor and work several tasks in parallel without juggling branches in one
|
|
8
|
+
* checkout. It is the human counterpart to the runner's job worktrees
|
|
9
|
+
* (`workspace.ts`): it is NEVER used by agents, so it never carries the human's
|
|
10
|
+
* secrets into an agent context (see `--copy`).
|
|
11
|
+
*
|
|
12
|
+
* Two invocation forms — the ONLY intended difference between them is **where the
|
|
13
|
+
* worktree's files live**; the claim, the integration semantics, and the
|
|
14
|
+
* starting commit are IDENTICAL:
|
|
15
|
+
*
|
|
16
|
+
* work-on <slug> in-repo: the arbiter remote/URL is inferred from
|
|
17
|
+
* the current repo; the claim runs in that repo.
|
|
18
|
+
* work-on --remote <r> <slug> remote: ensure a hub mirror for <r> (creating
|
|
19
|
+
* it via repo-mirror if absent, exactly like
|
|
20
|
+
* agents do), then claim against it from a
|
|
21
|
+
* throwaway worktree. The remote target is a FLAG
|
|
22
|
+
* (consistent with `do --remote`), not positional.
|
|
23
|
+
*
|
|
24
|
+
* BOTH forms: claim the slug, then ALWAYS `git fetch` and branch the worktree off
|
|
25
|
+
* the **freshly-fetched `<arbiter>/main`** — never a possibly-stale local ref.
|
|
26
|
+
* THIS GUARANTEE is what makes the two forms equivalent: the same slug yields
|
|
27
|
+
* equivalent work either way (same starting commit).
|
|
28
|
+
*
|
|
29
|
+
* The worktree lives under the configured `humanWorktreesDir`
|
|
30
|
+
* (`<dir>/<key>/<slug>/` on branch `work/<slug>`) — prompted + saved on first use,
|
|
31
|
+
* with a sensible suggestion but no silent default, and NEVER under
|
|
32
|
+
* `~/.dorfl/` (that is the agents' area; `work-on` is human-only).
|
|
33
|
+
*
|
|
34
|
+
* A binary cannot `cd` its parent shell, so on success it prints the worktree path
|
|
35
|
+
* + a `cd` hint; `--print-dir` emits the path ONLY (stdout) so the human can
|
|
36
|
+
* install a shell function that actually cd's them:
|
|
37
|
+
*
|
|
38
|
+
* work-on() { cd "$(dorfl work-on "$@" --print-dir)"; }
|
|
39
|
+
*/
|
|
40
|
+
/** The semantic outcome of a `work-on` invocation. */
|
|
41
|
+
export type WorkOnOutcome = 'created' | 'refused' | 'lost' | 'contended' | 'usage-error';
|
|
42
|
+
export interface WorkOnOptions {
|
|
43
|
+
/** The slug to work on (`work/backlog/<slug>.md`). Required. */
|
|
44
|
+
slug: string;
|
|
45
|
+
/**
|
|
46
|
+
* Remote mode: the remote spec/URL to mirror via `repo-mirror`. When given,
|
|
47
|
+
* `work-on --remote <r> <slug>` ensures a hub mirror (creating it if absent)
|
|
48
|
+
* and claims against it. When omitted, in-repo mode: the arbiter is inferred
|
|
49
|
+
* from `cwd`.
|
|
50
|
+
*/
|
|
51
|
+
remote?: string;
|
|
52
|
+
/** The current working directory (in-repo mode resolves the arbiter from it). */
|
|
53
|
+
cwd: string;
|
|
54
|
+
/**
|
|
55
|
+
* Name of the arbiter git remote in `cwd` (in-repo mode only). Defaults to
|
|
56
|
+
* `origin`. Ignored in remote mode (the mirror's own `origin` is used).
|
|
57
|
+
*/
|
|
58
|
+
arbiter?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Override the readiness guard (`--ignore-not-ready`): claim despite
|
|
61
|
+
* an unmet `blockedBy`, and silence the `needsAnswers` warning. Forwarded to
|
|
62
|
+
* the claim CAS's human-path guard.
|
|
63
|
+
*/
|
|
64
|
+
override?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Comma-separated glob-free filenames (gitignored, untracked files like
|
|
67
|
+
* `.env.local,.env`) to COPY into the new worktree so the project is runnable.
|
|
68
|
+
* Copy, not symlink (tooling-safe). Source = the current repo in-repo mode; in
|
|
69
|
+
* remote mode there is no implicit source, so `--copy` REQUIRES `copyFrom`.
|
|
70
|
+
*/
|
|
71
|
+
copy?: string;
|
|
72
|
+
/**
|
|
73
|
+
* The explicit source dir for `--copy` in remote mode (`--copy-from <path>`).
|
|
74
|
+
* Required when `copy` is set in remote mode; ignored otherwise.
|
|
75
|
+
*/
|
|
76
|
+
copyFrom?: string;
|
|
77
|
+
/** The execution working area for hub mirrors (config `workspacesDir`). */
|
|
78
|
+
workspacesDir?: string;
|
|
79
|
+
/**
|
|
80
|
+
* The human worktree root (config `humanWorktreesDir`). When already
|
|
81
|
+
* configured this is used directly; when undefined, `promptForRoot` is invoked
|
|
82
|
+
* to obtain + SAVE it (first-use prompt). Tests pass it directly to avoid TTY.
|
|
83
|
+
*/
|
|
84
|
+
humanWorktreesDir?: string;
|
|
85
|
+
/**
|
|
86
|
+
* First-use prompt for the human worktree root. Called only when
|
|
87
|
+
* `humanWorktreesDir` is undefined (in config + options). Receives a sensible
|
|
88
|
+
* SUGGESTION; returns the chosen absolute path (or '' to abort). The CLI wires
|
|
89
|
+
* a readline prompt; tests inject a stub.
|
|
90
|
+
*/
|
|
91
|
+
promptForRoot?: (suggestion: string) => Promise<string> | string;
|
|
92
|
+
/**
|
|
93
|
+
* Persist a newly-prompted `humanWorktreesDir`. The CLI wires this to
|
|
94
|
+
* `saveConfig` at `configPath`; tests can inject a spy or a no-op.
|
|
95
|
+
*/
|
|
96
|
+
saveRoot?: (dir: string) => void;
|
|
97
|
+
/**
|
|
98
|
+
* `--agent` (task `agent-interactive-launch`): after the human worktree is
|
|
99
|
+
* created, launch the configured harness INTERACTIVELY in THAT worktree — a
|
|
100
|
+
* foreground session the human drives (no prepared prompt). Injected as a thin
|
|
101
|
+
* launcher so `work-on.ts` stays decoupled from `createHarness`: the CLI wires
|
|
102
|
+
* it to the resolved harness's `launchInteractive` (model/session resolved
|
|
103
|
+
* there). Omitted ⇒ work-on creates the worktree and prints the cd hint (its
|
|
104
|
+
* historical behaviour). It is NOT a tracked job (decision #3): no job record,
|
|
105
|
+
* no gate — after exit the human drives `complete`/`requeue`.
|
|
106
|
+
*/
|
|
107
|
+
launchInteractive?: InteractiveLauncher;
|
|
108
|
+
/** Environment for child git processes (identity etc.). */
|
|
109
|
+
env?: NodeJS.ProcessEnv;
|
|
110
|
+
/** Sink for human-readable progress + the security notice (stderr). */
|
|
111
|
+
note?: (message: string) => void;
|
|
112
|
+
}
|
|
113
|
+
export interface WorkOnResult {
|
|
114
|
+
exitCode: 0 | 1 | 2 | 3;
|
|
115
|
+
outcome: WorkOnOutcome;
|
|
116
|
+
/** Absolute path to the created worktree (only on success). */
|
|
117
|
+
dir?: string;
|
|
118
|
+
/** The work branch checked out there (`work/<slug>`). */
|
|
119
|
+
branch?: string;
|
|
120
|
+
/** The resolved arbiter URL the worktree branches from. */
|
|
121
|
+
arbiterUrl?: string;
|
|
122
|
+
/** The starting commit (freshly-fetched `<arbiter>/main`) the worktree is cut from. */
|
|
123
|
+
startCommit?: string;
|
|
124
|
+
/** Files copied in via `--copy` (basenames), in order. */
|
|
125
|
+
copied?: string[];
|
|
126
|
+
/** Human-readable summary of the terminal condition. */
|
|
127
|
+
message: string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Run the `work-on` ritual. Never throws for the expected lost/contended/refused
|
|
131
|
+
* cases — those are returned with the appropriate exit code and NO worktree.
|
|
132
|
+
* Usage/environment problems surface as exit 1.
|
|
133
|
+
*/
|
|
134
|
+
export declare function performWorkOn(options: WorkOnOptions): Promise<WorkOnResult>;
|
|
135
|
+
/**
|
|
136
|
+
* A sensible SUGGESTION for the human worktree root. Deliberately uses a name
|
|
137
|
+
* (`~/worktrees`) that does NOT share a prefix with the usual code dir
|
|
138
|
+
* (`~/dev/...`), so shell tab-completion on the code dir never collides with it.
|
|
139
|
+
* This is only a suggestion — there is no silent default; the human confirms.
|
|
140
|
+
*/
|
|
141
|
+
export declare function suggestHumanWorktreesDir(): string;
|
|
142
|
+
/**
|
|
143
|
+
* Resolve `humanWorktreesDir` + `configPath` for the CLI: read config from
|
|
144
|
+
* `configPath` and surface its `humanWorktreesDir` (undefined ⇒ first use). The
|
|
145
|
+
* CLI wires the prompt/save around this; kept here so the wiring is testable.
|
|
146
|
+
*/
|
|
147
|
+
export declare function loadHumanWorktreesDir(configPath?: string): {
|
|
148
|
+
dir: string | undefined;
|
|
149
|
+
config: Config;
|
|
150
|
+
};
|
|
151
|
+
/** Save a chosen `humanWorktreesDir` back to `configPath`, preserving the rest. */
|
|
152
|
+
export declare function persistHumanWorktreesDir(dir: string, configPath?: string): void;
|
|
153
|
+
export { encodeRepoKey };
|
|
154
|
+
//# sourceMappingURL=work-on.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-on.d.ts","sourceRoot":"","sources":["../src/work-on.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,aAAa,EAIb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAIN,KAAK,MAAM,EACX,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,sDAAsD;AACtD,MAAM,MAAM,aAAa,GACtB,SAAS,GACT,SAAS,GACT,MAAM,GACN,WAAW,GACX,aAAa,CAAC;AAEjB,MAAM,WAAW,aAAa;IAC7B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACjE;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACxC,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,uEAAuE;IACvE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CAChB;AAOD;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,aAAa,GACpB,OAAO,CAAC,YAAY,CAAC,CAQvB;AA6YD;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAsDD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACpC,UAAU,GAAE,MAA4B,GACtC;IACF,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CACf,CAGA;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,MAA4B,GACtC,IAAI,CAGN;AAGD,OAAO,EAAC,aAAa,EAAC,CAAC"}
|