@hellolynk-ai/codex-plugin 0.2.101 → 0.2.102
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/bin/hellolynk-client-setup.mjs +9 -3
- package/hellolynk-client-pack-manifest.json +18 -18
- package/hellolynk-client-pack-pin.json +1 -1
- package/package.json +1 -1
- package/plugins/hellolynk-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/hellolynk-codex/package.json +1 -1
- package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-profile.mjs +25 -2
- package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-neutral-host-installation-store.mjs +2 -6
- package/plugins/hellolynk-codex/runtime/core/hellolynk-client-profile.mjs +25 -2
- package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-installation-store.mjs +2 -6
- package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-process.mjs +1 -1
- package/plugins/hellolynk-codex/runtime/neutral-host-release-manifest.json +7 -7
- package/plugins/hellolynk-codex/runtime/neutral-host-release-pin.json +1 -1
- package/plugins/hellolynk-codex/server/codex-neutral-production.mjs +2 -2
|
@@ -61,8 +61,8 @@ try {
|
|
|
61
61
|
"--expected-manifest-sha256", sourceRelease.outerManifestSha256,
|
|
62
62
|
]);
|
|
63
63
|
} else {
|
|
64
|
-
const originalLocations = resolveLocations();
|
|
65
64
|
const accountModule = await importStableCore(PACKAGE_ROOT, "hellolynk-client-account.mjs", "hellolynk_npm_account_runtime_invalid");
|
|
65
|
+
const originalLocations = resolveLocations(accountModule.clientAccountBaseRoot);
|
|
66
66
|
const baseRoot = accountModule.clientAccountBaseRoot(originalLocations.hostRoot);
|
|
67
67
|
const packageLocations = { ...originalLocations, hostRoot: baseRoot, finalCurrentRoot: path.dirname(baseRoot) };
|
|
68
68
|
const accounts = accountModule.createClientAccountActions({ client: metadata.client, storeRoot: baseRoot });
|
|
@@ -838,7 +838,7 @@ async function verifyRelease(releaseRoot, packageRoot, expectedMetadata = metada
|
|
|
838
838
|
return Object.freeze({ manifestSha256, outerManifestSha256 });
|
|
839
839
|
}
|
|
840
840
|
|
|
841
|
-
function resolveLocations() {
|
|
841
|
+
function resolveLocations(getDefaultHostRoot) {
|
|
842
842
|
if (process.platform !== "win32") fail("hellolynk_npm_windows_only");
|
|
843
843
|
const home = path.resolve(process.env.USERPROFILE || os.homedir());
|
|
844
844
|
const localAppData = path.resolve(process.env.LOCALAPPDATA || path.join(home, "AppData", "Local"));
|
|
@@ -848,7 +848,7 @@ function resolveLocations() {
|
|
|
848
848
|
const codexHome = path.resolve(configuredCodexHome || path.join(home, ".codex"));
|
|
849
849
|
const configuredHostRoot = String(process.env.HELLOLYNK_NEUTRAL_STORE_ROOT || "").trim();
|
|
850
850
|
if (configuredHostRoot && !path.isAbsolute(configuredHostRoot)) fail("hellolynk_npm_store_root_invalid");
|
|
851
|
-
const hostRoot = path.resolve(configuredHostRoot ||
|
|
851
|
+
const hostRoot = path.resolve(configuredHostRoot || getDefaultHostRoot());
|
|
852
852
|
if (configuredHostRoot && path.basename(hostRoot).toLowerCase() !== "host") {
|
|
853
853
|
fail("hellolynk_npm_store_root_invalid");
|
|
854
854
|
}
|
|
@@ -1004,6 +1004,12 @@ async function startHostWhenAbsent(runtime, binding) {
|
|
|
1004
1004
|
}
|
|
1005
1005
|
|
|
1006
1006
|
async function secureStableReleaseTree(locations, releaseId, options = {}) {
|
|
1007
|
+
const releasePath = path.resolve(locations.finalCurrentRoot, "releases", releaseId);
|
|
1008
|
+
// An existing AppData root can be shared while a new release is redirected
|
|
1009
|
+
// into one desktop app's private cache. Other clients cannot use that release.
|
|
1010
|
+
if (process.platform === "win32" && realpathSync.native(releasePath).toLowerCase() !== releasePath.toLowerCase()) {
|
|
1011
|
+
fail("client_root_alias_rejected");
|
|
1012
|
+
}
|
|
1007
1013
|
const module = await importCore(
|
|
1008
1014
|
"hellolynk-platform-credential-store.mjs",
|
|
1009
1015
|
"hellolynk_npm_client_root_security_unavailable",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"contract": "hellolynk-client-npm-pack-manifest-v1",
|
|
3
3
|
"client": "codex",
|
|
4
4
|
"packageName": "@hellolynk-ai/codex-plugin",
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.102",
|
|
6
6
|
"workbench": {
|
|
7
7
|
"path": "plugins/hellolynk-codex/runtime/workbench/hellolynk-workbench-build.json",
|
|
8
8
|
"contract": "hellolynk-shared-workbench-build-v1",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"path": "bin/hellolynk-client-setup.mjs",
|
|
20
|
-
"bytes":
|
|
21
|
-
"sha256": "
|
|
20
|
+
"bytes": 142207,
|
|
21
|
+
"sha256": "95386fcd9092f31abb3b0441033b3b385b3c355506613da24b4557d5f9cac6ef"
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"path": "bin/hellolynk-mcp-config-shape.mjs",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
{
|
|
34
34
|
"path": "package.json",
|
|
35
35
|
"bytes": 1713,
|
|
36
|
-
"sha256": "
|
|
36
|
+
"sha256": "a1dffd73cef661cd0f019f5a532f949693fccfa72222d346bd867470977cdc99"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"path": "plugins/hellolynk-codex/.app.json",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
{
|
|
44
44
|
"path": "plugins/hellolynk-codex/.codex-plugin/plugin.json",
|
|
45
45
|
"bytes": 1669,
|
|
46
|
-
"sha256": "
|
|
46
|
+
"sha256": "38d2a5204b66ec57368494e69ed71de655f798f9d37ab2af966b59c3ab07d0f2"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": "plugins/hellolynk-codex/.mcp.json",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
{
|
|
59
59
|
"path": "plugins/hellolynk-codex/package.json",
|
|
60
60
|
"bytes": 1030,
|
|
61
|
-
"sha256": "
|
|
61
|
+
"sha256": "befbca064334e8ff7f9d192f095ac1bd786a3882385a450fc2c2d2a5c9b2b7dd"
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
"path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-account.mjs",
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
"path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-profile.mjs",
|
|
75
|
-
"bytes":
|
|
76
|
-
"sha256": "
|
|
75
|
+
"bytes": 9359,
|
|
76
|
+
"sha256": "8be37831c96610e3d0a64848ada86488970cc6079e49764b47d8a8b2ba852269"
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-host-auth.mjs",
|
|
@@ -92,8 +92,8 @@
|
|
|
92
92
|
},
|
|
93
93
|
{
|
|
94
94
|
"path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-neutral-host-installation-store.mjs",
|
|
95
|
-
"bytes":
|
|
96
|
-
"sha256": "
|
|
95
|
+
"bytes": 33183,
|
|
96
|
+
"sha256": "dfb6bba4c627082cd6fca8cb38dc786f905e38f3e83ccf91dbfe57e55639e8a2"
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-platform-credential-store.mjs",
|
|
@@ -132,8 +132,8 @@
|
|
|
132
132
|
},
|
|
133
133
|
{
|
|
134
134
|
"path": "plugins/hellolynk-codex/runtime/core/hellolynk-client-profile.mjs",
|
|
135
|
-
"bytes":
|
|
136
|
-
"sha256": "
|
|
135
|
+
"bytes": 9359,
|
|
136
|
+
"sha256": "8be37831c96610e3d0a64848ada86488970cc6079e49764b47d8a8b2ba852269"
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"path": "plugins/hellolynk-codex/runtime/core/hellolynk-client-update-entry.mjs",
|
|
@@ -307,8 +307,8 @@
|
|
|
307
307
|
},
|
|
308
308
|
{
|
|
309
309
|
"path": "plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-installation-store.mjs",
|
|
310
|
-
"bytes":
|
|
311
|
-
"sha256": "
|
|
310
|
+
"bytes": 33183,
|
|
311
|
+
"sha256": "dfb6bba4c627082cd6fca8cb38dc786f905e38f3e83ccf91dbfe57e55639e8a2"
|
|
312
312
|
},
|
|
313
313
|
{
|
|
314
314
|
"path": "plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-launcher.mjs",
|
|
@@ -318,7 +318,7 @@
|
|
|
318
318
|
{
|
|
319
319
|
"path": "plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-process.mjs",
|
|
320
320
|
"bytes": 225161,
|
|
321
|
-
"sha256": "
|
|
321
|
+
"sha256": "e744bacf65f7b86cbcf7d654189c0e07e09401083e2b6f9053b17c1c3bacd1b4"
|
|
322
322
|
},
|
|
323
323
|
{
|
|
324
324
|
"path": "plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-store-adapters.mjs",
|
|
@@ -378,12 +378,12 @@
|
|
|
378
378
|
{
|
|
379
379
|
"path": "plugins/hellolynk-codex/runtime/neutral-host-release-manifest.json",
|
|
380
380
|
"bytes": 13440,
|
|
381
|
-
"sha256": "
|
|
381
|
+
"sha256": "3f8ad933949136ed1ebf5172c9e49ead0b0e2829650bc960eef1bdddd27c6a8f"
|
|
382
382
|
},
|
|
383
383
|
{
|
|
384
384
|
"path": "plugins/hellolynk-codex/runtime/neutral-host-release-pin.json",
|
|
385
385
|
"bytes": 146,
|
|
386
|
-
"sha256": "
|
|
386
|
+
"sha256": "6c9832284a05105014d72fe52f15e7d36c3c3fbbcb20aaf24f84a10196a7fad8"
|
|
387
387
|
},
|
|
388
388
|
{
|
|
389
389
|
"path": "plugins/hellolynk-codex/runtime/platform/windows/configure-agent.ps1",
|
|
@@ -553,7 +553,7 @@
|
|
|
553
553
|
{
|
|
554
554
|
"path": "plugins/hellolynk-codex/server/codex-neutral-production.mjs",
|
|
555
555
|
"bytes": 26960,
|
|
556
|
-
"sha256": "
|
|
556
|
+
"sha256": "7b3249f1b35c331cf2b00ac2873a54d12fc6f61cf341bb82cec98e49ce221b92"
|
|
557
557
|
},
|
|
558
558
|
{
|
|
559
559
|
"path": "plugins/hellolynk-codex/server/mcp-proxy.mjs",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hellolynk-ai/codex-plugin",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.102",
|
|
4
4
|
"description": "HelloLynk Messaging for Codex: open conversations and let your AI message other people's AI assistants.",
|
|
5
5
|
"homepage": "https://hellolynk.com",
|
|
6
6
|
"repository": {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { lstat, mkdir, open, readFile, rename, rm, stat } from "node:fs/promises";
|
|
2
|
+
import { readdirSync } from "node:fs";
|
|
2
3
|
import { homedir } from "node:os";
|
|
3
4
|
import { basename, dirname, isAbsolute, join, resolve } from "node:path";
|
|
4
5
|
import { randomUUID } from "node:crypto";
|
|
@@ -19,12 +20,34 @@ const SAFE_SCOPE = /^[a-z][a-z0-9_.:-]{0,127}$/;
|
|
|
19
20
|
const MAX_PROFILE_BYTES = 64 * 1024;
|
|
20
21
|
|
|
21
22
|
export function defaultHelloLynkClientRoot(platform = process.platform, env = process.env) {
|
|
22
|
-
const home = resolve(String(env.HOME || env.USERPROFILE || homedir()));
|
|
23
|
-
if (platform === "win32")
|
|
23
|
+
const home = resolve(String((platform === "win32" ? env.USERPROFILE || env.HOME : env.HOME || env.USERPROFILE) || homedir()));
|
|
24
|
+
if (platform === "win32") {
|
|
25
|
+
const current = join(home, ".hellolynk", "hellolynk-v2");
|
|
26
|
+
// Once selected, another client's older installer must not move us back.
|
|
27
|
+
if (hasWindowsClientInstallation(current)) return current;
|
|
28
|
+
const existing = resolve(String(env.LOCALAPPDATA || join(home, "AppData", "Local")), "HelloLynk");
|
|
29
|
+
// AppData created from a packaged desktop app can be private to that app.
|
|
30
|
+
// Keep an existing installation; an empty failed setup is not an account.
|
|
31
|
+
if (hasWindowsClientInstallation(existing)) return existing;
|
|
32
|
+
return current;
|
|
33
|
+
}
|
|
24
34
|
if (platform === "darwin") return join(home, "Library", "Application Support", "HelloLynk");
|
|
25
35
|
return resolve(String(env.XDG_DATA_HOME || join(home, ".local", "share")), "hellolynk");
|
|
26
36
|
}
|
|
27
37
|
|
|
38
|
+
function hasWindowsClientInstallation(root) {
|
|
39
|
+
for (const directory of ["profiles", "releases", "host", "credentials", "e2ee-private-keys"]) {
|
|
40
|
+
try {
|
|
41
|
+
const entries = readdirSync(join(root, directory), { withFileTypes: true });
|
|
42
|
+
if (entries.some((entry) => directory !== "host" || entry.name !== "runtime")) return true;
|
|
43
|
+
} catch (error) {
|
|
44
|
+
// An unreadable existing location must not silently become a fresh account.
|
|
45
|
+
if (error.code !== "ENOENT") return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
|
|
28
51
|
function safeId(value, code) {
|
|
29
52
|
const normalized = String(value || "").trim();
|
|
30
53
|
if (!SAFE_ID.test(normalized)) throw new Error(code);
|
package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-neutral-host-installation-store.mjs
CHANGED
|
@@ -12,10 +12,9 @@ import {
|
|
|
12
12
|
} from "node:fs/promises";
|
|
13
13
|
import { basename, dirname, isAbsolute, join, parse, resolve } from "node:path";
|
|
14
14
|
import { spawn } from "node:child_process";
|
|
15
|
-
import { homedir } from "node:os";
|
|
16
15
|
import { performance } from "node:perf_hooks";
|
|
17
16
|
import { withLocalProcessLock } from "./hellolynk-local-process-lock.mjs";
|
|
18
|
-
import { readClientProfile } from "./hellolynk-client-profile.mjs";
|
|
17
|
+
import { defaultHelloLynkClientRoot, readClientProfile } from "./hellolynk-client-profile.mjs";
|
|
19
18
|
import { assertIdentifier } from "./hellolynk-host-auth.mjs";
|
|
20
19
|
import runtimeSafety from "./hellolynk-runtime-safety.cjs";
|
|
21
20
|
|
|
@@ -46,10 +45,7 @@ export function defaultNeutralHostStoreRoot(platform = process.platform, env = p
|
|
|
46
45
|
}
|
|
47
46
|
return root;
|
|
48
47
|
}
|
|
49
|
-
|
|
50
|
-
if (platform === "win32") return resolve(String(env.LOCALAPPDATA || join(home, "AppData", "Local")), "HelloLynk", "host");
|
|
51
|
-
if (platform === "darwin") return join(home, "Library", "Application Support", "HelloLynk", "host");
|
|
52
|
-
return resolve(String(env.XDG_DATA_HOME || join(home, ".local", "share")), "hellolynk", "host");
|
|
48
|
+
return join(defaultHelloLynkClientRoot(platform, env), "host");
|
|
53
49
|
}
|
|
54
50
|
|
|
55
51
|
export function createNeutralHostInstallationStore(options = {}) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { lstat, mkdir, open, readFile, rename, rm, stat } from "node:fs/promises";
|
|
2
|
+
import { readdirSync } from "node:fs";
|
|
2
3
|
import { homedir } from "node:os";
|
|
3
4
|
import { basename, dirname, isAbsolute, join, resolve } from "node:path";
|
|
4
5
|
import { randomUUID } from "node:crypto";
|
|
@@ -19,12 +20,34 @@ const SAFE_SCOPE = /^[a-z][a-z0-9_.:-]{0,127}$/;
|
|
|
19
20
|
const MAX_PROFILE_BYTES = 64 * 1024;
|
|
20
21
|
|
|
21
22
|
export function defaultHelloLynkClientRoot(platform = process.platform, env = process.env) {
|
|
22
|
-
const home = resolve(String(env.HOME || env.USERPROFILE || homedir()));
|
|
23
|
-
if (platform === "win32")
|
|
23
|
+
const home = resolve(String((platform === "win32" ? env.USERPROFILE || env.HOME : env.HOME || env.USERPROFILE) || homedir()));
|
|
24
|
+
if (platform === "win32") {
|
|
25
|
+
const current = join(home, ".hellolynk", "hellolynk-v2");
|
|
26
|
+
// Once selected, another client's older installer must not move us back.
|
|
27
|
+
if (hasWindowsClientInstallation(current)) return current;
|
|
28
|
+
const existing = resolve(String(env.LOCALAPPDATA || join(home, "AppData", "Local")), "HelloLynk");
|
|
29
|
+
// AppData created from a packaged desktop app can be private to that app.
|
|
30
|
+
// Keep an existing installation; an empty failed setup is not an account.
|
|
31
|
+
if (hasWindowsClientInstallation(existing)) return existing;
|
|
32
|
+
return current;
|
|
33
|
+
}
|
|
24
34
|
if (platform === "darwin") return join(home, "Library", "Application Support", "HelloLynk");
|
|
25
35
|
return resolve(String(env.XDG_DATA_HOME || join(home, ".local", "share")), "hellolynk");
|
|
26
36
|
}
|
|
27
37
|
|
|
38
|
+
function hasWindowsClientInstallation(root) {
|
|
39
|
+
for (const directory of ["profiles", "releases", "host", "credentials", "e2ee-private-keys"]) {
|
|
40
|
+
try {
|
|
41
|
+
const entries = readdirSync(join(root, directory), { withFileTypes: true });
|
|
42
|
+
if (entries.some((entry) => directory !== "host" || entry.name !== "runtime")) return true;
|
|
43
|
+
} catch (error) {
|
|
44
|
+
// An unreadable existing location must not silently become a fresh account.
|
|
45
|
+
if (error.code !== "ENOENT") return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
|
|
28
51
|
function safeId(value, code) {
|
|
29
52
|
const normalized = String(value || "").trim();
|
|
30
53
|
if (!SAFE_ID.test(normalized)) throw new Error(code);
|
|
@@ -12,10 +12,9 @@ import {
|
|
|
12
12
|
} from "node:fs/promises";
|
|
13
13
|
import { basename, dirname, isAbsolute, join, parse, resolve } from "node:path";
|
|
14
14
|
import { spawn } from "node:child_process";
|
|
15
|
-
import { homedir } from "node:os";
|
|
16
15
|
import { performance } from "node:perf_hooks";
|
|
17
16
|
import { withLocalProcessLock } from "./hellolynk-local-process-lock.mjs";
|
|
18
|
-
import { readClientProfile } from "./hellolynk-client-profile.mjs";
|
|
17
|
+
import { defaultHelloLynkClientRoot, readClientProfile } from "./hellolynk-client-profile.mjs";
|
|
19
18
|
import { assertIdentifier } from "./hellolynk-host-auth.mjs";
|
|
20
19
|
import runtimeSafety from "./hellolynk-runtime-safety.cjs";
|
|
21
20
|
|
|
@@ -46,10 +45,7 @@ export function defaultNeutralHostStoreRoot(platform = process.platform, env = p
|
|
|
46
45
|
}
|
|
47
46
|
return root;
|
|
48
47
|
}
|
|
49
|
-
|
|
50
|
-
if (platform === "win32") return resolve(String(env.LOCALAPPDATA || join(home, "AppData", "Local")), "HelloLynk", "host");
|
|
51
|
-
if (platform === "darwin") return join(home, "Library", "Application Support", "HelloLynk", "host");
|
|
52
|
-
return resolve(String(env.XDG_DATA_HOME || join(home, ".local", "share")), "hellolynk", "host");
|
|
48
|
+
return join(defaultHelloLynkClientRoot(platform, env), "host");
|
|
53
49
|
}
|
|
54
50
|
|
|
55
51
|
export function createNeutralHostInstallationStore(options = {}) {
|
|
@@ -34,7 +34,7 @@ export const HELLOLYNK_NEUTRAL_HOST_PROCESS_CONTRACT = "hellolynk-neutral-host-p
|
|
|
34
34
|
export const HELLOLYNK_NEUTRAL_HOST_DISCOVERY_CONTRACT = "hellolynk-neutral-host-discovery-v1";
|
|
35
35
|
// Raised with every release batch, together with the six client versions. A Host reports it
|
|
36
36
|
// in its health; the higher release stays and the lower one makes room.
|
|
37
|
-
export const HELLOLYNK_HOST_RELEASE_ORDINAL =
|
|
37
|
+
export const HELLOLYNK_HOST_RELEASE_ORDINAL = 15;
|
|
38
38
|
|
|
39
39
|
const INSTALLATION_LOCK_CONTRACT = "hellolynk-neutral-host-installation-lock-v2";
|
|
40
40
|
const INSTALLATION_LOCK_MAX_BYTES = 4 * 1024;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"files": [
|
|
5
5
|
{
|
|
6
6
|
"path": "release/package.json",
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "befbca064334e8ff7f9d192f095ac1bd786a3882385a450fc2c2d2a5c9b2b7dd"
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
"path": "neutral-host-bootstrap.mjs",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"path": "core/hellolynk-client-profile.mjs",
|
|
39
|
-
"sha256": "
|
|
39
|
+
"sha256": "8be37831c96610e3d0a64848ada86488970cc6079e49764b47d8a8b2ba852269"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"path": "core/hellolynk-client-update-entry.mjs",
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
"path": "core/hellolynk-neutral-host-installation-store.mjs",
|
|
183
|
-
"sha256": "
|
|
183
|
+
"sha256": "dfb6bba4c627082cd6fca8cb38dc786f905e38f3e83ccf91dbfe57e55639e8a2"
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
186
|
"path": "core/hellolynk-neutral-host-launcher.mjs",
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
},
|
|
189
189
|
{
|
|
190
190
|
"path": "core/hellolynk-neutral-host-process.mjs",
|
|
191
|
-
"sha256": "
|
|
191
|
+
"sha256": "e744bacf65f7b86cbcf7d654189c0e07e09401083e2b6f9053b17c1c3bacd1b4"
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
"path": "core/hellolynk-neutral-host-store-adapters.mjs",
|
|
@@ -312,7 +312,7 @@
|
|
|
312
312
|
},
|
|
313
313
|
{
|
|
314
314
|
"path": "bootstrap/core/hellolynk-client-profile.mjs",
|
|
315
|
-
"sha256": "
|
|
315
|
+
"sha256": "8be37831c96610e3d0a64848ada86488970cc6079e49764b47d8a8b2ba852269"
|
|
316
316
|
},
|
|
317
317
|
{
|
|
318
318
|
"path": "bootstrap/core/hellolynk-host-auth.mjs",
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
},
|
|
329
329
|
{
|
|
330
330
|
"path": "bootstrap/core/hellolynk-neutral-host-installation-store.mjs",
|
|
331
|
-
"sha256": "
|
|
331
|
+
"sha256": "dfb6bba4c627082cd6fca8cb38dc786f905e38f3e83ccf91dbfe57e55639e8a2"
|
|
332
332
|
},
|
|
333
333
|
{
|
|
334
334
|
"path": "bootstrap/core/hellolynk-platform-credential-store.mjs",
|
|
@@ -344,7 +344,7 @@
|
|
|
344
344
|
},
|
|
345
345
|
{
|
|
346
346
|
"path": "release/server/codex-neutral-production.mjs",
|
|
347
|
-
"sha256": "
|
|
347
|
+
"sha256": "7b3249f1b35c331cf2b00ac2873a54d12fc6f61cf341bb82cec98e49ce221b92"
|
|
348
348
|
},
|
|
349
349
|
{
|
|
350
350
|
"path": "release/server/neutral-host-adapter.mjs",
|
|
@@ -24,9 +24,9 @@ const TRUSTED_BOOTSTRAP_FILES = Object.freeze(new Map([
|
|
|
24
24
|
["runtime/neutral-host-bootstrap.mjs", "53513deed7f0155a6603a1489d1609fae37776442358181ff7650d0cd9351f0a"],
|
|
25
25
|
["runtime/bootstrap/core/hellolynk-runtime-safety.cjs", "43d576d9f774409f4a735793c1503a6f397e787b10c59a4ac9cc9257299f5efe"],
|
|
26
26
|
["runtime/bootstrap/core/hellolynk-host-protected-store.mjs", "89b6e6c4ce9c6ba2984f8c301de4251da6004bdd402cc44d578a4505c21b75b1"],
|
|
27
|
-
["runtime/bootstrap/core/hellolynk-neutral-host-installation-store.mjs", "
|
|
27
|
+
["runtime/bootstrap/core/hellolynk-neutral-host-installation-store.mjs", "dfb6bba4c627082cd6fca8cb38dc786f905e38f3e83ccf91dbfe57e55639e8a2"],
|
|
28
28
|
["runtime/bootstrap/core/hellolynk-host-auth.mjs", "db1ec56f4e60e6450fba50188eecf89748f39f5d7a75c2456c30a6053233555d"],
|
|
29
|
-
["runtime/bootstrap/core/hellolynk-client-profile.mjs", "
|
|
29
|
+
["runtime/bootstrap/core/hellolynk-client-profile.mjs", "8be37831c96610e3d0a64848ada86488970cc6079e49764b47d8a8b2ba852269"],
|
|
30
30
|
["runtime/bootstrap/core/hellolynk-platform-credential-store.mjs", "f27f5f377cc4d6d2b5664212cf8fcc4c98d910064c1677ff9c1f776df1a59dba"],
|
|
31
31
|
["runtime/bootstrap/core/hellolynk-client-core.mjs", "94bbad1d0ccee969bbffed176449e427188f1b892512a64167ab31f63d258e2b"],
|
|
32
32
|
["runtime/bootstrap/platform/windows/hellolynk-host-protected-store.ps1", "24357e8ce54090b4ec68e457f02c9e834a80f3273ef3c03a8c0fa7258797fb49"],
|