@hagicode/hagiscript 0.1.6 → 0.1.8
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 +144 -201
- package/bin/runtime +16 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/pm2-commands.d.ts +2 -0
- package/dist/commands/pm2-commands.js +54 -0
- package/dist/commands/pm2-commands.js.map +1 -0
- package/dist/commands/runtime-commands.d.ts +2 -0
- package/dist/commands/runtime-commands.js +136 -0
- package/dist/commands/runtime-commands.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/command-launch.js +1 -0
- package/dist/runtime/command-launch.js.map +1 -1
- package/dist/runtime/pm2-manager.d.ts +54 -0
- package/dist/runtime/pm2-manager.js +258 -0
- package/dist/runtime/pm2-manager.js.map +1 -0
- package/dist/runtime/runtime-executor.d.ts +45 -0
- package/dist/runtime/runtime-executor.js +153 -0
- package/dist/runtime/runtime-executor.js.map +1 -0
- package/dist/runtime/runtime-manager.d.ts +79 -0
- package/dist/runtime/runtime-manager.js +651 -0
- package/dist/runtime/runtime-manager.js.map +1 -0
- package/dist/runtime/runtime-manifest.d.ts +77 -0
- package/dist/runtime/runtime-manifest.js +277 -0
- package/dist/runtime/runtime-manifest.js.map +1 -0
- package/dist/runtime/runtime-paths.d.ts +31 -0
- package/dist/runtime/runtime-paths.js +77 -0
- package/dist/runtime/runtime-paths.js.map +1 -0
- package/dist/runtime/runtime-state.d.ts +45 -0
- package/dist/runtime/runtime-state.js +82 -0
- package/dist/runtime/runtime-state.js.map +1 -0
- package/package.json +9 -5
- package/runtime/lib/runtime-script-lib.mjs +531 -0
- package/runtime/manifest.yaml +136 -0
- package/runtime/scripts/configure-code-server.mjs +14 -0
- package/runtime/scripts/configure-omniroute.mjs +16 -0
- package/runtime/scripts/install-code-server.mjs +53 -0
- package/runtime/scripts/install-dotnet.mjs +24 -0
- package/runtime/scripts/install-node.mjs +4 -0
- package/runtime/scripts/install-npm-packages.mjs +4 -0
- package/runtime/scripts/install-omniroute.mjs +60 -0
- package/runtime/scripts/remove-npm-packages.mjs +4 -0
- package/runtime/scripts/update-npm-packages.mjs +4 -0
- package/runtime/scripts/verify-dotnet.mjs +10 -0
- package/runtime/scripts/verify-node.mjs +4 -0
- package/runtime/templates/code-server-config.yaml +5 -0
- package/runtime/templates/omniroute-config.yaml +4 -0
- package/README_cn.md +0 -266
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { InvalidArgumentError } from "commander";
|
|
2
|
+
import { installRuntime, queryRuntimeState, removeRuntime, renderRuntimeStateText, updateRuntime } from "../runtime/runtime-manager.js";
|
|
3
|
+
export function registerRuntimeCommands(program) {
|
|
4
|
+
const runtime = program
|
|
5
|
+
.command("runtime")
|
|
6
|
+
.description("manage manifest-driven hagicode-runtime components");
|
|
7
|
+
runtime
|
|
8
|
+
.command("install")
|
|
9
|
+
.description("install runtime components into a managed runtime root")
|
|
10
|
+
.option("--from-manifest <path>", "override the default runtime manifest")
|
|
11
|
+
.option("--runtime-root <path>", "managed runtime root override")
|
|
12
|
+
.option("--components <list>", "comma-separated runtime component names to install", parseComponentList)
|
|
13
|
+
.option("--dry-run", "print the install plan without mutating managed files")
|
|
14
|
+
.option("--force", "force reinstall of mutable managed components")
|
|
15
|
+
.option("--verbose", "print detailed lifecycle output")
|
|
16
|
+
.action(async (options, command) => {
|
|
17
|
+
await runLifecycleCommand("install", options, command);
|
|
18
|
+
});
|
|
19
|
+
runtime
|
|
20
|
+
.command("remove")
|
|
21
|
+
.description("remove runtime components from the managed runtime root")
|
|
22
|
+
.option("--from-manifest <path>", "override the default runtime manifest")
|
|
23
|
+
.option("--runtime-root <path>", "managed runtime root override")
|
|
24
|
+
.option("--components <list>", "comma-separated runtime component names to remove", parseComponentList)
|
|
25
|
+
.option("--dry-run", "print the removal plan without mutating managed files")
|
|
26
|
+
.option("--force", "reserved compatibility flag for scripted removals")
|
|
27
|
+
.option("--purge", "remove retained managed config and data where supported")
|
|
28
|
+
.option("--verbose", "print detailed lifecycle output")
|
|
29
|
+
.action(async (options, command) => {
|
|
30
|
+
await runLifecycleCommand("remove", options, command);
|
|
31
|
+
});
|
|
32
|
+
runtime
|
|
33
|
+
.command("update")
|
|
34
|
+
.description("update installed runtime components")
|
|
35
|
+
.option("--from-manifest <path>", "override the default runtime manifest")
|
|
36
|
+
.option("--runtime-root <path>", "managed runtime root override")
|
|
37
|
+
.option("--components <list>", "comma-separated runtime component names to update", parseComponentList)
|
|
38
|
+
.option("--dry-run", "print the update plan without mutating managed files")
|
|
39
|
+
.option("--check-only", "report components that would be updated")
|
|
40
|
+
.option("--force", "force update execution for mutable managed components")
|
|
41
|
+
.option("--verbose", "print detailed lifecycle output")
|
|
42
|
+
.action(async (options, command) => {
|
|
43
|
+
await runLifecycleCommand("update", options, command);
|
|
44
|
+
});
|
|
45
|
+
runtime
|
|
46
|
+
.command("state")
|
|
47
|
+
.description("query the canonical managed runtime state")
|
|
48
|
+
.option("--from-manifest <path>", "override the default runtime manifest")
|
|
49
|
+
.option("--runtime-root <path>", "managed runtime root override")
|
|
50
|
+
.option("--json", "emit machine-readable JSON output")
|
|
51
|
+
.action(async (options, command) => {
|
|
52
|
+
try {
|
|
53
|
+
const report = await queryRuntimeState({
|
|
54
|
+
manifestPath: validatePathOption(options.fromManifest, "--from-manifest"),
|
|
55
|
+
runtimeRoot: validatePathOption(options.runtimeRoot, "--runtime-root")
|
|
56
|
+
});
|
|
57
|
+
process.stdout.write(options.json
|
|
58
|
+
? `${JSON.stringify(report, null, 2)}\n`
|
|
59
|
+
: `${renderRuntimeStateText(report)}\n`);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
command.error(formatRuntimeError(error), { exitCode: 1 });
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async function runLifecycleCommand(phase, options, command) {
|
|
67
|
+
const runtimeOptions = {
|
|
68
|
+
manifestPath: validatePathOption(options.fromManifest, "--from-manifest"),
|
|
69
|
+
runtimeRoot: validatePathOption(options.runtimeRoot, "--runtime-root"),
|
|
70
|
+
components: options.components ?? [],
|
|
71
|
+
dryRun: options.dryRun ?? false,
|
|
72
|
+
force: options.force ?? false,
|
|
73
|
+
purge: "purge" in options ? options.purge ?? false : false,
|
|
74
|
+
checkOnly: "checkOnly" in options ? options.checkOnly ?? false : false,
|
|
75
|
+
verbose: options.verbose ?? false,
|
|
76
|
+
logger: (message) => process.stdout.write(`${message}\n`)
|
|
77
|
+
};
|
|
78
|
+
try {
|
|
79
|
+
const result = phase === "install"
|
|
80
|
+
? await installRuntime(runtimeOptions)
|
|
81
|
+
: phase === "remove"
|
|
82
|
+
? await removeRuntime(runtimeOptions)
|
|
83
|
+
: await updateRuntime(runtimeOptions);
|
|
84
|
+
printLifecycleSummary(phase, runtimeOptions, result);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
command.error(formatRuntimeError(error), { exitCode: 1 });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function parseComponentList(value) {
|
|
91
|
+
const components = value
|
|
92
|
+
.split(",")
|
|
93
|
+
.map((item) => item.trim())
|
|
94
|
+
.filter(Boolean);
|
|
95
|
+
if (components.length === 0) {
|
|
96
|
+
throw new InvalidArgumentError("--components must include at least one component name.");
|
|
97
|
+
}
|
|
98
|
+
return Array.from(new Set(components));
|
|
99
|
+
}
|
|
100
|
+
function validatePathOption(value, optionName) {
|
|
101
|
+
if (value === undefined) {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
const normalized = value.trim();
|
|
105
|
+
if (!normalized) {
|
|
106
|
+
throw new InvalidArgumentError(`${optionName} must be a non-empty path.`);
|
|
107
|
+
}
|
|
108
|
+
if (normalized.includes("\0")) {
|
|
109
|
+
throw new InvalidArgumentError(`${optionName} contains an invalid null byte.`);
|
|
110
|
+
}
|
|
111
|
+
return normalized;
|
|
112
|
+
}
|
|
113
|
+
function printLifecycleSummary(phase, options, result) {
|
|
114
|
+
const modeSuffix = options.dryRun || (phase === "update" && options.checkOnly)
|
|
115
|
+
? options.checkOnly
|
|
116
|
+
? " (check-only)"
|
|
117
|
+
: " (dry-run)"
|
|
118
|
+
: "";
|
|
119
|
+
process.stdout.write(`Runtime ${phase} complete${modeSuffix}.\n`);
|
|
120
|
+
process.stdout.write(`Manifest: ${result.manifest.manifestPath}\n`);
|
|
121
|
+
process.stdout.write(`Managed root: ${result.paths.root}\n`);
|
|
122
|
+
process.stdout.write(`Planned components: ${result.plan.length}\n`);
|
|
123
|
+
process.stdout.write(`Changed components: ${result.changedComponents.length}\n`);
|
|
124
|
+
if (result.skipped.length > 0) {
|
|
125
|
+
for (const skipped of result.skipped) {
|
|
126
|
+
process.stdout.write(`Skipped: ${skipped.componentName} (${skipped.reason})\n`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (result.logFilePath) {
|
|
130
|
+
process.stdout.write(`Log: ${result.logFilePath}\n`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function formatRuntimeError(error) {
|
|
134
|
+
return error instanceof Error ? error.message : String(error);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=runtime-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-commands.js","sourceRoot":"","sources":["../../src/commands/runtime-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,3 +9,9 @@ export { getDefaultManagedNodeRuntimeDirectory, installNodeRuntime, resolveManag
|
|
|
9
9
|
export { verifyNodeRuntime, type NodeRuntimeVerificationResult } from "./runtime/node-verify.js";
|
|
10
10
|
export { createNpmSyncPlan, loadNpmSyncManifest, normalizeGlobalInventory, syncNpmGlobals, validateNpmSyncManifest, type InstalledGlobalPackages, type NpmSyncActionKind, type NpmSyncActionResult, type NpmSyncCommandKind, type NpmSyncFallbackEvent, type NpmSyncFallbackPolicy, type NpmSyncManifest, type NpmSyncManifestEntry, type NpmSyncPlannedAction, type NpmSyncRuntimeMetadata, type NpmSyncSummary } from "./runtime/npm-sync.js";
|
|
11
11
|
export { buildToolSyncPackageSet, builtInToolSyncCatalog, normalizeToolSyncEntry, validateToolSyncCatalog, type CustomAgentCliToolInput, type ToolSyncCatalogEntry, type ToolSyncGroupId, type ToolSyncPackageConstraint, type ToolSyncRequirement, type ToolSyncSelection } from "./runtime/tool-sync-catalog.js";
|
|
12
|
+
export { getDefaultRuntimeManifestPath, loadRuntimeManifest, type LoadedRuntimeManifest, type RuntimeComponentDefinition, type RuntimeLifecyclePhase, type RuntimeManifestPaths } from "./runtime/runtime-manifest.js";
|
|
13
|
+
export { defaultRuntimeRoot, getComponentConfigDirectory, getComponentLogsDirectory, getComponentManagedRoot, getComponentPm2Home, getComponentRuntimeDataHome, resolveRuntimePaths, type ResolvedRuntimePaths } from "./runtime/runtime-paths.js";
|
|
14
|
+
export { createInitialRuntimeState, mergeRuntimeState, readRuntimeState, writeRuntimeState, type RuntimeComponentState, type RuntimeOperationState, type RuntimeState } from "./runtime/runtime-state.js";
|
|
15
|
+
export { renderManagedPm2StatusText, resolveManagedPm2ServiceDefinition, runManagedPm2Command, supportedPm2Services, type ManagedPm2Action, type ManagedPm2CommandResult, type ManagedPm2CommandOptions, type ManagedPm2ServiceName, type ManagedPm2Status, type ResolvedManagedPm2ServiceDefinition } from "./runtime/pm2-manager.js";
|
|
16
|
+
export { buildManagedRuntimeEnvironment, getManagedNpmBinDirectory, getManagedRuntimePathEntries, prependPathEntries } from "./runtime/runtime-executor.js";
|
|
17
|
+
export { installRuntime, planRuntimeLifecycle, queryRuntimeState, removeRuntime, renderRuntimeStateText, runRuntimeLifecycle, updateRuntime, type RuntimeLifecycleOptions, type RuntimeLifecycleResult, type RuntimePlannedAction, type RuntimeStateReport } from "./runtime/runtime-manager.js";
|
package/dist/index.js
CHANGED
|
@@ -11,4 +11,10 @@ export { getDefaultManagedNodeRuntimeDirectory, installNodeRuntime, resolveManag
|
|
|
11
11
|
export { verifyNodeRuntime } from "./runtime/node-verify.js";
|
|
12
12
|
export { createNpmSyncPlan, loadNpmSyncManifest, normalizeGlobalInventory, syncNpmGlobals, validateNpmSyncManifest } from "./runtime/npm-sync.js";
|
|
13
13
|
export { buildToolSyncPackageSet, builtInToolSyncCatalog, normalizeToolSyncEntry, validateToolSyncCatalog } from "./runtime/tool-sync-catalog.js";
|
|
14
|
+
export { getDefaultRuntimeManifestPath, loadRuntimeManifest } from "./runtime/runtime-manifest.js";
|
|
15
|
+
export { defaultRuntimeRoot, getComponentConfigDirectory, getComponentLogsDirectory, getComponentManagedRoot, getComponentPm2Home, getComponentRuntimeDataHome, resolveRuntimePaths } from "./runtime/runtime-paths.js";
|
|
16
|
+
export { createInitialRuntimeState, mergeRuntimeState, readRuntimeState, writeRuntimeState } from "./runtime/runtime-state.js";
|
|
17
|
+
export { renderManagedPm2StatusText, resolveManagedPm2ServiceDefinition, runManagedPm2Command, supportedPm2Services } from "./runtime/pm2-manager.js";
|
|
18
|
+
export { buildManagedRuntimeEnvironment, getManagedNpmBinDirectory, getManagedRuntimePathEntries, prependPathEntries } from "./runtime/runtime-executor.js";
|
|
19
|
+
export { installRuntime, planRuntimeLifecycle, queryRuntimeState, removeRuntime, renderRuntimeStateText, runRuntimeLifecycle, updateRuntime } from "./runtime/runtime-manager.js";
|
|
14
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EAEf,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,WAAW;QACX,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,YAAY;KACrB,CAAC;AACJ,CAAC;AAED,OAAO,EACL,qCAAqC,EACrC,kBAAkB,EAClB,yBAAyB,EAG1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EAYxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EAOxB,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EAEf,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,WAAW;QACX,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,YAAY;KACrB,CAAC;AACJ,CAAC;AAED,OAAO,EACL,qCAAqC,EACrC,kBAAkB,EAClB,yBAAyB,EAG1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EAYxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EAOxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,EAKpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAIlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,oBAAoB,EACpB,oBAAoB,EAOrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,4BAA4B,EAC5B,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EAKd,MAAM,8BAA8B,CAAC"}
|
|
@@ -19,6 +19,7 @@ export function normalizeCommandPath(commandPath) {
|
|
|
19
19
|
return trimmed;
|
|
20
20
|
}
|
|
21
21
|
export function requiresShellLaunch(_commandPath, _platform = process.platform) {
|
|
22
|
+
void _platform;
|
|
22
23
|
// Execa already handles Windows command shims without a shell wrapper.
|
|
23
24
|
// Keeping direct execution preserves argv boundaries for paths with spaces.
|
|
24
25
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-launch.js","sourceRoot":"","sources":["../../src/runtime/command-launch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-launch.js","sourceRoot":"","sources":["../../src/runtime/command-launch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { CommandRunner } from "./command-launch.js";
|
|
2
|
+
import { type LoadedRuntimeManifest, type RuntimeComponentDefinition } from "./runtime-manifest.js";
|
|
3
|
+
import { type ResolvedRuntimePaths } from "./runtime-paths.js";
|
|
4
|
+
export declare const supportedPm2Services: readonly ["omniroute", "code-server"];
|
|
5
|
+
export type ManagedPm2ServiceName = (typeof supportedPm2Services)[number];
|
|
6
|
+
export type ManagedPm2Action = "start" | "stop" | "status";
|
|
7
|
+
export type ManagedPm2Status = "online" | "stopped" | "errored" | "missing" | "unknown";
|
|
8
|
+
export interface ManagedPm2CommandOptions {
|
|
9
|
+
manifestPath?: string;
|
|
10
|
+
runtimeRoot?: string;
|
|
11
|
+
service: ManagedPm2ServiceName;
|
|
12
|
+
action: ManagedPm2Action;
|
|
13
|
+
runner?: CommandRunner;
|
|
14
|
+
}
|
|
15
|
+
export interface ResolvedManagedPm2ServiceDefinition {
|
|
16
|
+
service: ManagedPm2ServiceName;
|
|
17
|
+
component: RuntimeComponentDefinition;
|
|
18
|
+
manifestDir: string;
|
|
19
|
+
paths: ResolvedRuntimePaths;
|
|
20
|
+
appName: string;
|
|
21
|
+
cwd: string;
|
|
22
|
+
script: string;
|
|
23
|
+
args: string[];
|
|
24
|
+
env: Record<string, string>;
|
|
25
|
+
runtimeHome: string;
|
|
26
|
+
runtimeDataHome: string;
|
|
27
|
+
componentRoot: string;
|
|
28
|
+
componentConfigDir: string;
|
|
29
|
+
pm2Home: string;
|
|
30
|
+
pm2Binary: string;
|
|
31
|
+
nodePath: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ManagedPm2CommandResult {
|
|
34
|
+
service: ManagedPm2ServiceName;
|
|
35
|
+
action: ManagedPm2Action;
|
|
36
|
+
appName: string;
|
|
37
|
+
cwd: string;
|
|
38
|
+
script: string;
|
|
39
|
+
runtimeHome: string;
|
|
40
|
+
runtimeDataHome: string;
|
|
41
|
+
pm2Home: string;
|
|
42
|
+
pm2Binary: string;
|
|
43
|
+
exists: boolean;
|
|
44
|
+
status: ManagedPm2Status;
|
|
45
|
+
pid: number | null;
|
|
46
|
+
stdout: string;
|
|
47
|
+
stderr: string;
|
|
48
|
+
}
|
|
49
|
+
export declare class ManagedPm2Error extends Error {
|
|
50
|
+
constructor(message: string, options?: ErrorOptions);
|
|
51
|
+
}
|
|
52
|
+
export declare function runManagedPm2Command(options: ManagedPm2CommandOptions): Promise<ManagedPm2CommandResult>;
|
|
53
|
+
export declare function resolveManagedPm2ServiceDefinition(manifest: LoadedRuntimeManifest, paths: ResolvedRuntimePaths, service: ManagedPm2ServiceName): Promise<ResolvedManagedPm2ServiceDefinition>;
|
|
54
|
+
export declare function renderManagedPm2StatusText(result: ManagedPm2CommandResult): string;
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { access } from "node:fs/promises";
|
|
2
|
+
import { basename, extname, join } from "node:path";
|
|
3
|
+
import process from "node:process";
|
|
4
|
+
import { runCommand } from "./command-launch.js";
|
|
5
|
+
import { buildManagedRuntimeEnvironment, } from "./runtime-executor.js";
|
|
6
|
+
import { getRuntimeExecutablePaths } from "./node-verify.js";
|
|
7
|
+
import { loadRuntimeManifest } from "./runtime-manifest.js";
|
|
8
|
+
import { getComponentConfigDirectory, getComponentManagedRoot, getComponentPm2Home, getComponentRuntimeDataHome, resolveManagedPath, resolveRuntimePaths } from "./runtime-paths.js";
|
|
9
|
+
export const supportedPm2Services = ["omniroute", "code-server"];
|
|
10
|
+
export class ManagedPm2Error extends Error {
|
|
11
|
+
constructor(message, options) {
|
|
12
|
+
super(message, options);
|
|
13
|
+
this.name = "ManagedPm2Error";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export async function runManagedPm2Command(options) {
|
|
17
|
+
const manifest = await loadRuntimeManifest({ manifestPath: options.manifestPath });
|
|
18
|
+
const paths = resolveRuntimePaths(manifest, { runtimeRoot: options.runtimeRoot });
|
|
19
|
+
const definition = await resolveManagedPm2ServiceDefinition(manifest, paths, options.service);
|
|
20
|
+
const runner = options.runner ?? runCommand;
|
|
21
|
+
switch (options.action) {
|
|
22
|
+
case "start":
|
|
23
|
+
await runPm2(definition, buildPm2StartArgs(definition), runner);
|
|
24
|
+
return readManagedPm2Status(definition, "start", runner);
|
|
25
|
+
case "stop":
|
|
26
|
+
await runPm2(definition, ["stop", definition.appName], runner);
|
|
27
|
+
return readManagedPm2Status(definition, "stop", runner);
|
|
28
|
+
case "status":
|
|
29
|
+
return readManagedPm2Status(definition, "status", runner);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export async function resolveManagedPm2ServiceDefinition(manifest, paths, service) {
|
|
33
|
+
assertSupportedPm2Service(service);
|
|
34
|
+
const component = manifest.componentMap.get(service);
|
|
35
|
+
if (!component) {
|
|
36
|
+
throw new ManagedPm2Error(`Runtime manifest does not define the ${service} service.`);
|
|
37
|
+
}
|
|
38
|
+
const componentRoot = getComponentManagedRoot(paths, component.name);
|
|
39
|
+
const runtimeDataHome = getComponentRuntimeDataHome(paths, component.name, component.runtimeDataDir);
|
|
40
|
+
const componentConfigDir = getComponentConfigDirectory(paths, component.name, component.runtimeDataDir);
|
|
41
|
+
const pm2Home = getComponentPm2Home(paths, component.name, component.runtimeDataDir, component.pm2?.pm2Home);
|
|
42
|
+
const script = resolveManagedPath(component.pm2?.script ?? defaultPm2Script(component.name), componentRoot);
|
|
43
|
+
const cwd = resolveManagedPath(component.pm2?.cwd ?? ".", componentRoot);
|
|
44
|
+
const nodePath = getRuntimeExecutablePaths(paths.nodeRuntime).nodePath;
|
|
45
|
+
const pm2Entrypoint = getManagedPm2Entrypoint(paths.npmPrefix);
|
|
46
|
+
await Promise.all([
|
|
47
|
+
validateManagedPath(script, `Managed launcher for ${service} is missing`),
|
|
48
|
+
validateManagedPath(cwd, `Managed working directory for ${service} is missing`),
|
|
49
|
+
validateManagedPath(pm2Entrypoint, "Managed PM2 binary is missing. Install the runtime npm-packages component first."),
|
|
50
|
+
validateManagedPath(nodePath, "Managed Node runtime is missing. Install the runtime node component first.")
|
|
51
|
+
]);
|
|
52
|
+
return {
|
|
53
|
+
service,
|
|
54
|
+
component,
|
|
55
|
+
manifestDir: manifest.manifestDir,
|
|
56
|
+
paths,
|
|
57
|
+
appName: component.pm2?.appName ?? `hagicode-${component.name}`,
|
|
58
|
+
cwd,
|
|
59
|
+
script,
|
|
60
|
+
args: component.pm2?.args ?? [],
|
|
61
|
+
env: component.pm2?.env ?? {},
|
|
62
|
+
runtimeHome: paths.runtimeHome,
|
|
63
|
+
runtimeDataHome,
|
|
64
|
+
componentRoot,
|
|
65
|
+
componentConfigDir,
|
|
66
|
+
pm2Home,
|
|
67
|
+
pm2Binary: pm2Entrypoint,
|
|
68
|
+
nodePath
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export function renderManagedPm2StatusText(result) {
|
|
72
|
+
return [
|
|
73
|
+
`Service: ${result.service}`,
|
|
74
|
+
`Action: ${result.action}`,
|
|
75
|
+
`App: ${result.appName}`,
|
|
76
|
+
`Status: ${result.status}`,
|
|
77
|
+
`Runtime home: ${result.runtimeHome}`,
|
|
78
|
+
`Runtime data home: ${result.runtimeDataHome}`,
|
|
79
|
+
`PM2 home: ${result.pm2Home}`,
|
|
80
|
+
`Script: ${result.script}`,
|
|
81
|
+
`Working directory: ${result.cwd}`,
|
|
82
|
+
`PM2 binary: ${result.pm2Binary}`,
|
|
83
|
+
`PID: ${result.pid ?? "n/a"}`
|
|
84
|
+
].join("\n");
|
|
85
|
+
}
|
|
86
|
+
function assertSupportedPm2Service(service) {
|
|
87
|
+
if (supportedPm2Services.includes(service)) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
throw new ManagedPm2Error(`Unsupported managed PM2 service "${service}". Supported services: ${supportedPm2Services.join(", ")}.`);
|
|
91
|
+
}
|
|
92
|
+
async function readManagedPm2Status(definition, action, runner) {
|
|
93
|
+
const result = await runPm2(definition, ["jlist"], runner);
|
|
94
|
+
const statusEntry = parsePm2Status(result, definition.appName);
|
|
95
|
+
return {
|
|
96
|
+
service: definition.service,
|
|
97
|
+
action,
|
|
98
|
+
appName: definition.appName,
|
|
99
|
+
cwd: definition.cwd,
|
|
100
|
+
script: definition.script,
|
|
101
|
+
runtimeHome: definition.runtimeHome,
|
|
102
|
+
runtimeDataHome: definition.runtimeDataHome,
|
|
103
|
+
pm2Home: definition.pm2Home,
|
|
104
|
+
pm2Binary: definition.pm2Binary,
|
|
105
|
+
exists: statusEntry !== null,
|
|
106
|
+
status: statusEntry?.status ?? "missing",
|
|
107
|
+
pid: statusEntry?.pid ?? null,
|
|
108
|
+
stdout: result.stdout,
|
|
109
|
+
stderr: result.stderr
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
async function runPm2(definition, args, runner) {
|
|
113
|
+
const env = buildManagedRuntimeEnvironment({
|
|
114
|
+
component: definition.component,
|
|
115
|
+
manifest: { manifestDir: definition.manifestDir },
|
|
116
|
+
paths: definition.paths,
|
|
117
|
+
componentRoot: definition.componentRoot,
|
|
118
|
+
componentConfigDir: definition.componentConfigDir,
|
|
119
|
+
componentDataHome: definition.runtimeDataHome,
|
|
120
|
+
pm2Home: definition.pm2Home,
|
|
121
|
+
scriptBasename: basename(definition.script)
|
|
122
|
+
}, { ...process.env, ...definition.env });
|
|
123
|
+
return runner(definition.nodePath, [definition.pm2Binary, ...args], {
|
|
124
|
+
cwd: definition.cwd,
|
|
125
|
+
env,
|
|
126
|
+
maxBuffer: 10 * 1024 * 1024
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function parsePm2Status(result, appName) {
|
|
130
|
+
const parsed = parsePm2ProcessList(result);
|
|
131
|
+
if (!Array.isArray(parsed)) {
|
|
132
|
+
throw new ManagedPm2Error(`Managed PM2 status returned an unexpected payload for ${appName}.`);
|
|
133
|
+
}
|
|
134
|
+
const entry = parsed.find((value) => isPm2ProcessRecord(value) && value.name === appName);
|
|
135
|
+
if (!entry || !isPm2ProcessRecord(entry)) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
status: normalizePm2Status(entry.pm2_env?.status),
|
|
140
|
+
pid: typeof entry.pid === "number" ? entry.pid : null
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function parsePm2ProcessList(result) {
|
|
144
|
+
const directCandidates = [result.stdout.trim(), `${result.stdout}\n${result.stderr}`.trim()].filter(Boolean);
|
|
145
|
+
for (const candidate of directCandidates) {
|
|
146
|
+
const direct = tryParseJson(candidate);
|
|
147
|
+
if (Array.isArray(direct)) {
|
|
148
|
+
return direct;
|
|
149
|
+
}
|
|
150
|
+
const extracted = extractPm2JsonArray(candidate);
|
|
151
|
+
if (Array.isArray(extracted)) {
|
|
152
|
+
return extracted;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
throw new ManagedPm2Error(`Managed PM2 status returned invalid JSON: ${summarizePm2Output(result)}`);
|
|
156
|
+
}
|
|
157
|
+
function extractPm2JsonArray(output) {
|
|
158
|
+
for (let index = 0; index < output.length; index += 1) {
|
|
159
|
+
if (output[index] !== "[") {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const nextNonWhitespace = output.slice(index + 1).match(/\S/u)?.[0];
|
|
163
|
+
if (nextNonWhitespace !== "{" && nextNonWhitespace !== "]") {
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
const parsed = tryParseJson(output.slice(index));
|
|
167
|
+
if (Array.isArray(parsed)) {
|
|
168
|
+
return parsed;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
function tryParseJson(value) {
|
|
174
|
+
try {
|
|
175
|
+
return JSON.parse(value);
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
function summarizePm2Output(result) {
|
|
182
|
+
return [result.stdout.trim(), result.stderr.trim()]
|
|
183
|
+
.filter(Boolean)
|
|
184
|
+
.join(" | ")
|
|
185
|
+
.slice(0, 400);
|
|
186
|
+
}
|
|
187
|
+
function normalizePm2Status(value) {
|
|
188
|
+
switch (value) {
|
|
189
|
+
case "online":
|
|
190
|
+
return "online";
|
|
191
|
+
case "stopped":
|
|
192
|
+
return "stopped";
|
|
193
|
+
case "errored":
|
|
194
|
+
return "errored";
|
|
195
|
+
default:
|
|
196
|
+
return "unknown";
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function isPm2ProcessRecord(value) {
|
|
200
|
+
return typeof value === "object" && value !== null;
|
|
201
|
+
}
|
|
202
|
+
function defaultPm2Script(componentName) {
|
|
203
|
+
switch (componentName) {
|
|
204
|
+
case "omniroute":
|
|
205
|
+
return "current/omniroute-launcher.mjs";
|
|
206
|
+
case "code-server":
|
|
207
|
+
return "current/code-server-launcher.mjs";
|
|
208
|
+
default:
|
|
209
|
+
throw new ManagedPm2Error(`Unsupported PM2 component ${componentName}.`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function toPm2Args(args) {
|
|
213
|
+
return args.length > 0 ? ["--", ...args] : [];
|
|
214
|
+
}
|
|
215
|
+
function buildPm2StartArgs(definition) {
|
|
216
|
+
if (isNodeLauncherScript(definition.script)) {
|
|
217
|
+
return [
|
|
218
|
+
"start",
|
|
219
|
+
definition.script,
|
|
220
|
+
"--name",
|
|
221
|
+
definition.appName,
|
|
222
|
+
"--cwd",
|
|
223
|
+
definition.cwd,
|
|
224
|
+
"--interpreter",
|
|
225
|
+
definition.nodePath,
|
|
226
|
+
"--update-env",
|
|
227
|
+
...toPm2Args(definition.args)
|
|
228
|
+
];
|
|
229
|
+
}
|
|
230
|
+
return [
|
|
231
|
+
"start",
|
|
232
|
+
definition.script,
|
|
233
|
+
"--name",
|
|
234
|
+
definition.appName,
|
|
235
|
+
"--cwd",
|
|
236
|
+
definition.cwd,
|
|
237
|
+
"--update-env",
|
|
238
|
+
...toPm2Args(definition.args)
|
|
239
|
+
];
|
|
240
|
+
}
|
|
241
|
+
function isNodeLauncherScript(scriptPath) {
|
|
242
|
+
const extension = extname(scriptPath).toLowerCase();
|
|
243
|
+
return extension === ".js" || extension === ".mjs" || extension === ".cjs";
|
|
244
|
+
}
|
|
245
|
+
function getManagedPm2Entrypoint(npmPrefix) {
|
|
246
|
+
return process.platform === "win32"
|
|
247
|
+
? join(npmPrefix, "node_modules", "pm2", "bin", "pm2")
|
|
248
|
+
: join(npmPrefix, "lib", "node_modules", "pm2", "bin", "pm2");
|
|
249
|
+
}
|
|
250
|
+
async function validateManagedPath(pathValue, message) {
|
|
251
|
+
try {
|
|
252
|
+
await access(pathValue);
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
throw new ManagedPm2Error(message, error instanceof Error ? { cause: error } : undefined);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=pm2-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pm2-manager.js","sourceRoot":"","sources":["../../src/runtime/pm2-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { CommandRunner } from "./command-launch.js";
|
|
2
|
+
import type { LoadedRuntimeManifest, RuntimeComponentDefinition, RuntimeLifecyclePhase } from "./runtime-manifest.js";
|
|
3
|
+
import type { ResolvedRuntimePaths } from "./runtime-paths.js";
|
|
4
|
+
export interface RuntimeScriptExecutionContext {
|
|
5
|
+
component: RuntimeComponentDefinition;
|
|
6
|
+
phase: RuntimeLifecyclePhase;
|
|
7
|
+
manifest: LoadedRuntimeManifest;
|
|
8
|
+
paths: ResolvedRuntimePaths;
|
|
9
|
+
componentRoot: string;
|
|
10
|
+
componentConfigDir: string;
|
|
11
|
+
logFilePath?: string;
|
|
12
|
+
purge?: boolean;
|
|
13
|
+
verbose?: boolean;
|
|
14
|
+
runner?: CommandRunner;
|
|
15
|
+
}
|
|
16
|
+
export interface ManagedRuntimeEnvironmentContext {
|
|
17
|
+
component: Pick<RuntimeComponentDefinition, "name" | "type" | "version" | "runtimeDataDir">;
|
|
18
|
+
manifest: Pick<LoadedRuntimeManifest, "manifestDir">;
|
|
19
|
+
paths: ResolvedRuntimePaths;
|
|
20
|
+
componentRoot: string;
|
|
21
|
+
componentConfigDir: string;
|
|
22
|
+
componentDataHome?: string;
|
|
23
|
+
componentLogsDir?: string;
|
|
24
|
+
pm2Home?: string;
|
|
25
|
+
phase?: string;
|
|
26
|
+
purge?: boolean;
|
|
27
|
+
verbose?: boolean;
|
|
28
|
+
scriptBasename?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface RuntimeScriptExecutionResult {
|
|
31
|
+
command: string;
|
|
32
|
+
args: string[];
|
|
33
|
+
stdout: string;
|
|
34
|
+
stderr: string;
|
|
35
|
+
}
|
|
36
|
+
export declare function executeRuntimeScript(scriptPath: string, context: RuntimeScriptExecutionContext): Promise<RuntimeScriptExecutionResult>;
|
|
37
|
+
export declare function writeRuntimeLog(logFilePath: string, content: string): Promise<void>;
|
|
38
|
+
export declare function getRuntimeScriptLaunch(scriptPath: string): {
|
|
39
|
+
command: string;
|
|
40
|
+
args: string[];
|
|
41
|
+
};
|
|
42
|
+
export declare function buildManagedRuntimeEnvironment(context: ManagedRuntimeEnvironmentContext, baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
43
|
+
export declare function prependPathEntries(env: NodeJS.ProcessEnv, pathEntries: readonly string[], platform?: NodeJS.Platform): NodeJS.ProcessEnv;
|
|
44
|
+
export declare function getManagedRuntimePathEntries(paths: ResolvedRuntimePaths): string[];
|
|
45
|
+
export declare function getManagedNpmBinDirectory(npmPrefix: string): string;
|