@hunter-harness/workflow-harness 0.2.16 → 0.2.18
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/harness/bundles/general/claude-code/.harness-build.json +1 -1
- package/harness/bundles/general/claude-code/CONTEXT.md +14 -1
- package/harness/bundles/general/claude-code/README.md +1 -1
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +7 -4
- package/harness/bundles/general/claude-code/harness-archive/reference.md +1 -1
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +4 -2
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +4 -2
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +8 -4
- package/harness/bundles/general/claude-code/harness-plan/checklist.md +5 -5
- package/harness/bundles/general/claude-code/harness-plan/reference.md +5 -5
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +5 -2
- package/harness/bundles/general/claude-code/harness-review/checklist.md +1 -1
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +7 -3
- package/harness/bundles/general/claude-code/harness-run/checklist.md +5 -5
- package/harness/bundles/general/claude-code/harness-run/reference.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +6 -3
- package/harness/bundles/general/claude-code/harness-submit/checklist.md +11 -11
- package/harness/bundles/general/claude-code/harness-submit/reference.md +3 -3
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +4 -2
- package/harness/bundles/general/claude-code/harness-sync/reference.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +7 -4
- package/harness/bundles/general/claude-code/harness-test/checklist.md +8 -5
- package/harness/bundles/general/claude-code/harness-test/pitfalls.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/reference.md +28 -13
- package/harness/bundles/general/claude-code/protocols/submit-protocol.md +1 -1
- package/harness/bundles/general/claude-code/scripts/harness_deploy.py +7 -0
- package/harness/bundles/general/claude-code/scripts/harness_integration.py +26 -2
- package/harness/bundles/general/claude-code/scripts/harness_plan_finalize.py +159 -7
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +1 -0
- package/harness/bundles/general/claude-code/scripts/harness_runtime.py +4 -4
- package/harness/bundles/general/claude-code/scripts/harness_service.py +1 -0
- package/harness/bundles/general/claude-code/scripts/harness_test_cleanup.py +175 -0
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/CONTEXT.md +14 -1
- package/harness/bundles/general/codebuddy/README.md +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +7 -4
- package/harness/bundles/general/codebuddy/harness-archive/reference.md +1 -1
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +4 -2
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +4 -2
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +8 -4
- package/harness/bundles/general/codebuddy/harness-plan/checklist.md +5 -5
- package/harness/bundles/general/codebuddy/harness-plan/reference.md +5 -5
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +5 -2
- package/harness/bundles/general/codebuddy/harness-review/checklist.md +1 -1
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +7 -3
- package/harness/bundles/general/codebuddy/harness-run/checklist.md +5 -5
- package/harness/bundles/general/codebuddy/harness-run/reference.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +6 -3
- package/harness/bundles/general/codebuddy/harness-submit/checklist.md +11 -11
- package/harness/bundles/general/codebuddy/harness-submit/reference.md +3 -3
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +4 -2
- package/harness/bundles/general/codebuddy/harness-sync/reference.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +7 -4
- package/harness/bundles/general/codebuddy/harness-test/checklist.md +8 -5
- package/harness/bundles/general/codebuddy/harness-test/pitfalls.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/reference.md +28 -13
- package/harness/bundles/general/codebuddy/protocols/submit-protocol.md +1 -1
- package/harness/bundles/general/codebuddy/scripts/harness_deploy.py +7 -0
- package/harness/bundles/general/codebuddy/scripts/harness_integration.py +26 -2
- package/harness/bundles/general/codebuddy/scripts/harness_plan_finalize.py +159 -7
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +1 -0
- package/harness/bundles/general/codebuddy/scripts/harness_runtime.py +4 -4
- package/harness/bundles/general/codebuddy/scripts/harness_service.py +1 -0
- package/harness/bundles/general/codebuddy/scripts/harness_test_cleanup.py +175 -0
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/CONTEXT.md +14 -1
- package/harness/bundles/general/codex/README.md +1 -1
- package/harness/bundles/general/codex/harness-archive/SKILL.md +7 -4
- package/harness/bundles/general/codex/harness-archive/reference.md +1 -1
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +4 -2
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +4 -2
- package/harness/bundles/general/codex/harness-plan/SKILL.md +8 -4
- package/harness/bundles/general/codex/harness-plan/checklist.md +5 -5
- package/harness/bundles/general/codex/harness-plan/reference.md +5 -5
- package/harness/bundles/general/codex/harness-review/SKILL.md +5 -2
- package/harness/bundles/general/codex/harness-review/checklist.md +1 -1
- package/harness/bundles/general/codex/harness-run/SKILL.md +7 -3
- package/harness/bundles/general/codex/harness-run/checklist.md +5 -5
- package/harness/bundles/general/codex/harness-run/reference.md +1 -1
- package/harness/bundles/general/codex/harness-submit/SKILL.md +6 -3
- package/harness/bundles/general/codex/harness-submit/checklist.md +11 -11
- package/harness/bundles/general/codex/harness-submit/reference.md +3 -3
- package/harness/bundles/general/codex/harness-sync/SKILL.md +4 -2
- package/harness/bundles/general/codex/harness-sync/reference.md +1 -1
- package/harness/bundles/general/codex/harness-test/SKILL.md +7 -4
- package/harness/bundles/general/codex/harness-test/checklist.md +8 -5
- package/harness/bundles/general/codex/harness-test/pitfalls.md +1 -1
- package/harness/bundles/general/codex/harness-test/reference.md +28 -13
- package/harness/bundles/general/codex/protocols/submit-protocol.md +1 -1
- package/harness/bundles/general/codex/scripts/harness_deploy.py +7 -0
- package/harness/bundles/general/codex/scripts/harness_integration.py +26 -2
- package/harness/bundles/general/codex/scripts/harness_plan_finalize.py +159 -7
- package/harness/bundles/general/codex/scripts/harness_profile.py +1 -0
- package/harness/bundles/general/codex/scripts/harness_runtime.py +4 -4
- package/harness/bundles/general/codex/scripts/harness_service.py +1 -0
- package/harness/bundles/general/codex/scripts/harness_test_cleanup.py +175 -0
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/CONTEXT.md +14 -1
- package/harness/bundles/general/cursor/README.md +1 -1
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +7 -4
- package/harness/bundles/general/cursor/harness-archive/reference.md +1 -1
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +4 -2
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +4 -2
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +8 -4
- package/harness/bundles/general/cursor/harness-plan/checklist.md +5 -5
- package/harness/bundles/general/cursor/harness-plan/reference.md +5 -5
- package/harness/bundles/general/cursor/harness-review/SKILL.md +5 -2
- package/harness/bundles/general/cursor/harness-review/checklist.md +1 -1
- package/harness/bundles/general/cursor/harness-run/SKILL.md +7 -3
- package/harness/bundles/general/cursor/harness-run/checklist.md +5 -5
- package/harness/bundles/general/cursor/harness-run/reference.md +1 -1
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +6 -3
- package/harness/bundles/general/cursor/harness-submit/checklist.md +11 -11
- package/harness/bundles/general/cursor/harness-submit/reference.md +3 -3
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +4 -2
- package/harness/bundles/general/cursor/harness-sync/reference.md +1 -1
- package/harness/bundles/general/cursor/harness-test/SKILL.md +7 -4
- package/harness/bundles/general/cursor/harness-test/checklist.md +8 -5
- package/harness/bundles/general/cursor/harness-test/pitfalls.md +1 -1
- package/harness/bundles/general/cursor/harness-test/reference.md +28 -13
- package/harness/bundles/general/cursor/protocols/submit-protocol.md +1 -1
- package/harness/bundles/general/cursor/scripts/harness_deploy.py +7 -0
- package/harness/bundles/general/cursor/scripts/harness_integration.py +26 -2
- package/harness/bundles/general/cursor/scripts/harness_plan_finalize.py +159 -7
- package/harness/bundles/general/cursor/scripts/harness_profile.py +1 -0
- package/harness/bundles/general/cursor/scripts/harness_runtime.py +4 -4
- package/harness/bundles/general/cursor/scripts/harness_service.py +1 -0
- package/harness/bundles/general/cursor/scripts/harness_test_cleanup.py +175 -0
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/CONTEXT.md +14 -1
- package/harness/bundles/java/claude-code/README.md +1 -1
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +5 -2
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +7 -4
- package/harness/bundles/java/claude-code/harness-archive/reference.md +1 -1
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +4 -2
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +4 -2
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +5 -2
- package/harness/bundles/java/claude-code/harness-package/checklist.md +5 -5
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +8 -4
- package/harness/bundles/java/claude-code/harness-plan/checklist.md +5 -5
- package/harness/bundles/java/claude-code/harness-plan/reference.md +5 -5
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +5 -2
- package/harness/bundles/java/claude-code/harness-review/checklist.md +1 -1
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +7 -3
- package/harness/bundles/java/claude-code/harness-run/checklist.md +6 -6
- package/harness/bundles/java/claude-code/harness-run/reference.md +352 -352
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +6 -3
- package/harness/bundles/java/claude-code/harness-submit/checklist.md +11 -11
- package/harness/bundles/java/claude-code/harness-submit/reference.md +3 -3
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +4 -2
- package/harness/bundles/java/claude-code/harness-sync/reference.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +8 -5
- package/harness/bundles/java/claude-code/harness-test/pitfalls.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/reference.md +1 -1
- package/harness/bundles/java/claude-code/protocols/submit-protocol.md +1 -1
- package/harness/bundles/java/claude-code/scripts/harness_deploy.py +7 -0
- package/harness/bundles/java/claude-code/scripts/harness_integration.py +26 -2
- package/harness/bundles/java/claude-code/scripts/harness_plan_finalize.py +159 -7
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +1 -0
- package/harness/bundles/java/claude-code/scripts/harness_runtime.py +4 -4
- package/harness/bundles/java/claude-code/scripts/harness_service.py +1 -0
- package/harness/bundles/java/claude-code/scripts/harness_test_cleanup.py +175 -0
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/CONTEXT.md +14 -1
- package/harness/bundles/java/codebuddy/README.md +1 -1
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +5 -2
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +7 -4
- package/harness/bundles/java/codebuddy/harness-archive/reference.md +1 -1
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +4 -2
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +4 -2
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +5 -2
- package/harness/bundles/java/codebuddy/harness-package/checklist.md +5 -5
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +8 -4
- package/harness/bundles/java/codebuddy/harness-plan/checklist.md +5 -5
- package/harness/bundles/java/codebuddy/harness-plan/reference.md +5 -5
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +5 -2
- package/harness/bundles/java/codebuddy/harness-review/checklist.md +1 -1
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +7 -3
- package/harness/bundles/java/codebuddy/harness-run/checklist.md +6 -6
- package/harness/bundles/java/codebuddy/harness-run/reference.md +352 -352
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +6 -3
- package/harness/bundles/java/codebuddy/harness-submit/checklist.md +11 -11
- package/harness/bundles/java/codebuddy/harness-submit/reference.md +3 -3
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +4 -2
- package/harness/bundles/java/codebuddy/harness-sync/reference.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +8 -5
- package/harness/bundles/java/codebuddy/harness-test/pitfalls.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/reference.md +1 -1
- package/harness/bundles/java/codebuddy/protocols/submit-protocol.md +1 -1
- package/harness/bundles/java/codebuddy/scripts/harness_deploy.py +7 -0
- package/harness/bundles/java/codebuddy/scripts/harness_integration.py +26 -2
- package/harness/bundles/java/codebuddy/scripts/harness_plan_finalize.py +159 -7
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +1 -0
- package/harness/bundles/java/codebuddy/scripts/harness_runtime.py +4 -4
- package/harness/bundles/java/codebuddy/scripts/harness_service.py +1 -0
- package/harness/bundles/java/codebuddy/scripts/harness_test_cleanup.py +175 -0
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/CONTEXT.md +14 -1
- package/harness/bundles/java/codex/README.md +1 -1
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +5 -2
- package/harness/bundles/java/codex/harness-archive/SKILL.md +7 -4
- package/harness/bundles/java/codex/harness-archive/reference.md +1 -1
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +4 -2
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +4 -2
- package/harness/bundles/java/codex/harness-package/SKILL.md +5 -2
- package/harness/bundles/java/codex/harness-package/checklist.md +5 -5
- package/harness/bundles/java/codex/harness-plan/SKILL.md +8 -4
- package/harness/bundles/java/codex/harness-plan/checklist.md +5 -5
- package/harness/bundles/java/codex/harness-plan/reference.md +5 -5
- package/harness/bundles/java/codex/harness-review/SKILL.md +5 -2
- package/harness/bundles/java/codex/harness-review/checklist.md +1 -1
- package/harness/bundles/java/codex/harness-run/SKILL.md +7 -3
- package/harness/bundles/java/codex/harness-run/checklist.md +6 -6
- package/harness/bundles/java/codex/harness-run/reference.md +352 -352
- package/harness/bundles/java/codex/harness-submit/SKILL.md +6 -3
- package/harness/bundles/java/codex/harness-submit/checklist.md +11 -11
- package/harness/bundles/java/codex/harness-submit/reference.md +3 -3
- package/harness/bundles/java/codex/harness-sync/SKILL.md +4 -2
- package/harness/bundles/java/codex/harness-sync/reference.md +1 -1
- package/harness/bundles/java/codex/harness-test/SKILL.md +8 -5
- package/harness/bundles/java/codex/harness-test/pitfalls.md +1 -1
- package/harness/bundles/java/codex/harness-test/reference.md +1 -1
- package/harness/bundles/java/codex/protocols/submit-protocol.md +1 -1
- package/harness/bundles/java/codex/scripts/harness_deploy.py +7 -0
- package/harness/bundles/java/codex/scripts/harness_integration.py +26 -2
- package/harness/bundles/java/codex/scripts/harness_plan_finalize.py +159 -7
- package/harness/bundles/java/codex/scripts/harness_profile.py +1 -0
- package/harness/bundles/java/codex/scripts/harness_runtime.py +4 -4
- package/harness/bundles/java/codex/scripts/harness_service.py +1 -0
- package/harness/bundles/java/codex/scripts/harness_test_cleanup.py +175 -0
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/CONTEXT.md +14 -1
- package/harness/bundles/java/cursor/README.md +1 -1
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +5 -2
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +7 -4
- package/harness/bundles/java/cursor/harness-archive/reference.md +1 -1
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +4 -2
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +4 -2
- package/harness/bundles/java/cursor/harness-package/SKILL.md +5 -2
- package/harness/bundles/java/cursor/harness-package/checklist.md +5 -5
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +8 -4
- package/harness/bundles/java/cursor/harness-plan/checklist.md +5 -5
- package/harness/bundles/java/cursor/harness-plan/reference.md +5 -5
- package/harness/bundles/java/cursor/harness-review/SKILL.md +5 -2
- package/harness/bundles/java/cursor/harness-review/checklist.md +1 -1
- package/harness/bundles/java/cursor/harness-run/SKILL.md +7 -3
- package/harness/bundles/java/cursor/harness-run/checklist.md +6 -6
- package/harness/bundles/java/cursor/harness-run/reference.md +352 -352
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +6 -3
- package/harness/bundles/java/cursor/harness-submit/checklist.md +11 -11
- package/harness/bundles/java/cursor/harness-submit/reference.md +3 -3
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +4 -2
- package/harness/bundles/java/cursor/harness-sync/reference.md +1 -1
- package/harness/bundles/java/cursor/harness-test/SKILL.md +8 -5
- package/harness/bundles/java/cursor/harness-test/pitfalls.md +1 -1
- package/harness/bundles/java/cursor/harness-test/reference.md +1 -1
- package/harness/bundles/java/cursor/protocols/submit-protocol.md +1 -1
- package/harness/bundles/java/cursor/scripts/harness_deploy.py +7 -0
- package/harness/bundles/java/cursor/scripts/harness_integration.py +26 -2
- package/harness/bundles/java/cursor/scripts/harness_plan_finalize.py +159 -7
- package/harness/bundles/java/cursor/scripts/harness_profile.py +1 -0
- package/harness/bundles/java/cursor/scripts/harness_runtime.py +4 -4
- package/harness/bundles/java/cursor/scripts/harness_service.py +1 -0
- package/harness/bundles/java/cursor/scripts/harness_test_cleanup.py +175 -0
- package/harness/manifests/general/claude-code.json +37 -33
- package/harness/manifests/general/codebuddy.json +37 -33
- package/harness/manifests/general/codex.json +37 -33
- package/harness/manifests/general/cursor.json +37 -33
- package/harness/manifests/java/claude-code.json +39 -35
- package/harness/manifests/java/codebuddy.json +39 -35
- package/harness/manifests/java/codex.json +39 -35
- package/harness/manifests/java/cursor.json +39 -35
- package/hunter-workflow-family.json +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Controlled cleanup helper for test fixtures (retro §5.23).
|
|
3
|
+
|
|
4
|
+
Provides a host-policy-friendly entry point for removing gitignored test
|
|
5
|
+
fixtures (e.g. .pytest_data) within an execution root. Performs realpath
|
|
6
|
+
containment, rejects symlink/reparse escapes, lists exact counts before
|
|
7
|
+
deletion, and outputs a structured receipt.
|
|
8
|
+
"""
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import argparse
|
|
12
|
+
import json
|
|
13
|
+
import os
|
|
14
|
+
import shutil
|
|
15
|
+
import sys
|
|
16
|
+
from pathlib import Path
|
|
17
|
+
from typing import Any
|
|
18
|
+
|
|
19
|
+
if hasattr(sys.stdout, "reconfigure"):
|
|
20
|
+
sys.stdout.reconfigure(encoding="utf-8")
|
|
21
|
+
if hasattr(sys.stderr, "reconfigure"):
|
|
22
|
+
sys.stderr.reconfigure(encoding="utf-8")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _resolve_within(execution_root: Path, rel: str) -> Path | None:
|
|
26
|
+
"""Resolve rel under execution_root, rejecting escapes and symlinks."""
|
|
27
|
+
if not rel or rel.startswith("/"):
|
|
28
|
+
return None
|
|
29
|
+
# Reject absolute paths (Windows drive letter or POSIX).
|
|
30
|
+
if len(rel) >= 2 and rel[1] == ":":
|
|
31
|
+
return None
|
|
32
|
+
parts = rel.replace("\\", "/").split("/")
|
|
33
|
+
if ".." in parts:
|
|
34
|
+
return None
|
|
35
|
+
candidate = (execution_root / rel).resolve(strict=False)
|
|
36
|
+
# Containment check: candidate must be under execution_root.
|
|
37
|
+
try:
|
|
38
|
+
candidate.relative_to(execution_root.resolve(strict=False))
|
|
39
|
+
except ValueError:
|
|
40
|
+
return None
|
|
41
|
+
# Reject symlink/reparse escape: if the path is a symlink, check its target.
|
|
42
|
+
if candidate.is_symlink():
|
|
43
|
+
target = Path(os.readlink(candidate)).resolve(strict=False)
|
|
44
|
+
try:
|
|
45
|
+
target.relative_to(execution_root.resolve(strict=False))
|
|
46
|
+
except ValueError:
|
|
47
|
+
return None
|
|
48
|
+
# Even if target is inside, a symlinked cleanup root is suspicious;
|
|
49
|
+
# reject to avoid following links into unexpected locations.
|
|
50
|
+
return None
|
|
51
|
+
return candidate
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _count_files(root: Path) -> tuple[int, int]:
|
|
55
|
+
"""Count files and total bytes under root."""
|
|
56
|
+
count = 0
|
|
57
|
+
total = 0
|
|
58
|
+
for dirpath, _dirs, files in os.walk(root):
|
|
59
|
+
for name in files:
|
|
60
|
+
fp = Path(dirpath) / name
|
|
61
|
+
try:
|
|
62
|
+
total += fp.stat().st_size
|
|
63
|
+
count += 1
|
|
64
|
+
except OSError:
|
|
65
|
+
continue
|
|
66
|
+
return count, total
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def cleanup(execution_root: Path, cleanup_roots: list[str]) -> dict[str, Any]:
|
|
70
|
+
"""Remove allowlisted cleanup roots within execution_root.
|
|
71
|
+
|
|
72
|
+
Returns a structured receipt. Any path escape, symlink escape, or
|
|
73
|
+
unallowed root results in ok=false with zero files removed.
|
|
74
|
+
"""
|
|
75
|
+
execution_root = Path(execution_root).resolve(strict=False)
|
|
76
|
+
if not execution_root.is_dir():
|
|
77
|
+
return {
|
|
78
|
+
"ok": False,
|
|
79
|
+
"code": "EXECUTION_ROOT_MISSING",
|
|
80
|
+
"executionRoot": str(execution_root),
|
|
81
|
+
"removedFiles": 0,
|
|
82
|
+
"removedBytes": 0,
|
|
83
|
+
"rejectedEscapes": [],
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
rejected: list[dict[str, str]] = []
|
|
87
|
+
removed_files = 0
|
|
88
|
+
removed_bytes = 0
|
|
89
|
+
cleaned: list[str] = []
|
|
90
|
+
|
|
91
|
+
for rel in cleanup_roots:
|
|
92
|
+
target = _resolve_within(execution_root, rel)
|
|
93
|
+
if target is None:
|
|
94
|
+
rejected.append({"path": rel, "reason": "PATH_ESCAPE_REJECTED"})
|
|
95
|
+
continue
|
|
96
|
+
if not target.exists():
|
|
97
|
+
# Already absent — idempotent reentry.
|
|
98
|
+
continue
|
|
99
|
+
# Re-check symlink after resolution (the parent might be a symlink).
|
|
100
|
+
if target.is_symlink():
|
|
101
|
+
rejected.append({"path": rel, "reason": "SYMLINK_ESCAPE_REJECTED"})
|
|
102
|
+
continue
|
|
103
|
+
# Count before deletion for the receipt.
|
|
104
|
+
try:
|
|
105
|
+
count, total = _count_files(target)
|
|
106
|
+
except OSError:
|
|
107
|
+
count, total = 0, 0
|
|
108
|
+
# Delete.
|
|
109
|
+
try:
|
|
110
|
+
shutil.rmtree(target)
|
|
111
|
+
except OSError as exc:
|
|
112
|
+
rejected.append({"path": rel, "reason": f"DELETE_FAILED: {exc}"})
|
|
113
|
+
continue
|
|
114
|
+
removed_files += count
|
|
115
|
+
removed_bytes += total
|
|
116
|
+
cleaned.append(rel)
|
|
117
|
+
|
|
118
|
+
if rejected:
|
|
119
|
+
return {
|
|
120
|
+
"ok": False,
|
|
121
|
+
"code": rejected[0]["reason"],
|
|
122
|
+
"executionRoot": str(execution_root),
|
|
123
|
+
"removedFiles": removed_files,
|
|
124
|
+
"removedBytes": removed_bytes,
|
|
125
|
+
"rejectedEscapes": rejected,
|
|
126
|
+
"cleaned": cleaned,
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if removed_files == 0 and not cleaned:
|
|
130
|
+
return {
|
|
131
|
+
"ok": True,
|
|
132
|
+
"code": "ALREADY_ABSENT",
|
|
133
|
+
"executionRoot": str(execution_root),
|
|
134
|
+
"removedFiles": 0,
|
|
135
|
+
"removedBytes": 0,
|
|
136
|
+
"rejectedEscapes": [],
|
|
137
|
+
"cleaned": [],
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return {
|
|
141
|
+
"ok": True,
|
|
142
|
+
"code": "CLEANUP_COMPLETE",
|
|
143
|
+
"executionRoot": str(execution_root),
|
|
144
|
+
"removedFiles": removed_files,
|
|
145
|
+
"removedBytes": removed_bytes,
|
|
146
|
+
"rejectedEscapes": [],
|
|
147
|
+
"cleaned": cleaned,
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def main(argv: list[str] | None = None) -> int:
|
|
152
|
+
parser = argparse.ArgumentParser(description=__doc__)
|
|
153
|
+
sub = parser.add_subparsers(dest="action", required=True)
|
|
154
|
+
clean_parser = sub.add_parser("cleanup")
|
|
155
|
+
clean_parser.add_argument("--execution-root", required=True)
|
|
156
|
+
clean_parser.add_argument("--cleanup-roots", required=True, help="JSON array of relative paths")
|
|
157
|
+
clean_parser.add_argument("--json", action="store_true")
|
|
158
|
+
args = parser.parse_args(argv)
|
|
159
|
+
|
|
160
|
+
try:
|
|
161
|
+
roots = json.loads(args.cleanup_roots)
|
|
162
|
+
if not isinstance(roots, list):
|
|
163
|
+
raise ValueError("cleanup-roots must be a JSON array")
|
|
164
|
+
except (json.JSONDecodeError, ValueError) as exc:
|
|
165
|
+
result = {"ok": False, "code": "INVALID_CLEANUP_ROOTS", "error": str(exc)}
|
|
166
|
+
print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
167
|
+
return 1
|
|
168
|
+
|
|
169
|
+
result = cleanup(Path(args.execution_root), roots)
|
|
170
|
+
print(json.dumps(result, ensure_ascii=False, indent=2 if args.json else None))
|
|
171
|
+
return 0 if result["ok"] else 1
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
if __name__ == "__main__":
|
|
175
|
+
raise SystemExit(main())
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "claude-code",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.16",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "f8d05b3cde1a30f216ab0d3ba26ec45796f533686a003c4c656a36aed077634b"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "agents/harness-evaluator.md",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"path": "CONTEXT.md",
|
|
26
|
-
"sha256": "
|
|
26
|
+
"sha256": "2318aba4ff5ae4db0a0bff6380d1e9f4ed697caf9a4b2c1458ad2cdda1acb9e8"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "contracts/ci-metrics.schema.json",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"path": "harness-archive/reference.md",
|
|
42
|
-
"sha256": "
|
|
42
|
+
"sha256": "9a76b0d880e3951ca2d24e56573a4144fdfe3d7abb4a8a44dda4a19d4dce4ec1"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"path": "harness-archive/scripts/gen-manifest.ps1",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": "harness-archive/SKILL.md",
|
|
50
|
-
"sha256": "
|
|
50
|
+
"sha256": "1081a1913e62f86ada5b5b43eed866e0de0aca1e9900883aa9c3a328168e0128"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
"path": "harness-codebase-map/SKILL.md",
|
|
70
|
-
"sha256": "
|
|
70
|
+
"sha256": "ebfa5cc6ca087dddf001c7e951cfe40c9a47dd1ab15e69b696564bc9d35c4dd2"
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -131,15 +131,15 @@
|
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
134
|
-
"sha256": "
|
|
134
|
+
"sha256": "fb0e10981ec43a63fe89365edf12c4d65058050d593e612cbca05116f721a76f"
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
"path": "harness-knowledge-query/SKILL.md",
|
|
138
|
-
"sha256": "
|
|
138
|
+
"sha256": "4825b36103b11eb1b2759167638af9234d6612b16ea2024c87f0c4dadf740e46"
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
"path": "harness-plan/checklist.md",
|
|
142
|
-
"sha256": "
|
|
142
|
+
"sha256": "cd990f8557f92ca0b2259d0ed4aab51c25ecf977fe8cddc9a689e0d05b334a2b"
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
"path": "harness-plan/protocols.md",
|
|
@@ -147,15 +147,15 @@
|
|
|
147
147
|
},
|
|
148
148
|
{
|
|
149
149
|
"path": "harness-plan/reference.md",
|
|
150
|
-
"sha256": "
|
|
150
|
+
"sha256": "1d252ecff35031bdc32692f52ee8d736d9d8570d5d8ab351ebaf81e85ffc56ea"
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"path": "harness-plan/SKILL.md",
|
|
154
|
-
"sha256": "
|
|
154
|
+
"sha256": "83d1a6c96be57ea556d0c08c665ad62ccd7813bb9f7e5fed0354ab8f4cd3756c"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
"path": "harness-review/checklist.md",
|
|
158
|
-
"sha256": "
|
|
158
|
+
"sha256": "5827ab101fd8d83c7f4616cb538b2dad0d5174e8f70e79d0af54871fb4d8a80f"
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"path": "harness-review/protocols.md",
|
|
@@ -167,11 +167,11 @@
|
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
"path": "harness-review/SKILL.md",
|
|
170
|
-
"sha256": "
|
|
170
|
+
"sha256": "536fc0c4200bd8701991b2446d929c1fb3db6b06838227860eea81a8ea734cd1"
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"path": "harness-run/checklist.md",
|
|
174
|
-
"sha256": "
|
|
174
|
+
"sha256": "8f8be29c43b2a37885d0ef729ca4a1cb748869d65de0498b0e38f3e1cc7f317a"
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "harness-run/protocols.md",
|
|
@@ -179,35 +179,35 @@
|
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
"path": "harness-run/reference.md",
|
|
182
|
-
"sha256": "
|
|
182
|
+
"sha256": "00d13333bc9e398842155bc4f9e59792be3666b15b471e093c8f50fe8aa0abf6"
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
"path": "harness-run/SKILL.md",
|
|
186
|
-
"sha256": "
|
|
186
|
+
"sha256": "89cfccb7a8bae365a56614bf4e6b21749e83abb894f3af18ee6430fe23cafeff"
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-submit/checklist.md",
|
|
190
|
-
"sha256": "
|
|
190
|
+
"sha256": "63d7979d4d96f24d012922e0b18e8d9c29f36ad2a14fe794c227bce0e0c6e038"
|
|
191
191
|
},
|
|
192
192
|
{
|
|
193
193
|
"path": "harness-submit/reference.md",
|
|
194
|
-
"sha256": "
|
|
194
|
+
"sha256": "03a0f92ad85b94610d724333bdc4b0b1063f2065e7ec4ab518363adeef7c7303"
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"path": "harness-submit/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
198
|
+
"sha256": "d0ff4a5569685e018fef7bdc02a17d9a5889b269505dd0b0d31dbe66d75301f9"
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
"path": "harness-sync/reference.md",
|
|
202
|
-
"sha256": "
|
|
202
|
+
"sha256": "695d7ffea45f50008277851eefb815c1979e0c47f7184919ee2a7eee6a363988"
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
"path": "harness-sync/SKILL.md",
|
|
206
|
-
"sha256": "
|
|
206
|
+
"sha256": "1544c88eb25a2902df8e0789e2b7f4bb0ba6b5da8baf01293d745f42e3c514d3"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"path": "harness-test/checklist.md",
|
|
210
|
-
"sha256": "
|
|
210
|
+
"sha256": "5d7a734ba1832690bc9a405e062f83ae81a56b2c2d86d23e381c841b74c68ba1"
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"path": "harness-test/pitfalls-java.md",
|
|
@@ -215,11 +215,11 @@
|
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"path": "harness-test/pitfalls.md",
|
|
218
|
-
"sha256": "
|
|
218
|
+
"sha256": "c96afa8739598a2a5977ed2e734e42d1b330901528df4651f33ec20c0295ec42"
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
221
|
"path": "harness-test/reference.md",
|
|
222
|
-
"sha256": "
|
|
222
|
+
"sha256": "1b705db0a2f075d7c7aa48a9130719557daf1d5cddc0271ea68d4e75a3f827b2"
|
|
223
223
|
},
|
|
224
224
|
{
|
|
225
225
|
"path": "harness-test/scripts/runtime-helpers.mjs",
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
},
|
|
228
228
|
{
|
|
229
229
|
"path": "harness-test/SKILL.md",
|
|
230
|
-
"sha256": "
|
|
230
|
+
"sha256": "cc698eebaa77cb448ef9aba98e8b0e0c43ee7530557e2df9d33645539bbc7b37"
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -259,11 +259,11 @@
|
|
|
259
259
|
},
|
|
260
260
|
{
|
|
261
261
|
"path": "protocols/submit-protocol.md",
|
|
262
|
-
"sha256": "
|
|
262
|
+
"sha256": "01465556bd00fe01f91f315fd3eb365099eb3dd2e111331ba70c103a37794543"
|
|
263
263
|
},
|
|
264
264
|
{
|
|
265
265
|
"path": "README.md",
|
|
266
|
-
"sha256": "
|
|
266
|
+
"sha256": "9edb4d313701f7317805dedb1b1e7e61aa986bed1e5e4266b257eb880abb33e0"
|
|
267
267
|
},
|
|
268
268
|
{
|
|
269
269
|
"path": "scripts/harness_apidoc.py",
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
},
|
|
284
284
|
{
|
|
285
285
|
"path": "scripts/harness_deploy.py",
|
|
286
|
-
"sha256": "
|
|
286
|
+
"sha256": "48a95b696cd4df411cc206b80b16b436018e7648bd2daa55f110ceee2e403271"
|
|
287
287
|
},
|
|
288
288
|
{
|
|
289
289
|
"path": "scripts/harness_events.py",
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
},
|
|
296
296
|
{
|
|
297
297
|
"path": "scripts/harness_integration.py",
|
|
298
|
-
"sha256": "
|
|
298
|
+
"sha256": "777c8d0bd07b026645d5c6938da64699c123ab13870f04963fa0b09a900b095d"
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"path": "scripts/harness_ledger.py",
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
},
|
|
312
312
|
{
|
|
313
313
|
"path": "scripts/harness_plan_finalize.py",
|
|
314
|
-
"sha256": "
|
|
314
|
+
"sha256": "e5152dda3380b1c1acdd219f8af0117b0c1670f0998ea62340f89e27a09f7585"
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
317
|
"path": "scripts/harness_preflight.py",
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
"path": "scripts/harness_profile.py",
|
|
322
|
-
"sha256": "
|
|
322
|
+
"sha256": "366575a5d201da2730f1c28acbbf4a4ef76dbdacb38d222a555671c93a06b8e0"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"path": "scripts/harness_review.py",
|
|
@@ -327,11 +327,11 @@
|
|
|
327
327
|
},
|
|
328
328
|
{
|
|
329
329
|
"path": "scripts/harness_runtime.py",
|
|
330
|
-
"sha256": "
|
|
330
|
+
"sha256": "0cc27b7622922fa1c998973979d4970c5c993efe42545fa64dd0e64993030fce"
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
"path": "scripts/harness_service.py",
|
|
334
|
-
"sha256": "
|
|
334
|
+
"sha256": "af0eb7c93d5f856c5ed5a977e3f9a12dc0ced5baca571f7023f6b04ece46baf6"
|
|
335
335
|
},
|
|
336
336
|
{
|
|
337
337
|
"path": "scripts/harness_state.py",
|
|
@@ -341,6 +341,10 @@
|
|
|
341
341
|
"path": "scripts/harness_sync.py",
|
|
342
342
|
"sha256": "3ab54718ab8448f7bdac76119806a885e0f19cece05b0d8108128dc7d895d6e1"
|
|
343
343
|
},
|
|
344
|
+
{
|
|
345
|
+
"path": "scripts/harness_test_cleanup.py",
|
|
346
|
+
"sha256": "5b60d6f5f057885f25d33906db69ce834193654024a7bf5ce1a09dc49808eff3"
|
|
347
|
+
},
|
|
344
348
|
{
|
|
345
349
|
"path": "scripts/harness_test_guard.py",
|
|
346
350
|
"sha256": "36d0ae0776c75fb2f5a233500aa8dd1647a17880676cb07e441e2896e402e67c"
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "codebuddy",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.16",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "5424c14201baa7eae777b1929753efeeb3ccfd8622d27c750385c9d8b940eadf"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "agents/harness-evaluator.md",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"path": "CONTEXT.md",
|
|
26
|
-
"sha256": "
|
|
26
|
+
"sha256": "2318aba4ff5ae4db0a0bff6380d1e9f4ed697caf9a4b2c1458ad2cdda1acb9e8"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "contracts/ci-metrics.schema.json",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"path": "harness-archive/reference.md",
|
|
42
|
-
"sha256": "
|
|
42
|
+
"sha256": "9a76b0d880e3951ca2d24e56573a4144fdfe3d7abb4a8a44dda4a19d4dce4ec1"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"path": "harness-archive/scripts/gen-manifest.ps1",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": "harness-archive/SKILL.md",
|
|
50
|
-
"sha256": "
|
|
50
|
+
"sha256": "a5acfae19e391b550948a0162d60c022924150e059540b40ef6f2faefb4df8e8"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
"path": "harness-codebase-map/SKILL.md",
|
|
70
|
-
"sha256": "
|
|
70
|
+
"sha256": "e3b335cd792e7f6aebc5b1871c3b6a77c1f27dc71ba4293c3e23565ccbe3c3b9"
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -131,15 +131,15 @@
|
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
134
|
-
"sha256": "
|
|
134
|
+
"sha256": "e72ae7507f4ec2fe1bb26c4b14ebcbbf020771570ffe1d338c5e66a444b5a7fc"
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
"path": "harness-knowledge-query/SKILL.md",
|
|
138
|
-
"sha256": "
|
|
138
|
+
"sha256": "324c4922afd4f3c227c307956a6fc10da63d35ee0a28dfa7a8340799d63391f0"
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
"path": "harness-plan/checklist.md",
|
|
142
|
-
"sha256": "
|
|
142
|
+
"sha256": "cd990f8557f92ca0b2259d0ed4aab51c25ecf977fe8cddc9a689e0d05b334a2b"
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
"path": "harness-plan/protocols.md",
|
|
@@ -147,15 +147,15 @@
|
|
|
147
147
|
},
|
|
148
148
|
{
|
|
149
149
|
"path": "harness-plan/reference.md",
|
|
150
|
-
"sha256": "
|
|
150
|
+
"sha256": "1d252ecff35031bdc32692f52ee8d736d9d8570d5d8ab351ebaf81e85ffc56ea"
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"path": "harness-plan/SKILL.md",
|
|
154
|
-
"sha256": "
|
|
154
|
+
"sha256": "02edd4c33691b23f267856178595d47f82679121ca05d79bb12015968e293b43"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
"path": "harness-review/checklist.md",
|
|
158
|
-
"sha256": "
|
|
158
|
+
"sha256": "5827ab101fd8d83c7f4616cb538b2dad0d5174e8f70e79d0af54871fb4d8a80f"
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"path": "harness-review/protocols.md",
|
|
@@ -167,11 +167,11 @@
|
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
"path": "harness-review/SKILL.md",
|
|
170
|
-
"sha256": "
|
|
170
|
+
"sha256": "625d66d7cf03c514c93f7a85babe16f3f0af76edfe04ba42232e7691ef377881"
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"path": "harness-run/checklist.md",
|
|
174
|
-
"sha256": "
|
|
174
|
+
"sha256": "8f8be29c43b2a37885d0ef729ca4a1cb748869d65de0498b0e38f3e1cc7f317a"
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "harness-run/protocols.md",
|
|
@@ -179,35 +179,35 @@
|
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
"path": "harness-run/reference.md",
|
|
182
|
-
"sha256": "
|
|
182
|
+
"sha256": "00d13333bc9e398842155bc4f9e59792be3666b15b471e093c8f50fe8aa0abf6"
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
"path": "harness-run/SKILL.md",
|
|
186
|
-
"sha256": "
|
|
186
|
+
"sha256": "1f2ba724823e30da0d0cde2ae92a21f6682be2ebabc30ddd3076550a03c6e69d"
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-submit/checklist.md",
|
|
190
|
-
"sha256": "
|
|
190
|
+
"sha256": "63d7979d4d96f24d012922e0b18e8d9c29f36ad2a14fe794c227bce0e0c6e038"
|
|
191
191
|
},
|
|
192
192
|
{
|
|
193
193
|
"path": "harness-submit/reference.md",
|
|
194
|
-
"sha256": "
|
|
194
|
+
"sha256": "03a0f92ad85b94610d724333bdc4b0b1063f2065e7ec4ab518363adeef7c7303"
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"path": "harness-submit/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
198
|
+
"sha256": "1919f2fd42a5e54a7820a2fc9466aef8ba5e1a3967245d62289e2b27b5327c40"
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
"path": "harness-sync/reference.md",
|
|
202
|
-
"sha256": "
|
|
202
|
+
"sha256": "695d7ffea45f50008277851eefb815c1979e0c47f7184919ee2a7eee6a363988"
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
"path": "harness-sync/SKILL.md",
|
|
206
|
-
"sha256": "
|
|
206
|
+
"sha256": "1eabe1c4083601dee1bf5013ef60d0e60c4bdd6fe3a74f123966b8a5eb681806"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"path": "harness-test/checklist.md",
|
|
210
|
-
"sha256": "
|
|
210
|
+
"sha256": "5d7a734ba1832690bc9a405e062f83ae81a56b2c2d86d23e381c841b74c68ba1"
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"path": "harness-test/pitfalls-java.md",
|
|
@@ -215,11 +215,11 @@
|
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"path": "harness-test/pitfalls.md",
|
|
218
|
-
"sha256": "
|
|
218
|
+
"sha256": "c96afa8739598a2a5977ed2e734e42d1b330901528df4651f33ec20c0295ec42"
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
221
|
"path": "harness-test/reference.md",
|
|
222
|
-
"sha256": "
|
|
222
|
+
"sha256": "1b705db0a2f075d7c7aa48a9130719557daf1d5cddc0271ea68d4e75a3f827b2"
|
|
223
223
|
},
|
|
224
224
|
{
|
|
225
225
|
"path": "harness-test/scripts/runtime-helpers.mjs",
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
},
|
|
228
228
|
{
|
|
229
229
|
"path": "harness-test/SKILL.md",
|
|
230
|
-
"sha256": "
|
|
230
|
+
"sha256": "bbc89856c31502a4dff11d3a218c60ad661865dc663d54b35bada838c5a00884"
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -259,11 +259,11 @@
|
|
|
259
259
|
},
|
|
260
260
|
{
|
|
261
261
|
"path": "protocols/submit-protocol.md",
|
|
262
|
-
"sha256": "
|
|
262
|
+
"sha256": "01465556bd00fe01f91f315fd3eb365099eb3dd2e111331ba70c103a37794543"
|
|
263
263
|
},
|
|
264
264
|
{
|
|
265
265
|
"path": "README.md",
|
|
266
|
-
"sha256": "
|
|
266
|
+
"sha256": "9edb4d313701f7317805dedb1b1e7e61aa986bed1e5e4266b257eb880abb33e0"
|
|
267
267
|
},
|
|
268
268
|
{
|
|
269
269
|
"path": "scripts/harness_apidoc.py",
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
},
|
|
284
284
|
{
|
|
285
285
|
"path": "scripts/harness_deploy.py",
|
|
286
|
-
"sha256": "
|
|
286
|
+
"sha256": "48a95b696cd4df411cc206b80b16b436018e7648bd2daa55f110ceee2e403271"
|
|
287
287
|
},
|
|
288
288
|
{
|
|
289
289
|
"path": "scripts/harness_events.py",
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
},
|
|
296
296
|
{
|
|
297
297
|
"path": "scripts/harness_integration.py",
|
|
298
|
-
"sha256": "
|
|
298
|
+
"sha256": "777c8d0bd07b026645d5c6938da64699c123ab13870f04963fa0b09a900b095d"
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"path": "scripts/harness_ledger.py",
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
},
|
|
312
312
|
{
|
|
313
313
|
"path": "scripts/harness_plan_finalize.py",
|
|
314
|
-
"sha256": "
|
|
314
|
+
"sha256": "e5152dda3380b1c1acdd219f8af0117b0c1670f0998ea62340f89e27a09f7585"
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
317
|
"path": "scripts/harness_preflight.py",
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
"path": "scripts/harness_profile.py",
|
|
322
|
-
"sha256": "
|
|
322
|
+
"sha256": "366575a5d201da2730f1c28acbbf4a4ef76dbdacb38d222a555671c93a06b8e0"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"path": "scripts/harness_review.py",
|
|
@@ -327,11 +327,11 @@
|
|
|
327
327
|
},
|
|
328
328
|
{
|
|
329
329
|
"path": "scripts/harness_runtime.py",
|
|
330
|
-
"sha256": "
|
|
330
|
+
"sha256": "0cc27b7622922fa1c998973979d4970c5c993efe42545fa64dd0e64993030fce"
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
"path": "scripts/harness_service.py",
|
|
334
|
-
"sha256": "
|
|
334
|
+
"sha256": "af0eb7c93d5f856c5ed5a977e3f9a12dc0ced5baca571f7023f6b04ece46baf6"
|
|
335
335
|
},
|
|
336
336
|
{
|
|
337
337
|
"path": "scripts/harness_state.py",
|
|
@@ -341,6 +341,10 @@
|
|
|
341
341
|
"path": "scripts/harness_sync.py",
|
|
342
342
|
"sha256": "3ab54718ab8448f7bdac76119806a885e0f19cece05b0d8108128dc7d895d6e1"
|
|
343
343
|
},
|
|
344
|
+
{
|
|
345
|
+
"path": "scripts/harness_test_cleanup.py",
|
|
346
|
+
"sha256": "5b60d6f5f057885f25d33906db69ce834193654024a7bf5ce1a09dc49808eff3"
|
|
347
|
+
},
|
|
344
348
|
{
|
|
345
349
|
"path": "scripts/harness_test_guard.py",
|
|
346
350
|
"sha256": "36d0ae0776c75fb2f5a233500aa8dd1647a17880676cb07e441e2896e402e67c"
|