@legioncodeinc/hive 0.5.0 → 0.6.0
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/README.md +2 -0
- package/dist/cli-commands.d.ts +20 -0
- package/dist/cli-commands.js +93 -2
- package/dist/cli-commands.js.map +1 -1
- package/dist/cli.js +8 -2
- package/dist/cli.js.map +1 -1
- package/dist/daemon/dashboard/app.js +9 -9
- package/dist/daemon/installer/manifest-snapshot.json +5 -5
- package/dist/dashboard/web/onboarding/login-step.js +25 -13
- package/dist/dashboard/web/onboarding/login-step.js.map +1 -1
- package/dist/dashboard/web/setup-gate.js +11 -1
- package/dist/dashboard/web/setup-gate.js.map +1 -1
- package/dist/dashboard/web/wire.d.ts +2 -2
- package/dist/install/registry.d.ts +6 -0
- package/dist/install/registry.js +68 -1
- package/dist/install/registry.js.map +1 -1
- package/dist/install/state-dir.d.ts +11 -0
- package/dist/install/state-dir.js +40 -0
- package/dist/install/state-dir.js.map +1 -0
- package/dist/service/commands.d.ts +1 -0
- package/dist/service/commands.js +10 -0
- package/dist/service/commands.js.map +1 -1
- package/dist/service/index.d.ts +25 -1
- package/dist/service/index.js +146 -6
- package/dist/service/index.js.map +1 -1
- package/dist/shared/fleet-readiness.js +13 -2
- package/dist/shared/fleet-readiness.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -157,8 +157,10 @@ The `hive` binary keeps a deliberately small surface. It's a portal daemon, not
|
|
|
157
157
|
|
|
158
158
|
```bash
|
|
159
159
|
hive start # run the portal daemon on :3853 (the default verb)
|
|
160
|
+
hive stop # stop the portal daemon (service manager or direct SIGTERM)
|
|
160
161
|
hive install-service # install the OS service unit (launchd / systemd / schtasks)
|
|
161
162
|
hive uninstall-service # remove the service unit
|
|
163
|
+
hive uninstall # stop, remove service, registry entry, and hive state dir
|
|
162
164
|
hive register # append Hive to Doctor's daemon registry
|
|
163
165
|
```
|
|
164
166
|
|
package/dist/cli-commands.d.ts
CHANGED
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { type StartHiveOptions } from "./daemon/server.js";
|
|
15
15
|
import { type RegistryUpsertOptions } from "./install/registry.js";
|
|
16
|
+
import { type StateDirFs } from "./install/state-dir.js";
|
|
16
17
|
import { type ServiceModule } from "./service/index.js";
|
|
18
|
+
import { type FleetRootDeps } from "./shared/apiary-root.js";
|
|
17
19
|
import { type EmitDeps } from "./telemetry/emit.js";
|
|
18
20
|
/** A sink for user-facing output lines (defaults to `process.stdout`). */
|
|
19
21
|
export type OutputWriter = (text: string) => void;
|
|
@@ -39,3 +41,21 @@ export interface RegisterCommandDeps {
|
|
|
39
41
|
readonly out?: OutputWriter;
|
|
40
42
|
}
|
|
41
43
|
export declare function runRegisterCommand(deps?: RegisterCommandDeps): Promise<number>;
|
|
44
|
+
/** Injectable deps for the `stop` verb. */
|
|
45
|
+
export interface StopCommandDeps {
|
|
46
|
+
readonly service?: ServiceModule;
|
|
47
|
+
readonly fleetRoot?: FleetRootDeps;
|
|
48
|
+
readonly pidPath?: string;
|
|
49
|
+
readonly readPid?: (path: string) => number | null;
|
|
50
|
+
readonly isPidAlive?: (pid: number) => boolean;
|
|
51
|
+
readonly kill?: (pid: number, signal: NodeJS.Signals) => void;
|
|
52
|
+
readonly out?: OutputWriter;
|
|
53
|
+
}
|
|
54
|
+
export declare function runStopCommand(cliEntryPath: string, deps?: StopCommandDeps): Promise<number>;
|
|
55
|
+
/** Injectable deps for the `uninstall` verb. */
|
|
56
|
+
export interface UninstallCommandDeps extends ServiceCommandDeps {
|
|
57
|
+
readonly fleetRoot?: FleetRootDeps;
|
|
58
|
+
readonly stateDirFs?: StateDirFs;
|
|
59
|
+
readonly stop?: (cliEntryPath: string) => Promise<number>;
|
|
60
|
+
}
|
|
61
|
+
export declare function runUninstallCommand(cliEntryPath: string, deps?: UninstallCommandDeps): Promise<number>;
|
package/dist/cli-commands.js
CHANGED
|
@@ -12,8 +12,11 @@
|
|
|
12
12
|
* A telemetry failure NEVER changes a verb's exit code: emit helpers resolve, never reject.
|
|
13
13
|
*/
|
|
14
14
|
import { startHive } from "./daemon/server.js";
|
|
15
|
-
import { registerHiveWithDoctor } from "./install/registry.js";
|
|
15
|
+
import { deleteHiveFromDoctor, registerHiveWithDoctor, registryContainsHiveEntry } from "./install/registry.js";
|
|
16
|
+
import { hiveStateDirExists, removeHiveStateDir } from "./install/state-dir.js";
|
|
16
17
|
import { createServiceModule } from "./service/index.js";
|
|
18
|
+
import { isPidAlive, readPidFile } from "./lock.js";
|
|
19
|
+
import { resolveHivePidPath } from "./shared/apiary-root.js";
|
|
17
20
|
import { emitInstalled, emitUninstalled, recordStartLifecycle } from "./telemetry/emit.js";
|
|
18
21
|
const defaultOut = (text) => {
|
|
19
22
|
process.stdout.write(text);
|
|
@@ -63,7 +66,9 @@ export async function runUninstallServiceCommand(cliEntryPath, deps = {}) {
|
|
|
63
66
|
const result = await service.uninstall();
|
|
64
67
|
out(`${result.message}\n`);
|
|
65
68
|
await uninstallTelemetry;
|
|
66
|
-
|
|
69
|
+
// M-2 / b-AC-6: the current unit having already been absent is a friendly no-op,
|
|
70
|
+
// not a failure - only a genuine deregister error should flip the exit code.
|
|
71
|
+
return result.ok || result.alreadyAbsent ? 0 : 1;
|
|
67
72
|
}
|
|
68
73
|
export async function runRegisterCommand(deps = {}) {
|
|
69
74
|
const out = deps.out ?? defaultOut;
|
|
@@ -73,4 +78,90 @@ export async function runRegisterCommand(deps = {}) {
|
|
|
73
78
|
: `Registered hive in ${registration.registryPath}\n`);
|
|
74
79
|
return 0;
|
|
75
80
|
}
|
|
81
|
+
function isHiveProcessRunning(deps) {
|
|
82
|
+
const pidPath = deps.pidPath ?? resolveHivePidPath(deps.fleetRoot);
|
|
83
|
+
const pid = (deps.readPid ?? readPidFile)(pidPath);
|
|
84
|
+
return pid !== null && (deps.isPidAlive ?? isPidAlive)(pid);
|
|
85
|
+
}
|
|
86
|
+
export async function runStopCommand(cliEntryPath, deps = {}) {
|
|
87
|
+
const out = deps.out ?? defaultOut;
|
|
88
|
+
const service = deps.service ?? createServiceModule({ execPath: cliEntryPath });
|
|
89
|
+
if (await service.isRegistered()) {
|
|
90
|
+
const result = await service.stop();
|
|
91
|
+
if (!result.ok && !isHiveProcessRunning(deps)) {
|
|
92
|
+
out("hive is not running.\n");
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
out(`${result.message}\n`);
|
|
96
|
+
return result.ok ? 0 : 1;
|
|
97
|
+
}
|
|
98
|
+
if (!isHiveProcessRunning(deps)) {
|
|
99
|
+
out("hive is not running.\n");
|
|
100
|
+
return 0;
|
|
101
|
+
}
|
|
102
|
+
const pidPath = deps.pidPath ?? resolveHivePidPath(deps.fleetRoot);
|
|
103
|
+
const pid = (deps.readPid ?? readPidFile)(pidPath);
|
|
104
|
+
if (pid === null) {
|
|
105
|
+
out("hive is not running.\n");
|
|
106
|
+
return 0;
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
(deps.kill ?? ((targetPid, signal) => process.kill(targetPid, signal)))(pid, "SIGTERM");
|
|
110
|
+
out(`Sent SIGTERM to hive (pid ${pid}).\n`);
|
|
111
|
+
return 0;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
out(`Could not stop hive: ${error instanceof Error ? error.message : "unknown error"}.\n`);
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
async function hiveHasInstallArtifacts(cliEntryPath, deps) {
|
|
119
|
+
const service = deps.service ?? createServiceModule({ execPath: cliEntryPath });
|
|
120
|
+
if (await service.isRegistered())
|
|
121
|
+
return true;
|
|
122
|
+
if (registryContainsHiveEntry(deps.registry))
|
|
123
|
+
return true;
|
|
124
|
+
if (hiveStateDirExists(deps.fleetRoot, deps.stateDirFs))
|
|
125
|
+
return true;
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
export async function runUninstallCommand(cliEntryPath, deps = {}) {
|
|
129
|
+
const out = deps.out ?? defaultOut;
|
|
130
|
+
if (!(await hiveHasInstallArtifacts(cliEntryPath, deps))) {
|
|
131
|
+
out("hive is not installed; nothing to remove.\n");
|
|
132
|
+
return 0;
|
|
133
|
+
}
|
|
134
|
+
const stop = deps.stop ?? ((entryPath) => runStopCommand(entryPath, deps));
|
|
135
|
+
const service = deps.service ?? createServiceModule({ execPath: cliEntryPath });
|
|
136
|
+
const uninstallTelemetry = emitUninstalled(deps.telemetry);
|
|
137
|
+
const stopCode = await stop(cliEntryPath);
|
|
138
|
+
out(stopCode === 0 ? "Stopped hive daemon.\n" : "Stop step reported an issue; continuing uninstall.\n");
|
|
139
|
+
const serviceResult = await service.uninstall();
|
|
140
|
+
out(`${serviceResult.message}\n`);
|
|
141
|
+
const registryResult = deleteHiveFromDoctor(deps.registry);
|
|
142
|
+
out(registryResult.removed
|
|
143
|
+
? `Removed hive from doctor registry (${registryResult.registryPaths.join(", ")}).\n`
|
|
144
|
+
: "No hive registry entry to remove.\n");
|
|
145
|
+
let stateRemoved = false;
|
|
146
|
+
try {
|
|
147
|
+
stateRemoved = removeHiveStateDir(deps.fleetRoot, deps.stateDirFs);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
out(`Could not remove hive state dir: ${error instanceof Error ? error.message : "unknown error"}.\n`);
|
|
151
|
+
await uninstallTelemetry;
|
|
152
|
+
return 1;
|
|
153
|
+
}
|
|
154
|
+
out(stateRemoved ? "Removed hive state dir.\n" : "No hive state dir to remove.\n");
|
|
155
|
+
await uninstallTelemetry;
|
|
156
|
+
// M-2 / b-AC-6: the current unit having already been absent (e.g. the stop step
|
|
157
|
+
// above already boot-ed it out on macOS) is a friendly no-op, not a failure.
|
|
158
|
+
// AC-9: never print the success line on the failure path - a contradictory
|
|
159
|
+
// "hive uninstalled." after a real deregister error hides the failure.
|
|
160
|
+
if (serviceResult.ok || serviceResult.alreadyAbsent) {
|
|
161
|
+
out("hive uninstalled.\n");
|
|
162
|
+
return 0;
|
|
163
|
+
}
|
|
164
|
+
out("hive uninstall completed with errors: the service unit may still be registered. Fix the error above and re-run 'hive uninstall'.\n");
|
|
165
|
+
return 1;
|
|
166
|
+
}
|
|
76
167
|
//# sourceMappingURL=cli-commands.js.map
|
package/dist/cli-commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-commands.js","sourceRoot":"","sources":["../src/cli-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAyB,MAAM,oBAAoB,CAAC;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"cli-commands.js","sourceRoot":"","sources":["../src/cli-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
import { runInstallServiceCommand, runRegisterCommand, runStartCommand, runUninstallServiceCommand } from "./cli-commands.js";
|
|
3
|
+
import { runInstallServiceCommand, runRegisterCommand, runStartCommand, runStopCommand, runUninstallCommand, runUninstallServiceCommand } from "./cli-commands.js";
|
|
4
4
|
import { DaemonAlreadyRunningError } from "./errors.js";
|
|
5
5
|
function printUsage() {
|
|
6
|
-
process.stderr.write("Usage: hive <start|install-service|uninstall-service|register>\n");
|
|
6
|
+
process.stderr.write("Usage: hive <start|stop|install-service|uninstall-service|uninstall|register>\n");
|
|
7
7
|
}
|
|
8
8
|
async function run() {
|
|
9
9
|
const command = process.argv[2] ?? "start";
|
|
@@ -13,12 +13,18 @@ async function run() {
|
|
|
13
13
|
case "start":
|
|
14
14
|
process.exitCode = await runStartCommand();
|
|
15
15
|
return;
|
|
16
|
+
case "stop":
|
|
17
|
+
process.exitCode = await runStopCommand(cliEntryPath);
|
|
18
|
+
return;
|
|
16
19
|
case "install-service":
|
|
17
20
|
process.exitCode = await runInstallServiceCommand(cliEntryPath);
|
|
18
21
|
return;
|
|
19
22
|
case "uninstall-service":
|
|
20
23
|
process.exitCode = await runUninstallServiceCommand(cliEntryPath);
|
|
21
24
|
return;
|
|
25
|
+
case "uninstall":
|
|
26
|
+
process.exitCode = await runUninstallCommand(cliEntryPath);
|
|
27
|
+
return;
|
|
22
28
|
case "register":
|
|
23
29
|
process.exitCode = await runRegisterCommand();
|
|
24
30
|
return;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExD,SAAS,UAAU;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExD,SAAS,UAAU;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;AAC1G,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,OAAO;gBACV,OAAO,CAAC,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;gBAC3C,OAAO;YACT,KAAK,MAAM;gBACT,OAAO,CAAC,QAAQ,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;gBACtD,OAAO;YACT,KAAK,iBAAiB;gBACpB,OAAO,CAAC,QAAQ,GAAG,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC;gBAChE,OAAO;YACT,KAAK,mBAAmB;gBACtB,OAAO,CAAC,QAAQ,GAAG,MAAM,0BAA0B,CAAC,YAAY,CAAC,CAAC;gBAClE,OAAO;YACT,KAAK,WAAW;gBACd,OAAO,CAAC,QAAQ,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAC3D,OAAO;YACT,KAAK,UAAU;gBACb,OAAO,CAAC,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBAC9C,OAAO;YACT;gBACE,UAAU,EAAE,CAAC;gBACb,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;QACX,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,GAAG,EAAE,CAAC"}
|