@amalgm/core 0.1.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/PURPOSE.md +94 -0
- package/README.md +30 -0
- package/dist/adapters/index.d.ts +13 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +11 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/identity/auth-records.d.ts +147 -0
- package/dist/identity/auth-records.d.ts.map +1 -0
- package/dist/identity/auth-records.js +354 -0
- package/dist/identity/auth-records.js.map +1 -0
- package/dist/identity/ids.d.ts +57 -0
- package/dist/identity/ids.d.ts.map +1 -0
- package/dist/identity/ids.js +80 -0
- package/dist/identity/ids.js.map +1 -0
- package/dist/identity/index.d.ts +14 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +14 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/labels.d.ts +115 -0
- package/dist/identity/labels.d.ts.map +1 -0
- package/dist/identity/labels.js +154 -0
- package/dist/identity/labels.js.map +1 -0
- package/dist/identity/layout.d.ts +188 -0
- package/dist/identity/layout.d.ts.map +1 -0
- package/dist/identity/layout.js +233 -0
- package/dist/identity/layout.js.map +1 -0
- package/dist/identity/ports.d.ts +31 -0
- package/dist/identity/ports.d.ts.map +1 -0
- package/dist/identity/ports.js +9 -0
- package/dist/identity/ports.js.map +1 -0
- package/dist/identity/product-state.d.ts +49 -0
- package/dist/identity/product-state.d.ts.map +1 -0
- package/dist/identity/product-state.js +55 -0
- package/dist/identity/product-state.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/supervision/app-health.d.ts +148 -0
- package/dist/supervision/app-health.d.ts.map +1 -0
- package/dist/supervision/app-health.js +165 -0
- package/dist/supervision/app-health.js.map +1 -0
- package/dist/supervision/app-restart.d.ts +105 -0
- package/dist/supervision/app-restart.d.ts.map +1 -0
- package/dist/supervision/app-restart.js +97 -0
- package/dist/supervision/app-restart.js.map +1 -0
- package/dist/supervision/health.d.ts +218 -0
- package/dist/supervision/health.d.ts.map +1 -0
- package/dist/supervision/health.js +227 -0
- package/dist/supervision/health.js.map +1 -0
- package/dist/supervision/index.d.ts +17 -0
- package/dist/supervision/index.d.ts.map +1 -0
- package/dist/supervision/index.js +17 -0
- package/dist/supervision/index.js.map +1 -0
- package/dist/supervision/service-registration.d.ts +343 -0
- package/dist/supervision/service-registration.d.ts.map +1 -0
- package/dist/supervision/service-registration.js +543 -0
- package/dist/supervision/service-registration.js.map +1 -0
- package/dist/supervision/update.d.ts +231 -0
- package/dist/supervision/update.d.ts.map +1 -0
- package/dist/supervision/update.js +336 -0
- package/dist/supervision/update.js.map +1 -0
- package/dist/transport/admission.d.ts +235 -0
- package/dist/transport/admission.d.ts.map +1 -0
- package/dist/transport/admission.js +313 -0
- package/dist/transport/admission.js.map +1 -0
- package/dist/transport/auth.d.ts +232 -0
- package/dist/transport/auth.d.ts.map +1 -0
- package/dist/transport/auth.js +266 -0
- package/dist/transport/auth.js.map +1 -0
- package/dist/transport/index.d.ts +21 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +21 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/ingress.d.ts +94 -0
- package/dist/transport/ingress.d.ts.map +1 -0
- package/dist/transport/ingress.js +171 -0
- package/dist/transport/ingress.js.map +1 -0
- package/dist/transport/routing.d.ts +235 -0
- package/dist/transport/routing.d.ts.map +1 -0
- package/dist/transport/routing.js +288 -0
- package/dist/transport/routing.js.map +1 -0
- package/dist/transport/shipped-routes.d.ts +21 -0
- package/dist/transport/shipped-routes.d.ts.map +1 -0
- package/dist/transport/shipped-routes.js +53 -0
- package/dist/transport/shipped-routes.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-records.js","sourceRoot":"","sources":["../../src/identity/auth-records.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity minting and validation laws — the shapes of the ids a machine
|
|
3
|
+
* proves itself with: computer UUIDs, device ids, runtime instance ids,
|
|
4
|
+
* the unenrolled fallback, and setup codes.
|
|
5
|
+
*/
|
|
6
|
+
import type { ResolvePathPort, Sha256HexPort } from './ports.js';
|
|
7
|
+
/**
|
|
8
|
+
* The enrolled-computer id law (engine
|
|
9
|
+
* runtime/scripts/amalgm-mcp/lib/computer.js:12): a classic RFC-4122 UUID,
|
|
10
|
+
* versions 1-5, variant 89ab. TWO DIFFERENT LAWS share this street:
|
|
11
|
+
* @amalgm/live's entity UUID_PATTERN admits versions 1-8 — an entity may be
|
|
12
|
+
* minted as a modern v7 — while a computer id stays the platform-minted
|
|
13
|
+
* classic shape. Do not unify them.
|
|
14
|
+
*/
|
|
15
|
+
export declare const COMPUTER_UUID_PATTERN: RegExp;
|
|
16
|
+
/** Is this a computer id? (computer.js:18-20). Non-strings and blank
|
|
17
|
+
* strings are simply not ids; surrounding whitespace is forgiven. */
|
|
18
|
+
export declare function isUuid(value: unknown): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* The identity of one runtime installation directory (engine
|
|
21
|
+
* packages/amalgm/lib/runtime-identity.js:148-154): sha256 of the RESOLVED
|
|
22
|
+
* directory path, first 16 hex chars. Resolution matters — two spellings
|
|
23
|
+
* of the same directory are the same instance — so the path resolver is a
|
|
24
|
+
* named port, not an ambient reach for the cwd.
|
|
25
|
+
*/
|
|
26
|
+
export declare function runtimeInstanceIdForDir(dir: unknown, ports: Sha256HexPort & ResolvePathPort): string;
|
|
27
|
+
/** The device-id format the npm CLI mints (engine
|
|
28
|
+
* packages/amalgm/lib/cli.js:326-329): `npm-<uuid>`, marking the minting
|
|
29
|
+
* surface in the id itself. */
|
|
30
|
+
export declare function npmDeviceId(uuid: string): string;
|
|
31
|
+
/** A stored device id is usable when it is a string of at least 8 chars
|
|
32
|
+
* (cli.js:301,314) — the CLI's scavenging accepts legacy ids from other
|
|
33
|
+
* surfaces, so the validator is deliberately about length, not prefix. */
|
|
34
|
+
export declare function isUsableDeviceId(value: unknown): value is string;
|
|
35
|
+
/**
|
|
36
|
+
* The machine id of a never-enrolled machine (engine
|
|
37
|
+
* runtime/scripts/amalgm-mcp/workspace/identity.js:44):
|
|
38
|
+
* `unenrolled:<hostname>` — a VISIBLY local identity, so an unenrolled
|
|
39
|
+
* machine can never be mistaken for a platform-known computer id.
|
|
40
|
+
*/
|
|
41
|
+
export declare function unenrolledMachineId(hostname: string): string;
|
|
42
|
+
/** A setup code is exactly 16 significant characters (cli.js:77). */
|
|
43
|
+
export declare const SETUP_CODE_LENGTH = 16;
|
|
44
|
+
/** Normalize a typed setup code (cli.js:290-292): uppercase, strip
|
|
45
|
+
* everything outside A-Z0-9, keep the first 16 — so dashes, spaces, and
|
|
46
|
+
* overtyping never fail a correct code. */
|
|
47
|
+
export declare function normalizeSetupCode(value: unknown): string;
|
|
48
|
+
/** Display form (cli.js:294-297): the normalized code regrouped in fours,
|
|
49
|
+
* joined with dashes — `ABCD-EFGH-JKLM-NPQR`. Empty input displays as ''. */
|
|
50
|
+
export declare function formatSetupCode(value: unknown): string;
|
|
51
|
+
/**
|
|
52
|
+
* A redeemable setup code is the full 16 characters (cli.js:545-548).
|
|
53
|
+
* Returns the normalized code; the refusal is the ratified string the CLI
|
|
54
|
+
* shows a mistyped code.
|
|
55
|
+
*/
|
|
56
|
+
export declare function assertSetupCode(value: unknown): string;
|
|
57
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/identity/ids.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAC4C,CAAC;AAM/E;qEACqE;AACrE,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9C;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,aAAa,GAAG,eAAe,GACrC,MAAM,CAER;AAED;;+BAE+B;AAC/B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;0EAE0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;2CAE2C;AAC3C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;6EAC6E;AAC7E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGtD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMtD"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity minting and validation laws — the shapes of the ids a machine
|
|
3
|
+
* proves itself with: computer UUIDs, device ids, runtime instance ids,
|
|
4
|
+
* the unenrolled fallback, and setup codes.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The enrolled-computer id law (engine
|
|
8
|
+
* runtime/scripts/amalgm-mcp/lib/computer.js:12): a classic RFC-4122 UUID,
|
|
9
|
+
* versions 1-5, variant 89ab. TWO DIFFERENT LAWS share this street:
|
|
10
|
+
* @amalgm/live's entity UUID_PATTERN admits versions 1-8 — an entity may be
|
|
11
|
+
* minted as a modern v7 — while a computer id stays the platform-minted
|
|
12
|
+
* classic shape. Do not unify them.
|
|
13
|
+
*/
|
|
14
|
+
export const COMPUTER_UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
15
|
+
function nonEmptyString(value) {
|
|
16
|
+
return typeof value === 'string' && value.trim() ? value.trim() : '';
|
|
17
|
+
}
|
|
18
|
+
/** Is this a computer id? (computer.js:18-20). Non-strings and blank
|
|
19
|
+
* strings are simply not ids; surrounding whitespace is forgiven. */
|
|
20
|
+
export function isUuid(value) {
|
|
21
|
+
return COMPUTER_UUID_PATTERN.test(nonEmptyString(value));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The identity of one runtime installation directory (engine
|
|
25
|
+
* packages/amalgm/lib/runtime-identity.js:148-154): sha256 of the RESOLVED
|
|
26
|
+
* directory path, first 16 hex chars. Resolution matters — two spellings
|
|
27
|
+
* of the same directory are the same instance — so the path resolver is a
|
|
28
|
+
* named port, not an ambient reach for the cwd.
|
|
29
|
+
*/
|
|
30
|
+
export function runtimeInstanceIdForDir(dir, ports) {
|
|
31
|
+
return ports.sha256Hex(ports.resolvePath(String(dir || ''))).slice(0, 16);
|
|
32
|
+
}
|
|
33
|
+
/** The device-id format the npm CLI mints (engine
|
|
34
|
+
* packages/amalgm/lib/cli.js:326-329): `npm-<uuid>`, marking the minting
|
|
35
|
+
* surface in the id itself. */
|
|
36
|
+
export function npmDeviceId(uuid) {
|
|
37
|
+
return `npm-${uuid}`;
|
|
38
|
+
}
|
|
39
|
+
/** A stored device id is usable when it is a string of at least 8 chars
|
|
40
|
+
* (cli.js:301,314) — the CLI's scavenging accepts legacy ids from other
|
|
41
|
+
* surfaces, so the validator is deliberately about length, not prefix. */
|
|
42
|
+
export function isUsableDeviceId(value) {
|
|
43
|
+
return typeof value === 'string' && value.length >= 8;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The machine id of a never-enrolled machine (engine
|
|
47
|
+
* runtime/scripts/amalgm-mcp/workspace/identity.js:44):
|
|
48
|
+
* `unenrolled:<hostname>` — a VISIBLY local identity, so an unenrolled
|
|
49
|
+
* machine can never be mistaken for a platform-known computer id.
|
|
50
|
+
*/
|
|
51
|
+
export function unenrolledMachineId(hostname) {
|
|
52
|
+
return `unenrolled:${hostname}`;
|
|
53
|
+
}
|
|
54
|
+
/** A setup code is exactly 16 significant characters (cli.js:77). */
|
|
55
|
+
export const SETUP_CODE_LENGTH = 16;
|
|
56
|
+
/** Normalize a typed setup code (cli.js:290-292): uppercase, strip
|
|
57
|
+
* everything outside A-Z0-9, keep the first 16 — so dashes, spaces, and
|
|
58
|
+
* overtyping never fail a correct code. */
|
|
59
|
+
export function normalizeSetupCode(value) {
|
|
60
|
+
return String(value || '').toUpperCase().replace(/[^A-Z0-9]/g, '').slice(0, SETUP_CODE_LENGTH);
|
|
61
|
+
}
|
|
62
|
+
/** Display form (cli.js:294-297): the normalized code regrouped in fours,
|
|
63
|
+
* joined with dashes — `ABCD-EFGH-JKLM-NPQR`. Empty input displays as ''. */
|
|
64
|
+
export function formatSetupCode(value) {
|
|
65
|
+
const normalized = normalizeSetupCode(value);
|
|
66
|
+
return normalized.match(/.{1,4}/g)?.join('-') || '';
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A redeemable setup code is the full 16 characters (cli.js:545-548).
|
|
70
|
+
* Returns the normalized code; the refusal is the ratified string the CLI
|
|
71
|
+
* shows a mistyped code.
|
|
72
|
+
*/
|
|
73
|
+
export function assertSetupCode(value) {
|
|
74
|
+
const normalized = normalizeSetupCode(value);
|
|
75
|
+
if (normalized.length !== SETUP_CODE_LENGTH) {
|
|
76
|
+
throw new Error('Invalid setup code. It should look like ABCD-EFGH-JKLM-NPQR.');
|
|
77
|
+
}
|
|
78
|
+
return normalized;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/identity/ids.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,4EAA4E,CAAC;AAE/E,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;qEACqE;AACrE,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,KAAsC;IAEtC,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;+BAE+B;AAC/B,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,OAAO,IAAI,EAAE,CAAC;AACvB,CAAC;AAED;;0EAE0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,cAAc,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC;;2CAE2C;AAC3C,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACjG,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IDENTITY — who this machine is, for which user, on which branch (axiom 2:
|
|
3
|
+
* identity is one story). The pure laws behind `~/amalgm` layout, runtime
|
|
4
|
+
* labels and channels, id minting/validation, and credential-record
|
|
5
|
+
* shaping. Every effect (hash, random, clock, path resolution, env) arrives
|
|
6
|
+
* as an injected port from `./ports.js`.
|
|
7
|
+
*/
|
|
8
|
+
export * from './ports.js';
|
|
9
|
+
export * from './labels.js';
|
|
10
|
+
export * from './layout.js';
|
|
11
|
+
export * from './product-state.js';
|
|
12
|
+
export * from './ids.js';
|
|
13
|
+
export * from './auth-records.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IDENTITY — who this machine is, for which user, on which branch (axiom 2:
|
|
3
|
+
* identity is one story). The pure laws behind `~/amalgm` layout, runtime
|
|
4
|
+
* labels and channels, id minting/validation, and credential-record
|
|
5
|
+
* shaping. Every effect (hash, random, clock, path resolution, env) arrives
|
|
6
|
+
* as an injected port from `./ports.js`.
|
|
7
|
+
*/
|
|
8
|
+
export * from './ports.js';
|
|
9
|
+
export * from './labels.js';
|
|
10
|
+
export * from './layout.js';
|
|
11
|
+
export * from './product-state.js';
|
|
12
|
+
export * from './ids.js';
|
|
13
|
+
export * from './auth-records.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime label + channel laws — which branch of Amalgm a process runs AS,
|
|
3
|
+
* and which cloud infrastructure it talks TO.
|
|
4
|
+
*
|
|
5
|
+
* The engine keeps TWO different partitions of the same raw input, and both
|
|
6
|
+
* are load-bearing:
|
|
7
|
+
*
|
|
8
|
+
* 1. The LABEL partition ({@link normalizeRuntimeLabel} and its coercing
|
|
9
|
+
* twin {@link coerceRuntimeLabel}): `main | preview | local` — the
|
|
10
|
+
* identity that scopes state under `runtimes/<label>/` and decides which
|
|
11
|
+
* computer records may bind to this process.
|
|
12
|
+
* 2. The INFRA partition ({@link usesPreviewInfraDefaults}): main infra vs
|
|
13
|
+
* preview infra. Here `local`/`dev`/`development` land on the PREVIEW
|
|
14
|
+
* side — a development build must never default onto production
|
|
15
|
+
* endpoints, even though its label is `local`, not `preview`.
|
|
16
|
+
*
|
|
17
|
+
* `dev` is the input that convicts any conflation of the two: label
|
|
18
|
+
* `local`, infra `preview`.
|
|
19
|
+
*/
|
|
20
|
+
export type RuntimeLabel = 'main' | 'preview' | 'local';
|
|
21
|
+
/** The three runtime identities a process may run as
|
|
22
|
+
* (engine packages/amalgm/lib/runtime-identity.js:10). */
|
|
23
|
+
export declare const VALID_RUNTIME_LABELS: ReadonlySet<RuntimeLabel>;
|
|
24
|
+
/**
|
|
25
|
+
* The CLI's label law (engine packages/amalgm/lib/runtime-identity.js:12-19):
|
|
26
|
+
* fold the alias vocabulary onto the three labels, and return `''` for
|
|
27
|
+
* anything unrecognized. The empty string is the point — the CLI layers
|
|
28
|
+
* fallbacks (env chain, then version sniffing via
|
|
29
|
+
* {@link runtimeLabelFromVersion}), so "no answer" must stay expressible.
|
|
30
|
+
* A booted runtime that needs an unconditional answer uses
|
|
31
|
+
* {@link coerceRuntimeLabel} instead.
|
|
32
|
+
*/
|
|
33
|
+
export declare function normalizeRuntimeLabel(value: unknown): RuntimeLabel | '';
|
|
34
|
+
/**
|
|
35
|
+
* The runtime's label law (engine runtime/scripts/amalgm-mcp/config.js:119-124,
|
|
36
|
+
* repeated verbatim in runtime/scripts/lib/runtime-paths.js:7-12,
|
|
37
|
+
* runtime/scripts/amalgm-mcp/apps/advertise.js:25-30 and
|
|
38
|
+
* runtime/scripts/proxy-token-store.js:56-61): the same alias folding, but a
|
|
39
|
+
* running process must have SOME label, so everything unrecognized —
|
|
40
|
+
* including the empty string — is `main`. The two functions agree on every
|
|
41
|
+
* named alias and disagree only on garbage: `normalizeRuntimeLabel('x')` is
|
|
42
|
+
* `''`, `coerceRuntimeLabel('x')` is `'main'`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function coerceRuntimeLabel(value: unknown): RuntimeLabel;
|
|
45
|
+
/**
|
|
46
|
+
* A label that reaches state paths must already be one of the three
|
|
47
|
+
* (engine runtime-identity.js:38-43). The error text is the ratified string
|
|
48
|
+
* the CLI's exams pin.
|
|
49
|
+
*/
|
|
50
|
+
export declare function assertRuntimeLabel(label: string): RuntimeLabel;
|
|
51
|
+
/**
|
|
52
|
+
* Which git branch a runtime tracks (engine runtime-identity.js:45-50).
|
|
53
|
+
* An explicit branch wins when it normalizes to a real branch (`main` or
|
|
54
|
+
* `preview` — `local` is a label, never a branch); otherwise the label
|
|
55
|
+
* decides: preview tracks preview, everything else tracks main.
|
|
56
|
+
* Pure over the would-be `AMALGM_BRANCH` value instead of reading env.
|
|
57
|
+
*/
|
|
58
|
+
export declare function runtimeBranchForLabel(label: string, envBranch?: unknown): 'main' | 'preview';
|
|
59
|
+
/**
|
|
60
|
+
* Which npm dist-tag an installation updates from (engine
|
|
61
|
+
* runtime-identity.js:52-57). Releases are promoted deliberately to `main`;
|
|
62
|
+
* `latest` is retained only as the public compatibility channel and may lag
|
|
63
|
+
* the runtime we boot, so a main installation must update from the channel
|
|
64
|
+
* it actually runs. NOTE: `main` here is an UNCOMMITTED engine change from
|
|
65
|
+
* the previous `latest` — the new behavior is the law being ported.
|
|
66
|
+
*/
|
|
67
|
+
export declare function npmTagForRuntimeLabel(label: string): 'canary' | 'main';
|
|
68
|
+
/**
|
|
69
|
+
* Sniff the runtime label from a package version (engine
|
|
70
|
+
* runtime-identity.js:21-24): a recognized prerelease token means
|
|
71
|
+
* `preview`; the ABSENCE of one means `main`. This is the terminal
|
|
72
|
+
* fallback after the env chain returns nothing.
|
|
73
|
+
*/
|
|
74
|
+
export declare function runtimeLabelFromVersion(version: unknown): 'main' | 'preview';
|
|
75
|
+
/** The raw inputs the infra partition reads, in engine precedence order:
|
|
76
|
+
* AMALGM_RUNTIME_LABEL, then AMALGM_CHANNEL, then AMALGM_BRANCH. */
|
|
77
|
+
export interface RuntimeChannelInput {
|
|
78
|
+
readonly label?: unknown;
|
|
79
|
+
readonly channel?: unknown;
|
|
80
|
+
readonly branch?: unknown;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The INFRA partition (engine runtime/scripts/amalgm-mcp/config.js:61-69,
|
|
84
|
+
* repeated in runtime/scripts/proxy-token-store.js:7-15): does this process
|
|
85
|
+
* default onto preview infrastructure (api/apps/gateway `*.preview.amalgm.ai`)?
|
|
86
|
+
* A DIFFERENT partition from {@link normalizeRuntimeLabel} over the same
|
|
87
|
+
* input: the preview-infra set additionally contains `local`/`dev`/
|
|
88
|
+
* `development`, and it matches the RAW input, not the folded label —
|
|
89
|
+
* `master` or `latest` fall to main infra without being renamed `main`.
|
|
90
|
+
* Pure over `{label, channel, branch}`; the engine reads the env vars named
|
|
91
|
+
* on {@link RuntimeChannelInput} in exactly this order.
|
|
92
|
+
*/
|
|
93
|
+
export declare function usesPreviewInfraDefaults({ label, channel, branch }: RuntimeChannelInput): boolean;
|
|
94
|
+
/** A stored record naming the runtime it belongs to, by any of its three
|
|
95
|
+
* historical key spellings. Precedence: runtime_label > label > branch. */
|
|
96
|
+
export interface RuntimeLabeledRecord {
|
|
97
|
+
readonly runtime_label?: unknown;
|
|
98
|
+
readonly label?: unknown;
|
|
99
|
+
readonly branch?: unknown;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* May this stored record bind to the runtime labeled `currentLabel`?
|
|
103
|
+
* (engine runtime/scripts/amalgm-mcp/apps/advertise.js:32-36). The record's
|
|
104
|
+
* claim is read with key precedence runtime_label > label > branch, coerced
|
|
105
|
+
* by the runtime law, and must equal the current label exactly.
|
|
106
|
+
*
|
|
107
|
+
* DELIBERATE DEVIATION: the engine follows the coercion with
|
|
108
|
+
* `if (!label) return AMALGM_RUNTIME_LABEL === 'main'` — unreachable,
|
|
109
|
+
* because its coercing normalizer never returns `''`. That branch is
|
|
110
|
+
* dropped here. The reachable form of the absent-label rule lives in
|
|
111
|
+
* `recordMatchesCurrentRuntime` (auth-records.ts), whose normalizer CAN
|
|
112
|
+
* return `''`.
|
|
113
|
+
*/
|
|
114
|
+
export declare function recordMatchesRuntime(record: RuntimeLabeledRecord | null | undefined, currentLabel: RuntimeLabel): boolean;
|
|
115
|
+
//# sourceMappingURL=labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/identity/labels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAExD;0DAC0D;AAC1D,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,YAAY,CAIzD,CAAC;AAMH;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,EAAE,CAOvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAK/D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAK5F;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAEtE;AAMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED;oEACoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAGjG;AAED;2EAC2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC/C,YAAY,EAAE,YAAY,GACzB,OAAO,CAGT"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime label + channel laws — which branch of Amalgm a process runs AS,
|
|
3
|
+
* and which cloud infrastructure it talks TO.
|
|
4
|
+
*
|
|
5
|
+
* The engine keeps TWO different partitions of the same raw input, and both
|
|
6
|
+
* are load-bearing:
|
|
7
|
+
*
|
|
8
|
+
* 1. The LABEL partition ({@link normalizeRuntimeLabel} and its coercing
|
|
9
|
+
* twin {@link coerceRuntimeLabel}): `main | preview | local` — the
|
|
10
|
+
* identity that scopes state under `runtimes/<label>/` and decides which
|
|
11
|
+
* computer records may bind to this process.
|
|
12
|
+
* 2. The INFRA partition ({@link usesPreviewInfraDefaults}): main infra vs
|
|
13
|
+
* preview infra. Here `local`/`dev`/`development` land on the PREVIEW
|
|
14
|
+
* side — a development build must never default onto production
|
|
15
|
+
* endpoints, even though its label is `local`, not `preview`.
|
|
16
|
+
*
|
|
17
|
+
* `dev` is the input that convicts any conflation of the two: label
|
|
18
|
+
* `local`, infra `preview`.
|
|
19
|
+
*/
|
|
20
|
+
/** The three runtime identities a process may run as
|
|
21
|
+
* (engine packages/amalgm/lib/runtime-identity.js:10). */
|
|
22
|
+
export const VALID_RUNTIME_LABELS = new Set([
|
|
23
|
+
'main',
|
|
24
|
+
'preview',
|
|
25
|
+
'local',
|
|
26
|
+
]);
|
|
27
|
+
const MAIN_ALIASES = Object.freeze(['main', 'latest', 'stable', 'prod', 'production', 'release', 'master']);
|
|
28
|
+
const PREVIEW_ALIASES = Object.freeze(['preview', 'canary', 'native-chat', 'staging']);
|
|
29
|
+
const LOCAL_ALIASES = Object.freeze(['local', 'dev', 'development']);
|
|
30
|
+
/**
|
|
31
|
+
* The CLI's label law (engine packages/amalgm/lib/runtime-identity.js:12-19):
|
|
32
|
+
* fold the alias vocabulary onto the three labels, and return `''` for
|
|
33
|
+
* anything unrecognized. The empty string is the point — the CLI layers
|
|
34
|
+
* fallbacks (env chain, then version sniffing via
|
|
35
|
+
* {@link runtimeLabelFromVersion}), so "no answer" must stay expressible.
|
|
36
|
+
* A booted runtime that needs an unconditional answer uses
|
|
37
|
+
* {@link coerceRuntimeLabel} instead.
|
|
38
|
+
*/
|
|
39
|
+
export function normalizeRuntimeLabel(value) {
|
|
40
|
+
const raw = String(value || '').trim().toLowerCase();
|
|
41
|
+
if (!raw)
|
|
42
|
+
return '';
|
|
43
|
+
if (MAIN_ALIASES.includes(raw))
|
|
44
|
+
return 'main';
|
|
45
|
+
if (PREVIEW_ALIASES.includes(raw))
|
|
46
|
+
return 'preview';
|
|
47
|
+
if (LOCAL_ALIASES.includes(raw))
|
|
48
|
+
return 'local';
|
|
49
|
+
return '';
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The runtime's label law (engine runtime/scripts/amalgm-mcp/config.js:119-124,
|
|
53
|
+
* repeated verbatim in runtime/scripts/lib/runtime-paths.js:7-12,
|
|
54
|
+
* runtime/scripts/amalgm-mcp/apps/advertise.js:25-30 and
|
|
55
|
+
* runtime/scripts/proxy-token-store.js:56-61): the same alias folding, but a
|
|
56
|
+
* running process must have SOME label, so everything unrecognized —
|
|
57
|
+
* including the empty string — is `main`. The two functions agree on every
|
|
58
|
+
* named alias and disagree only on garbage: `normalizeRuntimeLabel('x')` is
|
|
59
|
+
* `''`, `coerceRuntimeLabel('x')` is `'main'`.
|
|
60
|
+
*/
|
|
61
|
+
export function coerceRuntimeLabel(value) {
|
|
62
|
+
const raw = String(value || '').trim().toLowerCase();
|
|
63
|
+
if (PREVIEW_ALIASES.includes(raw))
|
|
64
|
+
return 'preview';
|
|
65
|
+
if (LOCAL_ALIASES.includes(raw))
|
|
66
|
+
return 'local';
|
|
67
|
+
return 'main';
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* A label that reaches state paths must already be one of the three
|
|
71
|
+
* (engine runtime-identity.js:38-43). The error text is the ratified string
|
|
72
|
+
* the CLI's exams pin.
|
|
73
|
+
*/
|
|
74
|
+
export function assertRuntimeLabel(label) {
|
|
75
|
+
if (!VALID_RUNTIME_LABELS.has(label)) {
|
|
76
|
+
throw new Error(`Unsupported Amalgm runtime label "${label}". Use main, preview, or local.`);
|
|
77
|
+
}
|
|
78
|
+
return label;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Which git branch a runtime tracks (engine runtime-identity.js:45-50).
|
|
82
|
+
* An explicit branch wins when it normalizes to a real branch (`main` or
|
|
83
|
+
* `preview` — `local` is a label, never a branch); otherwise the label
|
|
84
|
+
* decides: preview tracks preview, everything else tracks main.
|
|
85
|
+
* Pure over the would-be `AMALGM_BRANCH` value instead of reading env.
|
|
86
|
+
*/
|
|
87
|
+
export function runtimeBranchForLabel(label, envBranch) {
|
|
88
|
+
const branch = normalizeRuntimeLabel(envBranch);
|
|
89
|
+
if (branch === 'main' || branch === 'preview')
|
|
90
|
+
return branch;
|
|
91
|
+
if (label === 'preview')
|
|
92
|
+
return 'preview';
|
|
93
|
+
return 'main';
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Which npm dist-tag an installation updates from (engine
|
|
97
|
+
* runtime-identity.js:52-57). Releases are promoted deliberately to `main`;
|
|
98
|
+
* `latest` is retained only as the public compatibility channel and may lag
|
|
99
|
+
* the runtime we boot, so a main installation must update from the channel
|
|
100
|
+
* it actually runs. NOTE: `main` here is an UNCOMMITTED engine change from
|
|
101
|
+
* the previous `latest` — the new behavior is the law being ported.
|
|
102
|
+
*/
|
|
103
|
+
export function npmTagForRuntimeLabel(label) {
|
|
104
|
+
return label === 'preview' ? 'canary' : 'main';
|
|
105
|
+
}
|
|
106
|
+
/** The prerelease grammar that marks a version as preview-channel. A tag
|
|
107
|
+
* counts only as a whole dash-delimited token: `-canaryish` is not canary. */
|
|
108
|
+
const PRERELEASE_PATTERN = /-(?:canary|preview|alpha|beta|rc)(?:[.\-+]|$)/;
|
|
109
|
+
/**
|
|
110
|
+
* Sniff the runtime label from a package version (engine
|
|
111
|
+
* runtime-identity.js:21-24): a recognized prerelease token means
|
|
112
|
+
* `preview`; the ABSENCE of one means `main`. This is the terminal
|
|
113
|
+
* fallback after the env chain returns nothing.
|
|
114
|
+
*/
|
|
115
|
+
export function runtimeLabelFromVersion(version) {
|
|
116
|
+
const raw = String(version || '').toLowerCase();
|
|
117
|
+
return PRERELEASE_PATTERN.test(raw) ? 'preview' : 'main';
|
|
118
|
+
}
|
|
119
|
+
const PREVIEW_INFRA_INPUTS = Object.freeze([
|
|
120
|
+
'preview', 'canary', 'native-chat', 'staging', 'local', 'dev', 'development',
|
|
121
|
+
]);
|
|
122
|
+
/**
|
|
123
|
+
* The INFRA partition (engine runtime/scripts/amalgm-mcp/config.js:61-69,
|
|
124
|
+
* repeated in runtime/scripts/proxy-token-store.js:7-15): does this process
|
|
125
|
+
* default onto preview infrastructure (api/apps/gateway `*.preview.amalgm.ai`)?
|
|
126
|
+
* A DIFFERENT partition from {@link normalizeRuntimeLabel} over the same
|
|
127
|
+
* input: the preview-infra set additionally contains `local`/`dev`/
|
|
128
|
+
* `development`, and it matches the RAW input, not the folded label —
|
|
129
|
+
* `master` or `latest` fall to main infra without being renamed `main`.
|
|
130
|
+
* Pure over `{label, channel, branch}`; the engine reads the env vars named
|
|
131
|
+
* on {@link RuntimeChannelInput} in exactly this order.
|
|
132
|
+
*/
|
|
133
|
+
export function usesPreviewInfraDefaults({ label, channel, branch }) {
|
|
134
|
+
const raw = String(label || channel || branch || '').trim().toLowerCase();
|
|
135
|
+
return PREVIEW_INFRA_INPUTS.includes(raw);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* May this stored record bind to the runtime labeled `currentLabel`?
|
|
139
|
+
* (engine runtime/scripts/amalgm-mcp/apps/advertise.js:32-36). The record's
|
|
140
|
+
* claim is read with key precedence runtime_label > label > branch, coerced
|
|
141
|
+
* by the runtime law, and must equal the current label exactly.
|
|
142
|
+
*
|
|
143
|
+
* DELIBERATE DEVIATION: the engine follows the coercion with
|
|
144
|
+
* `if (!label) return AMALGM_RUNTIME_LABEL === 'main'` — unreachable,
|
|
145
|
+
* because its coercing normalizer never returns `''`. That branch is
|
|
146
|
+
* dropped here. The reachable form of the absent-label rule lives in
|
|
147
|
+
* `recordMatchesCurrentRuntime` (auth-records.ts), whose normalizer CAN
|
|
148
|
+
* return `''`.
|
|
149
|
+
*/
|
|
150
|
+
export function recordMatchesRuntime(record, currentLabel) {
|
|
151
|
+
const label = coerceRuntimeLabel(record?.runtime_label || record?.label || record?.branch);
|
|
152
|
+
return label === currentLabel;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/identity/labels.ts"],"names":[],"mappings":"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"}
|