@vela-science/canopus 0.4.0-rc.1
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/CHANGELOG.md +249 -0
- package/LICENSE-APACHE +176 -0
- package/LICENSE-MIT +21 -0
- package/README.md +124 -0
- package/SECURITY.md +35 -0
- package/capsules/erdos1056-k15/README.md +35 -0
- package/capsules/erdos1056-k15/bin/linux-arm64/10428401-10428600/verifier +0 -0
- package/capsules/erdos1056-k15/bin/linux-x86_64/10428401-10428600/verifier +0 -0
- package/capsules/formal-erdos-505-test-dim-one/README.md +20 -0
- package/capsules/formal-erdos-505-test-dim-one/verifier +105 -0
- package/dist/src/activity/events.d.ts +15 -0
- package/dist/src/activity/events.js +24 -0
- package/dist/src/activity/store.d.ts +10 -0
- package/dist/src/activity/store.js +165 -0
- package/dist/src/artifact/freeze.d.ts +21 -0
- package/dist/src/artifact/freeze.js +177 -0
- package/dist/src/artifact/materialize.d.ts +6 -0
- package/dist/src/artifact/materialize.js +29 -0
- package/dist/src/budget/enforce.d.ts +30 -0
- package/dist/src/budget/enforce.js +98 -0
- package/dist/src/candidate/validate.d.ts +3 -0
- package/dist/src/candidate/validate.js +32 -0
- package/dist/src/capability/withdrawal.d.ts +47 -0
- package/dist/src/capability/withdrawal.js +487 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +503 -0
- package/dist/src/contracts/candidate.d.ts +50 -0
- package/dist/src/contracts/candidate.js +93 -0
- package/dist/src/contracts/mission.d.ts +139 -0
- package/dist/src/contracts/mission.js +401 -0
- package/dist/src/contracts/validation.d.ts +25 -0
- package/dist/src/contracts/validation.js +95 -0
- package/dist/src/engines/codex-events.d.ts +25 -0
- package/dist/src/engines/codex-events.js +219 -0
- package/dist/src/engines/codex-exec.d.ts +17 -0
- package/dist/src/engines/codex-exec.js +136 -0
- package/dist/src/engines/codex-home.d.ts +7 -0
- package/dist/src/engines/codex-home.js +50 -0
- package/dist/src/engines/codex-tool-free.d.ts +26 -0
- package/dist/src/engines/codex-tool-free.js +213 -0
- package/dist/src/engines/codex-tools-native.d.ts +30 -0
- package/dist/src/engines/codex-tools-native.js +405 -0
- package/dist/src/engines/engine.d.ts +55 -0
- package/dist/src/engines/engine.js +4 -0
- package/dist/src/engines/fake.d.ts +7 -0
- package/dist/src/engines/fake.js +37 -0
- package/dist/src/evidence/manifests.d.ts +9 -0
- package/dist/src/evidence/manifests.js +56 -0
- package/dist/src/index.d.ts +32 -0
- package/dist/src/index.js +32 -0
- package/dist/src/mission/prepare.d.ts +33 -0
- package/dist/src/mission/prepare.js +375 -0
- package/dist/src/product/custody.d.ts +27 -0
- package/dist/src/product/custody.js +131 -0
- package/dist/src/product/doctor.d.ts +61 -0
- package/dist/src/product/doctor.js +278 -0
- package/dist/src/product/profile-bundle.d.ts +21 -0
- package/dist/src/product/profile-bundle.js +78 -0
- package/dist/src/product/profile.d.ts +67 -0
- package/dist/src/product/profile.js +251 -0
- package/dist/src/product/replay.d.ts +10 -0
- package/dist/src/product/replay.js +71 -0
- package/dist/src/product/run.d.ts +31 -0
- package/dist/src/product/run.js +264 -0
- package/dist/src/product/runtime.d.ts +18 -0
- package/dist/src/product/runtime.js +64 -0
- package/dist/src/product/version.d.ts +1 -0
- package/dist/src/product/version.js +6 -0
- package/dist/src/product/withdraw.d.ts +8 -0
- package/dist/src/product/withdraw.js +255 -0
- package/dist/src/projection/diagnostic.d.ts +12 -0
- package/dist/src/projection/diagnostic.js +61 -0
- package/dist/src/projection/failure.d.ts +26 -0
- package/dist/src/projection/failure.js +63 -0
- package/dist/src/projection/run.d.ts +89 -0
- package/dist/src/projection/run.js +159 -0
- package/dist/src/receipt/map.d.ts +25 -0
- package/dist/src/receipt/map.js +162 -0
- package/dist/src/repair/plan.d.ts +2 -0
- package/dist/src/repair/plan.js +22 -0
- package/dist/src/roles.d.ts +2 -0
- package/dist/src/roles.js +9 -0
- package/dist/src/run.d.ts +94 -0
- package/dist/src/run.js +654 -0
- package/dist/src/util/canonical.d.ts +5 -0
- package/dist/src/util/canonical.js +53 -0
- package/dist/src/util/command.d.ts +26 -0
- package/dist/src/util/command.js +161 -0
- package/dist/src/util/files.d.ts +3 -0
- package/dist/src/util/files.js +65 -0
- package/dist/src/vela/cli.d.ts +71 -0
- package/dist/src/vela/cli.js +718 -0
- package/dist/src/vela/types.d.ts +27 -0
- package/dist/src/vela/types.js +1 -0
- package/dist/src/verifier/run.d.ts +24 -0
- package/dist/src/verifier/run.js +315 -0
- package/dist/src/workspace/prepare.d.ts +30 -0
- package/dist/src/workspace/prepare.js +183 -0
- package/docs/MISSIONS.md +78 -0
- package/docs/RELEASES.md +1036 -0
- package/docs/RUN_RECORD.md +70 -0
- package/missions/erdos1056-k15-next/mission.draft.json +40 -0
- package/missions/formal-erdos-505-test-dim-one/mission.draft.json +40 -0
- package/package.json +89 -0
- package/profiles/erdos1056-k15-10428401-10428600.json +33 -0
- package/profiles/formal-erdos-505-test-dim-one.json +35 -0
- package/runtime/native-worker/config-linux.toml +20 -0
- package/runtime/native-worker/config.toml +17 -0
- package/schemas/candidate.v0.json +125 -0
- package/schemas/engine-manifest.v0.json +45 -0
- package/schemas/engine-output.v0.json +41 -0
- package/schemas/mission.v0.json +175 -0
- package/schemas/mission.v1.json +224 -0
- package/schemas/verifier-manifest.v0.json +48 -0
- package/schemas/verifier-manifest.v1.json +59 -0
- package/scripts/run-hostile-native-custody-fixture.mjs +382 -0
- package/scripts/run-hostile-verifier-fixture.mjs +63 -0
- package/tests/fixtures/hostile-verifier/probe.py +35 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://vela.science/schemas/canopus/mission.v0.json",
|
|
4
|
+
"title": "Canopus mission v0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema",
|
|
9
|
+
"id",
|
|
10
|
+
"target",
|
|
11
|
+
"vela_version",
|
|
12
|
+
"vela_sha256",
|
|
13
|
+
"frontier",
|
|
14
|
+
"actor",
|
|
15
|
+
"role",
|
|
16
|
+
"claim_type",
|
|
17
|
+
"replayability",
|
|
18
|
+
"objective",
|
|
19
|
+
"completion_condition",
|
|
20
|
+
"roots",
|
|
21
|
+
"allowed_paths",
|
|
22
|
+
"budgets",
|
|
23
|
+
"verifier",
|
|
24
|
+
"scientific_chain",
|
|
25
|
+
"landing"
|
|
26
|
+
],
|
|
27
|
+
"properties": {
|
|
28
|
+
"schema": { "const": "canopus.mission.v0" },
|
|
29
|
+
"id": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^mission_[a-z0-9][a-z0-9._-]{0,126}$"
|
|
32
|
+
},
|
|
33
|
+
"target": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
34
|
+
"vela_version": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"pattern": "^0\\.[0-9]+\\.[0-9]+$"
|
|
37
|
+
},
|
|
38
|
+
"vela_sha256": { "$ref": "#/$defs/sha256" },
|
|
39
|
+
"frontier": {
|
|
40
|
+
"anyOf": [{ "const": "." }, { "$ref": "#/$defs/relativePath" }]
|
|
41
|
+
},
|
|
42
|
+
"actor": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"pattern": "^agent:[a-z0-9][a-z0-9._-]{0,62}$"
|
|
45
|
+
},
|
|
46
|
+
"role": {
|
|
47
|
+
"enum": ["producer", "adversary", "verifier", "fidelity"]
|
|
48
|
+
},
|
|
49
|
+
"claim_type": {
|
|
50
|
+
"enum": ["computational", "theoretical", "empirical", "negative", "contradiction"]
|
|
51
|
+
},
|
|
52
|
+
"replayability": {
|
|
53
|
+
"const": "exact"
|
|
54
|
+
},
|
|
55
|
+
"objective": { "type": "string", "minLength": 1, "maxLength": 8192 },
|
|
56
|
+
"completion_condition": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"minLength": 1,
|
|
59
|
+
"maxLength": 4096
|
|
60
|
+
},
|
|
61
|
+
"roots": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"additionalProperties": false,
|
|
64
|
+
"required": ["git_commit", "git_tree", "vela_event_log", "vela_snapshot"],
|
|
65
|
+
"properties": {
|
|
66
|
+
"git_commit": { "$ref": "#/$defs/gitObject" },
|
|
67
|
+
"git_tree": { "$ref": "#/$defs/gitObject" },
|
|
68
|
+
"vela_event_log": { "$ref": "#/$defs/sha256" },
|
|
69
|
+
"vela_snapshot": { "$ref": "#/$defs/sha256" }
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"allowed_paths": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"minItems": 1,
|
|
75
|
+
"maxItems": 64,
|
|
76
|
+
"uniqueItems": true,
|
|
77
|
+
"items": { "$ref": "#/$defs/relativePath" }
|
|
78
|
+
},
|
|
79
|
+
"budgets": {
|
|
80
|
+
"type": "object",
|
|
81
|
+
"additionalProperties": false,
|
|
82
|
+
"required": [
|
|
83
|
+
"max_research_wall_time_ms",
|
|
84
|
+
"max_research_processes",
|
|
85
|
+
"max_research_output_bytes",
|
|
86
|
+
"max_prompt_bytes",
|
|
87
|
+
"max_artifact_bytes",
|
|
88
|
+
"max_attempts",
|
|
89
|
+
"max_observed_tokens"
|
|
90
|
+
],
|
|
91
|
+
"properties": {
|
|
92
|
+
"max_research_wall_time_ms": { "type": "integer", "minimum": 100, "maximum": 3600000 },
|
|
93
|
+
"max_research_processes": { "type": "integer", "minimum": 1, "maximum": 64 },
|
|
94
|
+
"max_research_output_bytes": { "type": "integer", "minimum": 1024, "maximum": 67108864 },
|
|
95
|
+
"max_prompt_bytes": { "type": "integer", "minimum": 1024, "maximum": 8388608 },
|
|
96
|
+
"max_artifact_bytes": { "type": "integer", "minimum": 1, "maximum": 1073741824 },
|
|
97
|
+
"max_attempts": { "type": "integer", "minimum": 1, "maximum": 8 },
|
|
98
|
+
"max_observed_tokens": { "type": "integer", "minimum": 1, "maximum": 1000000 }
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"verifier": {
|
|
102
|
+
"type": "object",
|
|
103
|
+
"additionalProperties": false,
|
|
104
|
+
"required": ["argv", "executable_sha256", "cwd", "timeout_ms", "max_output_bytes", "network", "writes"],
|
|
105
|
+
"properties": {
|
|
106
|
+
"argv": {
|
|
107
|
+
"type": "array",
|
|
108
|
+
"minItems": 1,
|
|
109
|
+
"maxItems": 64,
|
|
110
|
+
"items": { "type": "string", "maxLength": 4096 }
|
|
111
|
+
},
|
|
112
|
+
"executable_sha256": { "$ref": "#/$defs/sha256" },
|
|
113
|
+
"cwd": { "$ref": "#/$defs/relativePath" },
|
|
114
|
+
"timeout_ms": { "type": "integer", "minimum": 100, "maximum": 3600000 },
|
|
115
|
+
"max_output_bytes": { "type": "integer", "minimum": 1024, "maximum": 67108864 },
|
|
116
|
+
"network": { "const": "deny" },
|
|
117
|
+
"writes": { "const": "deny" }
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"scientific_chain": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"additionalProperties": false,
|
|
123
|
+
"required": ["performed_test"],
|
|
124
|
+
"properties": {
|
|
125
|
+
"predicted_observable": {
|
|
126
|
+
"type": "string",
|
|
127
|
+
"minLength": 1,
|
|
128
|
+
"maxLength": 16384
|
|
129
|
+
},
|
|
130
|
+
"not_applicable": { "const": true },
|
|
131
|
+
"performed_test": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"minLength": 1,
|
|
134
|
+
"maxLength": 16384
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"oneOf": [
|
|
138
|
+
{ "required": ["predicted_observable"], "not": { "required": ["not_applicable"] } },
|
|
139
|
+
{ "required": ["not_applicable"], "not": { "required": ["predicted_observable"] } }
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
"landing": {
|
|
143
|
+
"type": "object",
|
|
144
|
+
"additionalProperties": false,
|
|
145
|
+
"required": ["expected_routes", "max_accepted_delta"],
|
|
146
|
+
"properties": {
|
|
147
|
+
"expected_routes": {
|
|
148
|
+
"type": "array",
|
|
149
|
+
"minItems": 1,
|
|
150
|
+
"maxItems": 3,
|
|
151
|
+
"uniqueItems": true,
|
|
152
|
+
"items": { "enum": ["permit", "defer"] }
|
|
153
|
+
},
|
|
154
|
+
"max_accepted_delta": { "type": "integer", "minimum": 0, "maximum": 1 }
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"parent_candidate": { "$ref": "#/$defs/sha256" },
|
|
158
|
+
"repair_reason": { "type": "string", "minLength": 1, "maxLength": 4096 }
|
|
159
|
+
},
|
|
160
|
+
"$defs": {
|
|
161
|
+
"gitObject": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
|
|
164
|
+
},
|
|
165
|
+
"sha256": {
|
|
166
|
+
"type": "string",
|
|
167
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
168
|
+
},
|
|
169
|
+
"relativePath": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"minLength": 1,
|
|
172
|
+
"maxLength": 1024
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://vela.science/schemas/canopus/mission.v1.json",
|
|
4
|
+
"title": "Canopus mission v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema", "id", "target", "vela_version", "vela_sha256", "frontier",
|
|
9
|
+
"actor", "role", "claim_type", "replayability", "objective",
|
|
10
|
+
"completion_condition", "roots", "target_packet", "strict_baseline",
|
|
11
|
+
"allowed_paths", "budgets", "worker", "verifier", "scientific_chain",
|
|
12
|
+
"landing"
|
|
13
|
+
],
|
|
14
|
+
"dependentRequired": {
|
|
15
|
+
"execution_binding": ["result_contract"],
|
|
16
|
+
"result_contract": ["execution_binding"]
|
|
17
|
+
},
|
|
18
|
+
"allOf": [
|
|
19
|
+
{
|
|
20
|
+
"if": {
|
|
21
|
+
"properties": {
|
|
22
|
+
"landing": {
|
|
23
|
+
"properties": {
|
|
24
|
+
"expected_routes": { "const": ["permit"] }
|
|
25
|
+
},
|
|
26
|
+
"required": ["expected_routes"]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"then": { "required": ["execution_binding", "result_contract"] }
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"properties": {
|
|
34
|
+
"schema": { "const": "canopus.mission.v1" },
|
|
35
|
+
"id": { "type": "string", "pattern": "^mission_[a-z0-9][a-z0-9._-]{0,126}$" },
|
|
36
|
+
"target": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
37
|
+
"vela_version": { "type": "string", "pattern": "^0\\.[0-9]+\\.[0-9]+$" },
|
|
38
|
+
"vela_sha256": { "$ref": "#/$defs/sha256" },
|
|
39
|
+
"frontier": { "anyOf": [{ "const": "." }, { "$ref": "#/$defs/relativePath" }] },
|
|
40
|
+
"actor": { "type": "string", "pattern": "^agent:[a-z0-9][a-z0-9._-]{0,62}$" },
|
|
41
|
+
"role": { "enum": ["producer", "adversary", "verifier", "fidelity"] },
|
|
42
|
+
"claim_type": { "enum": ["computational", "theoretical", "empirical", "negative", "contradiction"] },
|
|
43
|
+
"replayability": { "const": "exact" },
|
|
44
|
+
"objective": { "type": "string", "minLength": 1, "maxLength": 8192 },
|
|
45
|
+
"completion_condition": { "type": "string", "minLength": 1, "maxLength": 4096 },
|
|
46
|
+
"roots": { "$ref": "#/$defs/roots" },
|
|
47
|
+
"target_packet": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": false,
|
|
50
|
+
"required": ["path", "sha256"],
|
|
51
|
+
"properties": {
|
|
52
|
+
"path": { "$ref": "#/$defs/relativePath" },
|
|
53
|
+
"sha256": { "$ref": "#/$defs/sha256" }
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"profile": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"additionalProperties": false,
|
|
59
|
+
"required": ["name", "root"],
|
|
60
|
+
"properties": {
|
|
61
|
+
"name": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*$", "maxLength": 128 },
|
|
62
|
+
"root": { "$ref": "#/$defs/sha256" }
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"execution_binding": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"additionalProperties": false,
|
|
68
|
+
"required": ["schema", "packet_root", "profile_root", "verifier_capsule_root", "result_contract_root"],
|
|
69
|
+
"properties": {
|
|
70
|
+
"schema": { "const": "vela.execution-binding.v1" },
|
|
71
|
+
"packet_root": { "$ref": "#/$defs/sha256" },
|
|
72
|
+
"profile_root": { "$ref": "#/$defs/sha256" },
|
|
73
|
+
"verifier_capsule_root": { "$ref": "#/$defs/sha256" },
|
|
74
|
+
"result_contract_root": { "$ref": "#/$defs/sha256" }
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"result_contract": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"additionalProperties": false,
|
|
80
|
+
"required": ["schema", "target", "claim_type", "replayability", "candidate_status", "verifier_status", "required_artifact_kinds"],
|
|
81
|
+
"properties": {
|
|
82
|
+
"schema": { "const": "canopus.result-contract.v1" },
|
|
83
|
+
"target": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
84
|
+
"claim_type": { "const": "computational" },
|
|
85
|
+
"replayability": { "const": "exact" },
|
|
86
|
+
"candidate_status": { "const": "success" },
|
|
87
|
+
"verifier_status": { "const": "passed" },
|
|
88
|
+
"required_artifact_kinds": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"minItems": 1,
|
|
91
|
+
"maxItems": 16,
|
|
92
|
+
"uniqueItems": true,
|
|
93
|
+
"items": { "type": "string", "pattern": "^[a-z][a-z0-9._-]*$", "maxLength": 64 }
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"strict_baseline": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"additionalProperties": false,
|
|
100
|
+
"required": ["status", "blocker_count", "blockers_root", "rule_counts"],
|
|
101
|
+
"properties": {
|
|
102
|
+
"status": { "enum": ["pass", "fail"] },
|
|
103
|
+
"blocker_count": { "type": "integer", "minimum": 0, "maximum": 1000000 },
|
|
104
|
+
"blockers_root": { "$ref": "#/$defs/sha256" },
|
|
105
|
+
"rule_counts": {
|
|
106
|
+
"type": "array",
|
|
107
|
+
"maxItems": 64,
|
|
108
|
+
"items": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"additionalProperties": false,
|
|
111
|
+
"required": ["rule", "count"],
|
|
112
|
+
"properties": {
|
|
113
|
+
"rule": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$", "maxLength": 128 },
|
|
114
|
+
"count": { "type": "integer", "minimum": 1, "maximum": 1000000 }
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"allowed_paths": {
|
|
121
|
+
"type": "array", "minItems": 1, "maxItems": 64, "uniqueItems": true,
|
|
122
|
+
"items": { "$ref": "#/$defs/relativePath" }
|
|
123
|
+
},
|
|
124
|
+
"budgets": { "$ref": "#/$defs/budgets" },
|
|
125
|
+
"worker": {
|
|
126
|
+
"type": "object",
|
|
127
|
+
"additionalProperties": false,
|
|
128
|
+
"required": ["kind", "platform", "codex_version", "codex_sha256", "permission_profile_path", "permission_profile_sha256", "workspace", "output_schema_sha256", "model", "network", "tools"],
|
|
129
|
+
"properties": {
|
|
130
|
+
"kind": { "const": "codex_tools_native" },
|
|
131
|
+
"platform": { "enum": ["darwin", "linux"] },
|
|
132
|
+
"codex_version": { "type": "string", "pattern": "^codex-cli [0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]+)?$" },
|
|
133
|
+
"codex_sha256": { "$ref": "#/$defs/sha256" },
|
|
134
|
+
"permission_profile_path": { "$ref": "#/$defs/relativePath" },
|
|
135
|
+
"permission_profile_sha256": { "$ref": "#/$defs/sha256" },
|
|
136
|
+
"workspace": { "const": "target_packet_only" },
|
|
137
|
+
"output_schema_sha256": { "$ref": "#/$defs/sha256" },
|
|
138
|
+
"model": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
139
|
+
"network": { "const": "provider_only" },
|
|
140
|
+
"tools": { "const": ["shell", "apply_patch"] }
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"verifier": {
|
|
144
|
+
"type": "object",
|
|
145
|
+
"additionalProperties": false,
|
|
146
|
+
"required": ["argv", "executable_sha256", "cwd", "timeout_ms", "max_output_bytes", "network", "writes", "capsule_path", "capsule_sha256", "image"],
|
|
147
|
+
"properties": {
|
|
148
|
+
"argv": { "type": "array", "minItems": 1, "maxItems": 64, "items": { "type": "string", "maxLength": 4096 } },
|
|
149
|
+
"executable_sha256": { "$ref": "#/$defs/sha256" },
|
|
150
|
+
"cwd": { "$ref": "#/$defs/relativePath" },
|
|
151
|
+
"timeout_ms": { "type": "integer", "minimum": 100, "maximum": 3600000 },
|
|
152
|
+
"max_output_bytes": { "type": "integer", "minimum": 1024, "maximum": 67108864 },
|
|
153
|
+
"network": { "const": "deny" },
|
|
154
|
+
"writes": { "const": "deny" },
|
|
155
|
+
"capsule_path": { "$ref": "#/$defs/relativePath" },
|
|
156
|
+
"capsule_sha256": { "$ref": "#/$defs/sha256" },
|
|
157
|
+
"image": { "$ref": "#/$defs/sha256" },
|
|
158
|
+
"platform": { "enum": ["linux/amd64", "linux/arm64"] }
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"scientific_chain": { "$ref": "#/$defs/scientificChain" },
|
|
162
|
+
"landing": {
|
|
163
|
+
"type": "object",
|
|
164
|
+
"additionalProperties": false,
|
|
165
|
+
"required": ["expected_routes", "max_accepted_delta"],
|
|
166
|
+
"oneOf": [
|
|
167
|
+
{
|
|
168
|
+
"properties": {
|
|
169
|
+
"expected_routes": { "const": ["defer"] },
|
|
170
|
+
"max_accepted_delta": { "const": 0 }
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"properties": {
|
|
175
|
+
"expected_routes": { "const": ["permit"] },
|
|
176
|
+
"max_accepted_delta": { "const": 1 }
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"parent_candidate": { "$ref": "#/$defs/sha256" },
|
|
182
|
+
"repair_reason": { "type": "string", "minLength": 1, "maxLength": 4096 }
|
|
183
|
+
},
|
|
184
|
+
"$defs": {
|
|
185
|
+
"gitObject": { "type": "string", "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$" },
|
|
186
|
+
"sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
|
|
187
|
+
"relativePath": { "type": "string", "minLength": 1, "maxLength": 1024 },
|
|
188
|
+
"roots": {
|
|
189
|
+
"type": "object", "additionalProperties": false,
|
|
190
|
+
"required": ["git_commit", "git_tree", "vela_event_log", "vela_snapshot"],
|
|
191
|
+
"properties": {
|
|
192
|
+
"git_commit": { "$ref": "#/$defs/gitObject" },
|
|
193
|
+
"git_tree": { "$ref": "#/$defs/gitObject" },
|
|
194
|
+
"vela_event_log": { "$ref": "#/$defs/sha256" },
|
|
195
|
+
"vela_snapshot": { "$ref": "#/$defs/sha256" }
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"budgets": {
|
|
199
|
+
"type": "object", "additionalProperties": false,
|
|
200
|
+
"required": ["max_research_wall_time_ms", "max_research_processes", "max_research_output_bytes", "max_prompt_bytes", "max_artifact_bytes", "max_attempts", "max_observed_tokens"],
|
|
201
|
+
"properties": {
|
|
202
|
+
"max_research_wall_time_ms": { "type": "integer", "minimum": 100, "maximum": 3600000 },
|
|
203
|
+
"max_research_processes": { "type": "integer", "minimum": 1, "maximum": 64 },
|
|
204
|
+
"max_research_output_bytes": { "type": "integer", "minimum": 1024, "maximum": 67108864 },
|
|
205
|
+
"max_prompt_bytes": { "type": "integer", "minimum": 1024, "maximum": 8388608 },
|
|
206
|
+
"max_artifact_bytes": { "type": "integer", "minimum": 1, "maximum": 1073741824 },
|
|
207
|
+
"max_attempts": { "type": "integer", "minimum": 1, "maximum": 8 },
|
|
208
|
+
"max_observed_tokens": { "type": "integer", "minimum": 1, "maximum": 1000000 }
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"scientificChain": {
|
|
212
|
+
"type": "object", "additionalProperties": false, "required": ["performed_test"],
|
|
213
|
+
"properties": {
|
|
214
|
+
"predicted_observable": { "type": "string", "minLength": 1, "maxLength": 16384 },
|
|
215
|
+
"not_applicable": { "const": true },
|
|
216
|
+
"performed_test": { "type": "string", "minLength": 1, "maxLength": 16384 }
|
|
217
|
+
},
|
|
218
|
+
"oneOf": [
|
|
219
|
+
{ "required": ["predicted_observable"], "not": { "required": ["not_applicable"] } },
|
|
220
|
+
{ "required": ["not_applicable"], "not": { "required": ["predicted_observable"] } }
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://vela.science/schemas/canopus/verifier-manifest.v0.json",
|
|
4
|
+
"title": "Canopus verifier manifest v0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema",
|
|
9
|
+
"capsule_path",
|
|
10
|
+
"executable_sha256",
|
|
11
|
+
"argv_template",
|
|
12
|
+
"cwd",
|
|
13
|
+
"sandbox",
|
|
14
|
+
"platform"
|
|
15
|
+
],
|
|
16
|
+
"properties": {
|
|
17
|
+
"schema": { "const": "canopus.verifier-manifest.v0" },
|
|
18
|
+
"capsule_path": { "type": "string", "minLength": 1, "maxLength": 1024 },
|
|
19
|
+
"executable_sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
|
|
20
|
+
"argv_template": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"minItems": 1,
|
|
23
|
+
"maxItems": 64,
|
|
24
|
+
"items": { "type": "string", "maxLength": 4096 }
|
|
25
|
+
},
|
|
26
|
+
"cwd": { "type": "string", "minLength": 1, "maxLength": 1024 },
|
|
27
|
+
"sandbox": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"required": ["backend", "network", "persistent_writes", "process_fork"],
|
|
31
|
+
"properties": {
|
|
32
|
+
"backend": { "const": "macos_seatbelt" },
|
|
33
|
+
"network": { "const": "deny" },
|
|
34
|
+
"persistent_writes": { "const": "deny" },
|
|
35
|
+
"process_fork": { "const": "deny" }
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"platform": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"additionalProperties": false,
|
|
41
|
+
"required": ["os", "arch"],
|
|
42
|
+
"properties": {
|
|
43
|
+
"os": { "const": "darwin" },
|
|
44
|
+
"arch": { "enum": ["arm64", "x64"] }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://vela.science/schemas/canopus/verifier-manifest.v1.json",
|
|
4
|
+
"title": "Canopus verifier manifest v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema",
|
|
9
|
+
"capsule_path",
|
|
10
|
+
"executable_sha256",
|
|
11
|
+
"argv_template",
|
|
12
|
+
"cwd",
|
|
13
|
+
"image",
|
|
14
|
+
"sandbox",
|
|
15
|
+
"platform"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"schema": { "const": "canopus.verifier-manifest.v1" },
|
|
19
|
+
"capsule_path": { "type": "string", "minLength": 1, "maxLength": 1024 },
|
|
20
|
+
"executable_sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
|
|
21
|
+
"argv_template": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"minItems": 1,
|
|
24
|
+
"maxItems": 64,
|
|
25
|
+
"items": { "type": "string", "maxLength": 4096 }
|
|
26
|
+
},
|
|
27
|
+
"cwd": { "type": "string", "minLength": 1, "maxLength": 1024 },
|
|
28
|
+
"image": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
|
|
29
|
+
"sandbox": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"required": [
|
|
33
|
+
"backend",
|
|
34
|
+
"network",
|
|
35
|
+
"root_filesystem",
|
|
36
|
+
"bind_mounts",
|
|
37
|
+
"capabilities",
|
|
38
|
+
"privilege_escalation"
|
|
39
|
+
],
|
|
40
|
+
"properties": {
|
|
41
|
+
"backend": { "const": "docker" },
|
|
42
|
+
"network": { "const": "deny" },
|
|
43
|
+
"root_filesystem": { "const": "read_only" },
|
|
44
|
+
"bind_mounts": { "const": "exact_inputs_read_only" },
|
|
45
|
+
"capabilities": { "const": "drop_all" },
|
|
46
|
+
"privilege_escalation": { "const": "deny" }
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"platform": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"additionalProperties": false,
|
|
52
|
+
"required": ["os", "arch"],
|
|
53
|
+
"properties": {
|
|
54
|
+
"os": { "const": "linux" },
|
|
55
|
+
"arch": { "enum": ["amd64", "arm64", "unspecified"] }
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|