erdos-problems 0.1.8 → 0.1.10
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/AGENT_INTEGRATION.md +25 -0
- package/PROTOCOL.md +36 -0
- package/README.md +46 -3
- package/docs/RESEARCH_LOOP.md +28 -8
- package/package.json +6 -2
- package/src/cli/index.js +9 -4
- package/src/commands/bootstrap.js +3 -0
- package/src/commands/checkpoints.js +2 -0
- package/src/commands/maintainer.js +8 -1
- package/src/commands/orp.js +58 -0
- package/src/commands/problem.js +7 -1
- package/src/commands/pull.js +174 -7
- package/src/commands/seed.js +30 -2
- package/src/commands/state.js +2 -0
- package/src/commands/sunflower.js +7 -0
- package/src/commands/workspace.js +4 -0
- package/src/runtime/breakthroughs.js +197 -0
- package/src/runtime/maintainer-seed.js +67 -1
- package/src/runtime/orp.js +83 -0
- package/src/runtime/paths.js +28 -0
- package/src/runtime/preflight.js +15 -1
- package/src/runtime/problem-artifacts.js +2 -0
- package/src/runtime/sunflower.js +5 -0
- package/src/runtime/workspace.js +8 -0
- package/src/upstream/public-search.js +139 -0
- package/src/upstream/site.js +41 -0
- package/templates/CLAIM.md +9 -0
- package/templates/FAILED_TOPIC.md +8 -0
- package/templates/VERIFICATION_RECORD.md +10 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# ORP Agent Integration
|
|
2
|
+
|
|
3
|
+
Use this when an agent is working inside an `erdos-problems` workspace.
|
|
4
|
+
|
|
5
|
+
## Core Rule
|
|
6
|
+
|
|
7
|
+
Do not let local route progress masquerade as global problem closure.
|
|
8
|
+
|
|
9
|
+
## Minimum Working Loop
|
|
10
|
+
|
|
11
|
+
1. select or seed a problem
|
|
12
|
+
2. sync ORP kit
|
|
13
|
+
3. sync state
|
|
14
|
+
4. run preflight
|
|
15
|
+
5. sync checkpoints
|
|
16
|
+
6. work the next honest move
|
|
17
|
+
|
|
18
|
+
## Canonical Artifact Boundary
|
|
19
|
+
|
|
20
|
+
Evidence belongs in:
|
|
21
|
+
- `problems/<id>/`
|
|
22
|
+
- pack artifacts under `packs/`
|
|
23
|
+
- workspace pulls and scaffolds under `.erdos/`
|
|
24
|
+
|
|
25
|
+
Protocol files and ORP templates are process scaffolding only.
|
package/PROTOCOL.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Open Research Protocol
|
|
2
|
+
|
|
3
|
+
`erdos-problems` ships a bundled ORP kit so every workspace can start with the same claim hygiene and verification frame.
|
|
4
|
+
|
|
5
|
+
## Canonical Truth
|
|
6
|
+
|
|
7
|
+
- Public problem metadata comes from the upstream Erdős snapshot plus the local canonical dossier.
|
|
8
|
+
- Pack context, route packets, and workspace state guide the loop but do not silently upgrade global problem status.
|
|
9
|
+
- ORP process files are protocol tools, not mathematical evidence.
|
|
10
|
+
|
|
11
|
+
## Claim Levels
|
|
12
|
+
|
|
13
|
+
- `Exact`
|
|
14
|
+
- `Verified`
|
|
15
|
+
- `Heuristic`
|
|
16
|
+
- `Conjecture`
|
|
17
|
+
|
|
18
|
+
When unsure, downgrade rather than overclaim.
|
|
19
|
+
|
|
20
|
+
## Required Discipline
|
|
21
|
+
|
|
22
|
+
- keep open problem / active route / route breakthrough / problem solved distinct
|
|
23
|
+
- record verification hooks for exact or verified claims
|
|
24
|
+
- preserve failed paths as useful artifacts, not invisible dead ends
|
|
25
|
+
- keep route claims tied to canonical dossier and pack artifacts
|
|
26
|
+
|
|
27
|
+
## Workspace ORP Kit
|
|
28
|
+
|
|
29
|
+
The CLI syncs this protocol into `.erdos/orp/`:
|
|
30
|
+
- `PROTOCOL.md`
|
|
31
|
+
- `AGENT_INTEGRATION.md`
|
|
32
|
+
- `templates/CLAIM.md`
|
|
33
|
+
- `templates/VERIFICATION_RECORD.md`
|
|
34
|
+
- `templates/FAILED_TOPIC.md`
|
|
35
|
+
|
|
36
|
+
Use `erdos orp sync` to refresh the workspace copy explicitly.
|
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ Official binary:
|
|
|
18
18
|
|
|
19
19
|
- atlas layer with canonical local `problems/<id>/problem.yaml` records
|
|
20
20
|
- bundled upstream snapshot from `teorth/erdosproblems`
|
|
21
|
+
- bundled ORP kit with protocol and templates for claim hygiene
|
|
21
22
|
- workspace `.erdos/` state for active-problem selection, upstream refreshes, scaffolds, and pull bundles
|
|
22
23
|
- sunflower cluster as the first deep harness pack
|
|
23
24
|
- quartet-aware sunflower context for `20`, `536`, `856`, and `857`
|
|
@@ -44,13 +45,14 @@ erdos dossier show 857
|
|
|
44
45
|
For an unseeded problem, the one-step self-seeding flow is now:
|
|
45
46
|
|
|
46
47
|
```bash
|
|
47
|
-
erdos seed problem 25 --
|
|
48
|
+
erdos seed problem 25 --cluster number-theory
|
|
48
49
|
erdos problem show 25
|
|
49
50
|
erdos workspace show
|
|
50
51
|
```
|
|
51
52
|
|
|
52
53
|
What `bootstrap` does:
|
|
53
54
|
- sets the active workspace problem
|
|
55
|
+
- syncs the bundled ORP workspace kit into `.erdos/orp/`
|
|
54
56
|
- scaffolds the canonical dossier files into `.erdos/scaffolds/<id>/`
|
|
55
57
|
- includes the upstream record when a bundled or workspace snapshot is available
|
|
56
58
|
- copies pack-specific context and compute packets when the problem has them
|
|
@@ -58,14 +60,19 @@ What `bootstrap` does:
|
|
|
58
60
|
|
|
59
61
|
What `seed` does:
|
|
60
62
|
- creates a pull bundle for any problem in the upstream snapshot
|
|
63
|
+
- defaults to a live site snapshot plus a public-search review bundle
|
|
64
|
+
- treats a problem as seed-admissible only when the public site says `open`, unless you intentionally pass `--allow-non-open`
|
|
61
65
|
- promotes that bundle into `.erdos/seeded-problems/<id>/`
|
|
62
66
|
- auto-selects the problem in the workspace
|
|
67
|
+
- syncs the bundled ORP workspace kit into `.erdos/orp/`
|
|
63
68
|
- syncs the staged research loop state and checkpoint shelf
|
|
64
69
|
- makes the new dossier visible to the atlas commands immediately inside that workspace
|
|
65
70
|
- writes richer starter artifacts:
|
|
66
71
|
- `AGENT_START.md`
|
|
67
72
|
- `ROUTES.md`
|
|
68
73
|
- `CHECKPOINT_NOTES.md`
|
|
74
|
+
- `PUBLIC_STATUS_REVIEW.md`
|
|
75
|
+
- `AGENT_WEBSEARCH_BRIEF.md`
|
|
69
76
|
|
|
70
77
|
## Pull lanes
|
|
71
78
|
|
|
@@ -75,7 +82,7 @@ For any problem number in the upstream snapshot, you can create a workspace bund
|
|
|
75
82
|
erdos pull problem 857
|
|
76
83
|
erdos pull artifacts 857
|
|
77
84
|
erdos pull literature 857
|
|
78
|
-
erdos pull problem 999 --include-site
|
|
85
|
+
erdos pull problem 999 --include-site --include-public-search
|
|
79
86
|
erdos pull problem 999 --refresh-upstream
|
|
80
87
|
```
|
|
81
88
|
|
|
@@ -88,6 +95,10 @@ What the pull lanes do:
|
|
|
88
95
|
- `erdos pull literature <id>` creates only the literature lane
|
|
89
96
|
- when a problem is locally seeded, the artifact lane includes the canonical dossier, pack context, and compute packets
|
|
90
97
|
- when `--include-site` is used, the literature lane can include a live site snapshot and plain-text extract
|
|
98
|
+
- when `--include-public-search` is used, the literature lane also includes:
|
|
99
|
+
- `PUBLIC_STATUS_REVIEW.md`
|
|
100
|
+
- `PUBLIC_STATUS_REVIEW.json`
|
|
101
|
+
- `AGENT_WEBSEARCH_BRIEF.md`
|
|
91
102
|
|
|
92
103
|
## Maintainer seeding
|
|
93
104
|
|
|
@@ -112,6 +123,9 @@ What maintainer seeding does:
|
|
|
112
123
|
- `AGENT_START.md`
|
|
113
124
|
- `ROUTES.md`
|
|
114
125
|
- `CHECKPOINT_NOTES.md`
|
|
126
|
+
- public-truth starter files:
|
|
127
|
+
- `PUBLIC_STATUS_REVIEW.md`
|
|
128
|
+
- `AGENT_WEBSEARCH_BRIEF.md`
|
|
115
129
|
- preserves upstream/site provenance in the local record
|
|
116
130
|
|
|
117
131
|
## Sunflower pack
|
|
@@ -143,6 +157,27 @@ erdos sunflower status 857 --json
|
|
|
143
157
|
- problem-solved distinction
|
|
144
158
|
- compute posture when a packet exists
|
|
145
159
|
|
|
160
|
+
## ORP
|
|
161
|
+
|
|
162
|
+
`erdos-problems` now ships a bundled Open Research Protocol kit:
|
|
163
|
+
- `PROTOCOL.md`
|
|
164
|
+
- `AGENT_INTEGRATION.md`
|
|
165
|
+
- `templates/CLAIM.md`
|
|
166
|
+
- `templates/VERIFICATION_RECORD.md`
|
|
167
|
+
- `templates/FAILED_TOPIC.md`
|
|
168
|
+
|
|
169
|
+
Workspace copy:
|
|
170
|
+
- `.erdos/orp/PROTOCOL.md`
|
|
171
|
+
- `.erdos/orp/AGENT_INTEGRATION.md`
|
|
172
|
+
- `.erdos/orp/templates/`
|
|
173
|
+
|
|
174
|
+
Useful ORP commands:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
erdos orp show
|
|
178
|
+
erdos orp sync
|
|
179
|
+
```
|
|
180
|
+
|
|
146
181
|
## CLI
|
|
147
182
|
|
|
148
183
|
```bash
|
|
@@ -158,6 +193,8 @@ erdos problem artifacts 857 --json
|
|
|
158
193
|
erdos cluster list
|
|
159
194
|
erdos cluster show sunflower
|
|
160
195
|
erdos workspace show
|
|
196
|
+
erdos orp show
|
|
197
|
+
erdos orp sync
|
|
161
198
|
erdos sunflower status 857
|
|
162
199
|
erdos sunflower status --json
|
|
163
200
|
erdos dossier show
|
|
@@ -167,7 +204,7 @@ erdos upstream diff
|
|
|
167
204
|
erdos scaffold problem 857
|
|
168
205
|
erdos bootstrap problem 857
|
|
169
206
|
erdos bootstrap problem 857 --sync-upstream
|
|
170
|
-
erdos seed problem 25 --
|
|
207
|
+
erdos seed problem 25 --cluster number-theory
|
|
171
208
|
erdos pull problem 857
|
|
172
209
|
erdos pull artifacts 857
|
|
173
210
|
erdos pull literature 857
|
|
@@ -195,6 +232,8 @@ Many seeded dossiers now also carry starter-loop artifacts:
|
|
|
195
232
|
- `AGENT_START.md`
|
|
196
233
|
- `ROUTES.md`
|
|
197
234
|
- `CHECKPOINT_NOTES.md`
|
|
235
|
+
- `PUBLIC_STATUS_REVIEW.md`
|
|
236
|
+
- `AGENT_WEBSEARCH_BRIEF.md`
|
|
198
237
|
|
|
199
238
|
The CLI can surface these directly:
|
|
200
239
|
- `erdos problem artifacts <id>` shows the canonical inventory
|
|
@@ -210,6 +249,7 @@ For sunflower problems, the CLI also surfaces pack-specific artifacts:
|
|
|
210
249
|
- per-problem context files under `packs/sunflower/problems/<id>/`
|
|
211
250
|
- route packets and checkpoint/report packets for `20` and `857`
|
|
212
251
|
- compute packets under `packs/sunflower/compute/<id>/` when available
|
|
252
|
+
- compute-governance evaluation under `breakthroughs`, surfaced through `erdos sunflower status`
|
|
213
253
|
|
|
214
254
|
## Notes
|
|
215
255
|
|
|
@@ -242,6 +282,9 @@ This runtime writes:
|
|
|
242
282
|
- `.erdos/QUESTION-LEDGER.md`
|
|
243
283
|
- `.erdos/checkpoints/CHECKPOINTS.md`
|
|
244
284
|
- `.erdos/checkpoints/CHECKPOINTS.json`
|
|
285
|
+
- `.erdos/orp/PROTOCOL.md`
|
|
286
|
+
- `.erdos/orp/AGENT_INTEGRATION.md`
|
|
287
|
+
- `.erdos/orp/templates/`
|
|
245
288
|
- `.erdos/registry/preflight/`
|
|
246
289
|
|
|
247
290
|
The public package uses the same status ladder we settled on in the lab:
|
package/docs/RESEARCH_LOOP.md
CHANGED
|
@@ -11,24 +11,30 @@ Workspace runtime files live under `.erdos/`:
|
|
|
11
11
|
- `QUESTION-LEDGER.md`
|
|
12
12
|
- `checkpoints/CHECKPOINTS.md`
|
|
13
13
|
- `checkpoints/CHECKPOINTS.json`
|
|
14
|
+
- `orp/PROTOCOL.md`
|
|
15
|
+
- `orp/AGENT_INTEGRATION.md`
|
|
16
|
+
- `orp/templates/`
|
|
14
17
|
- `registry/preflight/`
|
|
15
18
|
- `registry/compute/`
|
|
16
19
|
|
|
17
20
|
## Core loop
|
|
18
21
|
|
|
19
22
|
1. Select or bootstrap a problem.
|
|
20
|
-
2. Sync
|
|
21
|
-
3.
|
|
22
|
-
4.
|
|
23
|
-
5.
|
|
24
|
-
6.
|
|
25
|
-
7.
|
|
26
|
-
8.
|
|
23
|
+
2. Sync ORP.
|
|
24
|
+
3. Sync state.
|
|
25
|
+
4. Run preflight.
|
|
26
|
+
5. Set continuation mode.
|
|
27
|
+
6. Sync checkpoints.
|
|
28
|
+
7. Pull or scaffold artifacts.
|
|
29
|
+
8. Review public status and agent websearch brief if the problem was freshly seeded.
|
|
30
|
+
9. Work the active route.
|
|
31
|
+
10. Sync checkpoints again at honest boundaries.
|
|
27
32
|
|
|
28
33
|
## Commands
|
|
29
34
|
|
|
30
35
|
```bash
|
|
31
36
|
erdos problem use 857
|
|
37
|
+
erdos orp sync
|
|
32
38
|
erdos state sync
|
|
33
39
|
erdos preflight
|
|
34
40
|
erdos continuation use route
|
|
@@ -39,7 +45,7 @@ erdos workspace show
|
|
|
39
45
|
For problems that are not yet packaged as native dossiers, the loop can start with one-step self-seeding:
|
|
40
46
|
|
|
41
47
|
```bash
|
|
42
|
-
erdos seed problem 25 --
|
|
48
|
+
erdos seed problem 25 --cluster number-theory
|
|
43
49
|
erdos preflight
|
|
44
50
|
erdos continuation use route
|
|
45
51
|
erdos checkpoints sync
|
|
@@ -51,6 +57,20 @@ The seeded dossier now also includes starter-loop artifacts:
|
|
|
51
57
|
- `AGENT_START.md`
|
|
52
58
|
- `ROUTES.md`
|
|
53
59
|
- `CHECKPOINT_NOTES.md`
|
|
60
|
+
- `PUBLIC_STATUS_REVIEW.md`
|
|
61
|
+
- `AGENT_WEBSEARCH_BRIEF.md`
|
|
62
|
+
|
|
63
|
+
The ORP kit travels with the workspace too:
|
|
64
|
+
- `PROTOCOL.md`
|
|
65
|
+
- `AGENT_INTEGRATION.md`
|
|
66
|
+
- `templates/CLAIM.md`
|
|
67
|
+
- `templates/VERIFICATION_RECORD.md`
|
|
68
|
+
- `templates/FAILED_TOPIC.md`
|
|
69
|
+
|
|
70
|
+
For sunflower compute lanes, ORP now sits above `breakthroughs`:
|
|
71
|
+
- `erdos sunflower status <id>` evaluates the packaged compute lane with `breakthroughs`
|
|
72
|
+
- the CLI surfaces the selected rung, dispatch action, and the reason compute is admissible
|
|
73
|
+
- this is compute governance and traceability, not an automatic compute launch
|
|
54
74
|
|
|
55
75
|
## Status ladder
|
|
56
76
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "erdos-problems",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "CLI atlas and staged research harness for Paul Erdos problems.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -9,12 +9,15 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"README.md",
|
|
11
11
|
"LICENSE",
|
|
12
|
+
"PROTOCOL.md",
|
|
13
|
+
"AGENT_INTEGRATION.md",
|
|
12
14
|
"bin",
|
|
13
15
|
"data",
|
|
14
16
|
"docs",
|
|
15
17
|
"packs",
|
|
16
18
|
"problems",
|
|
17
|
-
"src"
|
|
19
|
+
"src",
|
|
20
|
+
"templates"
|
|
18
21
|
],
|
|
19
22
|
"scripts": {
|
|
20
23
|
"test": "node --test",
|
|
@@ -28,6 +31,7 @@
|
|
|
28
31
|
"sunflower"
|
|
29
32
|
],
|
|
30
33
|
"dependencies": {
|
|
34
|
+
"breakthroughs": "^0.1.1",
|
|
31
35
|
"yaml": "^2.8.3"
|
|
32
36
|
},
|
|
33
37
|
"license": "MIT"
|
package/src/cli/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { runClusterCommand } from '../commands/cluster.js';
|
|
|
4
4
|
import { runContinuationCommand } from '../commands/continuation.js';
|
|
5
5
|
import { runDossierCommand } from '../commands/dossier.js';
|
|
6
6
|
import { runMaintainerCommand } from '../commands/maintainer.js';
|
|
7
|
+
import { runOrpCommand } from '../commands/orp.js';
|
|
7
8
|
import { runPreflightCommand } from '../commands/preflight.js';
|
|
8
9
|
import { runProblemCommand } from '../commands/problem.js';
|
|
9
10
|
import { runPullCommand } from '../commands/pull.js';
|
|
@@ -26,6 +27,8 @@ function printUsage() {
|
|
|
26
27
|
console.log(' erdos cluster list');
|
|
27
28
|
console.log(' erdos cluster show <name>');
|
|
28
29
|
console.log(' erdos workspace show');
|
|
30
|
+
console.log(' erdos orp show [--json]');
|
|
31
|
+
console.log(' erdos orp sync [--json]');
|
|
29
32
|
console.log(' erdos state sync [--json]');
|
|
30
33
|
console.log(' erdos state show [--json]');
|
|
31
34
|
console.log(' erdos continuation show [--json]');
|
|
@@ -39,11 +42,11 @@ function printUsage() {
|
|
|
39
42
|
console.log(' erdos upstream diff [--write-package-report]');
|
|
40
43
|
console.log(' erdos scaffold problem <id> [--dest <path>]');
|
|
41
44
|
console.log(' erdos bootstrap problem <id> [--dest <path>] [--sync-upstream]');
|
|
42
|
-
console.log(' erdos seed problem <id> [--include-site] [--refresh-upstream] [--cluster <name>] [--repo-status <status>] [--harness-depth <depth>] [--title <title>] [--family-tag <tag>] [--related <id>] [--formalization-status <status>] [--active-route <route>] [--route-breakthrough] [--problem-solved] [--dest-root <path>] [--no-activate] [--no-loop-sync] [--force] [--json]');
|
|
43
|
-
console.log(' erdos pull problem <id> [--dest <path>] [--include-site] [--refresh-upstream]');
|
|
45
|
+
console.log(' erdos seed problem <id> [--include-site|--no-site] [--include-public-search|--no-public-search] [--refresh-upstream] [--cluster <name>] [--repo-status <status>] [--harness-depth <depth>] [--title <title>] [--family-tag <tag>] [--related <id>] [--formalization-status <status>] [--active-route <route>] [--route-breakthrough] [--problem-solved] [--allow-non-open] [--dest-root <path>] [--no-activate] [--no-loop-sync] [--force] [--json]');
|
|
46
|
+
console.log(' erdos pull problem <id> [--dest <path>] [--include-site] [--include-public-search] [--refresh-upstream]');
|
|
44
47
|
console.log(' erdos pull artifacts <id> [--dest <path>] [--refresh-upstream]');
|
|
45
|
-
console.log(' erdos pull literature <id> [--dest <path>] [--include-site] [--refresh-upstream]');
|
|
46
|
-
console.log(' erdos maintainer seed problem <id> [--from-pull <path>] [--dest-root <path>] [--cluster <name>]');
|
|
48
|
+
console.log(' erdos pull literature <id> [--dest <path>] [--include-site] [--include-public-search] [--refresh-upstream]');
|
|
49
|
+
console.log(' erdos maintainer seed problem <id> [--from-pull <path>] [--dest-root <path>] [--cluster <name>] [--allow-non-open]');
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
const args = process.argv.slice(2);
|
|
@@ -59,6 +62,8 @@ if (!command || command === 'help' || command === '--help') {
|
|
|
59
62
|
exitCode = runClusterCommand(rest);
|
|
60
63
|
} else if (command === 'workspace') {
|
|
61
64
|
exitCode = runWorkspaceCommand(rest);
|
|
65
|
+
} else if (command === 'orp') {
|
|
66
|
+
exitCode = runOrpCommand(rest);
|
|
62
67
|
} else if (command === 'state') {
|
|
63
68
|
exitCode = runStateCommand(rest);
|
|
64
69
|
} else if (command === 'continuation') {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { getProblem } from '../atlas/catalog.js';
|
|
3
3
|
import { syncCheckpoints } from '../runtime/checkpoints.js';
|
|
4
|
+
import { syncOrpWorkspaceKit } from '../runtime/orp.js';
|
|
4
5
|
import { scaffoldProblem } from '../runtime/problem-artifacts.js';
|
|
5
6
|
import { getWorkspaceProblemScaffoldDir } from '../runtime/paths.js';
|
|
6
7
|
import { syncState } from '../runtime/state.js';
|
|
@@ -68,6 +69,7 @@ export async function runBootstrapCommand(args) {
|
|
|
68
69
|
console.log(`Workspace upstream snapshot refreshed: ${syncResult.workspacePaths.manifestPath}`);
|
|
69
70
|
}
|
|
70
71
|
|
|
72
|
+
const orp = syncOrpWorkspaceKit();
|
|
71
73
|
setCurrentProblem(problem.problemId);
|
|
72
74
|
const destination = parsed.destination
|
|
73
75
|
? path.resolve(parsed.destination)
|
|
@@ -81,6 +83,7 @@ export async function runBootstrapCommand(args) {
|
|
|
81
83
|
console.log(`Active route: ${state.activeRoute ?? '(none)'}`);
|
|
82
84
|
console.log(`Scaffold dir: ${result.destination}`);
|
|
83
85
|
console.log(`Artifacts copied: ${result.copiedArtifacts.length}`);
|
|
86
|
+
console.log(`ORP protocol: ${orp.protocolPath}`);
|
|
84
87
|
console.log(`Upstream record included: ${result.inventory.upstreamRecordIncluded ? 'yes' : 'no'}`);
|
|
85
88
|
console.log(`Checkpoint shelf: ${checkpoints.indexPath}`);
|
|
86
89
|
console.log(`Next honest move: ${state.nextHonestMove}`);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { syncCheckpoints } from '../runtime/checkpoints.js';
|
|
2
|
+
import { syncOrpWorkspaceKit } from '../runtime/orp.js';
|
|
2
3
|
|
|
3
4
|
export function runCheckpointsCommand(args) {
|
|
4
5
|
const [subcommand, ...rest] = args;
|
|
@@ -21,6 +22,7 @@ export function runCheckpointsCommand(args) {
|
|
|
21
22
|
return 1;
|
|
22
23
|
}
|
|
23
24
|
|
|
25
|
+
syncOrpWorkspaceKit();
|
|
24
26
|
const result = syncCheckpoints();
|
|
25
27
|
if (asJson) {
|
|
26
28
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -21,6 +21,7 @@ function parseMaintainerSeedArgs(args) {
|
|
|
21
21
|
activeRoute: null,
|
|
22
22
|
routeBreakthrough: false,
|
|
23
23
|
problemSolved: false,
|
|
24
|
+
allowNonOpen: false,
|
|
24
25
|
force: false,
|
|
25
26
|
};
|
|
26
27
|
|
|
@@ -116,6 +117,10 @@ function parseMaintainerSeedArgs(args) {
|
|
|
116
117
|
parsed.problemSolved = true;
|
|
117
118
|
continue;
|
|
118
119
|
}
|
|
120
|
+
if (token === '--allow-non-open') {
|
|
121
|
+
parsed.allowNonOpen = true;
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
119
124
|
if (token === '--force') {
|
|
120
125
|
parsed.force = true;
|
|
121
126
|
continue;
|
|
@@ -131,7 +136,7 @@ export function runMaintainerCommand(args) {
|
|
|
131
136
|
|
|
132
137
|
if (!subcommand || subcommand === 'help' || subcommand === '--help') {
|
|
133
138
|
console.log('Usage:');
|
|
134
|
-
console.log(' erdos maintainer seed problem <id> [--from-pull <path>] [--dest-root <path>] [--cluster <name>] [--repo-status <status>] [--harness-depth <depth>] [--title <title>] [--family-tag <tag>] [--related <id>] [--formalization-status <status>] [--active-route <route>] [--route-breakthrough] [--problem-solved] [--force]');
|
|
139
|
+
console.log(' erdos maintainer seed problem <id> [--from-pull <path>] [--dest-root <path>] [--cluster <name>] [--repo-status <status>] [--harness-depth <depth>] [--title <title>] [--family-tag <tag>] [--related <id>] [--formalization-status <status>] [--active-route <route>] [--route-breakthrough] [--problem-solved] [--allow-non-open] [--force]');
|
|
135
140
|
return 0;
|
|
136
141
|
}
|
|
137
142
|
|
|
@@ -164,6 +169,7 @@ export function runMaintainerCommand(args) {
|
|
|
164
169
|
activeRoute: parsed.activeRoute,
|
|
165
170
|
routeBreakthrough: parsed.routeBreakthrough,
|
|
166
171
|
problemSolved: parsed.problemSolved,
|
|
172
|
+
allowNonOpen: parsed.allowNonOpen,
|
|
167
173
|
force: parsed.force,
|
|
168
174
|
});
|
|
169
175
|
|
|
@@ -174,6 +180,7 @@ export function runMaintainerCommand(args) {
|
|
|
174
180
|
console.log(`Harness depth: ${result.record.harness.depth}`);
|
|
175
181
|
console.log(`Upstream record used: ${result.usedUpstreamRecord ? 'yes' : 'no'}`);
|
|
176
182
|
console.log(`Site snapshot used: ${result.usedSiteSnapshot ? 'yes' : 'no'}`);
|
|
183
|
+
console.log(`Public status review used: ${result.usedPublicStatusReview ? 'yes' : 'no'}`);
|
|
177
184
|
return 0;
|
|
178
185
|
} catch (error) {
|
|
179
186
|
console.error(String(error.message ?? error));
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getOrpStatus, syncOrpWorkspaceKit } from '../runtime/orp.js';
|
|
2
|
+
|
|
3
|
+
function printOrpStatus(status) {
|
|
4
|
+
console.log('Open Research Protocol');
|
|
5
|
+
console.log(`Workspace root: ${status.workspaceRoot}`);
|
|
6
|
+
console.log(`Bundled protocol: ${status.bundled.protocolPresent ? status.bundled.protocolPath : '(missing)'}`);
|
|
7
|
+
console.log(`Bundled integration: ${status.bundled.integrationPresent ? status.bundled.integrationPath : '(missing)'}`);
|
|
8
|
+
console.log(`Bundled templates: ${status.bundled.templateNames.join(', ') || '(none)'}`);
|
|
9
|
+
console.log(`Workspace ORP dir: ${status.workspace.orpDir}`);
|
|
10
|
+
console.log(`Workspace protocol: ${status.workspace.protocolPresent ? status.workspace.protocolPath : '(missing)'}`);
|
|
11
|
+
console.log(`Workspace integration: ${status.workspace.integrationPresent ? status.workspace.integrationPath : '(missing)'}`);
|
|
12
|
+
console.log(`Workspace templates: ${status.workspace.templateNames.join(', ') || '(none)'}`);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function runOrpCommand(args) {
|
|
16
|
+
const [subcommand, ...rest] = args;
|
|
17
|
+
const asJson = rest.includes('--json');
|
|
18
|
+
const unknown = rest.filter((arg) => arg !== '--json');
|
|
19
|
+
|
|
20
|
+
if (!subcommand || subcommand === 'help' || subcommand === '--help') {
|
|
21
|
+
console.log('Usage:');
|
|
22
|
+
console.log(' erdos orp show [--json]');
|
|
23
|
+
console.log(' erdos orp sync [--json]');
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (unknown.length > 0) {
|
|
28
|
+
console.error(`Unknown orp option: ${unknown[0]}`);
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (subcommand === 'show') {
|
|
33
|
+
const status = getOrpStatus();
|
|
34
|
+
if (asJson) {
|
|
35
|
+
console.log(JSON.stringify(status, null, 2));
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
38
|
+
printOrpStatus(status);
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (subcommand === 'sync') {
|
|
43
|
+
const result = syncOrpWorkspaceKit();
|
|
44
|
+
if (asJson) {
|
|
45
|
+
console.log(JSON.stringify(result, null, 2));
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
console.log('ORP workspace kit synced');
|
|
49
|
+
console.log(`Workspace ORP dir: ${result.orpDir}`);
|
|
50
|
+
console.log(`Protocol: ${result.protocolPath}`);
|
|
51
|
+
console.log(`Agent integration: ${result.integrationPath}`);
|
|
52
|
+
console.log(`Templates: ${result.templateNames.join(', ') || '(none)'}`);
|
|
53
|
+
return 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
console.error(`Unknown orp subcommand: ${subcommand}`);
|
|
57
|
+
return 1;
|
|
58
|
+
}
|
package/src/commands/problem.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { getProblem, listProblems } from '../atlas/catalog.js';
|
|
2
|
+
import { syncOrpWorkspaceKit } from '../runtime/orp.js';
|
|
3
|
+
import { syncCheckpoints } from '../runtime/checkpoints.js';
|
|
2
4
|
import { getProblemArtifactInventory } from '../runtime/problem-artifacts.js';
|
|
3
5
|
import { syncState } from '../runtime/state.js';
|
|
4
6
|
import { readCurrentProblem, setCurrentProblem } from '../runtime/workspace.js';
|
|
@@ -207,10 +209,14 @@ export function runProblemCommand(args) {
|
|
|
207
209
|
return 1;
|
|
208
210
|
}
|
|
209
211
|
setCurrentProblem(problem.problemId);
|
|
210
|
-
|
|
212
|
+
syncOrpWorkspaceKit();
|
|
213
|
+
syncState();
|
|
214
|
+
const checkpointResult = syncCheckpoints();
|
|
215
|
+
const state = checkpointResult.state;
|
|
211
216
|
console.log(`Active problem set to ${problem.problemId} (${problem.title})`);
|
|
212
217
|
console.log(`Active route: ${state.activeRoute ?? '(none)'}`);
|
|
213
218
|
console.log(`Next honest move: ${state.nextHonestMove}`);
|
|
219
|
+
console.log(`Checkpoint shelf: ${checkpointResult.indexPath}`);
|
|
214
220
|
return 0;
|
|
215
221
|
}
|
|
216
222
|
|