@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,70 @@
|
|
|
1
|
+
# Canopus run records
|
|
2
|
+
|
|
3
|
+
A completed run writes these local records beneath its run root:
|
|
4
|
+
|
|
5
|
+
- `activity.jsonl`: append-only orchestration events linked by full SHA-256
|
|
6
|
+
digests, including the exact `vela next` offer digest and selected rank;
|
|
7
|
+
- `candidate.json`: the frozen candidate and verifier facts;
|
|
8
|
+
- `worker-events.jsonl`: the raw Codex event stream used as the tool trace;
|
|
9
|
+
- `worker-final.json`: the exact final worker response;
|
|
10
|
+
- `worker-stderr.bin`: the bounded raw worker stderr stream;
|
|
11
|
+
- `engine-result.json`: the parsed worker outcome and usage;
|
|
12
|
+
- `run.json`: the compact run record, exact roots, landing result, costs, and
|
|
13
|
+
clean-clone reproduction result;
|
|
14
|
+
- `evidence-manifest.json`: content roots for the worker, run, candidate,
|
|
15
|
+
artifacts, verifier result, Receipt when present, and final frontier roots;
|
|
16
|
+
- `projection.json`: a read-only view for another consumer;
|
|
17
|
+
- `landing-command.json`: the exact argv, exit status, raw streams, and stream
|
|
18
|
+
digests observed at the potentially effectful `vela land` boundary;
|
|
19
|
+
- `landing-observation.json`: the parsed raw Vela result, retained before any
|
|
20
|
+
Canopus interpretation.
|
|
21
|
+
|
|
22
|
+
If anything fails at or after that boundary, `landing-recovery.json` records
|
|
23
|
+
the last command, raw result when available, parsed route when available, and
|
|
24
|
+
freshly inspected roots. `failure.json` points to that recovery record. A
|
|
25
|
+
command timeout may have changed external state even when no complete stdout
|
|
26
|
+
was captured, so recovery roots are authoritative over assumptions.
|
|
27
|
+
|
|
28
|
+
These files are operational evidence, not Vela authority. The projection says
|
|
29
|
+
so in its schema and can be rebuilt with `canopus inspect run.json`. Deleting
|
|
30
|
+
the run-record files must not change Vela replay, a policy route, or accepted
|
|
31
|
+
state.
|
|
32
|
+
|
|
33
|
+
The run root also contains isolated checkouts and content-addressed artifacts.
|
|
34
|
+
The landing clone uses a disposable attached branch so Vela can publish exact
|
|
35
|
+
deltas; the immutable input clone remains detached and read-only. Successful
|
|
36
|
+
runs delete the isolated Vela home and its agent-only key. Failed runs may
|
|
37
|
+
retain local diagnostic state until explicit cleanup. Never publish a run root
|
|
38
|
+
or Codex credential directory wholesale. After verification, Mission v1 makes
|
|
39
|
+
one unsigned non-authoritative Git commit containing exactly the frozen source
|
|
40
|
+
artifacts before invoking `vela land`; `activity.jsonl` records that commit,
|
|
41
|
+
tree, and path set. The terminal Vela commit then contains the Receipt, activity
|
|
42
|
+
record, proposal, and `records/artifacts/sha256/<digest>` copies. This ordering
|
|
43
|
+
keeps `vela.lock` and every clean Git checkout self-contained.
|
|
44
|
+
|
|
45
|
+
A `--no-land` run writes `canopus.diagnostic-run.v1`, invokes the same frozen
|
|
46
|
+
worker and verifier path, and leaves the source frontier at its starting commit
|
|
47
|
+
and tree. It has no Receipt or proposal. A landed product run performs all work
|
|
48
|
+
in isolated clones, verifies the clean clone, then fast-forwards the clean local
|
|
49
|
+
source checkout to the exact verified landing commit. It never pushes a remote.
|
|
50
|
+
|
|
51
|
+
Product output must live outside the source frontier and outside known
|
|
52
|
+
cloud-synced Desktop or cloud-storage roots. Docker bind mounts over cloud-backed
|
|
53
|
+
paths can stall without producing a verifier verdict, so Canopus refuses that
|
|
54
|
+
placement rather than weakening the verification timeout.
|
|
55
|
+
|
|
56
|
+
`route: defer` with `accepted_event_delta: 0` means the Receipt v1 record is
|
|
57
|
+
pending human review. It is a successful producer handoff, not scientific
|
|
58
|
+
acceptance. `route: permit` is valid only when an already signed Vela policy
|
|
59
|
+
admits the exact proposal; Canopus still does not hold a human key.
|
|
60
|
+
|
|
61
|
+
## Budget semantics
|
|
62
|
+
|
|
63
|
+
The mission hard-bounds prompt bytes, artifact bytes, attempts, spawned
|
|
64
|
+
research-lane processes, and captured research-lane output. The same ledger
|
|
65
|
+
covers the first verifier and clean-clone verifier. `max_observed_tokens` is an
|
|
66
|
+
honest postcondition over provider-reported usage; the Codex subscription
|
|
67
|
+
surface does not expose a portable pre-call token cutoff. Git and Vela are the
|
|
68
|
+
control plane and retain their own fixed command timeout/output bounds. The
|
|
69
|
+
mission therefore does not advertise a hard end-to-end subprocess or billing
|
|
70
|
+
budget it cannot enforce.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "mission_erdos1056_k15_range_10428401_10428600_native1",
|
|
3
|
+
"target": "auto",
|
|
4
|
+
"frontier": ".",
|
|
5
|
+
"actor": "agent:canopus-local",
|
|
6
|
+
"role": "producer",
|
|
7
|
+
"claim_type": "computational",
|
|
8
|
+
"replayability": "exact",
|
|
9
|
+
"objective": "Perform one finite exhaustive search for an Erdős 1056 k=15 witness over every prime p in the exact inclusive range 10428401..10428600. Use a compiled C++ program, one prime at a time; a flat open-addressed table keyed by the factorial residue keeps this bounded computation inside the registered memory and time limits. For each prime, compute t! modulo p for every cut t in 0..p-1 and count every residue fiber. For each p choose its largest fiber, breaking a tie by the smallest residue. If any largest fiber has at least 16 cuts, stop at the first such prime and report status=witness. Otherwise report status=negative and the greatest multiplicity over the whole range, breaking ties by the earliest prime and then the smallest residue. In both cases list every increasing cut in the selected fiber. Produce exactly one UTF-8 artifact at artifacts/erdos1056-k15-range-10428401-10428600.txt with these newline-terminated lines in order: schema=canopus.erdos1056-k15-search.v1; status=witness or status=negative; problem=1056; k=15; range_start=10428401; range_end=10428600; primes_tested=<exact count>; max_multiplicity=<exact count>; best_p=<prime>; best_residue=<residue>; cuts=<comma-separated cuts>. Return engine status success only after the program completes the entire registered range and writes the exact artifact. This is an exact bounded computation, not a universal answer to Erdős 1056.",
|
|
10
|
+
"completion_condition": "The independent frozen capsule recomputes the full exact range in a separate network-denied and write-denied container and byte-matches the single artifact.",
|
|
11
|
+
"allowed_paths": [
|
|
12
|
+
"artifacts/erdos1056-k15-range-10428401-10428600.txt"
|
|
13
|
+
],
|
|
14
|
+
"budgets": {
|
|
15
|
+
"max_research_wall_time_ms": 1800000,
|
|
16
|
+
"max_research_processes": 16,
|
|
17
|
+
"max_research_output_bytes": 16777216,
|
|
18
|
+
"max_prompt_bytes": 2097152,
|
|
19
|
+
"max_artifact_bytes": 1048576,
|
|
20
|
+
"max_attempts": 1,
|
|
21
|
+
"max_observed_tokens": 100000
|
|
22
|
+
},
|
|
23
|
+
"worker": {
|
|
24
|
+
"model": "gpt-5.4"
|
|
25
|
+
},
|
|
26
|
+
"verifier": {
|
|
27
|
+
"argv": [
|
|
28
|
+
"capsule/verifier",
|
|
29
|
+
"{artifact:artifacts/erdos1056-k15-range-10428401-10428600.txt}"
|
|
30
|
+
],
|
|
31
|
+
"cwd": "site",
|
|
32
|
+
"timeout_ms": 300000,
|
|
33
|
+
"max_output_bytes": 65536,
|
|
34
|
+
"capsule_path": "capsule/verifier"
|
|
35
|
+
},
|
|
36
|
+
"scientific_chain": {
|
|
37
|
+
"predicted_observable": "The frozen verifier independently obtains the same first witness or complete bounded-negative result for all primes in 10428401..10428600 and exits zero on the exact candidate bytes.",
|
|
38
|
+
"performed_test": "capsule/verifier artifacts/erdos1056-k15-range-10428401-10428600.txt"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "mission_formal_erdos_505_test_dim_one_native1",
|
|
3
|
+
"target": "auto",
|
|
4
|
+
"frontier": ".",
|
|
5
|
+
"actor": "agent:canopus-local",
|
|
6
|
+
"role": "producer",
|
|
7
|
+
"claim_type": "theoretical",
|
|
8
|
+
"replayability": "exact",
|
|
9
|
+
"objective": "Produce one exactly checkable, sorry-free Lean proof term for Erdos505.erdos_505.test_dim_one in the frozen Lean 4.27.0 and Mathlib environment bound by the target packet. Write exactly one UTF-8 artifact at artifacts/erdos505-test-dim-one-proof.lean. The file must begin with by and contain only the proof term: no imports, theorem declaration, JSON, markdown fence, or surrounding prose. Do not use sorry, admit, an axiom declaration, or an unsafe declaration. Return engine status success only after the exact artifact exists. This bounded mission proves only the frozen one-dimensional category test; it does not prove the general Erdős 505 statement or establish scientific acceptance.",
|
|
10
|
+
"completion_condition": "The independent frozen capsule supplies the exact theorem statement, elaborates the candidate with Lean 4.27.0 against the frozen formal-conjectures and Mathlib commits, and confirms that its axiom closure contains only propext, Classical.choice, and Quot.sound and never sorryAx.",
|
|
11
|
+
"allowed_paths": [
|
|
12
|
+
"artifacts/erdos505-test-dim-one-proof.lean"
|
|
13
|
+
],
|
|
14
|
+
"budgets": {
|
|
15
|
+
"max_research_wall_time_ms": 1800000,
|
|
16
|
+
"max_research_processes": 8,
|
|
17
|
+
"max_research_output_bytes": 16777216,
|
|
18
|
+
"max_prompt_bytes": 2097152,
|
|
19
|
+
"max_artifact_bytes": 131072,
|
|
20
|
+
"max_attempts": 1,
|
|
21
|
+
"max_observed_tokens": 120000
|
|
22
|
+
},
|
|
23
|
+
"worker": {
|
|
24
|
+
"model": "gpt-5.4"
|
|
25
|
+
},
|
|
26
|
+
"verifier": {
|
|
27
|
+
"argv": [
|
|
28
|
+
"capsule/verifier",
|
|
29
|
+
"{artifact:artifacts/erdos505-test-dim-one-proof.lean}"
|
|
30
|
+
],
|
|
31
|
+
"cwd": "targets",
|
|
32
|
+
"timeout_ms": 600000,
|
|
33
|
+
"max_output_bytes": 65536,
|
|
34
|
+
"capsule_path": "capsule/verifier"
|
|
35
|
+
},
|
|
36
|
+
"scientific_chain": {
|
|
37
|
+
"predicted_observable": "The frozen Lean verifier elaborates the exact candidate against Erdos505.erdos_505.test_dim_one, reports only the registered standard axioms, and exits zero on the unchanged proof bytes.",
|
|
38
|
+
"performed_test": "capsule/verifier artifacts/erdos505-test-dim-one-proof.lean"
|
|
39
|
+
}
|
|
40
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vela-science/canopus",
|
|
3
|
+
"version": "0.4.0-rc.1",
|
|
4
|
+
"description": "A bounded, replaceable research harness over released Vela interfaces",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"private": false,
|
|
7
|
+
"license": "Apache-2.0 OR MIT",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/vela-science/vela-research-harness.git"
|
|
11
|
+
},
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public",
|
|
14
|
+
"provenance": true
|
|
15
|
+
},
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=22 <23 || >=24 <25"
|
|
18
|
+
},
|
|
19
|
+
"packageManager": "pnpm@10.33.0",
|
|
20
|
+
"bin": {
|
|
21
|
+
"canopus": "dist/src/cli.js"
|
|
22
|
+
},
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/src/index.d.ts",
|
|
26
|
+
"import": "./dist/src/index.js"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist/src/activity",
|
|
31
|
+
"dist/src/artifact",
|
|
32
|
+
"dist/src/budget",
|
|
33
|
+
"dist/src/candidate",
|
|
34
|
+
"dist/src/capability",
|
|
35
|
+
"dist/src/contracts",
|
|
36
|
+
"dist/src/engines",
|
|
37
|
+
"dist/src/evidence",
|
|
38
|
+
"dist/src/mission",
|
|
39
|
+
"dist/src/product",
|
|
40
|
+
"dist/src/projection",
|
|
41
|
+
"dist/src/receipt",
|
|
42
|
+
"dist/src/repair",
|
|
43
|
+
"dist/src/util",
|
|
44
|
+
"dist/src/vela",
|
|
45
|
+
"dist/src/verifier",
|
|
46
|
+
"dist/src/workspace",
|
|
47
|
+
"dist/src/cli.js",
|
|
48
|
+
"dist/src/cli.d.ts",
|
|
49
|
+
"dist/src/index.js",
|
|
50
|
+
"dist/src/index.d.ts",
|
|
51
|
+
"dist/src/roles.js",
|
|
52
|
+
"dist/src/roles.d.ts",
|
|
53
|
+
"dist/src/run.js",
|
|
54
|
+
"dist/src/run.d.ts",
|
|
55
|
+
"schemas",
|
|
56
|
+
"capsules/erdos1056-k15/bin/linux-arm64/10428401-10428600/verifier",
|
|
57
|
+
"capsules/erdos1056-k15/bin/linux-x86_64/10428401-10428600/verifier",
|
|
58
|
+
"capsules/formal-erdos-505-test-dim-one/verifier",
|
|
59
|
+
"missions",
|
|
60
|
+
"profiles",
|
|
61
|
+
"runtime",
|
|
62
|
+
"scripts/run-hostile-native-custody-fixture.mjs",
|
|
63
|
+
"scripts/run-hostile-verifier-fixture.mjs",
|
|
64
|
+
"tests/fixtures/hostile-verifier",
|
|
65
|
+
"README.md",
|
|
66
|
+
"docs/MISSIONS.md",
|
|
67
|
+
"docs/RELEASES.md",
|
|
68
|
+
"docs/RUN_RECORD.md",
|
|
69
|
+
"CHANGELOG.md",
|
|
70
|
+
"SECURITY.md",
|
|
71
|
+
"LICENSE-APACHE",
|
|
72
|
+
"LICENSE-MIT"
|
|
73
|
+
],
|
|
74
|
+
"scripts": {
|
|
75
|
+
"build": "node scripts/clean-dist.mjs && tsc -p tsconfig.json",
|
|
76
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
77
|
+
"lint": "tsc -p tsconfig.json --noEmit",
|
|
78
|
+
"test": "pnpm run build && node --test 'dist/tests/**/*.test.js' 'tests/**/*.test.mjs'",
|
|
79
|
+
"check": "pnpm run lint && pnpm run test",
|
|
80
|
+
"prepack": "pnpm run build",
|
|
81
|
+
"pack:check": "pnpm pack --dry-run",
|
|
82
|
+
"fixture:hostile-custody": "node scripts/run-hostile-native-custody-fixture.mjs",
|
|
83
|
+
"fixture:hostile-verifier": "node scripts/run-hostile-verifier-fixture.mjs"
|
|
84
|
+
},
|
|
85
|
+
"devDependencies": {
|
|
86
|
+
"@types/node": "^24.0.0",
|
|
87
|
+
"typescript": "^5.9.0"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "canopus.profile.v2",
|
|
3
|
+
"name": "erdos1056-k15-10428401-10428600",
|
|
4
|
+
"target": "erdos:1056",
|
|
5
|
+
"target_packet_schema": "erdos-frontier.problem-work.v1",
|
|
6
|
+
"draft": "missions/erdos1056-k15-next/mission.draft.json",
|
|
7
|
+
"draft_sha256": "sha256:1c8f580b052f3d6b12c2d7694870eff1f196e27653422b6310a41ce14e4984d3",
|
|
8
|
+
"objective_sha256": "sha256:34b546c81a3522cf98fc2cd5b0f0308b723069e534dd533f6babed4634086be3",
|
|
9
|
+
"completion_condition_sha256": "sha256:4a4a06e2c867867a191af27900e96c23e677db2775783f1829c31e4867a7f270",
|
|
10
|
+
"allowed_artifacts_sha256": "sha256:70aff1cfbd41e2a8e9afccdfeaba4a95dd0356902a2592e1ebae031f9dcbb658",
|
|
11
|
+
"budgets_sha256": "sha256:26e3697f491461dd3073ebfb9960fcaf70e6412095fd4eeade7169fb79a4b070",
|
|
12
|
+
"replay_argv_sha256": "sha256:939ffff9ab670b28d3715e4bb26f42aa520de532e9a73328ac4be459f539a6b7",
|
|
13
|
+
"landing": {
|
|
14
|
+
"expected_routes": ["defer"],
|
|
15
|
+
"max_accepted_delta": 0
|
|
16
|
+
},
|
|
17
|
+
"platforms": {
|
|
18
|
+
"darwin-arm64": {
|
|
19
|
+
"worker_profile": "runtime/native-worker/config.toml",
|
|
20
|
+
"worker_profile_sha256": "sha256:12b58762819481ad101e7a172a296224b6050a8a07a7431272e521a4102908da",
|
|
21
|
+
"verifier_capsule": "capsules/erdos1056-k15/bin/linux-arm64/10428401-10428600/verifier",
|
|
22
|
+
"verifier_capsule_sha256": "sha256:a6fc0d2ad4dd8e665474d6efd530e8a574880b7191d246b1c245d8cf4db175aa",
|
|
23
|
+
"verifier_image": "ghcr.io/vela-science/canopus-verifier@sha256:a6f354862f2a3f7d72eb99244c65fa8583c98b74e17e3d5ce6e31ef48aa16536"
|
|
24
|
+
},
|
|
25
|
+
"linux-x86_64": {
|
|
26
|
+
"worker_profile": "runtime/native-worker/config-linux.toml",
|
|
27
|
+
"worker_profile_sha256": "sha256:fddecc4b7458b91f6d55ae16b666d297ae7bcd1a2f5deeb6650dcea60fc0242c",
|
|
28
|
+
"verifier_capsule": "capsules/erdos1056-k15/bin/linux-x86_64/10428401-10428600/verifier",
|
|
29
|
+
"verifier_capsule_sha256": "sha256:3cdcb487db4907b63230548a7c7fd94d4be6acf003ca532971f9cf1650f19546",
|
|
30
|
+
"verifier_image": "ghcr.io/vela-science/canopus-verifier@sha256:a6f354862f2a3f7d72eb99244c65fa8583c98b74e17e3d5ce6e31ef48aa16536"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "canopus.profile.v2",
|
|
3
|
+
"name": "formal-erdos-505-test-dim-one",
|
|
4
|
+
"target": "formal:erdos-505-test-dim-one",
|
|
5
|
+
"target_packet_schema": "formal-conjectures.lean-proof-work.v1",
|
|
6
|
+
"draft": "missions/formal-erdos-505-test-dim-one/mission.draft.json",
|
|
7
|
+
"draft_sha256": "sha256:93c19a6856ebad4781710e88d042bc69092b33645f5b0139298b649d877af074",
|
|
8
|
+
"objective_sha256": "sha256:d9b480cf26a5d4481a00eb6da15b6805fe49dd00154e9906943fbd1dcb3667fb",
|
|
9
|
+
"completion_condition_sha256": "sha256:75a9c7ce1f44f24e594b068beea5d4b26544331546435592a90b32c4363672fb",
|
|
10
|
+
"allowed_artifacts_sha256": "sha256:6c95468a5b24366edf539b156bbf3651cff55c1b1aad2a752522d316e88882db",
|
|
11
|
+
"budgets_sha256": "sha256:ac698d491f864a95be0e708029f538d532333920105ea5c28b56b45b6f639245",
|
|
12
|
+
"replay_argv_sha256": "sha256:120e2870a3570cbcebca835bb30c3f4b016d9cbbaece13b269ce449b2dcdfd1e",
|
|
13
|
+
"landing": {
|
|
14
|
+
"expected_routes": ["defer"],
|
|
15
|
+
"max_accepted_delta": 0
|
|
16
|
+
},
|
|
17
|
+
"platforms": {
|
|
18
|
+
"darwin-arm64": {
|
|
19
|
+
"worker_profile": "runtime/native-worker/config.toml",
|
|
20
|
+
"worker_profile_sha256": "sha256:12b58762819481ad101e7a172a296224b6050a8a07a7431272e521a4102908da",
|
|
21
|
+
"verifier_capsule": "capsules/formal-erdos-505-test-dim-one/verifier",
|
|
22
|
+
"verifier_capsule_sha256": "sha256:c1ef5a0914e9d537d2acba2b74a27f139d37414629c7676937515e99438b58dd",
|
|
23
|
+
"verifier_image": "ghcr.io/vela-science/canopus-formal-verifier@sha256:a9df828f9480d79e10a9707847fdf99a6a27287cf4281256d79f17be7f3d9f39",
|
|
24
|
+
"verifier_platform": "linux/amd64"
|
|
25
|
+
},
|
|
26
|
+
"linux-x86_64": {
|
|
27
|
+
"worker_profile": "runtime/native-worker/config-linux.toml",
|
|
28
|
+
"worker_profile_sha256": "sha256:fddecc4b7458b91f6d55ae16b666d297ae7bcd1a2f5deeb6650dcea60fc0242c",
|
|
29
|
+
"verifier_capsule": "capsules/formal-erdos-505-test-dim-one/verifier",
|
|
30
|
+
"verifier_capsule_sha256": "sha256:c1ef5a0914e9d537d2acba2b74a27f139d37414629c7676937515e99438b58dd",
|
|
31
|
+
"verifier_image": "ghcr.io/vela-science/canopus-formal-verifier@sha256:a9df828f9480d79e10a9707847fdf99a6a27287cf4281256d79f17be7f3d9f39",
|
|
32
|
+
"verifier_platform": "linux/amd64"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
default_permissions = "canopus-worker"
|
|
2
|
+
approval_policy = "never"
|
|
3
|
+
allow_login_shell = false
|
|
4
|
+
|
|
5
|
+
[permissions.canopus-worker.filesystem]
|
|
6
|
+
":minimal" = "read"
|
|
7
|
+
"/home" = "deny"
|
|
8
|
+
"/root" = "deny"
|
|
9
|
+
"/tmp" = "deny"
|
|
10
|
+
|
|
11
|
+
[permissions.canopus-worker.filesystem.":workspace_roots"]
|
|
12
|
+
"." = "write"
|
|
13
|
+
".canopus-runtime" = "read"
|
|
14
|
+
|
|
15
|
+
[permissions.canopus-worker.network]
|
|
16
|
+
enabled = false
|
|
17
|
+
|
|
18
|
+
[shell_environment_policy]
|
|
19
|
+
inherit = "none"
|
|
20
|
+
set = { PATH = "/usr/local/bin:/usr/bin:/bin", TMPDIR = "." }
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
default_permissions = "canopus-worker"
|
|
2
|
+
approval_policy = "never"
|
|
3
|
+
allow_login_shell = false
|
|
4
|
+
|
|
5
|
+
[permissions.canopus-worker.filesystem]
|
|
6
|
+
":minimal" = "read"
|
|
7
|
+
"/Applications/Xcode.app/Contents/Developer" = "read"
|
|
8
|
+
|
|
9
|
+
[permissions.canopus-worker.filesystem.":workspace_roots"]
|
|
10
|
+
"." = "write"
|
|
11
|
+
|
|
12
|
+
[permissions.canopus-worker.network]
|
|
13
|
+
enabled = false
|
|
14
|
+
|
|
15
|
+
[shell_environment_policy]
|
|
16
|
+
inherit = "none"
|
|
17
|
+
set = { PATH = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin", SDKROOT = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk", TMPDIR = "." }
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://vela.science/schemas/canopus/candidate.v0.json",
|
|
4
|
+
"title": "Canopus frozen candidate v0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema",
|
|
9
|
+
"mission_id",
|
|
10
|
+
"status",
|
|
11
|
+
"claim",
|
|
12
|
+
"artifacts",
|
|
13
|
+
"observations",
|
|
14
|
+
"tests",
|
|
15
|
+
"costs",
|
|
16
|
+
"caveats",
|
|
17
|
+
"engine"
|
|
18
|
+
],
|
|
19
|
+
"properties": {
|
|
20
|
+
"schema": { "const": "canopus.candidate.v0" },
|
|
21
|
+
"mission_id": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"pattern": "^mission_[a-z0-9][a-z0-9._-]{0,126}$"
|
|
24
|
+
},
|
|
25
|
+
"status": { "enum": ["success", "null", "failed"] },
|
|
26
|
+
"claim": { "type": "string", "minLength": 1, "maxLength": 8192 },
|
|
27
|
+
"artifacts": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"maxItems": 10,
|
|
30
|
+
"items": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": false,
|
|
33
|
+
"required": ["path", "kind", "digest", "bytes"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"path": { "$ref": "#/$defs/relativePath" },
|
|
36
|
+
"kind": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
37
|
+
"digest": { "$ref": "#/$defs/sha256" },
|
|
38
|
+
"bytes": { "type": "integer", "minimum": 0, "maximum": 1073741824 }
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"observations": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"maxItems": 16,
|
|
45
|
+
"items": { "type": "string", "minLength": 1, "maxLength": 4096 }
|
|
46
|
+
},
|
|
47
|
+
"tests": {
|
|
48
|
+
"type": "array",
|
|
49
|
+
"maxItems": 2,
|
|
50
|
+
"items": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"additionalProperties": false,
|
|
53
|
+
"required": ["argv", "executable_digest", "exit_code", "stdout_digest", "stderr_digest", "duration_ms"],
|
|
54
|
+
"properties": {
|
|
55
|
+
"argv": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"minItems": 1,
|
|
58
|
+
"maxItems": 64,
|
|
59
|
+
"items": { "type": "string", "maxLength": 4096 }
|
|
60
|
+
},
|
|
61
|
+
"executable_digest": { "$ref": "#/$defs/sha256" },
|
|
62
|
+
"exit_code": { "type": "integer", "minimum": -1, "maximum": 255 },
|
|
63
|
+
"stdout_digest": { "$ref": "#/$defs/sha256" },
|
|
64
|
+
"stderr_digest": { "$ref": "#/$defs/sha256" },
|
|
65
|
+
"duration_ms": { "type": "integer", "minimum": 0, "maximum": 3600000 }
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"costs": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"additionalProperties": false,
|
|
72
|
+
"required": ["wall_time_ms", "attempt", "input_tokens", "output_tokens"],
|
|
73
|
+
"properties": {
|
|
74
|
+
"wall_time_ms": { "type": "integer", "minimum": 0, "maximum": 3600000 },
|
|
75
|
+
"attempt": { "type": "integer", "minimum": 1, "maximum": 8 },
|
|
76
|
+
"input_tokens": { "type": "integer", "minimum": 0, "maximum": 1000000 },
|
|
77
|
+
"output_tokens": { "type": "integer", "minimum": 0, "maximum": 1000000 }
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"caveats": {
|
|
81
|
+
"type": "array",
|
|
82
|
+
"maxItems": 10,
|
|
83
|
+
"items": { "type": "string", "minLength": 1, "maxLength": 4096 }
|
|
84
|
+
},
|
|
85
|
+
"engine": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"additionalProperties": false,
|
|
88
|
+
"required": ["name", "version", "binary_sha256", "model", "configuration_sha256"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"name": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
91
|
+
"version": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
92
|
+
"binary_sha256": {
|
|
93
|
+
"anyOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }]
|
|
94
|
+
},
|
|
95
|
+
"model": {
|
|
96
|
+
"anyOf": [
|
|
97
|
+
{ "type": "string", "minLength": 1, "maxLength": 256 },
|
|
98
|
+
{ "type": "null" }
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"configuration_sha256": { "$ref": "#/$defs/sha256" }
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"repair": {
|
|
105
|
+
"type": "object",
|
|
106
|
+
"additionalProperties": false,
|
|
107
|
+
"required": ["parent_candidate", "reason"],
|
|
108
|
+
"properties": {
|
|
109
|
+
"parent_candidate": { "$ref": "#/$defs/sha256" },
|
|
110
|
+
"reason": { "type": "string", "minLength": 1, "maxLength": 4096 }
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"$defs": {
|
|
115
|
+
"sha256": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
118
|
+
},
|
|
119
|
+
"relativePath": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"minLength": 1,
|
|
122
|
+
"maxLength": 1024
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://vela.science/schemas/canopus/engine-manifest.v0.json",
|
|
4
|
+
"title": "Canopus engine manifest v0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema",
|
|
9
|
+
"engine",
|
|
10
|
+
"usage",
|
|
11
|
+
"wall_time_ms",
|
|
12
|
+
"event_types",
|
|
13
|
+
"action_types",
|
|
14
|
+
"events_sha256",
|
|
15
|
+
"stderr_sha256"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"schema": { "const": "canopus.engine-manifest.v0" },
|
|
19
|
+
"engine": { "$ref": "candidate.v0.json#/properties/engine" },
|
|
20
|
+
"usage": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": ["input_tokens", "cached_input_tokens", "output_tokens", "reasoning_output_tokens"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"input_tokens": { "type": "integer", "minimum": 0 },
|
|
26
|
+
"cached_input_tokens": { "type": "integer", "minimum": 0 },
|
|
27
|
+
"output_tokens": { "type": "integer", "minimum": 0 },
|
|
28
|
+
"reasoning_output_tokens": { "type": "integer", "minimum": 0 }
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"wall_time_ms": { "type": "integer", "minimum": 0, "maximum": 3600000 },
|
|
32
|
+
"event_types": {
|
|
33
|
+
"type": "array",
|
|
34
|
+
"maxItems": 64,
|
|
35
|
+
"items": { "type": "string", "minLength": 1, "maxLength": 128 }
|
|
36
|
+
},
|
|
37
|
+
"action_types": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"maxItems": 16,
|
|
40
|
+
"items": { "type": "string", "minLength": 1, "maxLength": 128 }
|
|
41
|
+
},
|
|
42
|
+
"events_sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
|
|
43
|
+
"stderr_sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://vela.science/schemas/canopus/engine-output.v0.json",
|
|
4
|
+
"title": "Canopus engine output v0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema", "status", "claim", "artifacts", "observations", "caveats"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema": { "type": "string", "const": "canopus.engine-output.v0" },
|
|
10
|
+
"status": {
|
|
11
|
+
"description": "Producer completion only: success means contract-complete candidate bytes are present and does not imply verifier passage or scientific acceptance.",
|
|
12
|
+
"enum": ["success", "null", "failed"]
|
|
13
|
+
},
|
|
14
|
+
"claim": { "type": "string", "minLength": 1, "maxLength": 8192 },
|
|
15
|
+
"artifacts": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"maxItems": 8,
|
|
18
|
+
"items": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"additionalProperties": false,
|
|
21
|
+
"required": ["path", "kind", "encoding", "content"],
|
|
22
|
+
"properties": {
|
|
23
|
+
"path": { "type": "string", "minLength": 1, "maxLength": 1024 },
|
|
24
|
+
"kind": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
25
|
+
"encoding": { "type": "string", "const": "utf8" },
|
|
26
|
+
"content": { "type": "string", "maxLength": 1048576 }
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"observations": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"maxItems": 16,
|
|
33
|
+
"items": { "type": "string", "minLength": 1, "maxLength": 4096 }
|
|
34
|
+
},
|
|
35
|
+
"caveats": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"maxItems": 8,
|
|
38
|
+
"items": { "type": "string", "minLength": 1, "maxLength": 4096 }
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|