create-egregore 0.18.12 → 0.18.13
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 +18 -18
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// egregore-launcher-version: 0.5.
|
|
2
|
+
// egregore-launcher-version: 0.5.26
|
|
3
3
|
//
|
|
4
4
|
// egregore — launch and browse Egregore instances from your terminal.
|
|
5
5
|
// Installed by create-egregore. Reads ~/.egregore/instances.json.
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
// full-screen browser with filter, preview, and inline actions.
|
|
10
10
|
//
|
|
11
11
|
// Subcommands:
|
|
12
|
-
// egregore pick an instance, then pick
|
|
13
|
-
// egregore <slug|name> pick
|
|
12
|
+
// egregore pick an instance, then pick a harness
|
|
13
|
+
// egregore <slug|name> pick a harness for the matching instance
|
|
14
14
|
// egregore ls | list list instances (non-interactive table)
|
|
15
15
|
// egregore use <slug> set the default for bare `egregore`
|
|
16
16
|
// egregore /invite <user> invite a GitHub user to an instance
|
|
@@ -30,7 +30,7 @@ const https = require("node:https");
|
|
|
30
30
|
const { spawnSync, spawn } = require("node:child_process");
|
|
31
31
|
const readline = require("node:readline");
|
|
32
32
|
|
|
33
|
-
const VERSION = "0.5.
|
|
33
|
+
const VERSION = "0.5.26";
|
|
34
34
|
const REGISTRY = path.join(os.homedir(), ".egregore", "instances.json");
|
|
35
35
|
const DEFAULT_FILE = path.join(os.homedir(), ".egregore", "default");
|
|
36
36
|
const PUBLIC_NPX_PACKAGE = "create-egregore";
|
|
@@ -425,7 +425,7 @@ function runtimePickerLines(inst, runtimes, stored, cursor) {
|
|
|
425
425
|
const lines = [
|
|
426
426
|
"",
|
|
427
427
|
` ${DIM}↑↓${RESET} navigate · ${DIM}enter${RESET} select · ${DIM}1-${runtimes.length}${RESET} quick select · ${DIM}esc${RESET} cancel`,
|
|
428
|
-
` ${CYAN}◆${RESET} ${BOLD}Launch ${title} with which
|
|
428
|
+
` ${CYAN}◆${RESET} ${BOLD}Launch ${title} with which harness?${RESET}`,
|
|
429
429
|
"",
|
|
430
430
|
];
|
|
431
431
|
|
|
@@ -438,7 +438,7 @@ function runtimePickerLines(inst, runtimes, stored, cursor) {
|
|
|
438
438
|
}
|
|
439
439
|
// Coming-soon harnesses — shown for visibility, not selectable yet.
|
|
440
440
|
for (const soon of ["Hermes", "Pi"]) {
|
|
441
|
-
lines.push(` ${DIM}· ${
|
|
441
|
+
lines.push(` ${DIM}· ${soon} — Coming Soon${RESET}`);
|
|
442
442
|
}
|
|
443
443
|
lines.push("");
|
|
444
444
|
return lines;
|
|
@@ -606,7 +606,7 @@ async function renderCodexStartupCard(egregoreDir) {
|
|
|
606
606
|
|
|
607
607
|
function codexSupportMessage(egregoreDir) {
|
|
608
608
|
return [
|
|
609
|
-
"Codex
|
|
609
|
+
"Codex harness support is missing from this Egregore checkout.",
|
|
610
610
|
` path: ${egregoreDir}`,
|
|
611
611
|
"",
|
|
612
612
|
"This checkout needs a newer Egregore core with:",
|
|
@@ -815,9 +815,9 @@ function cmdHelp() {
|
|
|
815
815
|
` ${BOLD}${CYAN}egregore${RESET} ${DIM}launch and browse Egregore instances${RESET}`,
|
|
816
816
|
``,
|
|
817
817
|
` ${BOLD}USAGE${RESET}`,
|
|
818
|
-
` ${CYAN}egregore${RESET} pick an instance, then pick
|
|
819
|
-
` ${CYAN}egregore${RESET} ${DIM}<slug|name>${RESET} pick
|
|
820
|
-
` ${CYAN}egregore --runtime${RESET} ${DIM}<name> <slug>${RESET} advanced
|
|
818
|
+
` ${CYAN}egregore${RESET} pick an instance, then pick a harness`,
|
|
819
|
+
` ${CYAN}egregore${RESET} ${DIM}<slug|name>${RESET} pick a harness for the matching instance`,
|
|
820
|
+
` ${CYAN}egregore --runtime${RESET} ${DIM}<name> <slug>${RESET} advanced harness override`,
|
|
821
821
|
` ${CYAN}egregore browse${RESET} force the full-screen browser`,
|
|
822
822
|
` ${CYAN}egregore ls${RESET} ${DIM}| list${RESET} list installed instances`,
|
|
823
823
|
` ${CYAN}egregore use${RESET} ${DIM}<slug>${RESET} set the default for bare ${BOLD}egregore${RESET}`,
|
|
@@ -1405,11 +1405,11 @@ function renderHeroPanel({ selected, pv, width, height, countSuffix, filter, fil
|
|
|
1405
1405
|
`${BOLD}Available Skills${RESET}`,
|
|
1406
1406
|
...skillGroups,
|
|
1407
1407
|
"",
|
|
1408
|
-
`${BOLD}
|
|
1408
|
+
`${BOLD}Harnesses${RESET}`,
|
|
1409
1409
|
`${DIM}claude-code${RESET}: ${commandExists("claude") ? "installed" : "not installed"}`,
|
|
1410
1410
|
`${DIM}codex${RESET}: ${commandExists("codex") ? "installed" : "not installed"}`,
|
|
1411
|
-
`${DIM}
|
|
1412
|
-
`${DIM}
|
|
1411
|
+
`${DIM}Hermes — Coming Soon${RESET}`,
|
|
1412
|
+
`${DIM}Pi — Coming Soon${RESET}`,
|
|
1413
1413
|
];
|
|
1414
1414
|
const rows = Math.max(EGREGORE_SIGIL.length + 2, right.length);
|
|
1415
1415
|
for (let i = 0; i < rows; i++) {
|
|
@@ -1421,7 +1421,7 @@ function renderHeroPanel({ selected, pv, width, height, countSuffix, filter, fil
|
|
|
1421
1421
|
lines.push(boxLine(`${BOLD}Available Skills${RESET}`, innerWidth, margin));
|
|
1422
1422
|
for (const group of skillGroups) lines.push(boxLine(group, innerWidth, margin));
|
|
1423
1423
|
lines.push(emptyBoxLine(innerWidth, margin));
|
|
1424
|
-
lines.push(boxLine(`${BOLD}
|
|
1424
|
+
lines.push(boxLine(`${BOLD}Harnesses${RESET} ${DIM}claude-code${RESET} ${commandExists("claude") ? "installed" : "missing"} · ${DIM}codex${RESET} ${commandExists("codex") ? "installed" : "missing"} · ${DIM}Hermes/Pi — Coming Soon${RESET}`, innerWidth, margin));
|
|
1425
1425
|
}
|
|
1426
1426
|
|
|
1427
1427
|
lines.push(emptyBoxLine(innerWidth, margin));
|
|
@@ -1440,7 +1440,7 @@ function renderRuntimePanel({ inst, cursor, width, height }) {
|
|
|
1440
1440
|
const outerWidth = Math.min(Math.max(50, width - 2), 126);
|
|
1441
1441
|
const innerWidth = Math.max(48, outerWidth - 2);
|
|
1442
1442
|
const margin = " ".repeat(Math.max(0, Math.floor((width - outerWidth) / 2)));
|
|
1443
|
-
const label = "
|
|
1443
|
+
const label = " harness ";
|
|
1444
1444
|
const lines = [
|
|
1445
1445
|
`${margin}${DIM}┌${"─".repeat(2)}${label}${"─".repeat(Math.max(0, innerWidth - label.length - 2))}┐${RESET}`,
|
|
1446
1446
|
emptyBoxLine(innerWidth, margin),
|
|
@@ -1459,7 +1459,7 @@ function renderRuntimePanel({ inst, cursor, width, height }) {
|
|
|
1459
1459
|
}
|
|
1460
1460
|
// Coming-soon harnesses — shown for visibility, not selectable yet.
|
|
1461
1461
|
for (const soon of ["Hermes", "Pi"]) {
|
|
1462
|
-
lines.push(boxLine(`${DIM}· ${
|
|
1462
|
+
lines.push(boxLine(`${DIM}· ${soon} — Coming Soon${RESET}`, innerWidth, margin));
|
|
1463
1463
|
}
|
|
1464
1464
|
|
|
1465
1465
|
lines.push(emptyBoxLine(innerWidth, margin));
|
|
@@ -1503,7 +1503,7 @@ async function browser(args = {}) {
|
|
|
1503
1503
|
const newAction = {
|
|
1504
1504
|
action: "new",
|
|
1505
1505
|
label: "Set up a new Egregore",
|
|
1506
|
-
description: "guided install, Telegram, invite,
|
|
1506
|
+
description: "guided install, Telegram, invite, harness setup",
|
|
1507
1507
|
};
|
|
1508
1508
|
|
|
1509
1509
|
const visible = () => {
|
|
@@ -1651,7 +1651,7 @@ async function browser(args = {}) {
|
|
|
1651
1651
|
const label = (k) => `${DIM}${pad(k, 10)}${RESET}`;
|
|
1652
1652
|
previewLines.push(` ${label("action")} ${BOLD}Set up a new Egregore${RESET}`);
|
|
1653
1653
|
previewLines.push(` ${label("flow")} guided install, Telegram, invite, ready/start`);
|
|
1654
|
-
previewLines.push(` ${label("
|
|
1654
|
+
previewLines.push(` ${label("harness")} choose Claude Code or Codex during setup`);
|
|
1655
1655
|
previewLines.push(` ${label("start")} press enter to begin`);
|
|
1656
1656
|
} else if (!selected) {
|
|
1657
1657
|
previewLines.push(`${DIM} (no selection)${RESET}`);
|
package/package.json
CHANGED