open-research-protocol 0.3.0 → 0.4.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/docs/DISCOVER.md CHANGED
@@ -12,7 +12,8 @@ The first concrete surface is a GitHub profile scanner:
12
12
  - hand off the strongest match into `orp collaborate`
13
13
 
14
14
  Today ORP scans public GitHub owner space by default. If richer access policy
15
- or profile governance exists later, that belongs in Coda rather than in ORP.
15
+ or profile governance exists later, ORP should still own the portable profile
16
+ format and the resulting scan artifacts.
16
17
 
17
18
  ## Commands
18
19
 
@@ -52,18 +53,13 @@ GitHub scans write:
52
53
 
53
54
  These are process-only recommendation artifacts, not evidence.
54
55
 
55
- ## Coda Relationship
56
+ ## Ownership
56
57
 
57
- ORP should own the portable discovery profile format and the scanning
58
- artifacts.
58
+ ORP owns:
59
59
 
60
- If `coda-cli` exists later, the clean role for Coda is:
60
+ - the portable discovery profile format
61
+ - GitHub scanning
62
+ - ranked discovery artifacts
61
63
 
62
- - manage active profiles
63
- - switch between operator contexts
64
- - wrap ORP commands for a smoother operator UX
65
-
66
- That keeps ORP as the protocol/runtime while letting Coda become a higher-level
67
- profile manager if it earns its place.
68
-
69
- For the fuller boundary, see `docs/CODA_ORP_CONTRACT.md`.
64
+ Other tools may read or trigger ORP discovery, but ORP does not depend on a
65
+ wrapper to manage active context or profile selection.
@@ -15,11 +15,11 @@ Use this checklist to publish professional, versioned ORP CLI releases.
15
15
  1. Ensure `main` is green and local tests pass:
16
16
  - `python3 -m unittest discover -s tests -v`
17
17
  - `npm pack --dry-run --cache /tmp/orp-npm-cache`
18
- 2. Bump version in `package.json` (for example `0.1.1`).
18
+ 2. Bump version in `package.json` (for example `0.4.0`).
19
19
  3. Commit and push the version bump to `main`.
20
20
  4. Create and push a matching tag:
21
- - `git tag v0.1.1`
22
- - `git push origin v0.1.1`
21
+ - `git tag v0.4.0`
22
+ - `git push origin v0.4.0`
23
23
  5. Watch workflow:
24
24
  - `.github/workflows/npm-publish.yml`
25
25
  - tag push is the normal publish trigger
@@ -32,8 +32,8 @@ Use this checklist to publish professional, versioned ORP CLI releases.
32
32
  Tag version must match `package.json` exactly.
33
33
 
34
34
  - Example:
35
- - tag: `v0.1.1`
36
- - package version: `0.1.1`
35
+ - tag: `v0.4.0`
36
+ - package version: `0.4.0`
37
37
 
38
38
  The publish workflow hard-fails if these differ.
39
39
 
@@ -48,8 +48,8 @@ If automation is temporarily unavailable:
48
48
  3. Publish:
49
49
  - `npm publish --access public`
50
50
  4. Create and push the matching tag:
51
- - `git tag v0.1.1`
52
- - `git push origin v0.1.1`
51
+ - `git tag v0.4.0`
52
+ - `git push origin v0.4.0`
53
53
  5. Add release notes.
54
54
 
55
55
  The tag-triggered workflow will still validate the version and will skip `npm publish` if that exact npm version already exists.
@@ -0,0 +1,64 @@
1
+ # ORP Public Launch Checklist
2
+
3
+ Use this checklist when releasing ORP as the unified public CLI and product surface.
4
+
5
+ ## 1. CLI readiness
6
+
7
+ - Run:
8
+ - `python3 -m unittest discover -s tests -v`
9
+ - `npm pack --dry-run --cache /tmp/orp-npm-cache`
10
+ - Smoke-test in a fresh directory:
11
+ - `npm i -g open-research-protocol`
12
+ - `orp about --json`
13
+ - `orp auth login`
14
+ - `orp whoami --json`
15
+ - `orp ideas list --json`
16
+
17
+ ## 2. Hosted workspace readiness
18
+
19
+ - Confirm the hosted workspace base URL is reachable.
20
+ - Confirm login / verify / whoami still work from the published `orp` binary.
21
+ - Confirm at least one real hosted idea can be:
22
+ - listed
23
+ - shown
24
+ - world-bound
25
+ - checkpoint-queued
26
+
27
+ ## 3. Worker loop readiness
28
+
29
+ - Confirm one bound world can complete:
30
+ - `orp checkpoint queue --idea-id <idea-id> --json`
31
+ - `orp agent work --once --json`
32
+ - Confirm the checkpoint response lands back in the hosted workspace.
33
+
34
+ ## 4. Package release
35
+
36
+ - Bump `package.json` version.
37
+ - Commit and push `main`.
38
+ - Tag and push:
39
+ - `git tag vX.Y.Z`
40
+ - `git push origin vX.Y.Z`
41
+ - Publish if needed:
42
+ - `npm publish --access public`
43
+
44
+ ## 5. Transition messaging
45
+
46
+ - Treat ORP as the primary CLI surface.
47
+ - Point old `coda-cli` users toward:
48
+ - `npm i -g open-research-protocol`
49
+ - `orp`
50
+ - Legacy `@sproutseeds/coda-cli` package is deprecated with a migration note to `open-research-protocol`.
51
+
52
+ ## 6. Post-release checks
53
+
54
+ - `npm view open-research-protocol version`
55
+ - `npm i -g open-research-protocol`
56
+ - `orp -h`
57
+ - `orp about --json`
58
+
59
+ ## 7. Web app rollout coordination
60
+
61
+ - Keep the web app and CLI rollout loosely coupled.
62
+ - Launch the ORP CLI first if the web app/domain transition is still in progress.
63
+ - Do not change domain, auth, runner, and package names all in one step unless all staging checks are green.
64
+ - Follow [ORP_WEB_DOMAIN_TRANSITION_PLAN.md](/Users/codymitchell/Documents/code/orp/docs/ORP_WEB_DOMAIN_TRANSITION_PLAN.md) for the hosted cutover sequence.
@@ -0,0 +1,106 @@
1
+ # ORP Web Domain Transition Plan
2
+
3
+ Use this as the rollout record and future reference for the hosted ORP web app domain transition from `codacli.com` to the ORP-aligned domains.
4
+
5
+ ## Target shape
6
+
7
+ - Primary branded domain: `orp.earth`
8
+ - Full-name support domain: `openresearchprotocol.com`
9
+ - Legacy redirect domain: `codacli.com`
10
+
11
+ ## Current live state
12
+
13
+ - CLI/package is already public as:
14
+ - `open-research-protocol`
15
+ - `orp`
16
+ - Hosted app canonical browser host:
17
+ - `https://orp.earth`
18
+ - Support domain:
19
+ - `https://openresearchprotocol.com`
20
+ - Legacy redirect domain:
21
+ - `https://codacli.com`
22
+ - CLI default hosted base URL:
23
+ - `https://orp.earth`
24
+ - Browser redirects are live:
25
+ - `www.orp.earth` -> `orp.earth`
26
+ - `openresearchprotocol.com` -> `orp.earth`
27
+ - `www.openresearchprotocol.com` -> `orp.earth`
28
+ - `codacli.com` -> `orp.earth`
29
+ - `www.codacli.com` -> `orp.earth`
30
+
31
+ ## What is complete
32
+
33
+ - `orp.earth` and `openresearchprotocol.com` are attached to the Vercel project.
34
+ - Namecheap DNS points all new domains at Vercel.
35
+ - `orp.earth` is the canonical browser/app host.
36
+ - Browser traffic from the legacy domains redirects to `orp.earth`.
37
+ - ORP CLI now defaults to `https://orp.earth`.
38
+ - `ORP_BASE_URL` / `CODA_BASE_URL` overrides still work.
39
+
40
+ ## Rollout order
41
+
42
+ ### 1. Domain attachment
43
+
44
+ - Add `orp.earth` and `www.orp.earth` to the Vercel project.
45
+ - Add `openresearchprotocol.com` and `www.openresearchprotocol.com` to the same project.
46
+ - Keep `codacli.com` attached during the transition.
47
+ - Point Namecheap DNS at the Vercel records exactly as issued.
48
+
49
+ ### 2. Canonical browser host
50
+
51
+ - Make `orp.earth` the canonical browser/app host.
52
+ - Update:
53
+ - app metadata
54
+ - canonical URLs
55
+ - OG/Twitter metadata
56
+ - sitemap / robots
57
+ - Treat `openresearchprotocol.com` as a support/canonical-name domain, not necessarily the primary user-facing host.
58
+
59
+ ### 3. Auth and email
60
+
61
+ - Update auth base URLs and callback URLs for `orp.earth`.
62
+ - Update magic-link / verification email links to `orp.earth`.
63
+ - Confirm cookies and session behavior work cleanly on the new canonical host.
64
+ - Avoid running two browser-session domains in parallel longer than necessary.
65
+
66
+ ### 4. Runner / websocket / terminal paths
67
+
68
+ - Inventory every host reference used by:
69
+ - runner
70
+ - websocket
71
+ - TTY / terminal pairing
72
+ - agent worker loops
73
+ - Move those to ORP-aligned hosts only after staging verification.
74
+ - If needed, use dedicated subdomains rather than mixing them into the app host.
75
+
76
+ ### 5. Redirects
77
+
78
+ - Redirect browser traffic from `codacli.com` to `orp.earth`.
79
+ - Keep legacy API/worker compatibility only where needed during transition.
80
+ - Redirect `openresearchprotocol.com` to `orp.earth` unless there is a deliberate reason to keep it browsable.
81
+
82
+ ### 6. CLI cutover
83
+
84
+ - After the hosted app is stable on `orp.earth`, update the CLI default hosted base URL.
85
+ - Keep `ORP_BASE_URL` / `CODA_BASE_URL` overrides working during the transition.
86
+ - Verify:
87
+ - `orp auth login`
88
+ - `orp whoami --json`
89
+ - `orp ideas list --json`
90
+ - `orp world bind ...`
91
+ - `orp checkpoint queue ...`
92
+ - `orp agent work --once --json`
93
+
94
+ ## Verification checklist
95
+
96
+ - `orp.earth` serves the app correctly.
97
+ - Email verification links open on `orp.earth`.
98
+ - Existing users can log in without session confusion.
99
+ - Runner/worker flows still connect and post responses.
100
+ - `codacli.com` redirects cleanly.
101
+ - `openresearchprotocol.com` resolves as intended.
102
+
103
+ ## Rollback
104
+
105
+ - If auth or runner behavior breaks, revert the canonical host before changing the CLI default.
106
+ - Keep `codacli.com` attached until the new host has passed real-user verification.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-research-protocol",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "ORP CLI (Open Research Protocol): agent-friendly research workflows, runtime, reports, and pack tooling.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,222 +0,0 @@
1
- # Coda to ORP Contract
2
-
3
- This document defines the boundary between:
4
-
5
- - `codacli.com` / `coda-cli`
6
- - `ORP`
7
-
8
- The goal is to let both systems work together without turning ORP into an app
9
- backend or turning Coda into a second protocol runtime.
10
-
11
- ## Repository Split
12
-
13
- Recommended shape:
14
-
15
- - `orp` repo
16
- - protocol/runtime
17
- - discovery execution
18
- - collaboration execution
19
- - packets, run records, summaries
20
- - portable local-first CLI
21
- - `coda-cli` repo
22
- - operator-facing wrapper
23
- - active profile selection
24
- - auth/session handling
25
- - Coda export retrieval
26
- - convenience commands layered over ORP
27
- - `codacli.com`
28
- - authenticated web product
29
- - user database
30
- - idea cards
31
- - feature scaffolds
32
- - notes/detail sections
33
- - export surface for agents and `coda-cli`
34
-
35
- ## Ownership Boundary
36
-
37
- Coda owns:
38
-
39
- - user identity
40
- - database records
41
- - idea cards
42
- - categories
43
- - feature scaffolds
44
- - note/detail sections
45
- - active context selection
46
- - export APIs / export files
47
-
48
- ORP owns:
49
-
50
- - portable discovery profile format
51
- - GitHub discovery scans
52
- - collaboration workflows
53
- - gate execution
54
- - packets
55
- - run summaries
56
- - process artifacts
57
-
58
- In short:
59
-
60
- - Coda answers: "What does this user care about right now?"
61
- - ORP answers: "How do we discover, structure, and execute the work?"
62
-
63
- ## MVP Rule
64
-
65
- The MVP should be read-only from Coda into ORP.
66
-
67
- That means:
68
-
69
- - Coda exports context
70
- - ORP consumes derived context
71
- - ORP produces scan/run artifacts
72
- - Coda may read those artifacts later
73
- - ORP does not write back into Coda yet
74
-
75
- This keeps the first integration simple and auditable.
76
-
77
- ## Canonical Coda Export
78
-
79
- Coda should expose a canonical export that reflects the app's richer data
80
- model.
81
-
82
- Example shape:
83
-
84
- ```json
85
- {
86
- "schema_version": "1.0.0",
87
- "user": {
88
- "id": "user_123",
89
- "handle": "cody"
90
- },
91
- "active_context": {
92
- "idea_id": "idea_problem857",
93
- "title": "Sunflower formalization work",
94
- "categories": ["math", "lean", "formalization"]
95
- },
96
- "ideas": [
97
- {
98
- "id": "idea_problem857",
99
- "title": "Sunflower formalization work",
100
- "summary": "Look for repos and issues aligned with Problem 857 work.",
101
- "tags": ["sunflower", "lean", "proof"],
102
- "feature_scaffold": {
103
- "areas": ["balance", "container", "docs"],
104
- "notes": ["Prefer public repos first."]
105
- }
106
- }
107
- ]
108
- }
109
- ```
110
-
111
- ORP should not depend directly on the full Coda export schema.
112
-
113
- ## Derived ORP Inputs
114
-
115
- `coda-cli` should derive smaller ORP-native inputs from the richer Coda export.
116
-
117
- The first derived input is an ORP discovery profile.
118
-
119
- Example:
120
-
121
- ```json
122
- {
123
- "schema_version": "1.0.0",
124
- "profile_id": "idea_problem857",
125
- "notes": [
126
- "Derived from Coda active context."
127
- ],
128
- "discover": {
129
- "github": {
130
- "owner": {
131
- "login": "SproutSeeds",
132
- "type": "org"
133
- },
134
- "signals": {
135
- "keywords": ["sunflower", "formalization", "proof"],
136
- "repo_topics": ["lean", "math"],
137
- "languages": ["Lean"],
138
- "areas": ["balance", "container", "docs"],
139
- "people": []
140
- },
141
- "filters": {
142
- "include_repos": [],
143
- "exclude_repos": [],
144
- "issue_states": ["open"],
145
- "labels_any": [],
146
- "exclude_labels": [],
147
- "updated_within_days": 180
148
- },
149
- "ranking": {
150
- "repo_sample_size": 30,
151
- "max_repos": 12,
152
- "max_issues": 24,
153
- "max_people": 12,
154
- "issues_per_repo": 30
155
- }
156
- }
157
- }
158
- }
159
- ```
160
-
161
- Other future derived inputs may include:
162
-
163
- - collaboration bootstrap hints
164
- - target repo selection
165
- - issue lane selection
166
- - preferred adapters
167
-
168
- ## ORP Outputs Coda May Read
169
-
170
- For the first integration, Coda should treat ORP outputs as read-only runtime
171
- artifacts.
172
-
173
- Useful outputs:
174
-
175
- - `orp/discovery/github/<scan_id>/SCAN.json`
176
- - `orp/discovery/github/<scan_id>/SCAN_SUMMARY.md`
177
- - `orp/artifacts/<run_id>/RUN.json`
178
- - `orp/artifacts/<run_id>/RUN_SUMMARY.md`
179
- - `orp/packets/<packet_id>.json`
180
-
181
- These let Coda display:
182
-
183
- - recommended repos/issues/people
184
- - latest collaboration run results
185
- - packetized process context
186
-
187
- ## CLI Relationship
188
-
189
- `coda-cli` should be a thin wrapper over ORP, not a second workflow engine.
190
-
191
- Good examples:
192
-
193
- - `coda profile export`
194
- - `coda profile use <idea-id>`
195
- - `coda discover`
196
- - `coda collaborate init`
197
-
198
- Under the hood, those should call ORP's JSON surfaces such as:
199
-
200
- - `orp discover profile init --json`
201
- - `orp discover github scan --json`
202
- - `orp collaborate init --json`
203
- - `orp collaborate run --json`
204
-
205
- ## Non-Goals For ORP
206
-
207
- ORP should not own:
208
-
209
- - authenticated user databases
210
- - profile sharing semantics
211
- - team/private visibility policy
212
- - app-level note editing
213
- - direct mutation of Coda records
214
-
215
- Those belong in Coda.
216
-
217
- ## Practical Rule
218
-
219
- When in doubt:
220
-
221
- - if it is portable execution or protocol data, keep it in ORP
222
- - if it is user/app context or authenticated product state, keep it in Coda