open-research-protocol 0.4.18 → 0.4.20

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 (29) hide show
  1. package/AGENT_INTEGRATION.md +8 -0
  2. package/README.md +203 -17
  3. package/cli/orp.py +14427 -9787
  4. package/docs/AGENT_LOOP.md +38 -0
  5. package/docs/ORP_AUTONOMY_PROJECT_COMPILATION_MODEL.md +252 -0
  6. package/docs/PROFILE_PACKS.md +8 -0
  7. package/docs/START_HERE.md +230 -9
  8. package/package.json +1 -1
  9. package/packages/orp-workspace-launcher/README.md +19 -1
  10. package/packages/orp-workspace-launcher/src/core-plan.js +72 -2
  11. package/packages/orp-workspace-launcher/src/hosted-state.js +9 -0
  12. package/packages/orp-workspace-launcher/src/index.js +2 -0
  13. package/packages/orp-workspace-launcher/src/ledger.js +74 -2
  14. package/packages/orp-workspace-launcher/src/list.js +18 -0
  15. package/packages/orp-workspace-launcher/src/orp-command.js +8 -4
  16. package/packages/orp-workspace-launcher/src/orp.js +13 -0
  17. package/packages/orp-workspace-launcher/src/registry.js +10 -0
  18. package/packages/orp-workspace-launcher/src/sync.js +12 -0
  19. package/packages/orp-workspace-launcher/src/tabs.js +39 -2
  20. package/packages/orp-workspace-launcher/test/core-plan.test.js +13 -0
  21. package/packages/orp-workspace-launcher/test/ledger.test.js +50 -0
  22. package/packages/orp-workspace-launcher/test/list.test.js +19 -0
  23. package/packages/orp-workspace-launcher/test/tabs.test.js +51 -6
  24. package/packs/erdos-open-problems/pack.yml +54 -0
  25. package/packs/external-pr-governance/pack.yml +17 -0
  26. package/packs/issue-smashers/pack.yml +25 -0
  27. package/scripts/orp-pack-install.py +90 -11
  28. package/spec/v1/profile-pack.schema.json +48 -0
  29. package/spec/v1/workspace.schema.json +36 -2
@@ -6,6 +6,14 @@ 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
+ If you are working inside an ORP-governed repo, ORP can also scaffold and maintain the repo's own `AGENTS.md` and
10
+ `CLAUDE.md` files:
11
+
12
+ - `orp init` now scaffolds them if missing and refreshes ORP-managed blocks if they already exist
13
+ - `orp agents sync` refreshes the ORP-managed blocks later without replacing surrounding human notes
14
+ - `orp agents audit` checks whether those files are still aligned
15
+ - `orp agents root set /absolute/path/to/projects` establishes an optional umbrella parent directory so child repos can inherit high-level guidance
16
+
9
17
  ## Core Rule
10
18
 
11
19
  Do not let ORP process scaffolding masquerade as evidence or repository truth.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ORP — Open Research Protocol
2
2
 
3
- Maintained by Fractal Research Group (`frg.earth`).
3
+ Maintained by SproutSeeds. Research stewardship: Fractal Research Group ([frg.earth](https://frg.earth)).
4
4
 
5
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
6
  [![npm downloads](https://img.shields.io/npm/dm/open-research-protocol?color=111111&label=downloads)](https://www.npmjs.com/package/open-research-protocol)
@@ -9,13 +9,16 @@ Maintained by Fractal Research Group (`frg.earth`).
9
9
  [![license](https://img.shields.io/npm/l/open-research-protocol?color=111111&label=license)](./LICENSE)
10
10
  [![node](https://img.shields.io/node/v/open-research-protocol?color=111111&label=node)](https://www.npmjs.com/package/open-research-protocol)
11
11
 
12
- > Agent-first CLI for workspace ledgers, local governance, secrets, scheduling, packets, reports, and research workflows.
12
+ > Agent-first CLI for workspace ledgers, operating agendas, local governance, secrets, scheduling, packets, reports, and research workflows.
13
13
 
14
14
  **Links:** [GitHub](https://github.com/SproutSeeds/orp) · [npm](https://www.npmjs.com/package/open-research-protocol) · [frg.earth](https://frg.earth)
15
15
 
16
16
  ORP is a unified CLI for research and research-like engineering. It helps humans and agents:
17
17
 
18
18
  - keep a durable workspace ledger
19
+ - keep a durable operating agenda
20
+ - keep a durable connections registry
21
+ - keep a durable opportunities ledger
19
22
  - resolve the right secret
20
23
  - schedule the next loop
21
24
  - checkpoint and protect progress
@@ -38,6 +41,9 @@ The current animation intentionally uses the same human-facing command surfaces
38
41
  - `hosted` for ideas, workspaces, runners, and the control plane
39
42
  - `secrets` for create-or-reuse plus local Keychain sync
40
43
  - `workspace` for the hosted + local saved workspace ledger and recovery commands
44
+ - `agenda` for Codex-ranked actions and suggestions across current work
45
+ - `connections` for service accounts, data sources, deploy targets, and research destinations
46
+ - `opportunities` for contests, programs, grants, and other tracked openings
41
47
  - `schedule` for recurring Codex jobs
42
48
  - `governance` for local checkpoints and repo safety
43
49
  - `planning` for frontier, compute, packet, and report surfaces
@@ -88,7 +94,9 @@ That guide now follows the same clearer rhythm we liked in `erdos-problems`:
88
94
  It walks through:
89
95
 
90
96
  - `orp init`
97
+ - umbrella and project-level `AGENTS.md` / `CLAUDE.md` guidance
91
98
  - local-first workspace ledgers
99
+ - local-first opportunity boards
92
100
  - saved Codex and Claude resume commands
93
101
  - secrets setup
94
102
  - the checkpoint and governance loop
@@ -101,7 +109,12 @@ If you want the shortest honest map of day-to-day ORP, start here:
101
109
  ```bash
102
110
  orp
103
111
  orp home
112
+ orp agents audit
104
113
  orp workspace tabs main
114
+ orp agenda refresh --json
115
+ orp agenda refresh-status --json
116
+ orp agenda focus
117
+ orp opportunities list
105
118
  orp secrets ensure --alias openai-primary --provider openai --current-project
106
119
  orp checkpoint create -m "capture loop state"
107
120
  orp packet emit --profile default
@@ -111,17 +124,178 @@ orp schedule list
111
124
  orp mode nudge sleek-minimal-progressive
112
125
  ```
113
126
 
114
- That sequence covers discovery, workspace recovery, secret resolution, governance, artifacts, planning, automation, and perspective-shift support.
127
+ That sequence covers discovery, agent-guide alignment, workspace recovery, agenda refresh, secret resolution, governance, artifacts, planning, automation, and perspective-shift support.
115
128
 
116
129
  The shorter rule is:
117
130
 
118
131
  - recover the workspace
132
+ - keep the agent guides aligned
133
+ - refresh the agenda
134
+ - inspect the active opportunities
119
135
  - inspect repo safety
120
136
  - resolve the right secret
121
137
  - inspect the current frontier
122
138
  - do the next honest move
123
139
  - checkpoint at honest boundaries
124
140
 
141
+ ## Agenda Quick Start
142
+
143
+ Use `agenda` when you want ORP to keep two ranked lists for the current operating moment:
144
+
145
+ - `actions` for the things most likely to need attention now
146
+ - `suggestions` for the next best expansions toward the current north star
147
+
148
+ Run one refresh:
149
+
150
+ ```bash
151
+ orp agenda refresh --json
152
+ ```
153
+
154
+ Check whether recurring refreshes are enabled on this machine:
155
+
156
+ ```bash
157
+ orp agenda refresh-status --json
158
+ ```
159
+
160
+ If you want scheduled Codex refreshes, you must opt in explicitly. Nothing auto-runs until you do. The starter preset uses local morning, afternoon, and evening times:
161
+
162
+ ```bash
163
+ orp agenda enable-refreshes --json
164
+ ```
165
+
166
+ If you want your own times instead of the default `09:00`, `14:00`, and `19:00`, set them directly:
167
+
168
+ ```bash
169
+ orp agenda enable-refreshes --morning 08:30 --afternoon 13:00 --evening 18:30 --json
170
+ ```
171
+
172
+ Turn them back off any time:
173
+
174
+ ```bash
175
+ orp agenda disable-refreshes --json
176
+ ```
177
+
178
+ Inspect the resulting lists:
179
+
180
+ ```bash
181
+ orp agenda actions
182
+ orp agenda suggestions
183
+ orp agenda focus
184
+ ```
185
+
186
+ If you want to pin an explicit north star instead of relying on inferred context:
187
+
188
+ ```bash
189
+ orp agenda set-north-star "Advance the ocular controller and ORP ecosystems"
190
+ ```
191
+
192
+ The practical model is:
193
+
194
+ - `agenda refresh` is a real Codex reasoning pass
195
+ - it reads current main-workspace context, GitHub pressure, connections, and opportunities
196
+ - it writes two saved ranked lists locally
197
+ - recurring agenda refreshes stay disabled until the user explicitly enables them
198
+ - the default scheduled windows are morning, afternoon, and evening, but the user can set custom times
199
+ - `focus` is the fastest operator and agent recall surface
200
+
201
+ ## Opportunities Quick Start
202
+
203
+ Use `opportunities` when you want a separate editable list of contests, programs, grants, or other openings without mixing that into `workspace`.
204
+
205
+ Create one board:
206
+
207
+ ```bash
208
+ orp opportunities create main-opportunities --label "Main Opportunities"
209
+ ```
210
+
211
+ Add one tracked item:
212
+
213
+ ```bash
214
+ orp opportunities add main-opportunities --title "vision-prize" --kind contest --section ocular-longevity --priority high --url https://example.com/vision-prize
215
+ ```
216
+
217
+ Inspect the current board:
218
+
219
+ ```bash
220
+ orp opportunities show main-opportunities
221
+ orp opportunities focus main-opportunities --limit 5
222
+ orp opportunities list
223
+ ```
224
+
225
+ Update or remove one item:
226
+
227
+ ```bash
228
+ orp opportunities update main-opportunities vision-prize --status submitted
229
+ orp opportunities remove main-opportunities vision-prize
230
+ ```
231
+
232
+ Mirror or restore the same board across machines once you authenticate:
233
+
234
+ ```bash
235
+ orp auth login
236
+ orp opportunities sync main-opportunities --json
237
+ orp opportunities pull main-opportunities --json
238
+ ```
239
+
240
+ The practical model is:
241
+
242
+ - local board first, always usable without an account
243
+ - hosted mirror optional, for the same user across multiple rigs
244
+ - `sync` pushes the current local board to hosted ORP
245
+ - `pull` restores the hosted copy onto this machine
246
+
247
+ ## Connections Quick Start
248
+
249
+ Use `connections` when you want one place to remember service accounts, data sources, deployment targets, and research destinations without storing raw credentials inline.
250
+
251
+ Inspect the built-in provider templates when they help:
252
+
253
+ ```bash
254
+ orp connections providers
255
+ ```
256
+
257
+ Add one saved connection that references an ORP secret alias:
258
+
259
+ ```bash
260
+ orp connections add github-main --provider github --label "GitHub Main" --account cody --organization sproutseeds --auth-secret-alias github-main
261
+ ```
262
+
263
+ If one service needs several tokens, keep them together under named secret bindings:
264
+
265
+ ```bash
266
+ orp connections add huggingface-main --provider huggingface --label "Hugging Face" --account cody --secret-binding primary=hf-main --secret-binding publish=hf-publish --secret-binding inference=hf-inference
267
+ ```
268
+
269
+ If ORP has never seen the service before, `custom` is still a normal first-class path:
270
+
271
+ ```bash
272
+ orp connections add my-science-portal --provider custom --label "My Science Portal" --url https://example.org --secret-binding primary=my-science-token
273
+ ```
274
+
275
+ Inspect or update the registry:
276
+
277
+ ```bash
278
+ orp connections show github-main
279
+ orp connections list
280
+ orp connections update github-main --status paused
281
+ orp connections remove github-main
282
+ ```
283
+
284
+ Mirror the same registry across machines once you authenticate:
285
+
286
+ ```bash
287
+ orp auth login
288
+ orp connections sync --json
289
+ orp connections pull --json
290
+ ```
291
+
292
+ The practical model is:
293
+
294
+ - `secrets` holds the actual sensitive value
295
+ - `connections` holds the provider/account/capability record and which secret alias or named secret bindings power it
296
+ - built-in providers help you start faster, but `custom` works for anything new or niche
297
+ - hosted sync is optional and mirrors the whole registry for the same user
298
+
125
299
  ## Secrets Quick Start
126
300
 
127
301
  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:
@@ -242,10 +416,10 @@ orp agent work --once --json
242
416
  Local desk and automation:
243
417
 
244
418
  ```bash
245
- orp workspace create main-cody-1
419
+ orp workspace create mac-main --machine-label "Mac Studio"
246
420
  orp workspace list
247
421
  orp workspace tabs main
248
- orp workspace add-tab main --path /absolute/path/to/project --resume-command "codex resume <id>"
422
+ orp workspace add-tab main --path /absolute/path/to/project --remote-url git@github.com:org/project.git --bootstrap-command "npm install" --resume-command "codex resume <id>"
249
423
  orp workspace remove-tab main --path /absolute/path/to/project
250
424
  orp workspace sync main
251
425
  orp secrets list --json
@@ -263,7 +437,10 @@ For secrets, the simplest plain-English rule is:
263
437
  Local governance:
264
438
 
265
439
  ```bash
266
- orp init
440
+ orp agents root set /absolute/path/to/projects
441
+ orp init --projects-root /absolute/path/to/projects
442
+ orp agents audit
443
+ orp agents sync
267
444
  orp status --json
268
445
  orp branch start work/<topic> --json
269
446
  orp checkpoint create -m "describe completed unit" --json
@@ -336,21 +513,25 @@ Stable artifact paths:
336
513
  2. Link to `orp/PROTOCOL.md` from your repo `README.md`.
337
514
  3. Customize **Canonical Paths** inside `orp/PROTOCOL.md` to match your repo layout.
338
515
  4. Run `orp init` in the repo root to establish ORP governance.
339
- 5. Use `orp status`, `orp branch start`, `orp checkpoint create`, and `orp backup` as the default implementation loop.
340
- 6. Use the templates for all new claims and verifications.
341
- 7. Optional (agent users): integrate ORP into your agent’s primary instruction file (see `orp/AGENT_INTEGRATION.md`).
516
+ 5. If you keep many repos under one umbrella directory, run `orp agents root set /absolute/path/to/projects` once and let `orp init --projects-root /absolute/path/to/projects` link each child repo back to that parent guidance.
517
+ 6. Use `orp agents audit` whenever you want to confirm `AGENTS.md` and `CLAUDE.md` are still aligned without overwriting human notes.
518
+ 7. Use `orp status`, `orp branch start`, `orp checkpoint create`, and `orp backup` as the default implementation loop.
519
+ 8. Use the templates for all new claims and verifications.
520
+ 9. Optional (agent users): integrate ORP into your agent’s primary instruction file (see `orp/AGENT_INTEGRATION.md`).
342
521
 
343
522
  ## Quick start (new project)
344
523
 
345
524
  1. Copy this folder into a new project directory.
346
- 2. Run `orp init` immediately so the repo starts ORP-governed.
347
- 3. Edit `PROTOCOL.md` to define your canonical paths and claim labels.
348
- 4. Start implementation on a work branch with `orp branch start`.
349
- 5. Create regular checkpoint commits with `orp checkpoint create`.
350
- 6. Use `orp backup` whenever you want ORP to capture current work to a dedicated remote backup ref.
351
- 7. Validate promotable task/decision/hypothesis artifacts with `orp kernel validate <path> --json`.
352
- 8. Start by adding one small claim + verification record using the templates.
353
- 9. Optional (agent users): integrate ORP into your agent’s primary instruction file (see `AGENT_INTEGRATION.md`).
525
+ 2. If you keep projects under one umbrella directory, run `orp agents root set /absolute/path/to/projects` once from anywhere.
526
+ 3. Run `orp init` immediately so the repo starts ORP-governed and scaffolds or updates `AGENTS.md` and `CLAUDE.md`.
527
+ 4. Edit `PROTOCOL.md` to define your canonical paths and claim labels.
528
+ 5. Run `orp agents audit` to confirm the repo-level agent files are aligned and still preserving human notes.
529
+ 6. Start implementation on a work branch with `orp branch start`.
530
+ 7. Create regular checkpoint commits with `orp checkpoint create`.
531
+ 8. Use `orp backup` whenever you want ORP to capture current work to a dedicated remote backup ref.
532
+ 9. Validate promotable task/decision/hypothesis artifacts with `orp kernel validate <path> --json`.
533
+ 10. Start by adding one small claim + verification record using the templates.
534
+ 11. Optional (agent users): integrate ORP into your agent’s primary instruction file (see `AGENT_INTEGRATION.md`).
354
535
 
355
536
  **Activation is procedural/social, not runtime:** nothing “turns on” automatically. ORP works only if contributors follow it.
356
537
 
@@ -443,6 +624,11 @@ If you are using ORP normally, prefer:
443
624
  Reach for `orp pack ...` when you are doing advanced installs, ORP maintenance,
444
625
  or direct domain-template work.
445
626
 
627
+ Pack installation is pack-owned: `pack.yml` can describe installable
628
+ components, default includes, dependency checks, and report naming. That lets
629
+ ORP consume repo-owned external packs through `--pack-path` without baking
630
+ domain-specific install rules into ORP core.
631
+
446
632
  Install pack configs into a target repo (recommended):
447
633
 
448
634
  ```bash