@hunter-harness/workflow-harness 0.2.27 → 0.2.29
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/contracts/workflow-policy.json +34 -2
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +25 -6
- package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +44 -0
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +493 -74
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +26 -2
- package/harness/bundles/general/claude-code/harness-test/checklist.md +15 -0
- package/harness/bundles/general/claude-code/harness-test/reference.md +28 -4
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +2061 -187
- package/harness/bundles/general/claude-code/scripts/harness_events.py +43 -9
- package/harness/bundles/general/claude-code/scripts/harness_gate.py +491 -7
- package/harness/bundles/general/claude-code/scripts/harness_integration.py +232 -0
- package/harness/bundles/general/claude-code/scripts/harness_phase.py +758 -1
- package/harness/bundles/general/claude-code/scripts/harness_plan_finalize.py +74 -0
- package/harness/bundles/general/claude-code/scripts/harness_retry.py +175 -0
- package/harness/bundles/general/claude-code/scripts/harness_test_guard.py +702 -22
- package/harness/bundles/general/claude-code/scripts/harness_test_runner.py +974 -0
- package/harness/bundles/general/claude-code/scripts/harness_workflow_policy.py +87 -0
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/contracts/workflow-policy.json +34 -2
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +25 -6
- package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +44 -0
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +493 -74
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +26 -2
- package/harness/bundles/general/codebuddy/harness-test/checklist.md +15 -0
- package/harness/bundles/general/codebuddy/harness-test/reference.md +28 -4
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +2061 -187
- package/harness/bundles/general/codebuddy/scripts/harness_events.py +43 -9
- package/harness/bundles/general/codebuddy/scripts/harness_gate.py +491 -7
- package/harness/bundles/general/codebuddy/scripts/harness_integration.py +232 -0
- package/harness/bundles/general/codebuddy/scripts/harness_phase.py +758 -1
- package/harness/bundles/general/codebuddy/scripts/harness_plan_finalize.py +74 -0
- package/harness/bundles/general/codebuddy/scripts/harness_retry.py +175 -0
- package/harness/bundles/general/codebuddy/scripts/harness_test_guard.py +702 -22
- package/harness/bundles/general/codebuddy/scripts/harness_test_runner.py +974 -0
- package/harness/bundles/general/codebuddy/scripts/harness_workflow_policy.py +87 -0
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/contracts/workflow-policy.json +34 -2
- package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +25 -6
- package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +44 -0
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +493 -74
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/SKILL.md +26 -2
- package/harness/bundles/general/codex/harness-test/checklist.md +15 -0
- package/harness/bundles/general/codex/harness-test/reference.md +28 -4
- package/harness/bundles/general/codex/scripts/harness_archive.py +2061 -187
- package/harness/bundles/general/codex/scripts/harness_events.py +43 -9
- package/harness/bundles/general/codex/scripts/harness_gate.py +491 -7
- package/harness/bundles/general/codex/scripts/harness_integration.py +232 -0
- package/harness/bundles/general/codex/scripts/harness_phase.py +758 -1
- package/harness/bundles/general/codex/scripts/harness_plan_finalize.py +74 -0
- package/harness/bundles/general/codex/scripts/harness_retry.py +175 -0
- package/harness/bundles/general/codex/scripts/harness_test_guard.py +702 -22
- package/harness/bundles/general/codex/scripts/harness_test_runner.py +974 -0
- package/harness/bundles/general/codex/scripts/harness_workflow_policy.py +87 -0
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/contracts/workflow-policy.json +34 -2
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +25 -6
- package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +44 -0
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +493 -74
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/SKILL.md +26 -2
- package/harness/bundles/general/cursor/harness-test/checklist.md +15 -0
- package/harness/bundles/general/cursor/harness-test/reference.md +28 -4
- package/harness/bundles/general/cursor/scripts/harness_archive.py +2061 -187
- package/harness/bundles/general/cursor/scripts/harness_events.py +43 -9
- package/harness/bundles/general/cursor/scripts/harness_gate.py +491 -7
- package/harness/bundles/general/cursor/scripts/harness_integration.py +232 -0
- package/harness/bundles/general/cursor/scripts/harness_phase.py +758 -1
- package/harness/bundles/general/cursor/scripts/harness_plan_finalize.py +74 -0
- package/harness/bundles/general/cursor/scripts/harness_retry.py +175 -0
- package/harness/bundles/general/cursor/scripts/harness_test_guard.py +702 -22
- package/harness/bundles/general/cursor/scripts/harness_test_runner.py +974 -0
- package/harness/bundles/general/cursor/scripts/harness_workflow_policy.py +87 -0
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/contracts/workflow-policy.json +34 -2
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +25 -6
- package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +44 -0
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +493 -74
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +26 -2
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +2061 -187
- package/harness/bundles/java/claude-code/scripts/harness_events.py +43 -9
- package/harness/bundles/java/claude-code/scripts/harness_gate.py +491 -7
- package/harness/bundles/java/claude-code/scripts/harness_integration.py +232 -0
- package/harness/bundles/java/claude-code/scripts/harness_phase.py +758 -1
- package/harness/bundles/java/claude-code/scripts/harness_plan_finalize.py +74 -0
- package/harness/bundles/java/claude-code/scripts/harness_retry.py +175 -0
- package/harness/bundles/java/claude-code/scripts/harness_test_guard.py +702 -22
- package/harness/bundles/java/claude-code/scripts/harness_test_runner.py +974 -0
- package/harness/bundles/java/claude-code/scripts/harness_workflow_policy.py +87 -0
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/contracts/workflow-policy.json +34 -2
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +25 -6
- package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +44 -0
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +493 -74
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +26 -2
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +2061 -187
- package/harness/bundles/java/codebuddy/scripts/harness_events.py +43 -9
- package/harness/bundles/java/codebuddy/scripts/harness_gate.py +491 -7
- package/harness/bundles/java/codebuddy/scripts/harness_integration.py +232 -0
- package/harness/bundles/java/codebuddy/scripts/harness_phase.py +758 -1
- package/harness/bundles/java/codebuddy/scripts/harness_plan_finalize.py +74 -0
- package/harness/bundles/java/codebuddy/scripts/harness_retry.py +175 -0
- package/harness/bundles/java/codebuddy/scripts/harness_test_guard.py +702 -22
- package/harness/bundles/java/codebuddy/scripts/harness_test_runner.py +974 -0
- package/harness/bundles/java/codebuddy/scripts/harness_workflow_policy.py +87 -0
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/contracts/workflow-policy.json +34 -2
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +25 -6
- package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +44 -0
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +493 -74
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-test/SKILL.md +26 -2
- package/harness/bundles/java/codex/scripts/harness_archive.py +2061 -187
- package/harness/bundles/java/codex/scripts/harness_events.py +43 -9
- package/harness/bundles/java/codex/scripts/harness_gate.py +491 -7
- package/harness/bundles/java/codex/scripts/harness_integration.py +232 -0
- package/harness/bundles/java/codex/scripts/harness_phase.py +758 -1
- package/harness/bundles/java/codex/scripts/harness_plan_finalize.py +74 -0
- package/harness/bundles/java/codex/scripts/harness_retry.py +175 -0
- package/harness/bundles/java/codex/scripts/harness_test_guard.py +702 -22
- package/harness/bundles/java/codex/scripts/harness_test_runner.py +974 -0
- package/harness/bundles/java/codex/scripts/harness_workflow_policy.py +87 -0
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/contracts/workflow-policy.json +34 -2
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +25 -6
- package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +44 -0
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +493 -74
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-test/SKILL.md +26 -2
- package/harness/bundles/java/cursor/scripts/harness_archive.py +2061 -187
- package/harness/bundles/java/cursor/scripts/harness_events.py +43 -9
- package/harness/bundles/java/cursor/scripts/harness_gate.py +491 -7
- package/harness/bundles/java/cursor/scripts/harness_integration.py +232 -0
- package/harness/bundles/java/cursor/scripts/harness_phase.py +758 -1
- package/harness/bundles/java/cursor/scripts/harness_plan_finalize.py +74 -0
- package/harness/bundles/java/cursor/scripts/harness_retry.py +175 -0
- package/harness/bundles/java/cursor/scripts/harness_test_guard.py +702 -22
- package/harness/bundles/java/cursor/scripts/harness_test_runner.py +974 -0
- package/harness/bundles/java/cursor/scripts/harness_workflow_policy.py +87 -0
- package/harness/manifests/general/claude-code.json +34 -26
- package/harness/manifests/general/codebuddy.json +34 -26
- package/harness/manifests/general/codex.json +34 -26
- package/harness/manifests/general/cursor.json +34 -26
- package/harness/manifests/java/claude-code.json +34 -26
- package/harness/manifests/java/codebuddy.json +34 -26
- package/harness/manifests/java/codex.json +34 -26
- package/harness/manifests/java/cursor.json +34 -26
- package/hunter-workflow-family.json +2 -2
- package/package.json +1 -1
|
@@ -15,6 +15,7 @@ POLICY_REL = Path("harness") / "contracts" / "workflow-policy.json"
|
|
|
15
15
|
TOP_LEVEL_KEYS = frozenset(
|
|
16
16
|
{
|
|
17
17
|
"schemaVersion",
|
|
18
|
+
"testExecution",
|
|
18
19
|
"riskTiers",
|
|
19
20
|
"skills",
|
|
20
21
|
"requiredArtifacts",
|
|
@@ -62,6 +63,27 @@ CHECKPOINT_RULE_KEYS = frozenset(
|
|
|
62
63
|
"reviewerTool",
|
|
63
64
|
}
|
|
64
65
|
)
|
|
66
|
+
TEST_EXECUTION_KEYS = frozenset(
|
|
67
|
+
{
|
|
68
|
+
"runner",
|
|
69
|
+
"defaultProfile",
|
|
70
|
+
"maxWorkers",
|
|
71
|
+
"singleInstance",
|
|
72
|
+
"processTreeCleanup",
|
|
73
|
+
"detachedProcessPreflight",
|
|
74
|
+
"confirmationFlag",
|
|
75
|
+
"confirmationRequiredProfiles",
|
|
76
|
+
"resourceIntensiveModules",
|
|
77
|
+
"profiles",
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
TEST_EXECUTION_PROFILE_KEYS = frozenset(
|
|
81
|
+
{
|
|
82
|
+
"description",
|
|
83
|
+
"includesResourceIntensive",
|
|
84
|
+
"moduleTimeoutSeconds",
|
|
85
|
+
}
|
|
86
|
+
)
|
|
65
87
|
|
|
66
88
|
|
|
67
89
|
class PolicyValidationError(ValueError):
|
|
@@ -94,6 +116,71 @@ def validate_policy(data: Any) -> dict[str, Any]:
|
|
|
94
116
|
if data["schemaVersion"] != 1:
|
|
95
117
|
raise PolicyValidationError("unsupported schemaVersion")
|
|
96
118
|
|
|
119
|
+
test_execution = data["testExecution"]
|
|
120
|
+
_require_type(test_execution, dict, "testExecution")
|
|
121
|
+
_reject_unknown(test_execution, TEST_EXECUTION_KEYS, "testExecution")
|
|
122
|
+
for key in ("runner", "defaultProfile", "confirmationFlag"):
|
|
123
|
+
_require_type(test_execution[key], str, f"testExecution.{key}")
|
|
124
|
+
max_workers = test_execution["maxWorkers"]
|
|
125
|
+
_require_type(max_workers, int, "testExecution.maxWorkers")
|
|
126
|
+
if isinstance(max_workers, bool) or max_workers < 1 or max_workers > 2:
|
|
127
|
+
raise PolicyValidationError("testExecution.maxWorkers must be 1 or 2")
|
|
128
|
+
for key in (
|
|
129
|
+
"singleInstance",
|
|
130
|
+
"processTreeCleanup",
|
|
131
|
+
"detachedProcessPreflight",
|
|
132
|
+
):
|
|
133
|
+
_require_type(test_execution[key], bool, f"testExecution.{key}")
|
|
134
|
+
if not test_execution[key]:
|
|
135
|
+
raise PolicyValidationError(f"testExecution.{key} must be true")
|
|
136
|
+
for key in ("confirmationRequiredProfiles", "resourceIntensiveModules"):
|
|
137
|
+
values = test_execution[key]
|
|
138
|
+
_require_type(values, list, f"testExecution.{key}")
|
|
139
|
+
if any(not isinstance(item, str) or not item for item in values):
|
|
140
|
+
raise PolicyValidationError(
|
|
141
|
+
f"testExecution.{key} must contain non-empty strings"
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
execution_profiles = test_execution["profiles"]
|
|
145
|
+
_require_type(execution_profiles, dict, "testExecution.profiles")
|
|
146
|
+
required_profile_names = {"safe", "system", "full"}
|
|
147
|
+
if set(execution_profiles) != required_profile_names:
|
|
148
|
+
raise PolicyValidationError(
|
|
149
|
+
"testExecution.profiles must define exactly safe, system, and full"
|
|
150
|
+
)
|
|
151
|
+
if test_execution["defaultProfile"] != "safe":
|
|
152
|
+
raise PolicyValidationError("testExecution.defaultProfile must be safe")
|
|
153
|
+
confirmation_profiles = set(test_execution["confirmationRequiredProfiles"])
|
|
154
|
+
if not {"system", "full"}.issubset(confirmation_profiles):
|
|
155
|
+
raise PolicyValidationError(
|
|
156
|
+
"testExecution confirmation must cover system and full"
|
|
157
|
+
)
|
|
158
|
+
for profile_name, profile in execution_profiles.items():
|
|
159
|
+
path = f"testExecution.profiles.{profile_name}"
|
|
160
|
+
_require_type(profile, dict, path)
|
|
161
|
+
_reject_unknown(profile, TEST_EXECUTION_PROFILE_KEYS, path)
|
|
162
|
+
_require_type(profile["description"], str, f"{path}.description")
|
|
163
|
+
_require_type(
|
|
164
|
+
profile["includesResourceIntensive"],
|
|
165
|
+
bool,
|
|
166
|
+
f"{path}.includesResourceIntensive",
|
|
167
|
+
)
|
|
168
|
+
timeout = profile["moduleTimeoutSeconds"]
|
|
169
|
+
_require_type(timeout, int, f"{path}.moduleTimeoutSeconds")
|
|
170
|
+
if isinstance(timeout, bool) or timeout <= 0:
|
|
171
|
+
raise PolicyValidationError(
|
|
172
|
+
f"{path}.moduleTimeoutSeconds must be a positive integer"
|
|
173
|
+
)
|
|
174
|
+
if execution_profiles["safe"]["includesResourceIntensive"]:
|
|
175
|
+
raise PolicyValidationError(
|
|
176
|
+
"testExecution.profiles.safe must exclude resource-intensive tests"
|
|
177
|
+
)
|
|
178
|
+
for profile_name in ("system", "full"):
|
|
179
|
+
if not execution_profiles[profile_name]["includesResourceIntensive"]:
|
|
180
|
+
raise PolicyValidationError(
|
|
181
|
+
f"testExecution.profiles.{profile_name} must include resource-intensive tests"
|
|
182
|
+
)
|
|
183
|
+
|
|
97
184
|
risk_tiers = data["riskTiers"]
|
|
98
185
|
_require_type(risk_tiers, dict, "riskTiers")
|
|
99
186
|
for tier_name, tier in risk_tiers.items():
|
|
@@ -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.21",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "ea2c4ed992ecbcdd6951fc52754a8b40b7408433c4270c6f7797199db5a889b7"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "agents/harness-evaluator.md",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"path": "contracts/workflow-policy.json",
|
|
34
|
-
"sha256": "
|
|
34
|
+
"sha256": "92574af8d7252527be8cd2871675fc02ab7c3df95a72dab93228f6f884844971"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
"path": "harness-archive/checklist.md",
|
|
@@ -47,15 +47,15 @@
|
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": "harness-archive/SKILL.md",
|
|
50
|
-
"sha256": "
|
|
50
|
+
"sha256": "dc9fe0755237665f6cb7f1502d762741485fb74c0943ccd94033f712c9368125"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
54
|
-
"sha256": "
|
|
54
|
+
"sha256": "9e027c4c26dc5d076c35bb485fc618929d425b1f2b0ac097d45caad9817b29b4"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
58
|
-
"sha256": "
|
|
58
|
+
"sha256": "9f20b313d0810bb7e787aec0fe4a632ab6a598245bfe7b075973026340b8c81f"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"path": "harness-codebase-map/checklist.md",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
"path": "harness-codebase-map/SKILL.md",
|
|
70
|
-
"sha256": "
|
|
70
|
+
"sha256": "101e1bbb7547afc3e5b2dfcf0ce59cfbb883bbfcf33e248fd003099d7f7c129c"
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -127,15 +127,15 @@
|
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
129
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
130
|
-
"sha256": "
|
|
130
|
+
"sha256": "c7278af0c041f36e466d1730349cc27377729fc772d70f513e171c7152149a20"
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
134
|
-
"sha256": "
|
|
134
|
+
"sha256": "618c53eb774a2dbdc5498a778cec90ec4c80a820ee73f93bc33085d2854b9623"
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
"path": "harness-knowledge-query/SKILL.md",
|
|
138
|
-
"sha256": "
|
|
138
|
+
"sha256": "ecd04aca60a8cec156b998e27ca52f93cbf4f3d6bacb15e1bc66dd85f9c1d6d5"
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
"path": "harness-plan/checklist.md",
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"path": "harness-plan/SKILL.md",
|
|
154
|
-
"sha256": "
|
|
154
|
+
"sha256": "9f309e605432a0951188d9ddda9903da894b1263ebe5b685af6a9e6457a3fe26"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
"path": "harness-review/checklist.md",
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
"path": "harness-review/SKILL.md",
|
|
170
|
-
"sha256": "
|
|
170
|
+
"sha256": "f343c09c6199c598a1fb0333b2050b61961e8bddf397123f65e4585c422be02c"
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"path": "harness-run/checklist.md",
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
"path": "harness-run/SKILL.md",
|
|
186
|
-
"sha256": "
|
|
186
|
+
"sha256": "26d6d09e94dfa1f974abd3cbb17a439a535362cadad12637ff46e9ed0fa70e72"
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-submit/checklist.md",
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"path": "harness-submit/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
198
|
+
"sha256": "a80b8331c582d1a6d5cfa864a2b31c9b3e575b9b170e18583e0739073819c731"
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
"path": "harness-sync/reference.md",
|
|
@@ -203,11 +203,11 @@
|
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
"path": "harness-sync/SKILL.md",
|
|
206
|
-
"sha256": "
|
|
206
|
+
"sha256": "9142b15ee0f71d25094186f0b6b672b6807cfa4ff33e213bcd0803501403918e"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"path": "harness-test/checklist.md",
|
|
210
|
-
"sha256": "
|
|
210
|
+
"sha256": "f974457a7aa094e1fbdb7d3039b0e8f3cacb777638603366e63a0aaf9a514aad"
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"path": "harness-test/pitfalls-java.md",
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
221
|
"path": "harness-test/reference.md",
|
|
222
|
-
"sha256": "
|
|
222
|
+
"sha256": "b7cbfc91cff9ed7fef7b9cbee79f81e8cc588ffd956b531570eabef98ad24125"
|
|
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": "8c8156f492b2ba7de8db3d3bf0961bff084f9a7fbf1393c44296207f31a19806"
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -275,7 +275,7 @@
|
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
277
|
"path": "scripts/harness_archive.py",
|
|
278
|
-
"sha256": "
|
|
278
|
+
"sha256": "97f94770d4adada904732fd7529d5b90bd457e131a6077c3dd2c3906ee01fcd8"
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
281
|
"path": "scripts/harness_change.py",
|
|
@@ -295,15 +295,15 @@
|
|
|
295
295
|
},
|
|
296
296
|
{
|
|
297
297
|
"path": "scripts/harness_events.py",
|
|
298
|
-
"sha256": "
|
|
298
|
+
"sha256": "7f5e9e316c422f7532fe0fcf52beb809125f757af7ccfbdf85fa519c2de4e66d"
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"path": "scripts/harness_gate.py",
|
|
302
|
-
"sha256": "
|
|
302
|
+
"sha256": "29de8510a9377a2651410b4d0a3be1b9eeb44d8e0d7d4becb44e1734c95dd953"
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
"path": "scripts/harness_integration.py",
|
|
306
|
-
"sha256": "
|
|
306
|
+
"sha256": "88d0a6ffbdec74ce8c3a994c1ec80e5a0c550b3cccad8d46fb8c355ced1a7721"
|
|
307
307
|
},
|
|
308
308
|
{
|
|
309
309
|
"path": "scripts/harness_ledger.py",
|
|
@@ -319,11 +319,11 @@
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
"path": "scripts/harness_phase.py",
|
|
322
|
-
"sha256": "
|
|
322
|
+
"sha256": "8143e5b97ff14ba46a508ce346d7a51af0122ef8aeff0543852994fbaca97cba"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"path": "scripts/harness_plan_finalize.py",
|
|
326
|
-
"sha256": "
|
|
326
|
+
"sha256": "1e96a642df48722bf7de1ae2aa53f9c87d641150d939e47686a0b36b5c4547e5"
|
|
327
327
|
},
|
|
328
328
|
{
|
|
329
329
|
"path": "scripts/harness_preflight.py",
|
|
@@ -333,6 +333,10 @@
|
|
|
333
333
|
"path": "scripts/harness_profile.py",
|
|
334
334
|
"sha256": "d8f6a07455c27c9167df44b33eb20ef7c6c65530462cd4958794db1063d5ac04"
|
|
335
335
|
},
|
|
336
|
+
{
|
|
337
|
+
"path": "scripts/harness_retry.py",
|
|
338
|
+
"sha256": "250a6f7fb564fb537ba8680a3385a50ec3dff6625aa4d1488d5c4e09393d20b5"
|
|
339
|
+
},
|
|
336
340
|
{
|
|
337
341
|
"path": "scripts/harness_review.py",
|
|
338
342
|
"sha256": "a741a63f62993d72889e78f540feb57a95e713b4d7a98fa61ff208b2ce914ca7"
|
|
@@ -359,11 +363,15 @@
|
|
|
359
363
|
},
|
|
360
364
|
{
|
|
361
365
|
"path": "scripts/harness_test_guard.py",
|
|
362
|
-
"sha256": "
|
|
366
|
+
"sha256": "426fd0002f643fc4b473f04f0c1164330de8a0c622cde7e07aad78d6a5e64df5"
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"path": "scripts/harness_test_runner.py",
|
|
370
|
+
"sha256": "ba8b8b5628728593a1bcdab464b80b2a90536a909c0ce7df6a832f8ab16f08d1"
|
|
363
371
|
},
|
|
364
372
|
{
|
|
365
373
|
"path": "scripts/harness_workflow_policy.py",
|
|
366
|
-
"sha256": "
|
|
374
|
+
"sha256": "3c05971bccef2422217f88bf0d0a2e346248e46964474f20d383b95acec185da"
|
|
367
375
|
}
|
|
368
376
|
]
|
|
369
377
|
}
|
|
@@ -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.21",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "78da4d96c380e394b00d9273b471283611ea064cb33ebe0f5caa14f192d3a09c"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "agents/harness-evaluator.md",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"path": "contracts/workflow-policy.json",
|
|
34
|
-
"sha256": "
|
|
34
|
+
"sha256": "92574af8d7252527be8cd2871675fc02ab7c3df95a72dab93228f6f884844971"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
"path": "harness-archive/checklist.md",
|
|
@@ -47,15 +47,15 @@
|
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": "harness-archive/SKILL.md",
|
|
50
|
-
"sha256": "
|
|
50
|
+
"sha256": "022e8b27aa408d6b060b47f8372f465a21a8e17f0ef81618da724923c434fecc"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
54
|
-
"sha256": "
|
|
54
|
+
"sha256": "9e027c4c26dc5d076c35bb485fc618929d425b1f2b0ac097d45caad9817b29b4"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
58
|
-
"sha256": "
|
|
58
|
+
"sha256": "9f20b313d0810bb7e787aec0fe4a632ab6a598245bfe7b075973026340b8c81f"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"path": "harness-codebase-map/checklist.md",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
"path": "harness-codebase-map/SKILL.md",
|
|
70
|
-
"sha256": "
|
|
70
|
+
"sha256": "77b13a710a7dd8000c3de3dff6338b0485d32c38c9e3520528f1b9cbd8ed80ef"
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -127,15 +127,15 @@
|
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
129
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
130
|
-
"sha256": "
|
|
130
|
+
"sha256": "c7278af0c041f36e466d1730349cc27377729fc772d70f513e171c7152149a20"
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
134
|
-
"sha256": "
|
|
134
|
+
"sha256": "35a1fd1cacedeb462e77df8d077d3084dbcfd115678220463e627b9f02770c70"
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
"path": "harness-knowledge-query/SKILL.md",
|
|
138
|
-
"sha256": "
|
|
138
|
+
"sha256": "2b8c699f5f36cb94b67bf4355509defa467ac1e58019f9cabae801ab0e823640"
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
"path": "harness-plan/checklist.md",
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"path": "harness-plan/SKILL.md",
|
|
154
|
-
"sha256": "
|
|
154
|
+
"sha256": "4a74845d09bbd332f538a9ead5376d03ef7f9049af5f48bd5ee3b08ff8af90b3"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
"path": "harness-review/checklist.md",
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
"path": "harness-review/SKILL.md",
|
|
170
|
-
"sha256": "
|
|
170
|
+
"sha256": "23d72aa40b0a1fbd8cd9a05f04a3fb5f7d62d23aa71ec43ad0217812631b0cd9"
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"path": "harness-run/checklist.md",
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
"path": "harness-run/SKILL.md",
|
|
186
|
-
"sha256": "
|
|
186
|
+
"sha256": "08f7578c1786bb9876ea9f88168b487ad52b773b96f467aa671c699b4c42f642"
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-submit/checklist.md",
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"path": "harness-submit/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
198
|
+
"sha256": "06ccb60bda74d16ee2a8584772810c4e249ecf0532d9d68bf1f8099d4b6a8bff"
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
"path": "harness-sync/reference.md",
|
|
@@ -203,11 +203,11 @@
|
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
"path": "harness-sync/SKILL.md",
|
|
206
|
-
"sha256": "
|
|
206
|
+
"sha256": "d4f467375125a2e83615b677f20d9b4a28fa7ff60ddc19157a6c4df1d54d11d0"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"path": "harness-test/checklist.md",
|
|
210
|
-
"sha256": "
|
|
210
|
+
"sha256": "f974457a7aa094e1fbdb7d3039b0e8f3cacb777638603366e63a0aaf9a514aad"
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"path": "harness-test/pitfalls-java.md",
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
221
|
"path": "harness-test/reference.md",
|
|
222
|
-
"sha256": "
|
|
222
|
+
"sha256": "b7cbfc91cff9ed7fef7b9cbee79f81e8cc588ffd956b531570eabef98ad24125"
|
|
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": "d853dc1b2cf9c9254abc64eb5e94b6ce4936a5f787c5e9dac365ae2fccab6a33"
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -275,7 +275,7 @@
|
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
277
|
"path": "scripts/harness_archive.py",
|
|
278
|
-
"sha256": "
|
|
278
|
+
"sha256": "97f94770d4adada904732fd7529d5b90bd457e131a6077c3dd2c3906ee01fcd8"
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
281
|
"path": "scripts/harness_change.py",
|
|
@@ -295,15 +295,15 @@
|
|
|
295
295
|
},
|
|
296
296
|
{
|
|
297
297
|
"path": "scripts/harness_events.py",
|
|
298
|
-
"sha256": "
|
|
298
|
+
"sha256": "7f5e9e316c422f7532fe0fcf52beb809125f757af7ccfbdf85fa519c2de4e66d"
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"path": "scripts/harness_gate.py",
|
|
302
|
-
"sha256": "
|
|
302
|
+
"sha256": "29de8510a9377a2651410b4d0a3be1b9eeb44d8e0d7d4becb44e1734c95dd953"
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
"path": "scripts/harness_integration.py",
|
|
306
|
-
"sha256": "
|
|
306
|
+
"sha256": "88d0a6ffbdec74ce8c3a994c1ec80e5a0c550b3cccad8d46fb8c355ced1a7721"
|
|
307
307
|
},
|
|
308
308
|
{
|
|
309
309
|
"path": "scripts/harness_ledger.py",
|
|
@@ -319,11 +319,11 @@
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
"path": "scripts/harness_phase.py",
|
|
322
|
-
"sha256": "
|
|
322
|
+
"sha256": "8143e5b97ff14ba46a508ce346d7a51af0122ef8aeff0543852994fbaca97cba"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"path": "scripts/harness_plan_finalize.py",
|
|
326
|
-
"sha256": "
|
|
326
|
+
"sha256": "1e96a642df48722bf7de1ae2aa53f9c87d641150d939e47686a0b36b5c4547e5"
|
|
327
327
|
},
|
|
328
328
|
{
|
|
329
329
|
"path": "scripts/harness_preflight.py",
|
|
@@ -333,6 +333,10 @@
|
|
|
333
333
|
"path": "scripts/harness_profile.py",
|
|
334
334
|
"sha256": "d8f6a07455c27c9167df44b33eb20ef7c6c65530462cd4958794db1063d5ac04"
|
|
335
335
|
},
|
|
336
|
+
{
|
|
337
|
+
"path": "scripts/harness_retry.py",
|
|
338
|
+
"sha256": "250a6f7fb564fb537ba8680a3385a50ec3dff6625aa4d1488d5c4e09393d20b5"
|
|
339
|
+
},
|
|
336
340
|
{
|
|
337
341
|
"path": "scripts/harness_review.py",
|
|
338
342
|
"sha256": "a741a63f62993d72889e78f540feb57a95e713b4d7a98fa61ff208b2ce914ca7"
|
|
@@ -359,11 +363,15 @@
|
|
|
359
363
|
},
|
|
360
364
|
{
|
|
361
365
|
"path": "scripts/harness_test_guard.py",
|
|
362
|
-
"sha256": "
|
|
366
|
+
"sha256": "426fd0002f643fc4b473f04f0c1164330de8a0c622cde7e07aad78d6a5e64df5"
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"path": "scripts/harness_test_runner.py",
|
|
370
|
+
"sha256": "ba8b8b5628728593a1bcdab464b80b2a90536a909c0ce7df6a832f8ab16f08d1"
|
|
363
371
|
},
|
|
364
372
|
{
|
|
365
373
|
"path": "scripts/harness_workflow_policy.py",
|
|
366
|
-
"sha256": "
|
|
374
|
+
"sha256": "3c05971bccef2422217f88bf0d0a2e346248e46964474f20d383b95acec185da"
|
|
367
375
|
}
|
|
368
376
|
]
|
|
369
377
|
}
|