@dsh-enhanced/lark-channel 0.1.47 → 0.1.49
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 +19 -8
- package/docs/rsi-setup.md +123 -11
- package/docs/setup.md +27 -14
- package/docs/supervised-growth.md +2 -0
- package/lib/adapter.d.ts +6 -0
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +79 -8
- package/lib/adapter.js.map +1 -1
- package/lib/business-cli-install.d.ts +9 -0
- package/lib/business-cli-install.d.ts.map +1 -0
- package/lib/business-cli-install.js +367 -0
- package/lib/business-cli-install.js.map +1 -0
- package/lib/business-environment.d.ts +2 -0
- package/lib/business-environment.d.ts.map +1 -0
- package/lib/business-environment.js +16 -0
- package/lib/business-environment.js.map +1 -0
- package/lib/business-skill.d.ts +32 -0
- package/lib/business-skill.d.ts.map +1 -0
- package/lib/business-skill.js +202 -0
- package/lib/business-skill.js.map +1 -0
- package/lib/rsi-authority-config.d.ts +29 -0
- package/lib/rsi-authority-config.d.ts.map +1 -0
- package/lib/rsi-authority-config.js +233 -0
- package/lib/rsi-authority-config.js.map +1 -0
- package/lib/rsi-authority-resources.d.ts +36 -0
- package/lib/rsi-authority-resources.d.ts.map +1 -0
- package/lib/rsi-authority-resources.js +139 -0
- package/lib/rsi-authority-resources.js.map +1 -0
- package/lib/rsi-authority-runtime.d.ts +50 -0
- package/lib/rsi-authority-runtime.d.ts.map +1 -0
- package/lib/rsi-authority-runtime.js +393 -0
- package/lib/rsi-authority-runtime.js.map +1 -0
- package/lib/rsi-bootstrap-manifest.d.ts +39 -0
- package/lib/rsi-bootstrap-manifest.d.ts.map +1 -0
- package/lib/rsi-bootstrap-manifest.js +366 -0
- package/lib/rsi-bootstrap-manifest.js.map +1 -0
- package/lib/rsi-bootstrap.d.ts +30 -0
- package/lib/rsi-bootstrap.d.ts.map +1 -0
- package/lib/rsi-bootstrap.js +363 -0
- package/lib/rsi-bootstrap.js.map +1 -0
- package/lib/rsi-build.d.ts +45 -0
- package/lib/rsi-build.d.ts.map +1 -0
- package/lib/rsi-build.js +404 -0
- package/lib/rsi-build.js.map +1 -0
- package/lib/rsi-creation-build.d.ts +47 -0
- package/lib/rsi-creation-build.d.ts.map +1 -0
- package/lib/rsi-creation-build.js +333 -0
- package/lib/rsi-creation-build.js.map +1 -0
- package/lib/rsi-host-authorities.d.ts +18 -0
- package/lib/rsi-host-authorities.d.ts.map +1 -0
- package/lib/rsi-host-authorities.js +129 -0
- package/lib/rsi-host-authorities.js.map +1 -0
- package/lib/rsi-host-update.d.ts +113 -0
- package/lib/rsi-host-update.d.ts.map +1 -0
- package/lib/rsi-host-update.js +316 -0
- package/lib/rsi-host-update.js.map +1 -0
- package/lib/rsi-install-inputs.d.ts +43 -0
- package/lib/rsi-install-inputs.d.ts.map +1 -0
- package/lib/rsi-install-inputs.js +342 -0
- package/lib/rsi-install-inputs.js.map +1 -0
- package/lib/rsi-install.d.ts +54 -0
- package/lib/rsi-install.d.ts.map +1 -0
- package/lib/rsi-install.js +404 -0
- package/lib/rsi-install.js.map +1 -0
- package/lib/rsi-local-activation.d.ts +78 -0
- package/lib/rsi-local-activation.d.ts.map +1 -0
- package/lib/rsi-local-activation.js +485 -0
- package/lib/rsi-local-activation.js.map +1 -0
- package/lib/rsi-local-cohort.d.ts +70 -0
- package/lib/rsi-local-cohort.d.ts.map +1 -0
- package/lib/rsi-local-cohort.js +781 -0
- package/lib/rsi-local-cohort.js.map +1 -0
- package/lib/rsi-local-install.d.ts +40 -0
- package/lib/rsi-local-install.d.ts.map +1 -0
- package/lib/rsi-local-install.js +221 -0
- package/lib/rsi-local-install.js.map +1 -0
- package/lib/rsi-local-pair-install.d.ts +38 -0
- package/lib/rsi-local-pair-install.d.ts.map +1 -0
- package/lib/rsi-local-pair-install.js +200 -0
- package/lib/rsi-local-pair-install.js.map +1 -0
- package/lib/rsi-local-profile-update.d.ts +25 -0
- package/lib/rsi-local-profile-update.d.ts.map +1 -0
- package/lib/rsi-local-profile-update.js +226 -0
- package/lib/rsi-local-profile-update.js.map +1 -0
- package/lib/rsi-local-resources.d.ts +37 -0
- package/lib/rsi-local-resources.d.ts.map +1 -0
- package/lib/rsi-local-resources.js +184 -0
- package/lib/rsi-local-resources.js.map +1 -0
- package/lib/rsi-local-roots-extension.d.ts +11 -0
- package/lib/rsi-local-roots-extension.d.ts.map +1 -0
- package/lib/rsi-local-roots-extension.js +31 -0
- package/lib/rsi-local-roots-extension.js.map +1 -0
- package/lib/rsi-local-update-build.d.ts +18 -0
- package/lib/rsi-local-update-build.d.ts.map +1 -0
- package/lib/rsi-local-update-build.js +37 -0
- package/lib/rsi-local-update-build.js.map +1 -0
- package/lib/rsi-local-update.d.ts +39 -0
- package/lib/rsi-local-update.d.ts.map +1 -0
- package/lib/rsi-local-update.js +205 -0
- package/lib/rsi-local-update.js.map +1 -0
- package/lib/rsi-memory-learning.d.ts +22 -0
- package/lib/rsi-memory-learning.d.ts.map +1 -0
- package/lib/rsi-memory-learning.js +76 -0
- package/lib/rsi-memory-learning.js.map +1 -0
- package/lib/rsi-owner-profile.d.ts +37 -0
- package/lib/rsi-owner-profile.d.ts.map +1 -0
- package/lib/rsi-owner-profile.js +178 -0
- package/lib/rsi-owner-profile.js.map +1 -0
- package/lib/rsi-plugin-creation.d.ts +31 -0
- package/lib/rsi-plugin-creation.d.ts.map +1 -0
- package/lib/rsi-plugin-creation.js +179 -0
- package/lib/rsi-plugin-creation.js.map +1 -0
- package/lib/rsi-profile.d.ts +23 -0
- package/lib/rsi-profile.d.ts.map +1 -1
- package/lib/rsi-profile.js +154 -43
- package/lib/rsi-profile.js.map +1 -1
- package/lib/rsi-release-build.d.ts +41 -0
- package/lib/rsi-release-build.d.ts.map +1 -0
- package/lib/rsi-release-build.js +223 -0
- package/lib/rsi-release-build.js.map +1 -0
- package/lib/rsi-service-environment.d.ts +6 -0
- package/lib/rsi-service-environment.d.ts.map +1 -0
- package/lib/rsi-service-environment.js +113 -0
- package/lib/rsi-service-environment.js.map +1 -0
- package/lib/rsi-service-setup.d.ts +10 -0
- package/lib/rsi-service-setup.d.ts.map +1 -0
- package/lib/rsi-service-setup.js +34 -0
- package/lib/rsi-service-setup.js.map +1 -0
- package/lib/rsi-setup.d.ts +35 -2
- package/lib/rsi-setup.d.ts.map +1 -1
- package/lib/rsi-setup.js +459 -32
- package/lib/rsi-setup.js.map +1 -1
- package/lib/rsi-source-maintenance.d.ts +25 -0
- package/lib/rsi-source-maintenance.d.ts.map +1 -0
- package/lib/rsi-source-maintenance.js +348 -0
- package/lib/rsi-source-maintenance.js.map +1 -0
- package/lib/rsi-source-update.d.ts +26 -0
- package/lib/rsi-source-update.d.ts.map +1 -0
- package/lib/rsi-source-update.js +276 -0
- package/lib/rsi-source-update.js.map +1 -0
- package/lib/rsi-source.d.ts +34 -0
- package/lib/rsi-source.d.ts.map +1 -0
- package/lib/rsi-source.js +375 -0
- package/lib/rsi-source.js.map +1 -0
- package/lib/rsi-systemd-bootstrap.d.ts +46 -0
- package/lib/rsi-systemd-bootstrap.d.ts.map +1 -0
- package/lib/rsi-systemd-bootstrap.js +271 -0
- package/lib/rsi-systemd-bootstrap.js.map +1 -0
- package/lib/sdk.d.ts.map +1 -1
- package/lib/sdk.js +26 -1
- package/lib/sdk.js.map +1 -1
- package/lib/setup-business.d.ts +49 -0
- package/lib/setup-business.d.ts.map +1 -0
- package/lib/setup-business.js +335 -0
- package/lib/setup-business.js.map +1 -0
- package/lib/setup-profile.d.ts +1 -1
- package/lib/setup-profile.d.ts.map +1 -1
- package/lib/setup-profile.js +25 -2
- package/lib/setup-profile.js.map +1 -1
- package/lib/setup.d.ts +12 -1
- package/lib/setup.d.ts.map +1 -1
- package/lib/setup.js +138 -34
- package/lib/setup.js.map +1 -1
- package/lib/systemd.d.ts +10 -0
- package/lib/systemd.d.ts.map +1 -1
- package/lib/systemd.js +23 -6
- package/lib/systemd.js.map +1 -1
- package/lib/types.d.ts +7 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +32 -20
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import type { RsiSetupManifest } from './rsi-profile.js';
|
|
2
|
+
import type { RsiAuthorityResources } from './rsi-authority-resources.js';
|
|
3
|
+
export interface RsiHostPinReplacement {
|
|
4
|
+
path: string;
|
|
5
|
+
sha256: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RsiHostRebase {
|
|
8
|
+
oldHostRoot: string;
|
|
9
|
+
oldHostVersion: string;
|
|
10
|
+
candidateHostVersion: string;
|
|
11
|
+
pins: Readonly<Record<string, RsiHostPinReplacement>>;
|
|
12
|
+
}
|
|
13
|
+
export interface RsiHostUpdateOverlay {
|
|
14
|
+
schemaVersion: 1;
|
|
15
|
+
kind: 'rsi-host-update-overlay';
|
|
16
|
+
transactionId: string;
|
|
17
|
+
dshHome: string;
|
|
18
|
+
targetProfile: string;
|
|
19
|
+
installationId: string;
|
|
20
|
+
currentPlanId: string;
|
|
21
|
+
activationId: string;
|
|
22
|
+
sequence: number;
|
|
23
|
+
previousDigest: string | null;
|
|
24
|
+
bootstrapDigest: string;
|
|
25
|
+
files: Record<string, string>;
|
|
26
|
+
patches: Record<string, string>;
|
|
27
|
+
runtimeReceiptDigest: string;
|
|
28
|
+
planDigest: string;
|
|
29
|
+
result: {
|
|
30
|
+
schemaVersion: 1;
|
|
31
|
+
manifestPath: string;
|
|
32
|
+
manifestDigest: string;
|
|
33
|
+
targetProfile: string;
|
|
34
|
+
coordinatorProfile: string;
|
|
35
|
+
};
|
|
36
|
+
issuedAt: number;
|
|
37
|
+
authority: string;
|
|
38
|
+
keyId: string;
|
|
39
|
+
signature: string;
|
|
40
|
+
}
|
|
41
|
+
export interface RsiOwnerRepairOverlay {
|
|
42
|
+
schemaVersion: 1;
|
|
43
|
+
kind: 'rsi-owner-repair-overlay';
|
|
44
|
+
transactionId: string;
|
|
45
|
+
dshHome: string;
|
|
46
|
+
targetProfile: string;
|
|
47
|
+
installationId: string;
|
|
48
|
+
sequence: number;
|
|
49
|
+
previousDigest: string | null;
|
|
50
|
+
bootstrapDigest: string;
|
|
51
|
+
files: Record<string, string>;
|
|
52
|
+
patches: Record<string, string>;
|
|
53
|
+
runtimeReceiptDigest: string;
|
|
54
|
+
planDigest: string;
|
|
55
|
+
result: RsiHostUpdateOverlay['result'];
|
|
56
|
+
repair: {
|
|
57
|
+
sourceMaintenanceDigest: string;
|
|
58
|
+
before: {
|
|
59
|
+
files: Record<string, string>;
|
|
60
|
+
patches: Record<string, string>;
|
|
61
|
+
runtimeReceiptDigest: string;
|
|
62
|
+
creationReceiptDigest: string;
|
|
63
|
+
journalDigest: string;
|
|
64
|
+
};
|
|
65
|
+
after: {
|
|
66
|
+
creationReceiptDigest: string;
|
|
67
|
+
journalDigest: string;
|
|
68
|
+
};
|
|
69
|
+
permissionPreset: 'workspace-write' | 'danger-full-access';
|
|
70
|
+
};
|
|
71
|
+
issuedAt: number;
|
|
72
|
+
authority: string;
|
|
73
|
+
keyId: string;
|
|
74
|
+
signature: string;
|
|
75
|
+
}
|
|
76
|
+
export type RsiOwnerOverlay = RsiHostUpdateOverlay | RsiOwnerRepairOverlay;
|
|
77
|
+
export declare function rsiHostUpdateOverlayDigest(value: RsiOwnerOverlay): string;
|
|
78
|
+
export declare function readRsiHostUpdateOverlayChain(input: {
|
|
79
|
+
source: string | undefined;
|
|
80
|
+
resources: RsiAuthorityResources;
|
|
81
|
+
dshHome: string;
|
|
82
|
+
profile: string;
|
|
83
|
+
bootstrapSource: string;
|
|
84
|
+
}): {
|
|
85
|
+
records: RsiOwnerOverlay[];
|
|
86
|
+
latest?: RsiOwnerOverlay;
|
|
87
|
+
};
|
|
88
|
+
export declare function signRsiHostUpdateOverlay(input: Omit<RsiHostUpdateOverlay, 'signature'>, privateKeyPem: string, resources: RsiAuthorityResources, bootstrapSource: string, previous: readonly RsiOwnerOverlay[]): RsiHostUpdateOverlay;
|
|
89
|
+
export declare function signRsiOwnerRepairOverlay(input: Omit<RsiOwnerRepairOverlay, 'signature'>, privateKeyPem: string, resources: RsiAuthorityResources, bootstrapSource: string, previous: readonly RsiOwnerOverlay[]): RsiOwnerRepairOverlay;
|
|
90
|
+
/** Replace only exact pinned assets and the installed DSH baseline version.
|
|
91
|
+
* Arbitrary old-Host path strings are rejected instead of guessed. */
|
|
92
|
+
export declare function rebaseRsiHostValue<T>(value: T, rebase: RsiHostRebase): T;
|
|
93
|
+
/** Preserve unrelated patch rows and original observer identities. */
|
|
94
|
+
export declare function rebaseRsiHostProfiles(input: {
|
|
95
|
+
manifest: RsiSetupManifest;
|
|
96
|
+
targetPatch: string;
|
|
97
|
+
coordinatorPatch: string;
|
|
98
|
+
rebase: RsiHostRebase;
|
|
99
|
+
}): {
|
|
100
|
+
manifest: RsiSetupManifest;
|
|
101
|
+
targetPatch: string;
|
|
102
|
+
coordinatorPatch: string;
|
|
103
|
+
};
|
|
104
|
+
/** Rebase the deployed patch itself. An adoption may have replaced the original
|
|
105
|
+
* bootstrap rows, so the historical manifest cannot be used as their source. */
|
|
106
|
+
export declare function rebaseRsiHostActivePatch(input: {
|
|
107
|
+
patch: string;
|
|
108
|
+
rebase: RsiHostRebase;
|
|
109
|
+
}): string;
|
|
110
|
+
/** The owner manifest is historical bootstrap authority; rebase only its
|
|
111
|
+
* verified baseline pins and observer digests, independently of live adoption. */
|
|
112
|
+
export declare function rebaseRsiHostManifest(manifest: RsiSetupManifest, rebase: RsiHostRebase): RsiSetupManifest;
|
|
113
|
+
//# sourceMappingURL=rsi-host-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsi-host-update.d.ts","sourceRoot":"","sources":["../src/rsi-host-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
2
|
+
import { createHash, createPublicKey, sign, verify } from 'node:crypto';
|
|
3
|
+
import { isAbsolute, resolve } from 'node:path';
|
|
4
|
+
import { isMap, isSeq, parseDocument } from 'yaml';
|
|
5
|
+
import { runtimeConfigDigest } from '@dsh-enhanced/plugin-control-plane';
|
|
6
|
+
function fail(message) { throw new Error(`rsi host update: ${message}`); }
|
|
7
|
+
const sha256 = (source) => createHash('sha256').update(source).digest('hex');
|
|
8
|
+
const hex = /^[a-f0-9]{64}$/u;
|
|
9
|
+
const profileName = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u;
|
|
10
|
+
const backupName = /^\.([A-Za-z0-9][A-Za-z0-9._-]{0,63})\.plugin-backup-([A-Za-z0-9-]{1,36})$/u;
|
|
11
|
+
function canonical(value) {
|
|
12
|
+
if (Array.isArray(value))
|
|
13
|
+
return `[${value.map(canonical).join(',')}]`;
|
|
14
|
+
if (record(value))
|
|
15
|
+
return `{${Object.entries(value).filter(([, item]) => item !== undefined)
|
|
16
|
+
.sort(([a], [b]) => a.localeCompare(b)).map(([key, item]) => `${JSON.stringify(key)}:${canonical(item)}`).join(',')}}`;
|
|
17
|
+
return JSON.stringify(value);
|
|
18
|
+
}
|
|
19
|
+
export function rsiHostUpdateOverlayDigest(value) { return sha256(canonical(value)); }
|
|
20
|
+
function overlayShape(value, resources, home, profile, bootstrapDigest, sequence, previousDigest) {
|
|
21
|
+
if (!record(value) || !isDeepStrictEqual(Object.keys(value).sort(), ['schemaVersion', 'kind', 'transactionId', 'dshHome',
|
|
22
|
+
'targetProfile', 'installationId', 'currentPlanId', 'activationId', 'sequence', 'previousDigest', 'bootstrapDigest', 'files', 'patches',
|
|
23
|
+
'runtimeReceiptDigest', 'planDigest', 'result', 'issuedAt', 'authority', 'keyId', 'signature'].sort())
|
|
24
|
+
|| value.schemaVersion !== 1 || value.kind !== 'rsi-host-update-overlay'
|
|
25
|
+
|| value.dshHome !== home || value.targetProfile !== profile || value.installationId !== resources.installationId
|
|
26
|
+
|| typeof value.currentPlanId !== 'string' || !value.currentPlanId || typeof value.activationId !== 'string' || !value.activationId
|
|
27
|
+
|| value.sequence !== sequence || value.previousDigest !== previousDigest || value.bootstrapDigest !== bootstrapDigest
|
|
28
|
+
|| value.authority !== resources.identities.host.authority || value.keyId !== resources.identities.host.keyId
|
|
29
|
+
|| typeof value.transactionId !== 'string' || !value.transactionId || !Number.isSafeInteger(value.issuedAt)
|
|
30
|
+
|| !hex.test(String(value.runtimeReceiptDigest)) || !hex.test(String(value.planDigest))
|
|
31
|
+
|| !record(value.files) || !record(value.patches) || Object.keys(value.files).length > 64
|
|
32
|
+
|| Object.keys(value.patches).length < 2 || Object.keys(value.patches).length > 8
|
|
33
|
+
|| Object.entries(value.files).some(([path, digest]) => !isAbsolute(path) || resolve(path) !== path
|
|
34
|
+
|| !path.startsWith(`${resources.configRoot}/`) || !hex.test(String(digest)))
|
|
35
|
+
|| !hex.test(String(value.patches[profile]))
|
|
36
|
+
|| !profileName.test(String(record(value.result) ? value.result.coordinatorProfile : undefined))
|
|
37
|
+
|| !hex.test(String(value.patches[String(record(value.result) ? value.result.coordinatorProfile : undefined)]))
|
|
38
|
+
|| Object.entries(value.patches).some(([name, digest]) => !(profileName.test(name)
|
|
39
|
+
|| backupName.exec(name)?.[1] === profile) || !hex.test(String(digest)))
|
|
40
|
+
|| !record(value.result) || value.result.targetProfile !== profile || value.result.coordinatorProfile === profile
|
|
41
|
+
|| value.result.manifestPath !== `${resources.configRoot}/manifest.json`
|
|
42
|
+
|| value.result.manifestDigest !== value.files[value.result.manifestPath]
|
|
43
|
+
|| typeof value.signature !== 'string' || value.signature.length > 256)
|
|
44
|
+
fail('overlay shape or scope differs');
|
|
45
|
+
const { signature, ...unsigned } = value;
|
|
46
|
+
const key = createPublicKey(resources.identities.host.publicKeyPem);
|
|
47
|
+
if (key.asymmetricKeyType !== 'ed25519'
|
|
48
|
+
|| !verify(null, Buffer.from(canonical(unsigned)), key, Buffer.from(signature, 'base64')))
|
|
49
|
+
fail('overlay signature differs');
|
|
50
|
+
}
|
|
51
|
+
function repairOverlayShape(value, resources, home, profile, bootstrapDigest, sequence, previousDigest) {
|
|
52
|
+
if (!record(value) || !isDeepStrictEqual(Object.keys(value).sort(), ['schemaVersion', 'kind', 'transactionId', 'dshHome',
|
|
53
|
+
'targetProfile', 'installationId', 'sequence', 'previousDigest', 'bootstrapDigest', 'files', 'patches',
|
|
54
|
+
'runtimeReceiptDigest', 'planDigest', 'result', 'repair', 'issuedAt', 'authority', 'keyId', 'signature'].sort())
|
|
55
|
+
|| value.schemaVersion !== 1 || value.kind !== 'rsi-owner-repair-overlay'
|
|
56
|
+
|| value.dshHome !== home || value.targetProfile !== profile || value.installationId !== resources.installationId
|
|
57
|
+
|| value.sequence !== sequence || value.previousDigest !== previousDigest || value.bootstrapDigest !== bootstrapDigest
|
|
58
|
+
|| value.authority !== resources.identities.host.authority || value.keyId !== resources.identities.host.keyId
|
|
59
|
+
|| typeof value.transactionId !== 'string' || !value.transactionId || !Number.isSafeInteger(value.issuedAt)
|
|
60
|
+
|| !hex.test(String(value.runtimeReceiptDigest)) || !hex.test(String(value.planDigest))
|
|
61
|
+
|| !record(value.files) || !record(value.patches) || Object.keys(value.files).length > 64
|
|
62
|
+
|| Object.entries(value.files).some(([path, digest]) => !isAbsolute(path) || resolve(path) !== path
|
|
63
|
+
|| !path.startsWith(`${resources.configRoot}/`) || !hex.test(String(digest)))
|
|
64
|
+
|| !record(value.result) || !isDeepStrictEqual(Object.keys(value.result).sort(), ['schemaVersion', 'manifestPath', 'manifestDigest', 'targetProfile', 'coordinatorProfile'].sort())
|
|
65
|
+
|| value.result.schemaVersion !== 1 || value.result.targetProfile !== profile
|
|
66
|
+
|| !profileName.test(String(value.result.coordinatorProfile)) || value.result.coordinatorProfile === profile
|
|
67
|
+
|| value.result.manifestPath !== `${resources.configRoot}/manifest.json`
|
|
68
|
+
|| value.result.manifestDigest !== value.files[value.result.manifestPath]
|
|
69
|
+
|| !isDeepStrictEqual(Object.keys(value.patches).sort(), [profile, value.result.coordinatorProfile].sort())
|
|
70
|
+
|| Object.values(value.patches).some(digest => !hex.test(String(digest)))
|
|
71
|
+
|| !record(value.repair) || !isDeepStrictEqual(Object.keys(value.repair).sort(), ['sourceMaintenanceDigest', 'before', 'after', 'permissionPreset'].sort())
|
|
72
|
+
|| !hex.test(String(value.repair.sourceMaintenanceDigest))
|
|
73
|
+
|| !['workspace-write', 'danger-full-access'].includes(String(value.repair.permissionPreset))
|
|
74
|
+
|| !record(value.repair.before) || !isDeepStrictEqual(Object.keys(value.repair.before).sort(), ['files', 'patches', 'runtimeReceiptDigest', 'creationReceiptDigest', 'journalDigest'].sort())
|
|
75
|
+
|| !record(value.repair.before.files) || !record(value.repair.before.patches)
|
|
76
|
+
|| !isDeepStrictEqual(Object.keys(value.repair.before.files).sort(), Object.keys(value.files).sort())
|
|
77
|
+
|| !isDeepStrictEqual(Object.keys(value.repair.before.patches).sort(), Object.keys(value.patches).sort())
|
|
78
|
+
|| Object.values(value.repair.before.files).some(digest => !hex.test(String(digest)))
|
|
79
|
+
|| Object.values(value.repair.before.patches).some(digest => !hex.test(String(digest)))
|
|
80
|
+
|| !hex.test(String(value.repair.before.runtimeReceiptDigest))
|
|
81
|
+
|| !hex.test(String(value.repair.before.creationReceiptDigest))
|
|
82
|
+
|| !hex.test(String(value.repair.before.journalDigest))
|
|
83
|
+
|| !record(value.repair.after) || !isDeepStrictEqual(Object.keys(value.repair.after).sort(), ['creationReceiptDigest', 'journalDigest'].sort())
|
|
84
|
+
|| !hex.test(String(value.repair.after.creationReceiptDigest)) || !hex.test(String(value.repair.after.journalDigest))
|
|
85
|
+
|| typeof value.signature !== 'string' || value.signature.length > 256)
|
|
86
|
+
fail('repair overlay shape or scope differs');
|
|
87
|
+
const { signature, ...unsigned } = value;
|
|
88
|
+
const key = createPublicKey(resources.identities.host.publicKeyPem);
|
|
89
|
+
if (key.asymmetricKeyType !== 'ed25519'
|
|
90
|
+
|| !verify(null, Buffer.from(canonical(unsigned)), key, Buffer.from(signature, 'base64')))
|
|
91
|
+
fail('repair overlay signature differs');
|
|
92
|
+
}
|
|
93
|
+
export function readRsiHostUpdateOverlayChain(input) {
|
|
94
|
+
if (input.source === undefined)
|
|
95
|
+
return { records: [] };
|
|
96
|
+
let parsed;
|
|
97
|
+
try {
|
|
98
|
+
parsed = JSON.parse(input.source);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
fail('overlay JSON is invalid');
|
|
102
|
+
}
|
|
103
|
+
if (!record(parsed) || parsed.schemaVersion !== 1 || parsed.kind !== 'rsi-host-update-overlays'
|
|
104
|
+
|| !Array.isArray(parsed.records) || parsed.records.length < 1 || parsed.records.length > 64)
|
|
105
|
+
fail('overlay chain is invalid');
|
|
106
|
+
const records = [];
|
|
107
|
+
const bootstrapDigest = sha256(input.bootstrapSource);
|
|
108
|
+
for (const value of parsed.records) {
|
|
109
|
+
const sequence = records.length + 1;
|
|
110
|
+
const previousDigest = records.length ? rsiHostUpdateOverlayDigest(records.at(-1)) : null;
|
|
111
|
+
if (record(value) && value.kind === 'rsi-owner-repair-overlay') {
|
|
112
|
+
repairOverlayShape(value, input.resources, input.dshHome, input.profile, bootstrapDigest, sequence, previousDigest);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
overlayShape(value, input.resources, input.dshHome, input.profile, bootstrapDigest, sequence, previousDigest);
|
|
116
|
+
}
|
|
117
|
+
if (records.length && value.issuedAt < records.at(-1).issuedAt)
|
|
118
|
+
fail('overlay time moved backwards');
|
|
119
|
+
records.push(value);
|
|
120
|
+
}
|
|
121
|
+
return { records, latest: records.at(-1) };
|
|
122
|
+
}
|
|
123
|
+
export function signRsiHostUpdateOverlay(input, privateKeyPem, resources, bootstrapSource, previous) {
|
|
124
|
+
const record = { ...input, signature: sign(null, Buffer.from(canonical(input)), privateKeyPem).toString('base64') };
|
|
125
|
+
overlayShape(record, resources, input.dshHome, input.targetProfile, sha256(bootstrapSource), previous.length + 1, previous.length ? rsiHostUpdateOverlayDigest(previous.at(-1)) : null);
|
|
126
|
+
return record;
|
|
127
|
+
}
|
|
128
|
+
export function signRsiOwnerRepairOverlay(input, privateKeyPem, resources, bootstrapSource, previous) {
|
|
129
|
+
const record = { ...input, signature: sign(null, Buffer.from(canonical(input)), privateKeyPem).toString('base64') };
|
|
130
|
+
repairOverlayShape(record, resources, input.dshHome, input.targetProfile, sha256(bootstrapSource), previous.length + 1, previous.length ? rsiHostUpdateOverlayDigest(previous.at(-1)) : null);
|
|
131
|
+
return record;
|
|
132
|
+
}
|
|
133
|
+
function record(value) {
|
|
134
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
135
|
+
}
|
|
136
|
+
/** Replace only exact pinned assets and the installed DSH baseline version.
|
|
137
|
+
* Arbitrary old-Host path strings are rejected instead of guessed. */
|
|
138
|
+
export function rebaseRsiHostValue(value, rebase) {
|
|
139
|
+
const visit = (item) => {
|
|
140
|
+
if (typeof item === 'string') {
|
|
141
|
+
if (item === rebase.oldHostRoot || item.startsWith(`${rebase.oldHostRoot}/`))
|
|
142
|
+
fail(`unmapped Host path: ${item}`);
|
|
143
|
+
return item;
|
|
144
|
+
}
|
|
145
|
+
if (Array.isArray(item))
|
|
146
|
+
return item.map(visit);
|
|
147
|
+
if (!record(item))
|
|
148
|
+
return item;
|
|
149
|
+
const oldPath = typeof item.path === 'string' ? item.path : undefined;
|
|
150
|
+
const pin = oldPath === undefined ? undefined : rebase.pins[oldPath];
|
|
151
|
+
if (pin !== undefined && oldPath !== undefined) {
|
|
152
|
+
if (typeof item.sha256 !== 'string' || !/^[a-f0-9]{64}$/u.test(item.sha256))
|
|
153
|
+
fail('pinned asset is malformed');
|
|
154
|
+
return Object.fromEntries(Object.entries(item).map(([key, child]) => [key,
|
|
155
|
+
key === 'path' ? pin.path : key === 'sha256' ? pin.sha256
|
|
156
|
+
: key === 'version' && child === rebase.oldHostVersion && oldPath.startsWith(`${rebase.oldHostRoot}/`)
|
|
157
|
+
? rebase.candidateHostVersion : visit(child)]));
|
|
158
|
+
}
|
|
159
|
+
return Object.fromEntries(Object.entries(item).map(([key, child]) => [key,
|
|
160
|
+
key === 'dshBaseline' && child === rebase.oldHostVersion ? rebase.candidateHostVersion : visit(child)]));
|
|
161
|
+
};
|
|
162
|
+
return visit(value);
|
|
163
|
+
}
|
|
164
|
+
function document(source, label) {
|
|
165
|
+
const value = parseDocument(source, { uniqueKeys: true, strict: true });
|
|
166
|
+
if (value.errors.length || value.warnings.length || !isSeq(value.contents))
|
|
167
|
+
fail(`${label} is not a bounded patch`);
|
|
168
|
+
return value;
|
|
169
|
+
}
|
|
170
|
+
function row(document, id) {
|
|
171
|
+
let found;
|
|
172
|
+
const operations = document.contents;
|
|
173
|
+
if (!isSeq(operations))
|
|
174
|
+
fail('patch operations are invalid');
|
|
175
|
+
for (const operation of operations.items) {
|
|
176
|
+
if (!isMap(operation))
|
|
177
|
+
fail('patch operation is not a map');
|
|
178
|
+
if (operation.get('id') === id) {
|
|
179
|
+
if (found)
|
|
180
|
+
fail(`duplicate patch row: ${id}`);
|
|
181
|
+
found = operation;
|
|
182
|
+
}
|
|
183
|
+
for (const kind of ['insert', 'update']) {
|
|
184
|
+
const entries = operation.get(kind, true);
|
|
185
|
+
if (entries === undefined)
|
|
186
|
+
continue;
|
|
187
|
+
if (!isSeq(entries))
|
|
188
|
+
fail('patch rows are not a sequence');
|
|
189
|
+
for (const candidate of entries.items) {
|
|
190
|
+
if (!isMap(candidate))
|
|
191
|
+
fail('patch row is not a map');
|
|
192
|
+
if (candidate.get('id') === id) {
|
|
193
|
+
if (found)
|
|
194
|
+
fail(`duplicate patch row: ${id}`);
|
|
195
|
+
found = candidate;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (!found)
|
|
201
|
+
fail(`patch row is missing: ${id}`);
|
|
202
|
+
return found;
|
|
203
|
+
}
|
|
204
|
+
function config(value) {
|
|
205
|
+
const node = value.get('config', true);
|
|
206
|
+
if (!isMap(node))
|
|
207
|
+
fail('patch row config is not a map');
|
|
208
|
+
const result = node.toJSON();
|
|
209
|
+
if (!record(result))
|
|
210
|
+
fail('patch row config is invalid');
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
213
|
+
function targetDigest(manifest, id, patch) {
|
|
214
|
+
const source = config(row(patch, id));
|
|
215
|
+
return runtimeConfigDigest(id === 'dsh-enhanced-assistant-verifier'
|
|
216
|
+
? { ...source, sourceReviews: manifest.sourceReviews } : source);
|
|
217
|
+
}
|
|
218
|
+
/** Preserve unrelated patch rows and original observer identities. */
|
|
219
|
+
export function rebaseRsiHostProfiles(input) {
|
|
220
|
+
const oldTarget = document(input.targetPatch, 'target patch');
|
|
221
|
+
const coordinator = document(input.coordinatorPatch, 'coordinator patch');
|
|
222
|
+
const changed = rebaseRsiHostValue(input.manifest, input.rebase);
|
|
223
|
+
const target = document(input.targetPatch, 'target patch');
|
|
224
|
+
const replacements = new Map([
|
|
225
|
+
['dsh-enhanced-plugin-control-plane', changed.controlPlane],
|
|
226
|
+
['dsh-enhanced-assistant-growth-driver', changed.growthDriver],
|
|
227
|
+
]);
|
|
228
|
+
for (const [id, value] of replacements) {
|
|
229
|
+
const current = config(row(oldTarget, id));
|
|
230
|
+
const original = id === 'dsh-enhanced-plugin-control-plane' ? input.manifest.controlPlane : input.manifest.growthDriver;
|
|
231
|
+
if (!isDeepStrictEqual(current, original))
|
|
232
|
+
fail(`${id} patch differs from the owner manifest`);
|
|
233
|
+
row(target, id).set('config', target.createNode(value));
|
|
234
|
+
}
|
|
235
|
+
const verifier = row(target, 'dsh-enhanced-assistant-verifier');
|
|
236
|
+
const verifierConfig = config(verifier);
|
|
237
|
+
if (!isDeepStrictEqual(verifierConfig.sourceReviews, input.manifest.sourceReviews))
|
|
238
|
+
fail('verifier patch differs from the owner manifest');
|
|
239
|
+
verifier.set('config', target.createNode({ ...verifierConfig, sourceReviews: changed.sourceReviews }));
|
|
240
|
+
const targets = changed.controlPlane.runtimeObserver?.targets;
|
|
241
|
+
if (!targets)
|
|
242
|
+
fail('runtime observer targets are missing');
|
|
243
|
+
for (const targetEntry of targets) {
|
|
244
|
+
if (!replacements.has(targetEntry.entryId) && targetEntry.entryId !== 'dsh-enhanced-assistant-verifier')
|
|
245
|
+
continue;
|
|
246
|
+
const oldDigest = targetDigest(input.manifest, targetEntry.entryId, oldTarget);
|
|
247
|
+
if (targetEntry.configDigest !== oldDigest)
|
|
248
|
+
fail(`observer digest differs: ${targetEntry.entryId}`);
|
|
249
|
+
targetEntry.configDigest = targetDigest(changed, targetEntry.entryId, target);
|
|
250
|
+
}
|
|
251
|
+
// A coordinator patch may contain only its declared standalone scope. It
|
|
252
|
+
// must not carry any old Host path that this rebase cannot account for.
|
|
253
|
+
if (input.coordinatorPatch.includes(input.rebase.oldHostRoot))
|
|
254
|
+
fail('coordinator patch has an unmapped Host path');
|
|
255
|
+
return { manifest: changed, targetPatch: target.toString({ lineWidth: 0 }), coordinatorPatch: coordinator.toString({ lineWidth: 0 }) };
|
|
256
|
+
}
|
|
257
|
+
/** Rebase the deployed patch itself. An adoption may have replaced the original
|
|
258
|
+
* bootstrap rows, so the historical manifest cannot be used as their source. */
|
|
259
|
+
export function rebaseRsiHostActivePatch(input) {
|
|
260
|
+
const documentBefore = document(input.patch, 'active patch');
|
|
261
|
+
const documentAfter = document(input.patch, 'active patch');
|
|
262
|
+
const ids = ['dsh-enhanced-plugin-control-plane', 'dsh-enhanced-assistant-growth-driver',
|
|
263
|
+
'dsh-enhanced-assistant-verifier'];
|
|
264
|
+
for (const id of ids) {
|
|
265
|
+
const current = config(row(documentBefore, id));
|
|
266
|
+
row(documentAfter, id).set('config', documentAfter.createNode(rebaseRsiHostValue(current, input.rebase)));
|
|
267
|
+
}
|
|
268
|
+
const cp = config(row(documentAfter, ids[0]));
|
|
269
|
+
const observer = cp.runtimeObserver;
|
|
270
|
+
if (!record(observer) || !Array.isArray(observer.targets))
|
|
271
|
+
fail('active runtime observer is missing');
|
|
272
|
+
for (const entry of observer.targets) {
|
|
273
|
+
if (!record(entry) || typeof entry.entryId !== 'string' || typeof entry.configDigest !== 'string')
|
|
274
|
+
fail('active observer entry differs');
|
|
275
|
+
if (!ids.includes(entry.entryId))
|
|
276
|
+
continue;
|
|
277
|
+
const oldConfig = config(row(documentBefore, entry.entryId));
|
|
278
|
+
const newConfig = config(row(documentAfter, entry.entryId));
|
|
279
|
+
const oldDigest = runtimeConfigDigest(oldConfig);
|
|
280
|
+
if (entry.configDigest !== oldDigest)
|
|
281
|
+
fail(`active observer digest differs: ${entry.entryId}`);
|
|
282
|
+
entry.configDigest = runtimeConfigDigest(newConfig);
|
|
283
|
+
}
|
|
284
|
+
row(documentAfter, ids[0]).set('config', documentAfter.createNode(cp));
|
|
285
|
+
if (JSON.stringify(documentAfter.toJSON()).includes(input.rebase.oldHostRoot))
|
|
286
|
+
fail('active patch retains an unmapped Host path');
|
|
287
|
+
return documentAfter.toString({ lineWidth: 0 });
|
|
288
|
+
}
|
|
289
|
+
/** The owner manifest is historical bootstrap authority; rebase only its
|
|
290
|
+
* verified baseline pins and observer digests, independently of live adoption. */
|
|
291
|
+
export function rebaseRsiHostManifest(manifest, rebase) {
|
|
292
|
+
const changed = rebaseRsiHostValue(manifest, rebase);
|
|
293
|
+
const oldTargets = manifest.controlPlane.runtimeObserver?.targets;
|
|
294
|
+
const newTargets = changed.controlPlane.runtimeObserver?.targets;
|
|
295
|
+
if (!oldTargets || !newTargets || oldTargets.length !== newTargets.length)
|
|
296
|
+
fail('owner observer targets differ');
|
|
297
|
+
const configFor = (source, id) => id === 'dsh-enhanced-plugin-control-plane'
|
|
298
|
+
? source.controlPlane : id === 'dsh-enhanced-assistant-growth-driver' ? source.growthDriver
|
|
299
|
+
: id === 'dsh-enhanced-assistant-verifier' ? { sourceReviews: source.sourceReviews } : undefined;
|
|
300
|
+
for (let index = 0; index < oldTargets.length; index++) {
|
|
301
|
+
const oldTarget = oldTargets[index], nextTarget = newTargets[index];
|
|
302
|
+
if (oldTarget.entryId !== nextTarget.entryId)
|
|
303
|
+
fail('owner observer entry changed');
|
|
304
|
+
const before = configFor(manifest, oldTarget.entryId);
|
|
305
|
+
const after = configFor(changed, nextTarget.entryId);
|
|
306
|
+
if (before === undefined || after === undefined)
|
|
307
|
+
continue;
|
|
308
|
+
if (oldTarget.entryId === 'dsh-enhanced-assistant-verifier')
|
|
309
|
+
continue; // Its full patch config is not stored in the manifest.
|
|
310
|
+
if (oldTarget.configDigest !== runtimeConfigDigest(before))
|
|
311
|
+
fail('owner observer digest differs');
|
|
312
|
+
nextTarget.configDigest = runtimeConfigDigest(after);
|
|
313
|
+
}
|
|
314
|
+
return changed;
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=rsi-host-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsi-host-update.js","sourceRoot":"","sources":["../src/rsi-host-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type PluginControlTrustConfig, type RuntimeObserverTarget, type SourceReleaseAuthorityConfig } from '@dsh-enhanced/plugin-control-plane';
|
|
2
|
+
import type { RsiAuthorityResources } from './rsi-authority-resources.js';
|
|
3
|
+
import type { Pin } from './rsi-authority-runtime.js';
|
|
4
|
+
import type { RsiSourceWorkspace } from './rsi-source.js';
|
|
5
|
+
export declare class RsiInstalledInputsUnavailableError extends Error {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
export interface InstalledRsiDsh {
|
|
9
|
+
root: string;
|
|
10
|
+
path: string;
|
|
11
|
+
version: string;
|
|
12
|
+
pin: Pin;
|
|
13
|
+
}
|
|
14
|
+
/** Inspect only the installed CLI package and its exact bin target. */
|
|
15
|
+
export declare function resolveInstalledRsiDsh(environment?: NodeJS.ProcessEnv, installedDshRoot?: string): Promise<InstalledRsiDsh>;
|
|
16
|
+
export interface RsiInstalledInputsRequest {
|
|
17
|
+
dshHome: string;
|
|
18
|
+
targetProfile: string;
|
|
19
|
+
/** Exact bytes returned by the installed DSH --dump-config command. */
|
|
20
|
+
targetEffective: string;
|
|
21
|
+
/** Optional when the PATH dsh points into the same installed package. */
|
|
22
|
+
installedDshRoot?: string;
|
|
23
|
+
resources: RsiAuthorityResources;
|
|
24
|
+
source: RsiSourceWorkspace;
|
|
25
|
+
environment?: NodeJS.ProcessEnv;
|
|
26
|
+
}
|
|
27
|
+
export interface RsiInstalledInputs {
|
|
28
|
+
dsh: InstalledRsiDsh;
|
|
29
|
+
plugins: string[];
|
|
30
|
+
hostDeploymentInputs: string[];
|
|
31
|
+
observerTargets: RuntimeObserverTarget[];
|
|
32
|
+
executor: PluginControlTrustConfig['executor'];
|
|
33
|
+
git: Pin;
|
|
34
|
+
systemctl: Pin & {
|
|
35
|
+
interpreter: Pin | null;
|
|
36
|
+
};
|
|
37
|
+
policies: SourceReleaseAuthorityConfig['grant']['policies'];
|
|
38
|
+
}
|
|
39
|
+
/** Caller holds the installation lifecycle lock and supplies one pre-mutation
|
|
40
|
+
* dump. These are declared Host disk inputs, not a claim of complete transitive
|
|
41
|
+
* JavaScript module coverage. */
|
|
42
|
+
export declare function collectRsiInstalledInputs(input: RsiInstalledInputsRequest): Promise<RsiInstalledInputs>;
|
|
43
|
+
//# sourceMappingURL=rsi-install-inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsi-install-inputs.d.ts","sourceRoot":"","sources":["../src/rsi-install-inputs.ts"],"names":[],"mappings":"AAKA,OAAO,EACyB,KAAK,wBAAwB,EAAE,KAAK,qBAAqB,EACvF,KAAK,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AAI/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAYzD,qBAAa,kCAAmC,SAAQ,KAAK;gBAC/C,OAAO,EAAE,MAAM;CAC5B;AA2ED,MAAM,WAAW,eAAe;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE;AAE1F,uEAAuE;AACvE,wBAAsB,sBAAsB,CAAC,WAAW,GAAE,MAAM,CAAC,UAAwB,EACvF,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA0BrD;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAA;IACvB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,qBAAqB,CAAA;IAChC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAChC;AACD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,eAAe,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,eAAe,EAAE,qBAAqB,EAAE,CAAA;IACxC,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC9C,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,GAAG,GAAG;QAAE,WAAW,EAAE,GAAG,GAAG,IAAI,CAAA;KAAE,CAAA;IAC5C,QAAQ,EAAE,4BAA4B,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAA;CAC5D;AAED;;iCAEiC;AACjC,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiK7G"}
|