open-research-protocol 0.4.27 → 0.4.29
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 +48 -0
- package/README.md +39 -14
- package/bin/orp.js +14 -1
- package/cli/__pycache__/orp.cpython-311.pyc +0 -0
- package/cli/orp.py +1124 -5
- package/docs/START_HERE.md +14 -0
- package/package.json +5 -1
- package/packages/orp-workspace-launcher/src/codex.js +822 -0
- package/packages/orp-workspace-launcher/src/index.js +10 -0
- package/packages/orp-workspace-launcher/src/ledger.js +11 -1
- package/packages/orp-workspace-launcher/test/codex.test.js +309 -0
- package/scripts/__pycache__/orp-kernel-agent-pilot.cpython-311.pyc +0 -0
- package/scripts/__pycache__/orp-kernel-agent-replication.cpython-311.pyc +0 -0
- package/scripts/__pycache__/orp-kernel-benchmark.cpython-311.pyc +0 -0
- package/scripts/__pycache__/orp-kernel-canonical-continuation.cpython-311.pyc +0 -0
- package/scripts/__pycache__/orp-kernel-continuation-pilot.cpython-311.pyc +0 -0
- package/scripts/render-terminal-demo.py +262 -134
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,54 @@ There was no prior in-repo changelog file, so the first formal entry starts
|
|
|
6
6
|
with the currently shipped `v0.4.4` release and summarizes the full release
|
|
7
7
|
delta reflected in this repo.
|
|
8
8
|
|
|
9
|
+
## v0.4.29 - 2026-04-25
|
|
10
|
+
|
|
11
|
+
This release adds ORP-managed Codex session tracking so starting a Codex thread
|
|
12
|
+
from a repo can automatically refresh the saved workspace session for that
|
|
13
|
+
directory.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Added `orp codex` as the default tracked Codex launcher: it resolves the repo
|
|
18
|
+
root, starts Codex there, watches local session metadata, and saves the new
|
|
19
|
+
Codex resume id into workspace `main`.
|
|
20
|
+
- Added `orp codex status` and `orp codex reconcile` for checking stale saved
|
|
21
|
+
Codex sessions and refreshing tracked workspace tabs from recent local Codex
|
|
22
|
+
session metadata.
|
|
23
|
+
- Added safeguards that ignore delegated/subagent sessions by default and refuse
|
|
24
|
+
broad roots or artifact-output repos unless explicitly overridden.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Documented the ORP/Codex compatibility workflow and exposed the new wrapper
|
|
29
|
+
command in the npm CLI help surface.
|
|
30
|
+
|
|
31
|
+
## v0.4.28 - 2026-04-22
|
|
32
|
+
|
|
33
|
+
This release tightens the ORP project-startup and research-spend loops, then
|
|
34
|
+
refreshes the public README presentation with a mascot-led terminal animation.
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
|
|
38
|
+
- Added `orp init --project-startup` support for a fuller new-project ritual:
|
|
39
|
+
private GitHub remote setup, `main` workspace ledger tracking, Codex session
|
|
40
|
+
capture, bootstrap command storage, and optional Clawdad delegation setup.
|
|
41
|
+
- Added local research spend guardrails for provider-backed research lanes:
|
|
42
|
+
per-secret daily spend cap metadata, dashboard limit notes, local spend
|
|
43
|
+
ledger records, and OpenAI preflight blocking when a lane would exceed the
|
|
44
|
+
configured cap.
|
|
45
|
+
- Added a mascot-led ORP terminal animation that explains workspace ledgers,
|
|
46
|
+
secrets, research lanes, governance checkpoints, breakdown mode, and
|
|
47
|
+
agent-readable handoffs in simple language.
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
|
|
51
|
+
- Promoted the refreshed terminal animation to the top of the README with a
|
|
52
|
+
short greeting and updated the walkthrough copy to match the current ORP
|
|
53
|
+
command surface.
|
|
54
|
+
- Simplified generated animation scenes from a crowded command survey into a
|
|
55
|
+
cleaner seven-scene story with an expressive mascot and real CLI commands.
|
|
56
|
+
|
|
9
57
|
## v0.4.27 - 2026-04-18
|
|
10
58
|
|
|
11
59
|
This release adds a staged OpenAI research profile and default-on worktree
|
package/README.md
CHANGED
|
@@ -9,6 +9,12 @@ Maintained by SproutSeeds. Research stewardship: Fractal Research Group ([frg.ea
|
|
|
9
9
|
[](./LICENSE)
|
|
10
10
|
[](https://www.npmjs.com/package/open-research-protocol)
|
|
11
11
|
|
|
12
|
+
<p align="center">
|
|
13
|
+
<img src="https://raw.githubusercontent.com/SproutSeeds/orp/main/assets/terminal-demo.gif" alt="open-research-protocol mascot terminal demo">
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center"><strong>Hello, researcher.</strong> Keep the loop open, recoverable, and kind.</p>
|
|
17
|
+
|
|
12
18
|
> Agent-first CLI for workspace ledgers, operating agendas, local governance, secrets, scheduling, packets, reports, and research workflows.
|
|
13
19
|
|
|
14
20
|
**Links:** [GitHub](https://github.com/SproutSeeds/orp) · [npm](https://www.npmjs.com/package/open-research-protocol) · [frg.earth](https://frg.earth)
|
|
@@ -38,24 +44,21 @@ checkpoint layer. See
|
|
|
38
44
|
|
|
39
45
|
## Watch It Run
|
|
40
46
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
The current animation introduces a small protocol mascot for the ORP message:
|
|
48
|
+
context before claims, saved threads before crashes, hidden keys before exposed
|
|
49
|
+
secrets, dry-run research before spend, checkpoints before handoffs, and
|
|
50
|
+
breakdowns before overwhelm. The terminal still uses real ORP command surfaces
|
|
51
|
+
rather than a fabricated UI.
|
|
44
52
|
|
|
45
|
-
|
|
53
|
+
It currently shows ORP from seven angles:
|
|
46
54
|
|
|
47
55
|
- `home` for discovery and next actions
|
|
48
|
-
- `
|
|
49
|
-
- `secrets` for
|
|
50
|
-
- `
|
|
51
|
-
- `agenda` for Codex-ranked actions and suggestions across current work
|
|
52
|
-
- `connections` for service accounts, data sources, deploy targets, and research destinations
|
|
53
|
-
- `opportunities` for contests, programs, grants, and other tracked openings
|
|
54
|
-
- `schedule` for recurring Codex jobs
|
|
56
|
+
- `workspace` for grouped project/session ledgers and recovery commands
|
|
57
|
+
- `secrets` for local reusable credentials and spend policy metadata
|
|
58
|
+
- `research` for dry-run-first research lanes with an OpenAI-ready provider path
|
|
55
59
|
- `governance` for local checkpoints and repo safety
|
|
56
|
-
- `
|
|
57
|
-
- `
|
|
58
|
-
- `mode` for optional perspective-shift nudges
|
|
60
|
+
- `breakdown` for broad-to-atomic comprehension loops
|
|
61
|
+
- `publish` for agent-readable reports, handoffs, and open research messaging
|
|
59
62
|
|
|
60
63
|
Maintainer asset generation:
|
|
61
64
|
|
|
@@ -451,10 +454,14 @@ Local desk and automation:
|
|
|
451
454
|
orp workspace create mac-main --machine-label "Mac Studio"
|
|
452
455
|
orp workspace list
|
|
453
456
|
orp workspace tabs main
|
|
457
|
+
orp init --project-startup --github-repo owner/repo --current-codex
|
|
454
458
|
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>"
|
|
455
459
|
orp workspace add-tab main --path /absolute/path/to/project --title "second active thread" --resume-tool claude --resume-session-id <id> --append
|
|
456
460
|
orp workspace remove-tab main --path /absolute/path/to/project
|
|
457
461
|
orp workspace sync main
|
|
462
|
+
orp codex status
|
|
463
|
+
orp codex reconcile --dry-run
|
|
464
|
+
orp codex --search
|
|
458
465
|
orp secrets list --json
|
|
459
466
|
orp secrets ensure --alias openai-primary --provider openai --current-project --json
|
|
460
467
|
orp secrets keychain-add --alias openai-primary --provider openai --env-var-name OPENAI_API_KEY --value-stdin --json
|
|
@@ -462,6 +469,19 @@ orp secrets sync-keychain openai-primary --json
|
|
|
462
469
|
orp schedule add codex --name morning-summary --prompt "Summarize this repo" --json
|
|
463
470
|
```
|
|
464
471
|
|
|
472
|
+
`orp codex` is a local compatibility layer for keeping workspace `main`
|
|
473
|
+
aligned with Codex sessions. `status` compares the current repo against the
|
|
474
|
+
latest local Codex session metadata, `reconcile` refreshes stale saved sessions,
|
|
475
|
+
and bare `orp codex` launches Codex from the repo root while watching for the new
|
|
476
|
+
session id. Delegated/subagent sessions are ignored by default, and
|
|
477
|
+
artifact-output repos should be left untracked when a separate lab repo is the
|
|
478
|
+
source of truth. Use `--` before Codex args that conflict with ORP wrapper
|
|
479
|
+
options. The manual fallback from inside Codex is still:
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
orp workspace add-tab main --here --current-codex
|
|
483
|
+
```
|
|
484
|
+
|
|
465
485
|
For secrets, the simplest plain-English rule is:
|
|
466
486
|
|
|
467
487
|
- `orp secrets ensure ...` = use the saved key if it already exists, or ask for it and create it if it does not
|
|
@@ -570,6 +590,7 @@ Stable artifact paths:
|
|
|
570
590
|
1. Copy this folder into a new project directory.
|
|
571
591
|
2. If you keep projects under one umbrella directory, run `orp agents root set /absolute/path/to/projects` once from anywhere.
|
|
572
592
|
3. Run `orp init` immediately so the repo starts ORP-governed, scaffolds or updates `AGENTS.md` and `CLAUDE.md`, and creates `orp/project.json`.
|
|
593
|
+
For the fuller new-project ritual, run `orp init --project-startup --github-repo owner/repo --current-codex`; ORP will create a private GitHub remote through `gh`, save the path/session in workspace `main`, and register Clawdad delegation when `clawdad` is installed. Use `--startup-dry-run --json` first when you want to inspect the planned external commands.
|
|
573
594
|
4. Edit `PROTOCOL.md` to define your canonical paths and claim labels.
|
|
574
595
|
5. Run `orp project refresh --json` whenever the directory gains new roadmap, spec, docs, manifest, or command-surface files.
|
|
575
596
|
6. Run `orp agents audit` to confirm the repo-level agent files are aligned and still preserving human notes.
|
|
@@ -769,3 +790,7 @@ python3 scripts/orp-pack-render.py --pack packs/erdos-open-problems --template s
|
|
|
769
790
|
python3 scripts/orp-pack-render.py --pack packs/erdos-open-problems --template erdos_problems_catalog_sync \
|
|
770
791
|
--var TARGET_REPO_ROOT=/path/to/repo --var ORP_REPO_ROOT=/path/to/orp --out /path/to/repo/orp.erdos-catalog-sync.yml
|
|
771
792
|
```
|
|
793
|
+
|
|
794
|
+
## Support
|
|
795
|
+
|
|
796
|
+
Everything here is released for public use. If ORP saved you time or you want to keep the work moving, you can [support public FRG releases](https://frg.earth/support?utm_source=readme&utm_medium=repo&utm_campaign=public_work_support&package=open-research-protocol).
|
package/bin/orp.js
CHANGED
|
@@ -9,6 +9,9 @@ const computeCliUrl = pathToFileURL(path.resolve(__dirname, "orp-compute.mjs")).
|
|
|
9
9
|
const workspaceCliUrl = pathToFileURL(
|
|
10
10
|
path.resolve(__dirname, "..", "packages", "orp-workspace-launcher", "src", "orp-command.js"),
|
|
11
11
|
).href;
|
|
12
|
+
const codexCliUrl = pathToFileURL(
|
|
13
|
+
path.resolve(__dirname, "..", "packages", "orp-workspace-launcher", "src", "codex.js"),
|
|
14
|
+
).href;
|
|
12
15
|
const argv = process.argv.slice(2);
|
|
13
16
|
|
|
14
17
|
const candidates = [];
|
|
@@ -36,6 +39,12 @@ async function runWorkspace(args) {
|
|
|
36
39
|
process.exit(code == null ? 0 : code);
|
|
37
40
|
}
|
|
38
41
|
|
|
42
|
+
async function runCodex(args) {
|
|
43
|
+
const mod = await import(codexCliUrl);
|
|
44
|
+
const code = await mod.runOrpCodexCommand(args);
|
|
45
|
+
process.exit(code == null ? 0 : code);
|
|
46
|
+
}
|
|
47
|
+
|
|
39
48
|
function runPythonCli(args, { captureOutput }) {
|
|
40
49
|
let lastErr = null;
|
|
41
50
|
|
|
@@ -58,7 +67,7 @@ function runPythonCli(args, { captureOutput }) {
|
|
|
58
67
|
process.stderr.write(result.stderr);
|
|
59
68
|
}
|
|
60
69
|
if (result.status === 0) {
|
|
61
|
-
process.stdout.write("\nAdditional wrapper surface:\n orp compute -h\n orp workspace tabs -h\n orp workspace hygiene --json\n");
|
|
70
|
+
process.stdout.write("\nAdditional wrapper surface:\n orp compute -h\n orp workspace tabs -h\n orp workspace hygiene --json\n orp codex status -h\n");
|
|
62
71
|
}
|
|
63
72
|
}
|
|
64
73
|
process.exit(result.status == null ? 1 : result.status);
|
|
@@ -91,6 +100,10 @@ async function main() {
|
|
|
91
100
|
await runWorkspace(argv.slice(1));
|
|
92
101
|
return;
|
|
93
102
|
}
|
|
103
|
+
if (argv[0] === "codex") {
|
|
104
|
+
await runCodex(argv.slice(1));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
94
107
|
|
|
95
108
|
runPythonCli(argv, { captureOutput: isTopLevelHelp(argv) });
|
|
96
109
|
}
|
|
Binary file
|