hagiscript-sdk 0.2.9-dev.1780142424.1.dedbfb7
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 +25 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/package.json +38 -0
- package/dist/src/index.d.ts +24 -0
- package/dist/src/index.js +27 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/runtime/command-launch.d.ts +41 -0
- package/dist/src/runtime/command-launch.js +100 -0
- package/dist/src/runtime/command-launch.js.map +1 -0
- package/dist/src/runtime/component-service-manager.d.ts +71 -0
- package/dist/src/runtime/component-service-manager.js +367 -0
- package/dist/src/runtime/component-service-manager.js.map +1 -0
- package/dist/src/runtime/dotnet-installer.d.ts +39 -0
- package/dist/src/runtime/dotnet-installer.js +282 -0
- package/dist/src/runtime/dotnet-installer.js.map +1 -0
- package/dist/src/runtime/download-cache.d.ts +7 -0
- package/dist/src/runtime/download-cache.js +110 -0
- package/dist/src/runtime/download-cache.js.map +1 -0
- package/dist/src/runtime/manifest-manager.d.ts +57 -0
- package/dist/src/runtime/manifest-manager.js +188 -0
- package/dist/src/runtime/manifest-manager.js.map +1 -0
- package/dist/src/runtime/node-download.d.ts +13 -0
- package/dist/src/runtime/node-download.js +78 -0
- package/dist/src/runtime/node-download.js.map +1 -0
- package/dist/src/runtime/node-extract.d.ts +18 -0
- package/dist/src/runtime/node-extract.js +170 -0
- package/dist/src/runtime/node-extract.js.map +1 -0
- package/dist/src/runtime/node-installer.d.ts +43 -0
- package/dist/src/runtime/node-installer.js +114 -0
- package/dist/src/runtime/node-installer.js.map +1 -0
- package/dist/src/runtime/node-platform.d.ts +15 -0
- package/dist/src/runtime/node-platform.js +51 -0
- package/dist/src/runtime/node-platform.js.map +1 -0
- package/dist/src/runtime/node-release.d.ts +28 -0
- package/dist/src/runtime/node-release.js +149 -0
- package/dist/src/runtime/node-release.js.map +1 -0
- package/dist/src/runtime/node-verify.d.ts +30 -0
- package/dist/src/runtime/node-verify.js +102 -0
- package/dist/src/runtime/node-verify.js.map +1 -0
- package/dist/src/runtime/npm-global.d.ts +28 -0
- package/dist/src/runtime/npm-global.js +77 -0
- package/dist/src/runtime/npm-global.js.map +1 -0
- package/dist/src/runtime/npm-sync.d.ts +164 -0
- package/dist/src/runtime/npm-sync.js +603 -0
- package/dist/src/runtime/npm-sync.js.map +1 -0
- package/dist/src/runtime/pm2-manager.d.ts +102 -0
- package/dist/src/runtime/pm2-manager.js +715 -0
- package/dist/src/runtime/pm2-manager.js.map +1 -0
- package/dist/src/runtime/runtime-executor.d.ts +58 -0
- package/dist/src/runtime/runtime-executor.js +291 -0
- package/dist/src/runtime/runtime-executor.js.map +1 -0
- package/dist/src/runtime/runtime-manager.d.ts +92 -0
- package/dist/src/runtime/runtime-manager.js +798 -0
- package/dist/src/runtime/runtime-manager.js.map +1 -0
- package/dist/src/runtime/runtime-manifest.d.ts +106 -0
- package/dist/src/runtime/runtime-manifest.js +450 -0
- package/dist/src/runtime/runtime-manifest.js.map +1 -0
- package/dist/src/runtime/runtime-paths.d.ts +45 -0
- package/dist/src/runtime/runtime-paths.js +138 -0
- package/dist/src/runtime/runtime-paths.js.map +1 -0
- package/dist/src/runtime/runtime-state.d.ts +45 -0
- package/dist/src/runtime/runtime-state.js +82 -0
- package/dist/src/runtime/runtime-state.js.map +1 -0
- package/dist/src/runtime/server-config.d.ts +21 -0
- package/dist/src/runtime/server-config.js +169 -0
- package/dist/src/runtime/server-config.js.map +1 -0
- package/dist/src/runtime/server-manager.d.ts +107 -0
- package/dist/src/runtime/server-manager.js +946 -0
- package/dist/src/runtime/server-manager.js.map +1 -0
- package/dist/src/runtime/server-version-state.d.ts +43 -0
- package/dist/src/runtime/server-version-state.js +156 -0
- package/dist/src/runtime/server-version-state.js.map +1 -0
- package/dist/src/runtime/seven-zip-extract.d.ts +15 -0
- package/dist/src/runtime/seven-zip-extract.js +104 -0
- package/dist/src/runtime/seven-zip-extract.js.map +1 -0
- package/dist/src/runtime/tool-sync-catalog.config.json +59 -0
- package/dist/src/runtime/tool-sync-catalog.d.ts +48 -0
- package/dist/src/runtime/tool-sync-catalog.js +189 -0
- package/dist/src/runtime/tool-sync-catalog.js.map +1 -0
- package/dist/src/runtime/zip-extract.d.ts +6 -0
- package/dist/src/runtime/zip-extract.js +90 -0
- package/dist/src/runtime/zip-extract.js.map +1 -0
- package/dist/src/version.d.ts +7 -0
- package/dist/src/version.js +23 -0
- package/dist/src/version.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import { access, cp, mkdir, mkdtemp, readFile, readdir, rm, stat, writeFile } from "node:fs/promises";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { join, resolve } from "node:path";
|
|
4
|
+
import { renderManagedPm2EnvironmentText, renderManagedPm2StatusText, resolveManagedPm2Environment, runManagedPm2Command } from "./pm2-manager.js";
|
|
5
|
+
import { loadRuntimeManifest } from "./runtime-manifest.js";
|
|
6
|
+
import { getComponentLogsDirectory, getComponentManagedRoot, getComponentRuntimeDataHome, getVersionedRuntimeComponentRoot, sanitizeRuntimeComponentVersionSegment, resolveRuntimePaths } from "./runtime-paths.js";
|
|
7
|
+
import { createBundledSevenZipExtractor } from "./seven-zip-extract.js";
|
|
8
|
+
const COMPONENT_DEFINITIONS = {
|
|
9
|
+
omniroute: {
|
|
10
|
+
component: "omniroute",
|
|
11
|
+
service: "omniroute",
|
|
12
|
+
manifestComponentName: "omniroute",
|
|
13
|
+
directoryName: "omniroute",
|
|
14
|
+
displayName: "OmniRoute",
|
|
15
|
+
archiveFileName: "omniroute.7z",
|
|
16
|
+
payloadEntrypointRelativePath: join("bin", "omniroute.mjs"),
|
|
17
|
+
logFileName: "omniroute.log"
|
|
18
|
+
},
|
|
19
|
+
code_server: {
|
|
20
|
+
component: "code_server",
|
|
21
|
+
service: "code-server",
|
|
22
|
+
manifestComponentName: "code-server",
|
|
23
|
+
directoryName: "code_server",
|
|
24
|
+
displayName: "code-server",
|
|
25
|
+
archiveFileName: "code-server.7z",
|
|
26
|
+
payloadEntrypointRelativePath: join("out", "node", "entry.js"),
|
|
27
|
+
logFileName: "code-server.log"
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const DEFAULT_LOG_LINES = 100;
|
|
31
|
+
export const MAX_COMPONENT_LOG_LINES = 2000;
|
|
32
|
+
const defaultDependencies = {
|
|
33
|
+
loadRuntimeManifest,
|
|
34
|
+
resolveRuntimePaths,
|
|
35
|
+
runManagedPm2Command,
|
|
36
|
+
resolveManagedPm2Environment,
|
|
37
|
+
renderManagedPm2StatusText,
|
|
38
|
+
renderManagedPm2EnvironmentText,
|
|
39
|
+
createSevenZipExtractor: () => createBundledSevenZipExtractor()
|
|
40
|
+
};
|
|
41
|
+
export async function executeComponentServiceAction(component, action, options = {}, dependencies = {}) {
|
|
42
|
+
const resolvedDependencies = {
|
|
43
|
+
...defaultDependencies,
|
|
44
|
+
...dependencies
|
|
45
|
+
};
|
|
46
|
+
const definition = resolveComponentServiceDefinition(component);
|
|
47
|
+
if (action === "exact") {
|
|
48
|
+
return exactComponentRuntime(definition, options, resolvedDependencies);
|
|
49
|
+
}
|
|
50
|
+
const runtime = await resolveExtractedRuntime(definition, options, resolvedDependencies);
|
|
51
|
+
switch (action) {
|
|
52
|
+
case "start":
|
|
53
|
+
case "stop":
|
|
54
|
+
case "restart":
|
|
55
|
+
case "status": {
|
|
56
|
+
const status = await resolvedDependencies.runManagedPm2Command({
|
|
57
|
+
manifestPath: options.manifestPath,
|
|
58
|
+
runtimeRoot: options.runtimeRoot,
|
|
59
|
+
service: definition.service,
|
|
60
|
+
action,
|
|
61
|
+
componentRootOverride: runtime.versionedRoot
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
component: definition.component,
|
|
65
|
+
service: definition.service,
|
|
66
|
+
action,
|
|
67
|
+
ok: true,
|
|
68
|
+
status
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
case "env": {
|
|
72
|
+
const environment = await resolvedDependencies.resolveManagedPm2Environment({
|
|
73
|
+
manifestPath: options.manifestPath,
|
|
74
|
+
runtimeRoot: options.runtimeRoot,
|
|
75
|
+
service: definition.service,
|
|
76
|
+
componentRootOverride: runtime.versionedRoot
|
|
77
|
+
});
|
|
78
|
+
return {
|
|
79
|
+
component: definition.component,
|
|
80
|
+
service: definition.service,
|
|
81
|
+
action,
|
|
82
|
+
ok: true,
|
|
83
|
+
environment
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
case "logs": {
|
|
87
|
+
const requestedLines = options.lines ?? DEFAULT_LOG_LINES;
|
|
88
|
+
const targetPath = resolveAllowlistedLogTarget(runtime);
|
|
89
|
+
const lines = await readRecentLines(targetPath, requestedLines);
|
|
90
|
+
return {
|
|
91
|
+
component: definition.component,
|
|
92
|
+
service: definition.service,
|
|
93
|
+
action,
|
|
94
|
+
ok: true,
|
|
95
|
+
target: "component",
|
|
96
|
+
targetPath,
|
|
97
|
+
requestedLines,
|
|
98
|
+
lines
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export function renderComponentServiceResultText(result, dependencies = {}) {
|
|
104
|
+
const resolvedDependencies = {
|
|
105
|
+
renderManagedPm2StatusText,
|
|
106
|
+
renderManagedPm2EnvironmentText,
|
|
107
|
+
...dependencies
|
|
108
|
+
};
|
|
109
|
+
switch (result.action) {
|
|
110
|
+
case "exact":
|
|
111
|
+
return [
|
|
112
|
+
`Component: ${result.component}`,
|
|
113
|
+
`Service: ${result.service}`,
|
|
114
|
+
`Action: ${result.action}`,
|
|
115
|
+
`Version: ${result.version}`,
|
|
116
|
+
`Archive: ${result.archivePath}`,
|
|
117
|
+
`Extracted runtime: ${result.extractedRuntimeRoot}`,
|
|
118
|
+
`Current root: ${result.currentRoot}`
|
|
119
|
+
].join("\n");
|
|
120
|
+
case "env":
|
|
121
|
+
return [
|
|
122
|
+
`Component: ${result.component}`,
|
|
123
|
+
resolvedDependencies.renderManagedPm2EnvironmentText(result.environment)
|
|
124
|
+
].join("\n");
|
|
125
|
+
case "logs":
|
|
126
|
+
return [
|
|
127
|
+
`Component: ${result.component}`,
|
|
128
|
+
`Service: ${result.service}`,
|
|
129
|
+
`Action: ${result.action}`,
|
|
130
|
+
`Target: ${result.target}`,
|
|
131
|
+
`Target path: ${result.targetPath}`,
|
|
132
|
+
`Requested lines: ${result.requestedLines}`,
|
|
133
|
+
...(result.lines.length > 0 ? result.lines : ["(no log lines yet)"])
|
|
134
|
+
].join("\n");
|
|
135
|
+
default:
|
|
136
|
+
return [
|
|
137
|
+
`Component: ${result.component}`,
|
|
138
|
+
resolvedDependencies.renderManagedPm2StatusText(result.status)
|
|
139
|
+
].join("\n");
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
export function parseDedicatedComponentLinesOption(value) {
|
|
143
|
+
const normalized = value.trim();
|
|
144
|
+
if (!/^\d+$/u.test(normalized)) {
|
|
145
|
+
throw new Error(`--lines must be a positive integer between 1 and ${MAX_COMPONENT_LOG_LINES}.`);
|
|
146
|
+
}
|
|
147
|
+
const parsed = Number.parseInt(normalized, 10);
|
|
148
|
+
if (!Number.isSafeInteger(parsed) || parsed < 1 || parsed > MAX_COMPONENT_LOG_LINES) {
|
|
149
|
+
throw new Error(`--lines must be a positive integer between 1 and ${MAX_COMPONENT_LOG_LINES}.`);
|
|
150
|
+
}
|
|
151
|
+
return parsed;
|
|
152
|
+
}
|
|
153
|
+
export function resolveComponentServiceDefinition(component) {
|
|
154
|
+
return COMPONENT_DEFINITIONS[component];
|
|
155
|
+
}
|
|
156
|
+
async function exactComponentRuntime(definition, options, dependencies) {
|
|
157
|
+
const manifest = await dependencies.loadRuntimeManifest({ manifestPath: options.manifestPath });
|
|
158
|
+
const paths = dependencies.resolveRuntimePaths(manifest, {
|
|
159
|
+
runtimeRoot: options.runtimeRoot
|
|
160
|
+
});
|
|
161
|
+
const manifestComponent = manifest.componentMap.get(definition.manifestComponentName);
|
|
162
|
+
if (!manifestComponent) {
|
|
163
|
+
throw new Error(`Runtime manifest does not define the ${definition.service} component required by hagiscript ${definition.component}.`);
|
|
164
|
+
}
|
|
165
|
+
if (manifestComponent.bundledInstallMode !== "archive-7z-only") {
|
|
166
|
+
throw new Error(`hagiscript ${definition.component} exact requires bundledInstallMode=archive-7z-only for ${definition.service}.`);
|
|
167
|
+
}
|
|
168
|
+
const packagedRoot = getComponentManagedRoot(paths, manifestComponent.name);
|
|
169
|
+
const packagedMarker = await readPackagedComponentMarker(packagedRoot);
|
|
170
|
+
const archivePath = resolveArchivePath(definition, packagedRoot, packagedMarker);
|
|
171
|
+
await assertPathExists(archivePath, `Managed ${definition.displayName} archive is missing: ${archivePath}. Run \`hagiscript runtime install\` first.`);
|
|
172
|
+
if (packagedMarker?.archiveFormat && packagedMarker.archiveFormat !== "7z") {
|
|
173
|
+
throw new Error(`Managed ${definition.displayName} archive ${archivePath} is not a .7z payload. Received ${packagedMarker.archiveFormat}.`);
|
|
174
|
+
}
|
|
175
|
+
const version = resolveComponentVersion(manifestComponent, packagedMarker);
|
|
176
|
+
const versionedRoot = getVersionedRuntimeComponentRoot(paths, definition.directoryName, version);
|
|
177
|
+
const currentRoot = join(versionedRoot, "current");
|
|
178
|
+
const runtimeDataHome = getComponentRuntimeDataHome(paths, manifestComponent.name, manifestComponent.runtimeDataDir);
|
|
179
|
+
const logsDirectory = getComponentLogsDirectory(paths, manifestComponent.name, manifestComponent.runtimeDataDir);
|
|
180
|
+
const stateFilePath = getExtractedRuntimeStatePath(runtimeDataHome);
|
|
181
|
+
if (!(await pathExists(join(currentRoot, definition.payloadEntrypointRelativePath)))) {
|
|
182
|
+
const extractor = dependencies.createSevenZipExtractor();
|
|
183
|
+
const stagingRoot = await mkdtemp(join(tmpdir(), `hagiscript-${definition.component}-exact-`));
|
|
184
|
+
try {
|
|
185
|
+
await extractor.extract(archivePath, stagingRoot);
|
|
186
|
+
const payloadRoot = await locateExtractedPayloadRoot(stagingRoot, definition.payloadEntrypointRelativePath);
|
|
187
|
+
await rm(currentRoot, { recursive: true, force: true });
|
|
188
|
+
await mkdir(versionedRoot, { recursive: true });
|
|
189
|
+
await cp(payloadRoot, currentRoot, { recursive: true, force: true });
|
|
190
|
+
}
|
|
191
|
+
finally {
|
|
192
|
+
await rm(stagingRoot, { recursive: true, force: true }).catch(() => undefined);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
await assertExtractedRuntimeReady(definition, versionedRoot, currentRoot);
|
|
196
|
+
await mkdir(runtimeDataHome, { recursive: true });
|
|
197
|
+
await mkdir(logsDirectory, { recursive: true });
|
|
198
|
+
await writeExtractedRuntimeState(stateFilePath, {
|
|
199
|
+
component: definition.component,
|
|
200
|
+
service: definition.service,
|
|
201
|
+
version,
|
|
202
|
+
versionedRoot,
|
|
203
|
+
currentRoot,
|
|
204
|
+
archivePath,
|
|
205
|
+
updatedAt: new Date().toISOString()
|
|
206
|
+
});
|
|
207
|
+
return {
|
|
208
|
+
component: definition.component,
|
|
209
|
+
service: definition.service,
|
|
210
|
+
action: "exact",
|
|
211
|
+
ok: true,
|
|
212
|
+
version,
|
|
213
|
+
archivePath,
|
|
214
|
+
extractedRuntimeRoot: versionedRoot,
|
|
215
|
+
currentRoot
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
async function resolveExtractedRuntime(definition, options, dependencies) {
|
|
219
|
+
const manifest = await dependencies.loadRuntimeManifest({ manifestPath: options.manifestPath });
|
|
220
|
+
const paths = dependencies.resolveRuntimePaths(manifest, {
|
|
221
|
+
runtimeRoot: options.runtimeRoot
|
|
222
|
+
});
|
|
223
|
+
const manifestComponent = manifest.componentMap.get(definition.manifestComponentName);
|
|
224
|
+
if (!manifestComponent) {
|
|
225
|
+
throw new Error(`Runtime manifest does not define the ${definition.service} component required by hagiscript ${definition.component}.`);
|
|
226
|
+
}
|
|
227
|
+
const packagedRoot = getComponentManagedRoot(paths, manifestComponent.name);
|
|
228
|
+
const packagedMarker = await readPackagedComponentMarker(packagedRoot);
|
|
229
|
+
const version = resolveComponentVersion(manifestComponent, packagedMarker);
|
|
230
|
+
const runtimeDataHome = getComponentRuntimeDataHome(paths, manifestComponent.name, manifestComponent.runtimeDataDir);
|
|
231
|
+
const logsDirectory = getComponentLogsDirectory(paths, manifestComponent.name, manifestComponent.runtimeDataDir);
|
|
232
|
+
const stateFilePath = getExtractedRuntimeStatePath(runtimeDataHome);
|
|
233
|
+
const storedState = await readExtractedRuntimeState(stateFilePath);
|
|
234
|
+
const versionedRoot = storedState?.version === version
|
|
235
|
+
? storedState.versionedRoot
|
|
236
|
+
: getVersionedRuntimeComponentRoot(paths, definition.directoryName, version);
|
|
237
|
+
const currentRoot = storedState?.version === version ? storedState.currentRoot : join(versionedRoot, "current");
|
|
238
|
+
const archivePath = storedState?.archivePath || resolveArchivePath(definition, packagedRoot, packagedMarker);
|
|
239
|
+
await assertExtractedRuntimeReady(definition, versionedRoot, currentRoot);
|
|
240
|
+
return {
|
|
241
|
+
componentDefinition: definition,
|
|
242
|
+
manifest,
|
|
243
|
+
manifestComponent,
|
|
244
|
+
paths,
|
|
245
|
+
version,
|
|
246
|
+
versionedRoot,
|
|
247
|
+
currentRoot,
|
|
248
|
+
archivePath,
|
|
249
|
+
packagedRoot,
|
|
250
|
+
runtimeDataHome,
|
|
251
|
+
logsDirectory,
|
|
252
|
+
stateFilePath
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
async function locateExtractedPayloadRoot(extractRoot, payloadEntrypointRelativePath) {
|
|
256
|
+
if (await pathExists(join(extractRoot, payloadEntrypointRelativePath))) {
|
|
257
|
+
return extractRoot;
|
|
258
|
+
}
|
|
259
|
+
const queue = [extractRoot];
|
|
260
|
+
while (queue.length > 0) {
|
|
261
|
+
const current = queue.shift();
|
|
262
|
+
if (!current) {
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
const entries = await readdir(current, { withFileTypes: true });
|
|
266
|
+
for (const entry of entries) {
|
|
267
|
+
if (!entry.isDirectory()) {
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
const candidate = join(current, entry.name);
|
|
271
|
+
if (await pathExists(join(candidate, payloadEntrypointRelativePath))) {
|
|
272
|
+
return candidate;
|
|
273
|
+
}
|
|
274
|
+
queue.push(candidate);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
throw new Error(`Extracted runtime payload does not contain ${payloadEntrypointRelativePath} under ${extractRoot}.`);
|
|
278
|
+
}
|
|
279
|
+
function resolveArchivePath(definition, packagedRoot, marker) {
|
|
280
|
+
if (marker?.archivePath?.trim()) {
|
|
281
|
+
return resolve(marker.archivePath);
|
|
282
|
+
}
|
|
283
|
+
return join(packagedRoot, "archives", definition.archiveFileName);
|
|
284
|
+
}
|
|
285
|
+
function resolveComponentVersion(component, marker) {
|
|
286
|
+
const rawVersion = marker?.version?.trim() || component.version?.trim() || component.channelVersion?.trim();
|
|
287
|
+
if (!rawVersion) {
|
|
288
|
+
throw new Error(`Managed runtime component ${component.name} does not expose a concrete version for extracted-runtime activation.`);
|
|
289
|
+
}
|
|
290
|
+
return sanitizeRuntimeComponentVersionSegment(rawVersion);
|
|
291
|
+
}
|
|
292
|
+
function resolveAllowlistedLogTarget(runtime) {
|
|
293
|
+
return join(runtime.logsDirectory, runtime.componentDefinition.logFileName);
|
|
294
|
+
}
|
|
295
|
+
async function readRecentLines(filePath, lines) {
|
|
296
|
+
try {
|
|
297
|
+
const contents = await readFile(filePath, "utf8");
|
|
298
|
+
return contents
|
|
299
|
+
.split(/\r?\n/u)
|
|
300
|
+
.filter((line, index, all) => !(index === all.length - 1 && line === ""))
|
|
301
|
+
.slice(-lines);
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
if (isMissingPathError(error)) {
|
|
305
|
+
return [];
|
|
306
|
+
}
|
|
307
|
+
throw error;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
async function readPackagedComponentMarker(packagedRoot) {
|
|
311
|
+
const markerPath = join(packagedRoot, ".hagicode-runtime.json");
|
|
312
|
+
try {
|
|
313
|
+
return JSON.parse(await readFile(markerPath, "utf8"));
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
if (isMissingPathError(error)) {
|
|
317
|
+
return null;
|
|
318
|
+
}
|
|
319
|
+
throw new Error(`Failed to read packaged runtime marker ${markerPath}: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? { cause: error } : undefined);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
async function readExtractedRuntimeState(stateFilePath) {
|
|
323
|
+
try {
|
|
324
|
+
return JSON.parse(await readFile(stateFilePath, "utf8"));
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
if (isMissingPathError(error)) {
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
throw new Error(`Failed to read extracted runtime state ${stateFilePath}: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? { cause: error } : undefined);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
async function writeExtractedRuntimeState(stateFilePath, state) {
|
|
334
|
+
await writeFile(stateFilePath, `${JSON.stringify(state, null, 2)}\n`, "utf8");
|
|
335
|
+
}
|
|
336
|
+
function getExtractedRuntimeStatePath(runtimeDataHome) {
|
|
337
|
+
return join(runtimeDataHome, "extracted-runtime.json");
|
|
338
|
+
}
|
|
339
|
+
async function assertExtractedRuntimeReady(definition, versionedRoot, currentRoot) {
|
|
340
|
+
await assertPathExists(versionedRoot, `Managed ${definition.displayName} extracted runtime is missing: ${versionedRoot}. Run \`hagiscript ${definition.component} exact\` first.`);
|
|
341
|
+
await assertPathExists(currentRoot, `Managed ${definition.displayName} extracted runtime root is missing: ${currentRoot}. Run \`hagiscript ${definition.component} exact\` first.`);
|
|
342
|
+
await assertPathExists(join(currentRoot, definition.payloadEntrypointRelativePath), `Managed ${definition.displayName} extracted runtime is invalid: ${join(currentRoot, definition.payloadEntrypointRelativePath)} is missing. Re-run \`hagiscript ${definition.component} exact\`.`);
|
|
343
|
+
}
|
|
344
|
+
async function assertPathExists(pathValue, message) {
|
|
345
|
+
try {
|
|
346
|
+
await access(pathValue);
|
|
347
|
+
}
|
|
348
|
+
catch (error) {
|
|
349
|
+
throw new Error(message, error instanceof Error ? { cause: error } : undefined);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
async function pathExists(pathValue) {
|
|
353
|
+
try {
|
|
354
|
+
await stat(pathValue);
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
if (isMissingPathError(error)) {
|
|
359
|
+
return false;
|
|
360
|
+
}
|
|
361
|
+
throw error;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
function isMissingPathError(error) {
|
|
365
|
+
return Boolean(error && typeof error === "object" && "code" in error && error.code === "ENOENT");
|
|
366
|
+
}
|
|
367
|
+
//# sourceMappingURL=component-service-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-service-manager.js","sourceRoot":"","sources":["../../../../src/runtime/component-service-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type CommandRunner } from "./command-launch.js";
|
|
2
|
+
export interface InstallManagedDotnetRuntimeOptions {
|
|
3
|
+
targetDirectory: string;
|
|
4
|
+
version: string;
|
|
5
|
+
runner?: CommandRunner;
|
|
6
|
+
fetchImpl?: typeof fetch;
|
|
7
|
+
platform?: NodeJS.Platform;
|
|
8
|
+
architecture?: string;
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
scriptBaseUrl?: string;
|
|
11
|
+
downloadCacheEnabled?: boolean;
|
|
12
|
+
downloadCacheDirectory?: string;
|
|
13
|
+
verbose?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ManagedDotnetVerificationResult {
|
|
16
|
+
valid: boolean;
|
|
17
|
+
targetDirectory: string;
|
|
18
|
+
dotnetPath: string;
|
|
19
|
+
installedRuntimes: Record<string, string[]>;
|
|
20
|
+
requiredVersion: string;
|
|
21
|
+
failureReason?: string;
|
|
22
|
+
infoOutput?: string;
|
|
23
|
+
listRuntimesOutput?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface InstallManagedDotnetRuntimeResult extends ManagedDotnetVerificationResult {
|
|
26
|
+
valid: true;
|
|
27
|
+
}
|
|
28
|
+
export declare function installManagedDotnetRuntime(options: InstallManagedDotnetRuntimeOptions): Promise<InstallManagedDotnetRuntimeResult>;
|
|
29
|
+
export declare function verifyManagedDotnetRuntime(options: {
|
|
30
|
+
targetDirectory: string;
|
|
31
|
+
version: string;
|
|
32
|
+
runner?: CommandRunner;
|
|
33
|
+
platform?: NodeJS.Platform;
|
|
34
|
+
timeoutMs?: number;
|
|
35
|
+
}): Promise<ManagedDotnetVerificationResult>;
|
|
36
|
+
export declare function getManagedDotnetExecutablePath(targetDirectory: string, platform?: NodeJS.Platform): string;
|
|
37
|
+
export declare function parseInstalledDotnetRuntimes(output: string): Record<string, string[]>;
|
|
38
|
+
export declare function mapDotnetArchitecture(architecture: string): "x64" | "arm64";
|
|
39
|
+
export declare function buildDotnetInstallScriptUrl(platform: NodeJS.Platform, scriptBaseUrl?: string): string;
|