@sesamespace/hivemind 0.4.1 → 0.4.3

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 (35) hide show
  1. package/dist/README.md +116 -0
  2. package/dist/{chunk-VRDYBNAA.js → chunk-2OIRJFI5.js} +5 -2
  3. package/dist/{chunk-VRDYBNAA.js.map → chunk-2OIRJFI5.js.map} +1 -1
  4. package/dist/{chunk-O4CT7SDB.js → chunk-CGSXJVSS.js} +2 -2
  5. package/dist/chunk-GPI4RU7N.js +624 -0
  6. package/dist/chunk-GPI4RU7N.js.map +1 -0
  7. package/dist/{chunk-NLMP7MYR.js → chunk-O257FXSX.js} +2 -2
  8. package/dist/{chunk-4LHKQFQT.js → chunk-S3RVZBPZ.js} +2 -2
  9. package/dist/chunk-SJI2KAIN.js +131 -0
  10. package/dist/chunk-SJI2KAIN.js.map +1 -0
  11. package/dist/{chunk-WSOOI3AY.js → chunk-YHRGEWAZ.js} +735 -7
  12. package/dist/chunk-YHRGEWAZ.js.map +1 -0
  13. package/dist/commands/fleet.js +4 -3
  14. package/dist/commands/init.js +2 -1
  15. package/dist/commands/start.js +4 -3
  16. package/dist/commands/upgrade.js +7 -0
  17. package/dist/commands/upgrade.js.map +1 -0
  18. package/dist/config/TEAM-CHARTER.md +87 -0
  19. package/dist/config/default.toml +39 -0
  20. package/dist/index.js +3 -2
  21. package/dist/main.js +9 -132
  22. package/dist/main.js.map +1 -1
  23. package/dist/package.json +26 -0
  24. package/dist/start.js +2 -1
  25. package/dist/start.js.map +1 -1
  26. package/npm-package.json +1 -3
  27. package/package.json +3 -2
  28. package/packages/runtime/package.json +1 -1
  29. package/packages/runtime/src/config.ts +1 -1
  30. package/scripts/build-npm.sh +1 -3
  31. package/tsup.config.ts +2 -3
  32. package/dist/chunk-WSOOI3AY.js.map +0 -1
  33. /package/dist/{chunk-O4CT7SDB.js.map → chunk-CGSXJVSS.js.map} +0 -0
  34. /package/dist/{chunk-NLMP7MYR.js.map → chunk-O257FXSX.js.map} +0 -0
  35. /package/dist/{chunk-4LHKQFQT.js.map → chunk-S3RVZBPZ.js.map} +0 -0
@@ -0,0 +1,131 @@
1
+ // packages/cli/src/commands/upgrade.ts
2
+ import { execSync } from "child_process";
3
+ import { resolve } from "path";
4
+ import { existsSync, readFileSync } from "fs";
5
+ var PACKAGE_NAME = "@sesamespace/hivemind";
6
+ function getCurrentVersion() {
7
+ try {
8
+ const output = execSync(`npm ls -g ${PACKAGE_NAME} --json 2>/dev/null`, { encoding: "utf-8" });
9
+ const parsed = JSON.parse(output);
10
+ const deps = parsed.dependencies?.[PACKAGE_NAME];
11
+ if (deps?.version) return deps.version;
12
+ } catch {
13
+ }
14
+ const hivemindHome = process.env.HIVEMIND_HOME || resolve(process.env.HOME || "~", "hivemind");
15
+ const pkgPath = resolve(hivemindHome, "node_modules", PACKAGE_NAME, "package.json");
16
+ if (existsSync(pkgPath)) {
17
+ try {
18
+ return JSON.parse(readFileSync(pkgPath, "utf-8")).version;
19
+ } catch {
20
+ }
21
+ }
22
+ return "unknown";
23
+ }
24
+ function getLatestVersion(target) {
25
+ try {
26
+ const tag = target || "latest";
27
+ const output = execSync(`npm view ${PACKAGE_NAME}@${tag} version 2>/dev/null`, { encoding: "utf-8" });
28
+ return output.trim();
29
+ } catch {
30
+ throw new Error("Failed to check npm registry for latest version");
31
+ }
32
+ }
33
+ async function checkVersion(target) {
34
+ const current = getCurrentVersion();
35
+ const latest = target || getLatestVersion();
36
+ return {
37
+ current,
38
+ latest,
39
+ updateAvailable: current !== latest && current !== "unknown"
40
+ };
41
+ }
42
+ async function runUpgradeCommand(args) {
43
+ const checkOnly = args.includes("--check") || args.includes("-c");
44
+ const force = args.includes("--force") || args.includes("-f");
45
+ const dryRun = args.includes("--dry-run") || args.includes("-n");
46
+ const targetVersion = args.find((a) => !a.startsWith("-"));
47
+ if (args.includes("--help") || args.includes("-h")) {
48
+ printHelp();
49
+ return;
50
+ }
51
+ console.log(`
52
+ \u2566 \u2566\u2566\u2566 \u2566\u2554\u2550\u2557\u2554\u2566\u2557\u2566\u2554\u2557\u2554\u2554\u2566\u2557
53
+ \u2560\u2550\u2563\u2551\u255A\u2557\u2554\u255D\u2551\u2563 \u2551\u2551\u2551\u2551\u2551\u2551\u2551 \u2551\u2551
54
+ \u2569 \u2569\u2569 \u255A\u255D \u255A\u2550\u255D\u2569 \u2569\u2569\u255D\u255A\u255D\u2550\u2569\u255D
55
+ Agent Upgrade
56
+ `);
57
+ console.log("\u2192 Checking versions...");
58
+ const info = await checkVersion(targetVersion);
59
+ console.log(` Current: ${info.current}`);
60
+ console.log(` Latest: ${info.latest}`);
61
+ if (!info.updateAvailable && !force) {
62
+ console.log("\n \u2713 Already up to date!");
63
+ return;
64
+ }
65
+ if (info.updateAvailable) {
66
+ console.log(`
67
+ \u2B06 Update available: ${info.current} \u2192 ${info.latest}`);
68
+ }
69
+ if (checkOnly) {
70
+ return;
71
+ }
72
+ const target = targetVersion ? `${PACKAGE_NAME}@${targetVersion}` : `${PACKAGE_NAME}@latest`;
73
+ if (dryRun) {
74
+ console.log(`
75
+ \u2192 [dry-run] Would run: npm install -g ${target}`);
76
+ console.log("\u2192 [dry-run] Would restart the agent service");
77
+ return;
78
+ }
79
+ console.log(`
80
+ \u2192 Installing ${target}...`);
81
+ try {
82
+ execSync(`npm install -g ${target}`, { stdio: "inherit" });
83
+ console.log(" \u2713 Package updated");
84
+ } catch (err) {
85
+ console.error(` \u2717 npm install failed: ${err.message}`);
86
+ process.exit(1);
87
+ }
88
+ console.log("\n\u2192 Restarting agent...");
89
+ try {
90
+ const plistName = "com.hivemind.agent";
91
+ execSync(`launchctl list ${plistName} 2>/dev/null`, { encoding: "utf-8" });
92
+ execSync(`launchctl kickstart -k gui/$(id -u)/${plistName}`, { stdio: "inherit" });
93
+ console.log(" \u2713 Agent restarted via launchd");
94
+ } catch {
95
+ try {
96
+ execSync("pkill -f 'hivemind start'", { stdio: "inherit" });
97
+ console.log(" \u2713 Old process killed");
98
+ console.log(" ! Start the agent manually: hivemind start");
99
+ } catch {
100
+ console.log(" ! No running agent found \u2014 start manually: hivemind start");
101
+ }
102
+ }
103
+ const newVersion = getCurrentVersion();
104
+ console.log(`
105
+ \u2713 Upgrade complete: ${info.current} \u2192 ${newVersion}`);
106
+ }
107
+ function printHelp() {
108
+ console.log(`hivemind upgrade \u2014 Upgrade the Hivemind agent runtime
109
+
110
+ Usage: hivemind upgrade [version] [options]
111
+
112
+ Arguments:
113
+ version Target version (default: latest)
114
+
115
+ Options:
116
+ -c, --check Check for updates only (don't install)
117
+ -f, --force Force reinstall even if up to date
118
+ -n, --dry-run Show what would happen without doing it
119
+ -h, --help Show this help
120
+
121
+ Examples:
122
+ hivemind upgrade # Upgrade to latest
123
+ hivemind upgrade 0.3.0 # Upgrade to specific version
124
+ hivemind upgrade --check # Just check if update available
125
+ `);
126
+ }
127
+
128
+ export {
129
+ runUpgradeCommand
130
+ };
131
+ //# sourceMappingURL=chunk-SJI2KAIN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../packages/cli/src/commands/upgrade.ts"],"sourcesContent":["import { execSync } from \"child_process\";\nimport { resolve } from \"path\";\nimport { existsSync, readFileSync } from \"fs\";\n\nconst PACKAGE_NAME = \"@sesamespace/hivemind\";\n\ninterface VersionInfo {\n current: string;\n latest: string;\n updateAvailable: boolean;\n}\n\nfunction getCurrentVersion(): string {\n try {\n // Check the installed package version\n const output = execSync(`npm ls -g ${PACKAGE_NAME} --json 2>/dev/null`, { encoding: \"utf-8\" });\n const parsed = JSON.parse(output);\n const deps = parsed.dependencies?.[PACKAGE_NAME];\n if (deps?.version) return deps.version;\n } catch {\n // Fallback: read from the package.json in the hivemind dir\n }\n\n const hivemindHome = process.env.HIVEMIND_HOME || resolve(process.env.HOME || \"~\", \"hivemind\");\n const pkgPath = resolve(hivemindHome, \"node_modules\", PACKAGE_NAME, \"package.json\");\n if (existsSync(pkgPath)) {\n try {\n return JSON.parse(readFileSync(pkgPath, \"utf-8\")).version;\n } catch {\n // fall through\n }\n }\n\n return \"unknown\";\n}\n\nfunction getLatestVersion(target?: string): string {\n try {\n const tag = target || \"latest\";\n const output = execSync(`npm view ${PACKAGE_NAME}@${tag} version 2>/dev/null`, { encoding: \"utf-8\" });\n return output.trim();\n } catch {\n throw new Error(\"Failed to check npm registry for latest version\");\n }\n}\n\nasync function checkVersion(target?: string): Promise<VersionInfo> {\n const current = getCurrentVersion();\n const latest = target || getLatestVersion();\n return {\n current,\n latest,\n updateAvailable: current !== latest && current !== \"unknown\",\n };\n}\n\nexport async function runUpgradeCommand(args: string[]): Promise<void> {\n const checkOnly = args.includes(\"--check\") || args.includes(\"-c\");\n const force = args.includes(\"--force\") || args.includes(\"-f\");\n const dryRun = args.includes(\"--dry-run\") || args.includes(\"-n\");\n\n // Target version (optional positional arg)\n const targetVersion = args.find((a) => !a.startsWith(\"-\"));\n\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n printHelp();\n return;\n }\n\n console.log(`\n ╦ ╦╦╦ ╦╔═╗╔╦╗╦╔╗╔╔╦╗\n ╠═╣║╚╗╔╝║╣ ║║║║║║║ ║║\n ╩ ╩╩ ╚╝ ╚═╝╩ ╩╩╝╚╝═╩╝\n Agent Upgrade\n`);\n\n // --- Check versions ---\n console.log(\"→ Checking versions...\");\n const info = await checkVersion(targetVersion);\n console.log(` Current: ${info.current}`);\n console.log(` Latest: ${info.latest}`);\n\n if (!info.updateAvailable && !force) {\n console.log(\"\\n ✓ Already up to date!\");\n return;\n }\n\n if (info.updateAvailable) {\n console.log(`\\n ⬆ Update available: ${info.current} → ${info.latest}`);\n }\n\n if (checkOnly) {\n return;\n }\n\n // --- Perform upgrade ---\n const target = targetVersion ? `${PACKAGE_NAME}@${targetVersion}` : `${PACKAGE_NAME}@latest`;\n\n if (dryRun) {\n console.log(`\\n→ [dry-run] Would run: npm install -g ${target}`);\n console.log(\"→ [dry-run] Would restart the agent service\");\n return;\n }\n\n console.log(`\\n→ Installing ${target}...`);\n try {\n execSync(`npm install -g ${target}`, { stdio: \"inherit\" });\n console.log(\" ✓ Package updated\");\n } catch (err) {\n console.error(` ✗ npm install failed: ${(err as Error).message}`);\n process.exit(1);\n }\n\n // --- Restart agent ---\n console.log(\"\\n→ Restarting agent...\");\n try {\n // Try launchctl first (macOS service)\n const plistName = \"com.hivemind.agent\";\n execSync(`launchctl list ${plistName} 2>/dev/null`, { encoding: \"utf-8\" });\n // Service exists — restart it\n execSync(`launchctl kickstart -k gui/$(id -u)/${plistName}`, { stdio: \"inherit\" });\n console.log(\" ✓ Agent restarted via launchd\");\n } catch {\n // No launchd service — try finding and restarting the process\n try {\n execSync(\"pkill -f 'hivemind start'\", { stdio: \"inherit\" });\n console.log(\" ✓ Old process killed\");\n console.log(\" ! Start the agent manually: hivemind start\");\n } catch {\n console.log(\" ! No running agent found — start manually: hivemind start\");\n }\n }\n\n // --- Verify ---\n const newVersion = getCurrentVersion();\n console.log(`\\n ✓ Upgrade complete: ${info.current} → ${newVersion}`);\n}\n\nfunction printHelp(): void {\n console.log(`hivemind upgrade — Upgrade the Hivemind agent runtime\n\nUsage: hivemind upgrade [version] [options]\n\nArguments:\n version Target version (default: latest)\n\nOptions:\n -c, --check Check for updates only (don't install)\n -f, --force Force reinstall even if up to date\n -n, --dry-run Show what would happen without doing it\n -h, --help Show this help\n\nExamples:\n hivemind upgrade # Upgrade to latest\n hivemind upgrade 0.3.0 # Upgrade to specific version\n hivemind upgrade --check # Just check if update available\n`);\n}\n"],"mappings":"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","names":[]}