open-research-protocol 0.4.14 → 0.4.16

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.
Files changed (52) hide show
  1. package/AGENT_INTEGRATION.md +50 -0
  2. package/README.md +273 -144
  3. package/bin/orp.js +14 -1
  4. package/cli/orp.py +14846 -9925
  5. package/docs/AGENT_LOOP.md +13 -0
  6. package/docs/AGENT_MODES.md +79 -0
  7. package/docs/CANONICAL_CLI_BOUNDARY.md +15 -0
  8. package/docs/EXCHANGE.md +94 -0
  9. package/docs/LAUNCH_KIT.md +107 -0
  10. package/docs/ORP_HOSTED_WORKSPACE_CONTRACT.md +295 -0
  11. package/docs/ORP_PUBLIC_LAUNCH_CHECKLIST.md +5 -0
  12. package/docs/START_HERE.md +567 -0
  13. package/package.json +4 -2
  14. package/packages/lifeops-orp/README.md +67 -0
  15. package/packages/lifeops-orp/package.json +48 -0
  16. package/packages/lifeops-orp/src/index.d.ts +106 -0
  17. package/packages/lifeops-orp/src/index.js +7 -0
  18. package/packages/lifeops-orp/src/mapping.js +309 -0
  19. package/packages/lifeops-orp/src/workspace.js +108 -0
  20. package/packages/lifeops-orp/test/orp.test.js +187 -0
  21. package/packages/orp-workspace-launcher/README.md +82 -0
  22. package/packages/orp-workspace-launcher/package.json +39 -0
  23. package/packages/orp-workspace-launcher/src/commands.js +77 -0
  24. package/packages/orp-workspace-launcher/src/core-plan.js +506 -0
  25. package/packages/orp-workspace-launcher/src/hosted-state.js +208 -0
  26. package/packages/orp-workspace-launcher/src/index.js +82 -0
  27. package/packages/orp-workspace-launcher/src/ledger.js +745 -0
  28. package/packages/orp-workspace-launcher/src/list.js +488 -0
  29. package/packages/orp-workspace-launcher/src/orp-command.js +126 -0
  30. package/packages/orp-workspace-launcher/src/orp.js +912 -0
  31. package/packages/orp-workspace-launcher/src/registry.js +558 -0
  32. package/packages/orp-workspace-launcher/src/slot.js +188 -0
  33. package/packages/orp-workspace-launcher/src/sync.js +363 -0
  34. package/packages/orp-workspace-launcher/src/tabs.js +166 -0
  35. package/packages/orp-workspace-launcher/test/commands.test.js +164 -0
  36. package/packages/orp-workspace-launcher/test/core-plan.test.js +253 -0
  37. package/packages/orp-workspace-launcher/test/fixtures/smoke-notes.txt +2 -0
  38. package/packages/orp-workspace-launcher/test/fixtures/workspace-manifest.json +17 -0
  39. package/packages/orp-workspace-launcher/test/ledger.test.js +244 -0
  40. package/packages/orp-workspace-launcher/test/list.test.js +299 -0
  41. package/packages/orp-workspace-launcher/test/orp-command.test.js +44 -0
  42. package/packages/orp-workspace-launcher/test/orp.test.js +224 -0
  43. package/packages/orp-workspace-launcher/test/tabs.test.js +168 -0
  44. package/scripts/orp-kernel-agent-pilot.py +10 -1
  45. package/scripts/orp-kernel-agent-replication.py +10 -1
  46. package/scripts/orp-kernel-canonical-continuation.py +10 -1
  47. package/scripts/orp-kernel-continuation-pilot.py +10 -1
  48. package/scripts/render-terminal-demo.py +416 -0
  49. package/spec/v1/exchange-report.schema.json +105 -0
  50. package/spec/v1/hosted-workspace-event.schema.json +102 -0
  51. package/spec/v1/hosted-workspace.schema.json +332 -0
  52. package/spec/v1/workspace.schema.json +108 -0
@@ -6,10 +6,60 @@ integrate ORP by adding an **ORP section** to that file.
6
6
  This makes ORP the agent’s default operating mode: explicit claim levels, reproducible verification, first-class failed paths,
7
7
  and dispute resolution by verification/downgrade (not debate).
8
8
 
9
+ ## Core Rule
10
+
11
+ Do not let ORP process scaffolding masquerade as evidence or repository truth.
12
+
13
+ ORP should keep the agent honest about:
14
+
15
+ - where ongoing work lives
16
+ - whether the repo is in a safe state
17
+ - which secret or credential should be used
18
+ - where the work sits in the larger frontier
19
+ - when a checkpoint should be created
20
+
21
+ But evidence still lives in canonical project artifacts: code, data, logs, papers, proofs, outputs.
22
+
23
+ ## Minimum Working Loop
24
+
25
+ If the agent only remembers one ORP loop, it should be this:
26
+
27
+ 1. recover the workspace ledger
28
+ ```bash
29
+ orp workspace tabs main
30
+ ```
31
+ 2. inspect repo safety
32
+ ```bash
33
+ orp status --json
34
+ ```
35
+ 3. resolve the right secret
36
+ ```bash
37
+ orp secrets ensure --alias <alias> --provider <provider> --current-project --json
38
+ ```
39
+ 4. inspect the current frontier
40
+ ```bash
41
+ orp frontier state --json
42
+ ```
43
+ 5. do the next honest move
44
+ 6. checkpoint it honestly
45
+ ```bash
46
+ orp checkpoint create -m "checkpoint note" --json
47
+ ```
48
+
49
+ That is the ORP rhythm in one line:
50
+
51
+ - recover continuity
52
+ - inspect repo safety
53
+ - resolve access
54
+ - inspect context
55
+ - do the work
56
+ - checkpoint it honestly
57
+
9
58
  ## Agent discovery surfaces
10
59
 
11
60
  Before deeper work, agents can discover ORP through three lightweight entry points:
12
61
 
62
+ - `docs/START_HERE.md` — canonical human/operator onboarding path for local-first ORP usage.
13
63
  - `llms.txt` — concise repo/package map for agents that scan docs before acting.
14
64
  - `orp about --json` — machine-readable tool metadata, stable artifact paths, schemas, and available packs.
15
65
  - `orp pack list --json` — machine-readable inventory of bundled packs.
package/README.md CHANGED
@@ -1,68 +1,54 @@
1
- # ORP — Open Research Protocol (template pack)
2
-
3
- ORP is a **project-agnostic, docs-first, agent-friendly protocol** for doing research (or research-like engineering) with:
4
-
5
- - explicit claim levels,
6
- - reproducible verification hooks,
7
- - dispute handling that resolves disagreements by **verification or downgrade** (not argument),
8
- - first-class “failed paths” (dead ends recorded as assets),
9
- - and a non-blocking **Alignment/Polish Log** for optional wording/clarity suggestions.
10
-
11
- **Boundary (non-negotiable):** ORP files are **process-only**. They are **not evidence** and must **not** be cited as proof for
12
- results. Evidence lives in your project’s **canonical artifact paths** (data, code, paper, proofs, logs, etc.).
13
-
14
- ORP also supports optional, modular **Instruments** for framing inquiry upstream of claims. Instruments are process-only and
15
- verification remains independent of framing. See `modules/instruments/README.md` and `docs/WHY_INSTRUMENTS.md`.
16
-
17
- ## What’s in this folder
18
-
19
- - `AGENT_INTEGRATION.md` optional: integrate ORP into an AI agent’s primary instruction file
20
- - `llms.txt` concise discovery guide for LLM and agentic systems
21
- - `PROTOCOL.md` the protocol to copy into a project
22
- - `INSTALL.md` how to adopt ORP in an existing repo or start a new project from it
23
- - `docs/AGENT_LOOP.md` canonical operating loop when an agent is the primary ORP user
24
- - `docs/CANONICAL_CLI_BOUNDARY.md` — canonical source-of-truth boundary between CLI, Rust, and web
25
- - `docs/ORP_REASONING_KERNEL_V0_1.md` draft kernel model for turning loose intent into promotable canonical artifacts
26
- - `docs/ORP_REASONING_KERNEL_EVOLUTION.md` — stable-core, observable-pressure, explicit-evolution model for growing the kernel over time
27
- - `docs/ORP_REASONING_KERNEL_TECHNICAL_VALIDATION.md` technical rationale, benchmarks, and alternatives analysis for the kernel
28
- - `docs/ORP_REASONING_KERNEL_COMPARISON_PILOT.md` — first matched comparison between free-form, checklist, and kernel artifacts
29
- - `docs/ORP_REASONING_KERNEL_PICKUP_PILOT.md` first explicit pickup/handoff proxy across free-form, checklist, and kernel artifacts
30
- - `docs/ORP_REASONING_KERNEL_AGENT_PILOT.md` — first live fresh-agent Codex recoverability simulation across free-form, checklist, and kernel artifacts
31
- - `docs/ORP_REASONING_KERNEL_AGENT_REPLICATION.md` `10`-repeat fresh-agent replication study for live kernel recoverability and per-field stability
32
- - `docs/ORP_REASONING_KERNEL_CONTINUATION_PILOT.md` — first live downstream continuation smoke for kernel, checklist, and free-form artifacts
33
- - `docs/ORP_REASONING_KERNEL_CANONICAL_CONTINUATION_PILOT.md` — harder live downstream benchmark where the agent must produce the next canonical task artifact
34
- - `docs/ORP_REASONING_KERNEL_EVIDENCE_MATRIX.md` — honest map of what the kernel proves, only suggests, or still leaves unproven
35
- - `docs/ORP_REASONING_KERNEL_EVALUATION_PLAN.md` comparative experiment plan for upgrading kernel evidence beyond implementation validity
36
- - `docs/ORP_YOUTUBE_INSPECT.md` — first-class YouTube metadata/transcript ingestion surface for agent-readable external source context
37
- - `docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md` — canonical local-first workflow for external OSS PR work
38
- - `docs/OSS_CONTRIBUTION_AGENT_LOOP.md` agent operating rhythm for external contribution workflows
39
- - `templates/` claim, verification, failure, and issue templates
40
- - `examples/` minimal examples (illustrative, not exhaustive)
41
- - `scripts/` optional helper scripts (no dependencies beyond standard shell tools)
42
- - `modules/` optional modules (including Instruments)
43
- - `docs/` optional docs (including Instruments overview + presentation)
44
- - includes standardized external PR governance: `docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md`
45
- - includes sunflower-coda PR governance mapping: `docs/SUNFLOWER_CODA_PR_GOVERNANCE_MAPPING.md`
46
- - `cone/` — optional process-only context log (agentic handoff/compaction)
47
- - `spec/` — optional v1 runtime draft schemas (packets/config/lifecycle mapping)
48
- - `packs/` — optional downloadable profile packs (domain templates + metadata)
49
-
50
- ## Product Shape
51
-
52
- ORP should feel like one CLI with built-in abilities:
53
-
54
- - `workspace` for hosted auth, idea, feature, world, checkpoint, and worker operations
55
- - `youtube` for public video metadata and transcript ingestion
56
- - `governance` for local-first repo initialization, branch safety, checkpoint commits, backup refs, readiness, repair, and cleanup
57
- - `discover` for profile-based GitHub scanning and opportunity selection
58
- - `collaborate` for repository collaboration setup and workflow execution
59
- - `erdos` for Erdos-specific data and workflow support
60
- - `report` and `packet` for ORP artifacts
61
- - `compute` for targeted compute admission, local execution, and paid approval gating
62
- - `frontier` for exact live-point control, active-milestone views, near-term checklist management, and farther version-stack planning
63
-
64
- The `pack` layer still exists, but it is now an advanced/internal surface rather
65
- than the main product story.
1
+ # ORP — Open Research Protocol
2
+
3
+ Maintained by Fractal Research Group (`frg.earth`).
4
+
5
+ [![npm version](https://img.shields.io/npm/v/open-research-protocol?color=111111&label=npm)](https://www.npmjs.com/package/open-research-protocol)
6
+ [![npm downloads](https://img.shields.io/npm/dm/open-research-protocol?color=111111&label=downloads)](https://www.npmjs.com/package/open-research-protocol)
7
+ [![GitHub stars](https://img.shields.io/github/stars/SproutSeeds/orp?style=flat&color=111111&label=stars)](https://github.com/SproutSeeds/orp/stargazers)
8
+ [![GitHub issues](https://img.shields.io/github/issues/SproutSeeds/orp?color=111111&label=issues)](https://github.com/SproutSeeds/orp/issues)
9
+ [![license](https://img.shields.io/npm/l/open-research-protocol?color=111111&label=license)](./LICENSE)
10
+ [![node](https://img.shields.io/node/v/open-research-protocol?color=111111&label=node)](https://www.npmjs.com/package/open-research-protocol)
11
+
12
+ > Agent-first CLI for workspace ledgers, local governance, secrets, scheduling, packets, reports, and research workflows.
13
+
14
+ **Links:** [GitHub](https://github.com/SproutSeeds/orp) · [npm](https://www.npmjs.com/package/open-research-protocol) · [frg.earth](https://frg.earth)
15
+
16
+ ORP is a unified CLI for research and research-like engineering. It helps humans and agents:
17
+
18
+ - keep a durable workspace ledger
19
+ - resolve the right secret
20
+ - schedule the next loop
21
+ - checkpoint and protect progress
22
+ - emit packets and reports
23
+ - keep hosted and local state aligned
24
+
25
+ **Boundary (non-negotiable):** ORP files are process-only. They are not evidence and must not be cited as proof. Evidence lives in canonical project artifacts such as code, data, papers, proofs, and logs.
26
+
27
+ ORP also supports optional modular **Instruments** for shaping inquiry upstream of claims. Instruments are process-only and do not change the verification boundary. See `modules/instruments/README.md` and `docs/WHY_INSTRUMENTS.md`.
28
+
29
+ ## Watch It Run
30
+
31
+ A short ORP command-family walkthrough:
32
+
33
+ ![open-research-protocol terminal demo](https://raw.githubusercontent.com/SproutSeeds/orp/main/assets/terminal-demo.gif)
34
+
35
+ The current animation intentionally uses the same human-facing command surfaces ORP prints in the terminal. It is not a fabricated UI layer. It currently shows ORP from multiple angles:
36
+
37
+ - `home` for discovery and next actions
38
+ - `hosted` for ideas, workspaces, runners, and the control plane
39
+ - `secrets` for create-or-reuse plus local Keychain sync
40
+ - `workspace` for the hosted + local saved workspace ledger and recovery commands
41
+ - `schedule` for recurring Codex jobs
42
+ - `governance` for local checkpoints and repo safety
43
+ - `planning` for frontier, compute, packet, and report surfaces
44
+ - `synthesis` for discover, exchange, collaborate, and YouTube ingestion
45
+ - `mode` for optional perspective-shift nudges
46
+
47
+ Maintainer asset generation:
48
+
49
+ ```bash
50
+ npm run render:terminal-demo
51
+ ```
66
52
 
67
53
  ## Install CLI (npm)
68
54
 
@@ -79,57 +65,205 @@ Prerequisites:
79
65
  - Python 3 available on `PATH`
80
66
  - `PyYAML` in that Python environment (`python3 -m pip install pyyaml`)
81
67
 
82
- Fresh-directory smoke test:
68
+ Local repo usage still works:
83
69
 
84
70
  ```bash
85
- mkdir test-orp && cd test-orp
86
- npm i -g open-research-protocol
87
- orp init
88
- orp status --json
89
- orp branch start work/bootstrap --allow-dirty --json
90
- orp checkpoint create -m "bootstrap governance" --json
91
- orp backup -m "backup bootstrap work" --json
92
- orp gate run --profile default
93
- orp checkpoint create -m "capture passing validation" --json
94
- orp ready --json
71
+ ./scripts/orp -h
72
+ ```
73
+
74
+ ## Start Here
75
+
76
+ If you are new to ORP, use one canonical onboarding path:
77
+
78
+ - [docs/START_HERE.md](docs/START_HERE.md)
79
+
80
+ That guide now follows the same clearer rhythm we liked in `erdos-problems`:
81
+
82
+ - a fast `Start In 60 Seconds` path
83
+ - a zero-assumption `Beginner Flow`
84
+ - a practical `Daily Loop`
85
+ - a compact `Minimum Working Loop` for agents and operators
86
+ - the checkpoint governance loop in plain English
87
+
88
+ It walks through:
89
+
90
+ - `orp init`
91
+ - local-first workspace ledgers
92
+ - saved Codex and Claude resume commands
93
+ - secrets setup
94
+ - the checkpoint and governance loop
95
+ - optional hosted sync later
96
+
97
+ ## Daily ORP Operating System
98
+
99
+ If you want the shortest honest map of day-to-day ORP, start here:
100
+
101
+ ```bash
102
+ orp
103
+ orp home
104
+ orp workspace tabs main
105
+ orp secrets ensure --alias openai-primary --provider openai --current-project
106
+ orp checkpoint create -m "capture loop state"
95
107
  orp packet emit --profile default
96
108
  orp report summary
97
- find orp -maxdepth 3 -type f | sort
109
+ orp frontier state
110
+ orp schedule list
111
+ orp mode nudge sleek-minimal-progressive
98
112
  ```
99
113
 
100
- What this proves:
114
+ That sequence covers discovery, workspace recovery, secret resolution, governance, artifacts, planning, automation, and perspective-shift support.
101
115
 
102
- - the global `orp` binary resolves,
103
- - running bare `orp` opens the CLI home screen with packs and quick actions,
104
- - the runtime can initialize a repo-local ORP-governed workspace,
105
- - branch safety and checkpoint mechanics are available locally from day one,
106
- - a gate run writes `RUN.json`,
107
- - readiness can be marked explicitly after validation plus checkpointing,
108
- - packet emit writes process metadata to `orp/packets/`,
109
- - and report summary renders a one-page digest from the last run.
116
+ The shorter rule is:
110
117
 
111
- Local repo usage still works:
118
+ - recover the workspace
119
+ - inspect repo safety
120
+ - resolve the right secret
121
+ - inspect the current frontier
122
+ - do the next honest move
123
+ - checkpoint at honest boundaries
124
+
125
+ ## Secrets Quick Start
126
+
127
+ Today, ORP secrets use the hosted ORP secret inventory as the canonical store, with optional local macOS Keychain caching. That means the real first step for secrets is:
112
128
 
113
129
  ```bash
114
- ./scripts/orp -h
130
+ orp auth login
131
+ ```
132
+
133
+ After that, there are two normal ways to save a secret.
134
+
135
+ For a human at the terminal, use the interactive path:
136
+
137
+ ```bash
138
+ orp secrets add --alias openai-primary --label "OpenAI Primary" --provider openai
139
+ ```
140
+
141
+ ORP then prompts:
142
+
143
+ ```text
144
+ Secret value:
145
+ ```
146
+
147
+ That is where you paste the real key.
148
+
149
+ For an agent or script, use stdin:
150
+
151
+ ```bash
152
+ printf '%s' 'sk-...' | orp secrets add --alias openai-primary --label "OpenAI Primary" --provider openai --value-stdin
153
+ ```
154
+
155
+ After that:
156
+
157
+ ```bash
158
+ orp secrets list
159
+ orp secrets show openai-primary
160
+ orp secrets resolve openai-primary --reveal
161
+ ```
162
+
163
+ If you want the convenience command, `ensure` means:
164
+
165
+ ```text
166
+ use this saved key if it already exists, otherwise prompt for it and save it
167
+ ```
168
+
169
+ So this command:
170
+
171
+ ```bash
172
+ orp secrets ensure --alias openai-primary --provider openai --current-project
115
173
  ```
116
174
 
117
- Agent-first discovery surfaces:
175
+ does not contain the key itself. It means:
176
+
177
+ - look for a saved secret called `openai-primary`
178
+ - if it exists, reuse it
179
+ - if it does not exist, prompt for the key and save it
180
+ - attach it to the current project if needed
181
+
182
+ For secrets, the simplest plain-English rule is:
183
+
184
+ - `orp secrets add ...` = save a new key
185
+ - `orp secrets list` = see what is saved
186
+ - `orp secrets show ...` = inspect one saved key record
187
+ - `orp secrets resolve ...` = get the key value for use right now
188
+ - `orp secrets ensure ...` = use the saved key if it exists, otherwise create it
189
+ - `orp secrets sync-keychain ...` = keep a secure local Mac copy too
190
+
191
+ You can ignore `--env-var-name` at first. It is optional metadata like `OPENAI_API_KEY`, not the key itself.
192
+
193
+ ## Product Map
194
+
195
+ Think of ORP as one CLI with a few major lanes:
196
+
197
+ - `home`, `about`, `mode`, `update`, `maintenance`
198
+ Discovery, status, creativity overlays, and ORP self-upkeep.
199
+ - `auth`, `ideas`, `world`, `workspaces`, `checkpoint queue`, `runner`, `agent`
200
+ Hosted control-plane operations.
201
+ - `workspace`, `secrets`, `schedule`
202
+ Workspace ledger recovery, API-key management, and recurring Codex jobs.
203
+ - `init`, `status`, `branch`, `checkpoint create`, `backup`, `ready`, `doctor`, `cleanup`
204
+ Local repo governance and safe operator flow.
205
+ - `packet`, `report`, `frontier`, `compute`
206
+ Structured artifacts, planning, and bounded compute control.
207
+ - `discover`, `exchange`, `collaborate`, `youtube`, `erdos`
208
+ Scanning, synthesis, workflow scaffolding, external source ingestion, and domain-specific support.
209
+
210
+ The `pack` layer still exists, but it is now an advanced/internal surface rather than the main product story.
211
+
212
+ For agents and machine integrations, the `--json` variants remain the canonical structured interface. The public demo and launch materials use the human-facing command output on purpose so the walkthrough matches what a person actually sees.
213
+
214
+ ## Command Families
215
+
216
+ Landing and discovery:
118
217
 
119
218
  ```bash
120
219
  orp
121
220
  orp home --json
122
221
  orp about --json
222
+ orp mode list --json
223
+ orp mode show sleek-minimal-progressive --json
224
+ orp mode nudge sleek-minimal-progressive --json
225
+ orp update --json
226
+ orp maintenance status --json
227
+ ```
228
+
229
+ Hosted control plane:
230
+
231
+ ```bash
123
232
  orp auth login
124
233
  orp whoami --json
125
- orp youtube inspect https://www.youtube.com/watch?v=<video_id> --json
126
- orp youtube inspect https://www.youtube.com/watch?v=<video_id> --save --json
127
234
  orp ideas list --json
128
- orp world bind --idea-id <idea-id> --project-root /abs/path --codex-session-id <session-id> --json
235
+ orp workspaces list --json
236
+ orp workspaces show <workspace-id> --json
129
237
  orp checkpoint queue --idea-id <idea-id> --json
130
238
  orp runner work --once --json
131
- orp runner work --continuous --transport auto --json
132
- orp agent work --once --json # compatibility alias with legacy checkpoint fallback
239
+ orp agent work --once --json
240
+ ```
241
+
242
+ Local desk and automation:
243
+
244
+ ```bash
245
+ orp workspace create main-cody-1
246
+ orp workspace list
247
+ orp workspace tabs main
248
+ orp workspace add-tab main --path /absolute/path/to/project --resume-command "codex resume <id>"
249
+ orp workspace remove-tab main --path /absolute/path/to/project
250
+ orp workspace sync main
251
+ orp secrets list --json
252
+ orp secrets ensure --alias openai-primary --provider openai --current-project --json
253
+ orp secrets sync-keychain openai-primary --json
254
+ orp schedule add codex --name morning-summary --prompt "Summarize this repo" --json
255
+ ```
256
+
257
+ For secrets, the simplest plain-English rule is:
258
+
259
+ - `orp secrets ensure ...` = use the saved key if it already exists, or ask for it and create it if it does not
260
+ - `orp secrets resolve ...` = return the actual key value for use right now
261
+ - you can ignore `--env-var-name` at first; it is optional metadata, not the key itself
262
+
263
+ Local governance:
264
+
265
+ ```bash
266
+ orp init
133
267
  orp status --json
134
268
  orp branch start work/<topic> --json
135
269
  orp checkpoint create -m "describe completed unit" --json
@@ -137,56 +271,57 @@ orp backup -m "backup current work" --json
137
271
  orp ready --json
138
272
  orp doctor --json
139
273
  orp cleanup --json
140
- orp discover profile init --json
141
- orp discover github scan --profile orp.profile.default.json --json
142
- orp collaborate workflows --json
143
- orp collaborate gates --workflow full_flow --json
144
- orp erdos sync --json
145
- orp pack list --json
146
- orp pack install --pack-id erdos-open-problems --json
147
- orp pack fetch --source <git-url> --pack-id <pack-id> --install-target . --json
148
- orp gate run --profile default --json
274
+ ```
275
+
276
+ Artifacts, planning, and compute:
277
+
278
+ ```bash
149
279
  orp packet emit --profile default --json
150
- orp compute decide --input orp.compute.json --json
151
- orp compute decide --project-map orp.compute-map.json --point-id adult-vs-developmental-rgc-opponent --json
152
- orp compute run-local --input orp.compute.json --task orp.compute.task.json --json
153
- orp compute run-local --project-map orp.compute-map.json --point-id adult-vs-developmental-rgc-opponent --task orp.compute.task.json --json
154
- orp frontier init --program-id ocular-controller --json
155
- orp frontier add-version --id v10 --label "Certified generalization arc" --json
156
- orp frontier add-milestone --version v10 --id v10.3 --label "Figure specification and data contract freeze" --band exact --json
157
- orp frontier add-phase --milestone v10.3 --id 395 --label "Figure specification and data contract freeze" --compute-point-id adult-vs-developmental-rgc-opponent --allowed-rung local-4090 --paid-requires-user-approval --json
158
- orp frontier set-live --version v10 --milestone v10.3 --phase 395 --band exact --next-action "Execute Phase 395" --json
280
+ orp report summary --json
159
281
  orp frontier state --json
160
282
  orp frontier roadmap --json
161
283
  orp frontier checklist --json
162
- orp frontier stack --json
163
- orp frontier doctor --json
164
- orp report summary --json
284
+ orp compute decide --input orp.compute.json --json
285
+ orp compute run-local --input orp.compute.json --task orp.compute.task.json --json
286
+ ```
287
+
288
+ Scanning, synthesis, and collaboration:
289
+
290
+ ```bash
291
+ orp discover github scan --profile orp.profile.default.json --json
292
+ orp exchange repo synthesize /path/to/source --json
293
+ orp collaborate workflows --json
294
+ orp collaborate run --workflow full_flow --json
295
+ orp youtube inspect https://www.youtube.com/watch?v=<video_id> --json
296
+ orp erdos sync --json
165
297
  ```
166
298
 
167
- These surfaces are meant to help automated systems discover ORP quickly:
168
-
169
- - bare `orp` opens a home screen with repo/runtime status, available packs, and next commands
170
- - `orp home --json` returns the same landing context in machine-readable form
171
- - `orp auth ...`, `orp ideas ...`, `orp world ...`, `orp checkpoint ...`, `orp runner ...`, and `orp agent ...` expose the hosted workspace surface directly through ORP
172
- - `orp compute ...` exposes targeted-compute admission, local execution, and paid-approval gating through a stable ORP wrapper surface
173
- - `orp compute ...` can now consume either a raw compute packet input or a repo-declared `breakthroughs` project compute map plus a compute-point id
174
- - `orp frontier ...` exposes the four-layer planning split directly in ORP:
175
- - exact live point
176
- - exact active milestone roadmap
177
- - near-term structured checklist
178
- - farther major-version stack
179
- - frontier phases can carry bounded compute hooks, so a repo's active frontier can surface where targeted compute belongs without letting compute drift outside the main research loop
180
- - `orp youtube inspect ...` exposes public YouTube metadata plus full transcript ingestion through a stable ORP artifact shape for agent use when caption tracks are available
181
- - `orp init`, `orp status`, `orp branch start`, `orp checkpoint create`, `orp backup`, `orp ready`, `orp doctor`, and `orp cleanup` expose the local-first repo governance surface directly through ORP
182
- - `orp discover ...` exposes profile-based GitHub scanning as a built-in ORP ability
183
- - `orp collaborate ...` exposes built-in collaboration setup and workflow execution without asking users to think in terms of separate governance packs
184
- - `llms.txt` gives a concise repo/package map for agents that scan documentation.
185
- - `docs/AGENT_LOOP.md` gives agents one intended operating rhythm instead of leaving them to invent one.
186
- - `docs/DISCOVER.md` explains the portable discovery profile model and scan artifacts.
187
- - `orp about --json` returns machine-readable capability, artifact, schema, and pack metadata.
188
- - Core runtime and pack commands can emit JSON so agents do not need to scrape human text.
189
- - Stable artifact paths make it easy to follow outputs across runs:
299
+ ## Life Ops Bridge
300
+
301
+ ORP and Life Ops are meant to connect, but they are not the same package.
302
+
303
+ - `open-research-protocol` stays the main ORP CLI/runtime surface.
304
+ - `@lifeops/core` is the Life Ops SDK for normalized agenda items, outreach, and structured share-email drafting.
305
+ - `@lifeops/orp` is the bridge package that turns ORP JSON surfaces into Life Ops-compatible items and share-ready project input.
306
+
307
+ The bridge package lives at `packages/lifeops-orp/`.
308
+
309
+ ## Key Docs
310
+
311
+ - `docs/START_HERE.md` for the canonical step-by-step starter path
312
+ - `AGENT_INTEGRATION.md` for integrating ORP into an agent's primary instructions
313
+ - `INSTALL.md` for adopting ORP in an existing repo or new project
314
+ - `docs/AGENT_LOOP.md` for the intended operator rhythm
315
+ - `docs/AGENT_MODES.md` for optional creativity and perspective overlays
316
+ - `docs/EXCHANGE.md` for repository/project synthesis
317
+ - `docs/CANONICAL_CLI_BOUNDARY.md` for CLI, Rust, and web responsibility boundaries
318
+ - `docs/ORP_HOSTED_WORKSPACE_CONTRACT.md` for the first-class hosted workspace model
319
+ - `docs/LAUNCH_KIT.md` for public positioning, demo flow, and launch copy
320
+ - `docs/NPM_RELEASE_CHECKLIST.md` and `docs/ORP_PUBLIC_LAUNCH_CHECKLIST.md` for release execution
321
+ - `llms.txt` for concise agent/LLM discovery
322
+
323
+ Stable artifact paths:
324
+
190
325
  - `orp/state.json`
191
326
  - `orp/artifacts/<run_id>/RUN.json`
192
327
  - `orp/artifacts/<run_id>/RUN_SUMMARY.md`
@@ -195,12 +330,6 @@ These surfaces are meant to help automated systems discover ORP quickly:
195
330
  - `orp/discovery/github/<scan_id>/SCAN.json`
196
331
  - `orp/discovery/github/<scan_id>/SCAN_SUMMARY.md`
197
332
 
198
- Release process:
199
-
200
- - `docs/NPM_RELEASE_CHECKLIST.md`
201
- - `docs/ORP_PUBLIC_LAUNCH_CHECKLIST.md`
202
- - `.github/workflows/npm-publish.yml` (publishes on `v*` tags)
203
-
204
333
  ## Quick start (existing repo)
205
334
 
206
335
  1. Copy this folder into your repo (recommended location: `orp/`).
package/bin/orp.js CHANGED
@@ -6,6 +6,9 @@ const { spawnSync } = require("child_process");
6
6
 
7
7
  const cliPath = path.resolve(__dirname, "..", "cli", "orp.py");
8
8
  const computeCliUrl = pathToFileURL(path.resolve(__dirname, "orp-compute.mjs")).href;
9
+ const workspaceCliUrl = pathToFileURL(
10
+ path.resolve(__dirname, "..", "packages", "orp-workspace-launcher", "src", "orp-command.js"),
11
+ ).href;
9
12
  const argv = process.argv.slice(2);
10
13
 
11
14
  const candidates = [];
@@ -27,11 +30,21 @@ async function runCompute(args) {
27
30
  process.exit(code == null ? 0 : code);
28
31
  }
29
32
 
33
+ async function runWorkspace(args) {
34
+ const mod = await import(workspaceCliUrl);
35
+ const code = await mod.runOrpWorkspaceCommand(args);
36
+ process.exit(code == null ? 0 : code);
37
+ }
38
+
30
39
  async function main() {
31
40
  if (argv[0] === "compute") {
32
41
  await runCompute(argv.slice(1));
33
42
  return;
34
43
  }
44
+ if (argv[0] === "workspace") {
45
+ await runWorkspace(argv.slice(1));
46
+ return;
47
+ }
35
48
 
36
49
  const captureOutput = isTopLevelHelp(argv);
37
50
  let lastErr = null;
@@ -55,7 +68,7 @@ async function main() {
55
68
  process.stderr.write(result.stderr);
56
69
  }
57
70
  if (result.status === 0) {
58
- process.stdout.write("\nAdditional wrapper surface:\n orp compute -h\n");
71
+ process.stdout.write("\nAdditional wrapper surface:\n orp compute -h\n orp workspace tabs -h\n");
59
72
  }
60
73
  }
61
74
  process.exit(result.status == null ? 1 : result.status);