create-egregore 0.21.0-runtime-mvp.16 → 0.21.0-runtime-mvp.17
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/assets/egregore-launcher.js +2 -2
- package/package.json +1 -1
- package/runtime/claude/egregore_runtime/harness_cli.py +12 -4
- package/runtime/codex/egregore_runtime/harness_cli.py +12 -4
- package/runtime/pi/egregore_runtime/harness_cli.py +12 -4
- package/runtime/prime/egregore_runtime/harness_cli.py +12 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// egregore-launcher-version: 0.21.0-runtime-mvp.
|
|
2
|
+
// egregore-launcher-version: 0.21.0-runtime-mvp.17
|
|
3
3
|
//
|
|
4
4
|
// egregore — launch and browse Egregore instances from your terminal.
|
|
5
5
|
// Installed by create-egregore. Reads ~/.egregore/instances.json.
|
|
@@ -35,7 +35,7 @@ const crypto = require("node:crypto");
|
|
|
35
35
|
const { spawnSync, spawn } = require("node:child_process");
|
|
36
36
|
const readline = require("node:readline");
|
|
37
37
|
|
|
38
|
-
const VERSION = "0.21.0-runtime-mvp.
|
|
38
|
+
const VERSION = "0.21.0-runtime-mvp.17";
|
|
39
39
|
const REGISTRY = path.join(os.homedir(), ".egregore", "instances.json");
|
|
40
40
|
const DEFAULT_FILE = path.join(os.homedir(), ".egregore", "default");
|
|
41
41
|
const UPDATE_CACHE_FILE = path.join(os.homedir(), ".egregore", "update-check.json");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-egregore",
|
|
3
|
-
"version": "0.21.0-runtime-mvp.
|
|
3
|
+
"version": "0.21.0-runtime-mvp.17",
|
|
4
4
|
"description": "Set up Egregore for your team in one command — installs the egregore launcher and your choice of Claude Code, Codex, or Pi.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -161,13 +161,20 @@ def _clear_observe_receipt(root: Path, harness: str) -> None:
|
|
|
161
161
|
pass
|
|
162
162
|
|
|
163
163
|
|
|
164
|
-
def _actor_contract_marker_path(
|
|
164
|
+
def _actor_contract_marker_path(
|
|
165
|
+
root: Path, harness: str, session: str | None = None
|
|
166
|
+
) -> Path:
|
|
165
167
|
"""Gitignored per-session marker: the full actor/retrieval contract was
|
|
166
168
|
already attached once. Later prompts receive a short reminder instead of
|
|
167
169
|
the ~4 KB block. bin/pre-compact.sh removes the marker so the first prompt
|
|
168
|
-
after a compaction re-attaches the full contract.
|
|
170
|
+
after a compaction re-attaches the full contract.
|
|
169
171
|
|
|
170
|
-
session
|
|
172
|
+
``session`` is the harness's own session id from the hook payload. The
|
|
173
|
+
Egregore session file in the checkout is shared by every concurrent
|
|
174
|
+
session there and rewritten by each new one, so keying on it alone made
|
|
175
|
+
parallel sessions re-attach the full contract on every prompt."""
|
|
176
|
+
|
|
177
|
+
session = re.sub(r"[^A-Za-z0-9_.-]", "-", session or _session_id(root))[:120]
|
|
171
178
|
return (
|
|
172
179
|
root / ".egregore" / "runtime" / "observe"
|
|
173
180
|
/ f"actor-contract-{harness}-{session}.sent"
|
|
@@ -763,7 +770,8 @@ def _prompt_hook(args: argparse.Namespace) -> int:
|
|
|
763
770
|
args.limit,
|
|
764
771
|
)
|
|
765
772
|
else:
|
|
766
|
-
|
|
773
|
+
hook_session = str(payload.get("session_id") or "").strip() or None
|
|
774
|
+
marker = _actor_contract_marker_path(root, args.harness, hook_session)
|
|
767
775
|
full = not marker.exists()
|
|
768
776
|
additional_context = _actor_context_block(
|
|
769
777
|
runtime,
|
|
@@ -161,13 +161,20 @@ def _clear_observe_receipt(root: Path, harness: str) -> None:
|
|
|
161
161
|
pass
|
|
162
162
|
|
|
163
163
|
|
|
164
|
-
def _actor_contract_marker_path(
|
|
164
|
+
def _actor_contract_marker_path(
|
|
165
|
+
root: Path, harness: str, session: str | None = None
|
|
166
|
+
) -> Path:
|
|
165
167
|
"""Gitignored per-session marker: the full actor/retrieval contract was
|
|
166
168
|
already attached once. Later prompts receive a short reminder instead of
|
|
167
169
|
the ~4 KB block. bin/pre-compact.sh removes the marker so the first prompt
|
|
168
|
-
after a compaction re-attaches the full contract.
|
|
170
|
+
after a compaction re-attaches the full contract.
|
|
169
171
|
|
|
170
|
-
session
|
|
172
|
+
``session`` is the harness's own session id from the hook payload. The
|
|
173
|
+
Egregore session file in the checkout is shared by every concurrent
|
|
174
|
+
session there and rewritten by each new one, so keying on it alone made
|
|
175
|
+
parallel sessions re-attach the full contract on every prompt."""
|
|
176
|
+
|
|
177
|
+
session = re.sub(r"[^A-Za-z0-9_.-]", "-", session or _session_id(root))[:120]
|
|
171
178
|
return (
|
|
172
179
|
root / ".egregore" / "runtime" / "observe"
|
|
173
180
|
/ f"actor-contract-{harness}-{session}.sent"
|
|
@@ -763,7 +770,8 @@ def _prompt_hook(args: argparse.Namespace) -> int:
|
|
|
763
770
|
args.limit,
|
|
764
771
|
)
|
|
765
772
|
else:
|
|
766
|
-
|
|
773
|
+
hook_session = str(payload.get("session_id") or "").strip() or None
|
|
774
|
+
marker = _actor_contract_marker_path(root, args.harness, hook_session)
|
|
767
775
|
full = not marker.exists()
|
|
768
776
|
additional_context = _actor_context_block(
|
|
769
777
|
runtime,
|
|
@@ -161,13 +161,20 @@ def _clear_observe_receipt(root: Path, harness: str) -> None:
|
|
|
161
161
|
pass
|
|
162
162
|
|
|
163
163
|
|
|
164
|
-
def _actor_contract_marker_path(
|
|
164
|
+
def _actor_contract_marker_path(
|
|
165
|
+
root: Path, harness: str, session: str | None = None
|
|
166
|
+
) -> Path:
|
|
165
167
|
"""Gitignored per-session marker: the full actor/retrieval contract was
|
|
166
168
|
already attached once. Later prompts receive a short reminder instead of
|
|
167
169
|
the ~4 KB block. bin/pre-compact.sh removes the marker so the first prompt
|
|
168
|
-
after a compaction re-attaches the full contract.
|
|
170
|
+
after a compaction re-attaches the full contract.
|
|
169
171
|
|
|
170
|
-
session
|
|
172
|
+
``session`` is the harness's own session id from the hook payload. The
|
|
173
|
+
Egregore session file in the checkout is shared by every concurrent
|
|
174
|
+
session there and rewritten by each new one, so keying on it alone made
|
|
175
|
+
parallel sessions re-attach the full contract on every prompt."""
|
|
176
|
+
|
|
177
|
+
session = re.sub(r"[^A-Za-z0-9_.-]", "-", session or _session_id(root))[:120]
|
|
171
178
|
return (
|
|
172
179
|
root / ".egregore" / "runtime" / "observe"
|
|
173
180
|
/ f"actor-contract-{harness}-{session}.sent"
|
|
@@ -763,7 +770,8 @@ def _prompt_hook(args: argparse.Namespace) -> int:
|
|
|
763
770
|
args.limit,
|
|
764
771
|
)
|
|
765
772
|
else:
|
|
766
|
-
|
|
773
|
+
hook_session = str(payload.get("session_id") or "").strip() or None
|
|
774
|
+
marker = _actor_contract_marker_path(root, args.harness, hook_session)
|
|
767
775
|
full = not marker.exists()
|
|
768
776
|
additional_context = _actor_context_block(
|
|
769
777
|
runtime,
|
|
@@ -161,13 +161,20 @@ def _clear_observe_receipt(root: Path, harness: str) -> None:
|
|
|
161
161
|
pass
|
|
162
162
|
|
|
163
163
|
|
|
164
|
-
def _actor_contract_marker_path(
|
|
164
|
+
def _actor_contract_marker_path(
|
|
165
|
+
root: Path, harness: str, session: str | None = None
|
|
166
|
+
) -> Path:
|
|
165
167
|
"""Gitignored per-session marker: the full actor/retrieval contract was
|
|
166
168
|
already attached once. Later prompts receive a short reminder instead of
|
|
167
169
|
the ~4 KB block. bin/pre-compact.sh removes the marker so the first prompt
|
|
168
|
-
after a compaction re-attaches the full contract.
|
|
170
|
+
after a compaction re-attaches the full contract.
|
|
169
171
|
|
|
170
|
-
session
|
|
172
|
+
``session`` is the harness's own session id from the hook payload. The
|
|
173
|
+
Egregore session file in the checkout is shared by every concurrent
|
|
174
|
+
session there and rewritten by each new one, so keying on it alone made
|
|
175
|
+
parallel sessions re-attach the full contract on every prompt."""
|
|
176
|
+
|
|
177
|
+
session = re.sub(r"[^A-Za-z0-9_.-]", "-", session or _session_id(root))[:120]
|
|
171
178
|
return (
|
|
172
179
|
root / ".egregore" / "runtime" / "observe"
|
|
173
180
|
/ f"actor-contract-{harness}-{session}.sent"
|
|
@@ -763,7 +770,8 @@ def _prompt_hook(args: argparse.Namespace) -> int:
|
|
|
763
770
|
args.limit,
|
|
764
771
|
)
|
|
765
772
|
else:
|
|
766
|
-
|
|
773
|
+
hook_session = str(payload.get("session_id") or "").strip() or None
|
|
774
|
+
marker = _actor_contract_marker_path(root, args.harness, hook_session)
|
|
767
775
|
full = not marker.exists()
|
|
768
776
|
additional_context = _actor_context_block(
|
|
769
777
|
runtime,
|