@dsh-enhanced/lark-channel 0.1.49 → 0.1.53
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 +2 -1
- package/docs/rsi-setup.md +27 -6
- package/docs/setup.md +2 -0
- package/lib/launchd-control.d.ts +24 -0
- package/lib/launchd-control.d.ts.map +1 -0
- package/lib/launchd-control.js +68 -0
- package/lib/launchd-control.js.map +1 -0
- package/lib/launchd-identity.d.ts +34 -0
- package/lib/launchd-identity.d.ts.map +1 -0
- package/lib/launchd-identity.js +184 -0
- package/lib/launchd-identity.js.map +1 -0
- package/lib/launchd-target-lock.d.ts +6 -0
- package/lib/launchd-target-lock.d.ts.map +1 -0
- package/lib/launchd-target-lock.js +48 -0
- package/lib/launchd-target-lock.js.map +1 -0
- package/lib/launchd.d.ts +18 -0
- package/lib/launchd.d.ts.map +1 -1
- package/lib/launchd.js +211 -54
- package/lib/launchd.js.map +1 -1
- package/lib/rsi-bootstrap-manifest.d.ts.map +1 -1
- package/lib/rsi-bootstrap-manifest.js +3 -24
- package/lib/rsi-bootstrap-manifest.js.map +1 -1
- package/lib/rsi-build.d.ts +10 -1
- package/lib/rsi-build.d.ts.map +1 -1
- package/lib/rsi-build.js +101 -27
- package/lib/rsi-build.js.map +1 -1
- package/lib/rsi-creation-build.d.ts +1 -0
- package/lib/rsi-creation-build.d.ts.map +1 -1
- package/lib/rsi-creation-build.js +60 -30
- package/lib/rsi-creation-build.js.map +1 -1
- package/lib/rsi-install.d.ts +1 -1
- package/lib/rsi-install.d.ts.map +1 -1
- package/lib/rsi-install.js.map +1 -1
- package/lib/rsi-local-install.d.ts +31 -3
- package/lib/rsi-local-install.d.ts.map +1 -1
- package/lib/rsi-local-install.js +117 -16
- package/lib/rsi-local-install.js.map +1 -1
- package/lib/rsi-memory-learning.d.ts +8 -0
- package/lib/rsi-memory-learning.d.ts.map +1 -1
- package/lib/rsi-memory-learning.js +28 -0
- package/lib/rsi-memory-learning.js.map +1 -1
- package/lib/rsi-native-install.d.ts +38 -0
- package/lib/rsi-native-install.d.ts.map +1 -0
- package/lib/rsi-native-install.js +254 -0
- package/lib/rsi-native-install.js.map +1 -0
- package/lib/rsi-native-launchd.d.ts +7 -0
- package/lib/rsi-native-launchd.d.ts.map +1 -0
- package/lib/rsi-native-launchd.js +49 -0
- package/lib/rsi-native-launchd.js.map +1 -0
- package/lib/rsi-native-profile.d.ts +64 -0
- package/lib/rsi-native-profile.d.ts.map +1 -0
- package/lib/rsi-native-profile.js +283 -0
- package/lib/rsi-native-profile.js.map +1 -0
- package/lib/rsi-native-runtime-bootstrap.d.ts +35 -0
- package/lib/rsi-native-runtime-bootstrap.d.ts.map +1 -0
- package/lib/rsi-native-runtime-bootstrap.js +385 -0
- package/lib/rsi-native-runtime-bootstrap.js.map +1 -0
- package/lib/rsi-plugin-creation.d.ts +2 -1
- package/lib/rsi-plugin-creation.d.ts.map +1 -1
- package/lib/rsi-plugin-creation.js +16 -6
- package/lib/rsi-plugin-creation.js.map +1 -1
- package/lib/rsi-setup.d.ts.map +1 -1
- package/lib/rsi-setup.js +24 -8
- package/lib/rsi-setup.js.map +1 -1
- package/lib/rsi-source.d.ts.map +1 -1
- package/lib/rsi-source.js +121 -9
- package/lib/rsi-source.js.map +1 -1
- package/lib/setup.d.ts.map +1 -1
- package/lib/setup.js +129 -16
- package/lib/setup.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +21 -20
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { isAbsolute, join, resolve } from 'node:path';
|
|
3
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
4
|
+
import { normalizeConfig } from '@dsh-enhanced/assistant-growth-driver';
|
|
5
|
+
import { defaultHostAttestationPolicy, normalizeControlPlaneConfig, runtimeConfigDigest } from '@dsh-enhanced/plugin-control-plane';
|
|
6
|
+
import { isMap, isSeq, parseDocument } from 'yaml';
|
|
7
|
+
import { createRsiMemoryLearningSetup } from './rsi-memory-learning.js';
|
|
8
|
+
import { resolveRsiOwnerRoute } from './rsi-owner-profile.js';
|
|
9
|
+
import { createRsiPluginCreationSetup } from './rsi-plugin-creation.js';
|
|
10
|
+
import { rawLoaderConfig } from './rsi-bootstrap-manifest.js';
|
|
11
|
+
const day = 86_400_000;
|
|
12
|
+
const profilePattern = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u;
|
|
13
|
+
const managed = {
|
|
14
|
+
personal: '@dsh-enhanced/personal-assistant', delivery: '@dsh-enhanced/assistant-delivery',
|
|
15
|
+
verifier: '@dsh-enhanced/assistant-verifier', growth: '@dsh-enhanced/assistant-growth-driver',
|
|
16
|
+
control: '@dsh-enhanced/plugin-control-plane', memory: '@dsh-enhanced/assistant-memory-learning',
|
|
17
|
+
};
|
|
18
|
+
const ids = Object.fromEntries(Object.entries(managed).map(([key, name]) => [key, `dsh-enhanced-${name.slice('@dsh-enhanced/'.length)}`]));
|
|
19
|
+
const prefix = 'rsi-native-';
|
|
20
|
+
function fail(message) { throw new Error(`rsi native profile: ${message}`); }
|
|
21
|
+
function absolute(value, label) {
|
|
22
|
+
if (typeof value !== 'string' || !isAbsolute(value) || resolve(value) !== value || value.includes('\0') || /[\r\n]/u.test(value))
|
|
23
|
+
fail(`${label} must be canonical absolute`);
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
function mapping(value, label) { if (!isMap(value))
|
|
27
|
+
fail(`${label} must be a mapping`); return value; }
|
|
28
|
+
function sequence(value, label) { if (!isSeq(value))
|
|
29
|
+
fail(`${label} must be a sequence`); return value; }
|
|
30
|
+
function parseRows(value, label) {
|
|
31
|
+
const document = parseDocument(value, { uniqueKeys: true });
|
|
32
|
+
if (document.errors.length)
|
|
33
|
+
fail(`invalid ${label}: ${document.errors[0].message}`);
|
|
34
|
+
const rows = sequence(document.contents ?? undefined, label), byId = new Map();
|
|
35
|
+
for (const item of rows.items) {
|
|
36
|
+
const entry = mapping(item, label), id = entry.get('id');
|
|
37
|
+
if (typeof id !== 'string' || !id || byId.has(id))
|
|
38
|
+
fail(`${label} has duplicate or invalid row id`);
|
|
39
|
+
byId.set(id, entry);
|
|
40
|
+
}
|
|
41
|
+
return { document, rows, byId };
|
|
42
|
+
}
|
|
43
|
+
function effectiveRow(rows, key, disabled = false) {
|
|
44
|
+
const result = rows.get(ids[key]);
|
|
45
|
+
if (!result || result.get('name') !== managed[key] || result.get('disabled') === true && !disabled)
|
|
46
|
+
fail(`${key} bundle missing or package identity differs`);
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
function options(row, label) { return mapping(row.get('config', true), `${label} config`); }
|
|
50
|
+
function plain(node, label) {
|
|
51
|
+
const value = node.toJSON();
|
|
52
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
53
|
+
fail(`${label} is not an object`);
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
function setExact(document, node, key, value, label) {
|
|
57
|
+
if (node.has(key) && !isDeepStrictEqual(node.get(key, true).toJSON(), value))
|
|
58
|
+
fail(`${label} conflicts with native grant`);
|
|
59
|
+
node.set(key, document.createNode(value));
|
|
60
|
+
}
|
|
61
|
+
function upsert(document, sequence, value, label) {
|
|
62
|
+
const matches = sequence.items.filter(item => isMap(item) && item.get('id') === value.id);
|
|
63
|
+
if (matches.length > 1 || matches.length === 1 && !isDeepStrictEqual(matches[0].toJSON(), value))
|
|
64
|
+
fail(`${label} conflicts with native grant`);
|
|
65
|
+
if (!matches.length)
|
|
66
|
+
sequence.add(document.createNode(value));
|
|
67
|
+
}
|
|
68
|
+
function copyConfig(out, effective, key) {
|
|
69
|
+
const effectiveConfig = effectiveRow(effective.byId, key);
|
|
70
|
+
const source = key === 'growth' && !effectiveConfig.has('config')
|
|
71
|
+
? mapping(out.document.createNode({}), 'growth config') : options(effectiveConfig, key);
|
|
72
|
+
let row = out.byId.get(ids[key]);
|
|
73
|
+
if (!row) {
|
|
74
|
+
row = mapping(out.document.createNode({ id: ids[key] }), key);
|
|
75
|
+
out.rows.add(row);
|
|
76
|
+
out.byId.set(ids[key], row);
|
|
77
|
+
}
|
|
78
|
+
if (row.get('name') !== undefined && row.get('name') !== managed[key] || row.get('disabled') === true)
|
|
79
|
+
fail(`${key} patch override differs`);
|
|
80
|
+
// Retain !!js scalars and unrelated effective options verbatim.
|
|
81
|
+
row.set('config', source.clone());
|
|
82
|
+
return options(row, key);
|
|
83
|
+
}
|
|
84
|
+
function chooseModel(growth) {
|
|
85
|
+
const value = plain(growth, 'growth');
|
|
86
|
+
if (value.provider === undefined && value.model === undefined && value.reasoningEffort === undefined)
|
|
87
|
+
return {};
|
|
88
|
+
if (typeof value.provider !== 'string' || !value.provider || typeof value.model !== 'string' || !value.model
|
|
89
|
+
|| value.reasoningEffort !== undefined && (typeof value.reasoningEffort !== 'string' || !value.reasoningEffort))
|
|
90
|
+
fail('existing growth model override is invalid');
|
|
91
|
+
return { provider: value.provider, model: value.model, ...(value.reasoningEffort ? { reasoningEffort: value.reasoningEffort } : {}) };
|
|
92
|
+
}
|
|
93
|
+
function rule(scope, id, subjectId, action, resourceKind, resourceId, initiator) {
|
|
94
|
+
return { id: `${prefix}${id}`, effect: 'allow', subject: { kind: subjectId === scope.preset ? 'agent' : 'background', id: subjectId,
|
|
95
|
+
workspace: scope.workspace, principal: scope.principal }, actions: [action], resource: { kind: resourceKind, id: resourceId },
|
|
96
|
+
context: { initiators: [initiator] } };
|
|
97
|
+
}
|
|
98
|
+
/** Pure profile composition: prepared identities/builds are inputs, and the caller owns I/O and activation. */
|
|
99
|
+
export function compileNativeRsiProfile(input) {
|
|
100
|
+
absolute(input.dshHome, 'dshHome');
|
|
101
|
+
if (!profilePattern.test(input.targetProfile) || !Number.isSafeInteger(input.now) || !Number.isSafeInteger(input.expiresAt)
|
|
102
|
+
|| input.expiresAt <= input.now || input.expiresAt - input.now > 365 * day)
|
|
103
|
+
fail('profile or authority lifetime is invalid');
|
|
104
|
+
const resources = input.resources, installation = resources?.installationId;
|
|
105
|
+
if (resources?.schemaVersion !== 1 || resources.root !== join(input.dshHome, 'rsi-authorities', input.targetProfile)
|
|
106
|
+
|| resources.stateRoot !== join(resources.root, 'state') || resources.configRoot !== join(resources.root, 'config')
|
|
107
|
+
|| resources.catalog.path !== join(resources.root, 'catalog.json') || !installation)
|
|
108
|
+
fail('prepared resources differ from target installation');
|
|
109
|
+
for (const path of [input.source?.repository, input.source?.baseline.remote, input.observer?.socketPath,
|
|
110
|
+
input.observer?.keyPath, input.executor?.path])
|
|
111
|
+
absolute(path, 'prepared path');
|
|
112
|
+
if (input.source.schemaVersion !== 1 || input.sourceBuild.versioning !== 'patch'
|
|
113
|
+
|| input.creationBuild.sourceCommit !== input.source.sourceCommit)
|
|
114
|
+
fail('creation build differs from prepared source');
|
|
115
|
+
if ('backend' in input.sourceBuild && input.sourceBuild.backend === 'macos-seatbelt') {
|
|
116
|
+
if (input.creationBuild.schemaVersion !== 2 || input.creationBuild.backend !== 'macos-seatbelt'
|
|
117
|
+
|| !isDeepStrictEqual(input.creationBuild.runtime, input.sourceBuild.runtime))
|
|
118
|
+
fail('native creation runtime differs');
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if ('backend' in input.sourceBuild || input.creationBuild.schemaVersion !== 1
|
|
122
|
+
|| input.creationBuild.sourceImage !== input.sourceBuild.image
|
|
123
|
+
|| input.creationBuild.dockerPath !== input.sourceBuild.dockerPath
|
|
124
|
+
|| input.creationBuild.socketPath !== input.sourceBuild.socketPath)
|
|
125
|
+
fail('creation build differs from prepared source');
|
|
126
|
+
}
|
|
127
|
+
if (!/^[a-f0-9]{64}$/u.test(input.executor.sha256) || !input.executor.id || !input.executor.version
|
|
128
|
+
|| !Array.isArray(input.executor.environmentAllowlist))
|
|
129
|
+
fail('executor pin is invalid');
|
|
130
|
+
const effective = parseRows(input.targetEffective, 'effective profile'), out = parseRows(input.targetPatch, 'target patch');
|
|
131
|
+
for (const key of Object.keys(managed))
|
|
132
|
+
effectiveRow(effective.byId, key, key === 'memory');
|
|
133
|
+
for (const [id, row] of effective.byId)
|
|
134
|
+
if (id.startsWith('dsh-enhanced-')) {
|
|
135
|
+
const name = row.get('name');
|
|
136
|
+
if (typeof name !== 'string' || id !== `dsh-enhanced-${name.replace(/^@dsh-enhanced\//u, '')}` || !name.startsWith('@dsh-enhanced/'))
|
|
137
|
+
fail(`bundle ${id} package identity differs`);
|
|
138
|
+
}
|
|
139
|
+
const standalone = effective.byId.get('dsh-enhanced-assistant-automations');
|
|
140
|
+
if (standalone && standalone.get('disabled') !== true)
|
|
141
|
+
fail('standalone Automations conflicts with embedded provider');
|
|
142
|
+
const standaloneMemory = effective.byId.get('dsh-enhanced-personal-memory');
|
|
143
|
+
if (standaloneMemory && standaloneMemory.get('disabled') !== true)
|
|
144
|
+
fail('standalone Memory conflicts with embedded provider');
|
|
145
|
+
const delivery = options(effectiveRow(effective.byId, 'delivery'), 'delivery');
|
|
146
|
+
const resolved = resolveRsiOwnerRoute(plain(delivery, 'delivery'), input.owner, input.dshHome);
|
|
147
|
+
const owner = { authorityId: resolved.route.id, authorityHash: resolved.route.authorityHash, principalId: resolved.principal,
|
|
148
|
+
principalRecordId: input.owner.owner.id, principalVersion: input.owner.owner.version,
|
|
149
|
+
workspace: resolved.workspace, agentPreset: resolved.preset };
|
|
150
|
+
const scope = { ownerRouteId: owner.authorityId, principalId: owner.principalId, workspace: owner.workspace, preset: owner.agentPreset };
|
|
151
|
+
const creation = createRsiPluginCreationSetup({ resources, build: input.creationBuild, owner, now: input.now, expiresAt: input.expiresAt });
|
|
152
|
+
const memory = createRsiMemoryLearningSetup({ installationId: installation, stateRoot: resources.stateRoot,
|
|
153
|
+
owner, now: input.now, expiresAt: input.expiresAt });
|
|
154
|
+
const currentLearner = effectiveRow(effective.byId, 'memory', true);
|
|
155
|
+
if (currentLearner.get('disabled') !== true && !isDeepStrictEqual(plain(options(currentLearner, 'memory'), 'memory'), memory.learning))
|
|
156
|
+
fail('existing memory learner grant differs');
|
|
157
|
+
const growthCurrent = effectiveRow(effective.byId, 'growth');
|
|
158
|
+
const growth = { enabled: true, intervalMs: 0, maxReviewsPerWake: 1, minRepeatedSuccesses: 2,
|
|
159
|
+
budgetId: `rsi-reviews-${installation}`, budgetAmount: 1, ...chooseModel(growthCurrent.has('config') ? options(growthCurrent, 'growth') : mapping(out.document.createNode({}), 'growth')),
|
|
160
|
+
scope, workflowOwnerAnchored: { enabled: true },
|
|
161
|
+
usageLearning: { enabled: true, databasePath: join(resources.stateRoot, 'growth.sqlite'), scanBudgetId: `rsi-discovery-${installation}`, scanBudgetAmount: 1 },
|
|
162
|
+
pluginSourceProposals: { enabled: true, allowModification: false, allowCreation: true, allowRevision: false,
|
|
163
|
+
preparationMode: 'durable', repository: input.source.repository, maxPlansPerWake: 1, offline: true, planTtlMs: day } };
|
|
164
|
+
normalizeConfig(growth);
|
|
165
|
+
const sourceBuildForControl = 'backend' in input.sourceBuild
|
|
166
|
+
? { ...input.sourceBuild, stateRoot: join(resources.stateRoot, 'native-source-build'),
|
|
167
|
+
authorityDigest: createHash('sha256').update(JSON.stringify({ installation, owner, sourceCommit: input.source.sourceCommit,
|
|
168
|
+
runtime: input.sourceBuild.runtime, expiresAt: input.expiresAt })).digest('hex'),
|
|
169
|
+
expiresAt: input.expiresAt, maxRuns: 1000, maxTotalDurationMs: day }
|
|
170
|
+
: input.sourceBuild;
|
|
171
|
+
const control = { catalogPath: resources.catalog.path, statePath: join(resources.stateRoot, 'control-plane'),
|
|
172
|
+
trustPath: join(resources.configRoot, 'native-trust.json'), sourceBuild: sourceBuildForControl,
|
|
173
|
+
sourceJobs: { authorityId: `source-jobs-${installation}`, expiresAt: input.expiresAt, maxSubmissions: 1000,
|
|
174
|
+
allowedModes: ['create'], repository: input.source.repository, baseline: { ...input.source.baseline }, creation: creation.creation,
|
|
175
|
+
...scope, budgetId: `rsi-source-${installation}`, budgetAmount: 1 },
|
|
176
|
+
creationVerifications: creation.verifications, creationCapabilities: creation.capabilities,
|
|
177
|
+
runtimeObserver: { socketPath: input.observer.socketPath, keyPath: input.observer.keyPath,
|
|
178
|
+
profilePath: join(input.dshHome, 'profiles', input.targetProfile), targets: [] } };
|
|
179
|
+
// The observer pins the final Loader options after all mutations below.
|
|
180
|
+
if (resolved.created) {
|
|
181
|
+
const targetDelivery = copyConfig(out, effective, 'delivery');
|
|
182
|
+
const routes = sequence(targetDelivery.get('ownerRoutes', true), 'delivery ownerRoutes');
|
|
183
|
+
routes.add(out.document.createNode(resolved.authority));
|
|
184
|
+
}
|
|
185
|
+
const personal = copyConfig(out, effective, 'personal');
|
|
186
|
+
const policy = mapping(personal.get('assistantPolicy', true), 'assistantPolicy');
|
|
187
|
+
const automations = mapping(personal.get('assistantAutomations', true), 'assistantAutomations');
|
|
188
|
+
if (automations.get('allowUnbudgetedExecution') === true)
|
|
189
|
+
fail('unbudgeted Automations is forbidden');
|
|
190
|
+
automations.set('schedulerEnabled', true);
|
|
191
|
+
const budgets = sequence(policy.get('budgets', true), 'policy budgets');
|
|
192
|
+
const limits = { periodMs: day, reviews: 7, discovery: 1440, source: 7, memoryExtractions: memory.limits.extractions,
|
|
193
|
+
memoryScans: memory.limits.scans };
|
|
194
|
+
const existingGlobal = budgets.items.filter(item => isMap(item) && item.get('metric') === 'automation-runs'
|
|
195
|
+
&& item.get('scope') === 'global' && item.get('periodMs') === day);
|
|
196
|
+
if (existingGlobal.length) {
|
|
197
|
+
const values = new Set(existingGlobal.map(item => item.get('limit')));
|
|
198
|
+
if (values.size !== 1 || !Number.isSafeInteger([...values][0]) || Number([...values][0]) < 1)
|
|
199
|
+
fail('global automation budget conflicts');
|
|
200
|
+
limits.reviews = Number([...values][0]);
|
|
201
|
+
}
|
|
202
|
+
for (const [id, limit, subject] of [[growth.budgetId, limits.reviews, 'global'],
|
|
203
|
+
[growth.usageLearning.scanBudgetId, limits.discovery, 'subject'],
|
|
204
|
+
[control.sourceJobs.budgetId, limits.source, 'subject'],
|
|
205
|
+
[memory.learning.budgetId, limits.memoryExtractions, 'workspace'],
|
|
206
|
+
[memory.learning.scanBudgetId, limits.memoryScans, 'subject']]) {
|
|
207
|
+
if (subject === 'workspace' && budgets.items.some(item => isMap(item) && item.get('id') !== id
|
|
208
|
+
&& item.get('metric') === 'automation-runs' && item.get('scope') === 'workspace' && item.get('periodMs') === day))
|
|
209
|
+
fail('workspace memory budget conflicts');
|
|
210
|
+
upsert(out.document, budgets, { id, metric: 'automation-runs', limit, periodMs: day, scope: subject }, 'Policy budget');
|
|
211
|
+
}
|
|
212
|
+
const rules = sequence(policy.get('rules', true), 'policy rules');
|
|
213
|
+
const policyScope = { workspace: owner.workspace, principal: owner.principalId, preset: owner.agentPreset };
|
|
214
|
+
const add = (id, subject, action, kind, resource, initiator = 'background') => upsert(out.document, rules, rule(policyScope, id, subject, action, kind, resource, initiator), 'Policy rule');
|
|
215
|
+
for (const [id, subject, automation] of [['usage', 'assistant-growth-usage', 'usage-*'],
|
|
216
|
+
['source', 'plugin-control-plane-source', 'source-job-*'], ['memory-scan', 'assistant-memory-learning', 'memory-scan-*'],
|
|
217
|
+
['memory-job', 'assistant-memory-learning', 'memory-learning:*']]) {
|
|
218
|
+
add(`${id}-reconcile`, subject, 'reconcile', 'automation', automation);
|
|
219
|
+
add(`${id}-execute`, automation, 'execute', 'automation', automation);
|
|
220
|
+
}
|
|
221
|
+
for (const [action, authority] of [['extract', memory.learning.authorityId], ['review', memory.reviews.authorityId],
|
|
222
|
+
['adopt', memory.adoption.authorityId]])
|
|
223
|
+
add(`memory-${action}`, 'assistant-memory-learning', action, 'memory', `learning:${authority}`);
|
|
224
|
+
for (const tool of ['growth_*', 'plugin_source_*'])
|
|
225
|
+
add(tool, owner.agentPreset, 'execute', 'tool', tool);
|
|
226
|
+
add('created-tools', owner.agentPreset, 'execute', 'tool', `evolved_${creation.creation.namePrefix.replaceAll('-', '_')}*`, 'external');
|
|
227
|
+
add('verified-workflows', owner.agentPreset, 'draft', 'evolution', 'verified-workflows');
|
|
228
|
+
const embeddedMemory = mapping(personal.get('personalMemory', true), 'personalMemory');
|
|
229
|
+
setExact(out.document, embeddedMemory, 'automaticLearning', memory.adoption, 'memory adoption');
|
|
230
|
+
const verifier = copyConfig(out, effective, 'verifier');
|
|
231
|
+
setExact(out.document, verifier, 'memoryReviews', memory.reviews, 'memory review');
|
|
232
|
+
setExact(out.document, verifier, 'creationReviews', creation.reviews, 'creation review');
|
|
233
|
+
const learner = out.byId.get(ids.memory) ?? mapping(out.document.createNode({ id: ids.memory }), 'learner patch');
|
|
234
|
+
if (!out.byId.has(ids.memory)) {
|
|
235
|
+
out.rows.add(learner);
|
|
236
|
+
out.byId.set(ids.memory, learner);
|
|
237
|
+
}
|
|
238
|
+
if (learner.get('name') !== undefined && learner.get('name') !== managed.memory)
|
|
239
|
+
fail('learner patch package differs');
|
|
240
|
+
learner.set('name', managed.memory);
|
|
241
|
+
learner.set('disabled', false);
|
|
242
|
+
setExact(out.document, learner, 'config', memory.learning, 'memory learner');
|
|
243
|
+
const growthRow = copyConfig(out, effective, 'growth');
|
|
244
|
+
if (growthRow.has('pluginSourceProposals') && !isDeepStrictEqual(growthRow.get('pluginSourceProposals', true).toJSON(), growth.pluginSourceProposals))
|
|
245
|
+
fail('existing source proposal grant differs');
|
|
246
|
+
out.byId.get(ids.growth).set('config', out.document.createNode(growth));
|
|
247
|
+
const controlRow = copyConfig(out, effective, 'control');
|
|
248
|
+
for (const key of ['sourceJobs', 'sourceApprovals', 'sourceReleases', 'sourceAdoptions', 'creationVerifications', 'creationCapabilities']) {
|
|
249
|
+
if (controlRow.has(key) && !isDeepStrictEqual(controlRow.get(key, true).toJSON(), control[key]))
|
|
250
|
+
fail(`existing ${key} grant differs`);
|
|
251
|
+
}
|
|
252
|
+
out.byId.get(ids.control).set('config', out.document.createNode(control));
|
|
253
|
+
const final = parseRows(out.document.toString({ lineWidth: 0 }), 'compiled target');
|
|
254
|
+
const targets = [];
|
|
255
|
+
for (const [key, services] of [['personal', ['personalMemory', 'assistantPolicy', 'assistantAutomations']],
|
|
256
|
+
['delivery', ['assistantDelivery']], ['verifier', ['assistantVerifier']], ['growth', ['assistantGrowthDriver']],
|
|
257
|
+
['memory', ['assistantMemoryLearning']]]) {
|
|
258
|
+
const finalRow = final.byId.get(ids[key]) ?? effectiveRow(effective.byId, key);
|
|
259
|
+
targets.push({ entryId: ids[key], module: managed[key], configDigest: runtimeConfigDigest(rawLoaderConfig(finalRow.get('config', true), key)), services: [...services] });
|
|
260
|
+
}
|
|
261
|
+
const larkRow = effective.byId.get('dsh-enhanced-lark-channel');
|
|
262
|
+
if (!larkRow || larkRow.get('disabled') === true || larkRow.get('name') !== '@dsh-enhanced/lark-channel')
|
|
263
|
+
fail('active Lark channel is required');
|
|
264
|
+
targets.push({ entryId: 'dsh-enhanced-lark-channel', module: '@dsh-enhanced/lark-channel',
|
|
265
|
+
configDigest: runtimeConfigDigest(rawLoaderConfig(larkRow.get('config', true), 'lark-channel')),
|
|
266
|
+
services: ['larkChannel'] });
|
|
267
|
+
control.runtimeObserver.targets = targets;
|
|
268
|
+
normalizeControlPlaneConfig(control);
|
|
269
|
+
final.byId.get(ids.control).set('config', final.document.createNode(control));
|
|
270
|
+
const trust = { schemaVersion: 2, installationId: installation, dshHome: input.dshHome,
|
|
271
|
+
ledger: { id: resources.ledgerId, path: join(resources.stateRoot, 'control-plane', 'control.sqlite') },
|
|
272
|
+
executor: { ...input.executor, environmentAllowlist: [...input.executor.environmentAllowlist] },
|
|
273
|
+
hostPolicy: defaultHostAttestationPolicy, hostAttestor: null,
|
|
274
|
+
approvalKeys: [{ authority: resources.identities.approval.authority, keyId: resources.identities.approval.keyId,
|
|
275
|
+
publicKeyPem: resources.identities.approval.publicKeyPem }],
|
|
276
|
+
hostAttestationKeys: [{ authority: resources.identities.host.authority, keyId: resources.identities.host.keyId,
|
|
277
|
+
publicKeyPem: resources.identities.host.publicKeyPem }] };
|
|
278
|
+
const manifest = { schemaVersion: 1, kind: 'native-plugin-learning', targetProfile: input.targetProfile,
|
|
279
|
+
owner, now: input.now, expiresAt: input.expiresAt, controlPlane: control, growthDriver: growth, memoryLearning: memory,
|
|
280
|
+
pluginCreation: creation, limits };
|
|
281
|
+
return { manifest, targetPatch: final.document.toString({ lineWidth: 0 }), trust };
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=rsi-native-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsi-native-profile.js","sourceRoot":"","sources":["../src/rsi-native-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAoC,MAAM,uCAAuC,CAAA;AACzG,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,mBAAmB,EACS,MAAM,oCAAoC,CAAA;AAC1I,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAwD,MAAM,MAAM,CAAA;AAKxG,OAAO,EAAE,4BAA4B,EAA+B,MAAM,0BAA0B,CAAA;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,4BAA4B,EAA+B,MAAM,0BAA0B,CAAA;AAEpG,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,MAAM,GAAG,GAAG,UAAU,CAAA;AACtB,MAAM,cAAc,GAAG,oCAAoC,CAAA;AAC3D,MAAM,OAAO,GAAG;IACd,QAAQ,EAAE,kCAAkC,EAAE,QAAQ,EAAE,kCAAkC;IAC1F,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,uCAAuC;IAC7F,OAAO,EAAE,oCAAoC,EAAE,MAAM,EAAE,yCAAyC;CACxF,CAAA;AACV,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAgB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAyC,CAAA;AAClL,MAAM,MAAM,GAAG,aAAa,CAAA;AAmB5B,SAAS,IAAI,CAAC,OAAe,IAAW,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAA,CAAC,CAAC;AAC3F,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAa;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAA;IAC7K,OAAO,KAAK,CAAA;AACd,CAAC;AACD,SAAS,OAAO,CAAC,KAAuB,EAAE,KAAa,IAAa,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAAE,IAAI,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA,CAAC,CAAC;AACzI,SAAS,QAAQ,CAAC,KAAuB,EAAE,KAAa,IAAa,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAAE,IAAI,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA,CAAC,CAAC;AAC3I,SAAS,SAAS,CAAC,KAAa,EAAE,KAAa;IAC7C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,WAAW,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IACpF,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC/F,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAY,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAA;QACnG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACrB,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACjC,CAAC;AACD,SAAS,YAAY,CAAC,IAA0B,EAAE,GAAyB,EAAE,QAAQ,GAAG,KAAK;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,GAAG,GAAG,6CAA6C,CAAC,CAAA;IAC7J,OAAO,MAAM,CAAA;AACf,CAAC;AACD,SAAS,OAAO,CAAC,GAAY,EAAE,KAAa,IAAa,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,CAAA,CAAC,CAAC;AACzI,SAAS,KAAK,CAAC,IAAa,EAAE,KAAa;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC3B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAA;IAClG,OAAO,KAA4B,CAAA;AACrC,CAAC;AACD,SAAS,QAAQ,CAAC,QAAkB,EAAE,IAAa,EAAE,GAAW,EAAE,KAAc,EAAE,KAAa;IAC7F,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAU,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAA;IACpI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AAC3C,CAAC;AACD,SAAS,MAAM,CAAC,QAAkB,EAAE,QAAiB,EAAE,KAA8B,EAAE,KAAa;IAClG,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAA;IACzF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAE,OAAO,CAAC,CAAC,CAAa,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAA;IAC3J,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AAC/D,CAAC;AACD,SAAS,UAAU,CAAC,GAAiC,EAAE,SAAuC,EAAE,GAAyB;IACvH,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,GAAG,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/D,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;IACzF,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAChC,IAAI,CAAC,GAAG,EAAE,CAAC;QAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAAC,CAAC;IAC3H,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAA;IAC5I,gEAAgE;IAChE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IACjC,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC1B,CAAC;AACD,SAAS,WAAW,CAAC,MAAe;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACrC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAC/G,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK;WACvG,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QAAE,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACpK,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AACvI,CAAC;AACD,SAAS,IAAI,CAAC,KAA+D,EAAE,EAAU,EACvF,SAAiB,EAAE,MAAc,EAAE,YAAoB,EAAE,UAAkB,EAAE,SAAiB;IAC9F,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,SAAS;YACjI,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE;QAC7H,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAA;AAC1C,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,uBAAuB,CAAC,KAA4B;IAClE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;WACtH,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG;QAAE,IAAI,CAAC,0CAA0C,CAAC,CAAA;IAC9H,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,YAAY,GAAG,SAAS,EAAE,cAAc,CAAA;IAC3E,IAAI,SAAS,EAAE,aAAa,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC;WAC/G,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;WAChH,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,YAAY;QAAE,IAAI,CAAC,oDAAoD,CAAC,CAAA;IACjJ,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU;QACrG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;IACjF,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,UAAU,KAAK,OAAO;WAC3E,KAAK,CAAC,aAAa,CAAC,YAAY,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY;QAAE,IAAI,CAAC,6CAA6C,CAAC,CAAA;IACxH,IAAI,SAAS,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACrF,IAAI,KAAK,CAAC,aAAa,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,KAAK,gBAAgB;eAC1F,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,iCAAiC,CAAC,CAAA;IAC1H,CAAC;SAAM,CAAC;QACN,IAAI,SAAS,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,CAAC,aAAa,KAAK,CAAC;eACxE,KAAK,CAAC,aAAa,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAC,KAAK;eAC3D,KAAK,CAAC,aAAa,CAAC,UAAU,KAAK,KAAK,CAAC,WAAW,CAAC,UAAU;eAC/D,KAAK,CAAC,aAAa,CAAC,UAAU,KAAK,KAAK,CAAC,WAAW,CAAC,UAAU;YAAE,IAAI,CAAC,6CAA6C,CAAC,CAAA;IAC3H,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO;WAC9F,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAAE,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACzF,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,mBAAmB,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC3H,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAA6B;QAAE,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAA;IACvH,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI;QAAE,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAK,gBAAgB,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;gBAAE,IAAI,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAA;QACrL,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;IAC3E,IAAI,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,yDAAyD,CAAC,CAAA;IACtH,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAC3E,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,oDAAoD,CAAC,CAAA;IAC7H,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAA;IAC9E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9F,MAAM,KAAK,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,SAAS;QAC1H,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;QACpF,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;IAC/D,MAAM,KAAK,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAA;IACxI,MAAM,QAAQ,GAAG,4BAA4B,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;IAC3I,MAAM,MAAM,GAAG,4BAA4B,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS;QACxG,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;IACtD,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IACnE,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;QAAE,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACrL,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAgC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACvH,QAAQ,EAAE,eAAe,YAAY,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzL,KAAK,EAAE,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC/C,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,YAAY,EAAE,iBAAiB,YAAY,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE;QAC9J,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK;YACzG,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAA;IAC1H,eAAe,CAAC,MAAM,CAAC,CAAA;IACvB,MAAM,qBAAqB,GAAmD,SAAS,IAAI,KAAK,CAAC,WAAW;QAC1G,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;YACnF,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;gBACxH,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAClF,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE;QACtE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAA;IACrB,MAAM,OAAO,GAAuB,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;QAC9H,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,WAAW,EAAE,qBAAqB;QAC9F,UAAU,EAAE,EAAE,WAAW,EAAE,eAAe,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI;YACxG,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAClI,GAAG,KAAK,EAAE,QAAQ,EAAE,cAAc,YAAY,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;QACrE,qBAAqB,EAAE,QAAQ,CAAC,aAAa,EAAE,oBAAoB,EAAE,QAAQ,CAAC,YAAY;QAC1F,eAAe,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;YACvF,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAA;IACtF,wEAAwE;IACxE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAqB,EAAE,sBAAsB,CAAC,CAAA;QAC5G,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAqB,EAAE,iBAAiB,CAAC,CAAA;IACpG,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAqB,EAAE,sBAAsB,CAAC,CAAA;IACnH,IAAI,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACrG,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAqB,EAAE,gBAAgB,CAAC,CAAA;IAC3F,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;QAClH,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACpC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,iBAAiB;WACtG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAA;IACpE,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,IAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAClF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,oCAAoC,CAAC,CAAA;QACxI,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IACD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAS,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC9E,CAAC,MAAM,CAAC,aAAc,CAAC,YAAa,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC;QAClE,CAAC,OAAO,CAAC,UAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;QACxD,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC;QACjE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAU,EAAE,CAAC;QAC1E,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;eACzF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,mCAAmC,CAAC,CAAA;QAC9J,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,eAAe,CAAC,CAAA;IACzH,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAqB,EAAE,cAAc,CAAC,CAAA;IACrF,MAAM,WAAW,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAA;IAC3G,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,MAAc,EAAE,IAAY,EAAE,QAAgB,EAAE,SAAS,GAAG,YAAY,EAAE,EAAE,CACpH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,CAAA;IAC/G,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,wBAAwB,EAAE,SAAS,CAAC;QACrF,CAAC,QAAQ,EAAE,6BAA6B,EAAE,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,2BAA2B,EAAE,eAAe,CAAC;QACxH,CAAC,YAAY,EAAE,2BAA2B,EAAE,mBAAmB,CAAC,CAAU,EAAE,CAAC;QAC7E,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;QACtE,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;IACvE,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACjH,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAU;QAAE,GAAG,CAAC,UAAU,MAAM,EAAE,EAAE,2BAA2B,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,SAAS,EAAE,CAAC,CAAA;IACnJ,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAU;QAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAClH,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACvI,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAA;IACxF,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAqB,EAAE,gBAAgB,CAAC,CAAA;IAC1G,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IAC/F,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IACvD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAClF,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;IACxF,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,CAAA;IACjH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAAC,CAAC;IAC3F,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,+BAA+B,CAAC,CAAA;IACtH,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IACnE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IAC5E,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IACtD,IAAI,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAE,SAAS,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAU,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,qBAAqB,CAAC;QAAE,IAAI,CAAC,wCAAwC,CAAC,CAAA;IAC/M,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IACxD,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,CAAU,EAAE,CAAC;QACnJ,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAU,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,GAA+B,CAAC,CAAC;YAAE,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAA;IAC9K,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAA;IACnF,MAAM,OAAO,GAA4B,EAAE,CAAA;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;QACxG,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,uBAAuB,CAAC,CAAC;QAC/G,CAAC,QAAQ,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAU,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9E,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAS,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACnL,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IAC/D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,4BAA4B;QAAE,IAAI,CAAC,iCAAiC,CAAC,CAAA;IACjJ,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,MAAM,EAAE,4BAA4B;QACvF,YAAY,EAAE,mBAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAS,EAAE,cAAc,CAAC,CAAC;QACvG,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAC9B,OAAO,CAAC,eAAgB,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1C,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9E,MAAM,KAAK,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO;QACpF,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE;QACtG,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;QAC/F,UAAU,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI;QAC5D,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK;gBAC7G,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7D,mBAAmB,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;gBAC5G,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAyC,CAAA;IACpG,MAAM,QAAQ,GAA2B,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;QAC7H,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;QACtH,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IACpC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA;AACpF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type NativeMacRuntime } from '@dsh-enhanced/assistant-isolation';
|
|
2
|
+
import { type RsiSourceWorkspace } from './rsi-source.js';
|
|
3
|
+
export interface NativeRsiBuildEnvironment {
|
|
4
|
+
schemaVersion: 2;
|
|
5
|
+
sourceCommit: string;
|
|
6
|
+
lockSha256: string;
|
|
7
|
+
runtime: NativeMacRuntime;
|
|
8
|
+
sourceBuild: {
|
|
9
|
+
backend: 'macos-seatbelt';
|
|
10
|
+
runtime: NativeMacRuntime;
|
|
11
|
+
timeoutMs: 60_000;
|
|
12
|
+
outputBytes: 1_048_576;
|
|
13
|
+
versioning: 'patch';
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface NativeRsiCreationBuildEnvironment {
|
|
17
|
+
schemaVersion: 2;
|
|
18
|
+
backend: 'macos-seatbelt';
|
|
19
|
+
sourceCommit: string;
|
|
20
|
+
runtime: NativeMacRuntime;
|
|
21
|
+
}
|
|
22
|
+
export declare function nativeRsiCreationBuild(build: NativeRsiBuildEnvironment): NativeRsiCreationBuildEnvironment;
|
|
23
|
+
export interface NativeRsiBootstrapInput {
|
|
24
|
+
dshHome: string;
|
|
25
|
+
profile: string;
|
|
26
|
+
source: RsiSourceWorkspace;
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
/** Exact predownloaded official bytes; only intended for an isolated installer cache or test. */
|
|
29
|
+
nodeArchivePath?: string;
|
|
30
|
+
pnpmArchivePath?: string;
|
|
31
|
+
}
|
|
32
|
+
/** Install only committed manifests and their frozen dependencies into a private native runtime. */
|
|
33
|
+
export declare function prepareNativeRsiRuntime(input: NativeRsiBootstrapInput): Promise<NativeRsiBuildEnvironment>;
|
|
34
|
+
export declare function readNativeRsiRuntime(input: NativeRsiBootstrapInput): Promise<NativeRsiBuildEnvironment>;
|
|
35
|
+
//# sourceMappingURL=rsi-native-runtime-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsi-native-runtime-bootstrap.d.ts","sourceRoot":"","sources":["../src/rsi-native-runtime-bootstrap.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAE3H,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAiBjF,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,CAAC,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,gBAAgB,CAAA;IACzB,WAAW,EAAE;QAAE,OAAO,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QACrF,WAAW,EAAE,SAAS,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAA;CAChD;AACD,MAAM,WAAW,iCAAiC;IAChD,aAAa,EAAE,CAAC,CAAA;IAChB,OAAO,EAAE,gBAAgB,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,gBAAgB,CAAA;CAC1B;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,yBAAyB,GAAG,iCAAiC,CAE1G;AASD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAClF,iGAAiG;IACjG,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CACnD;AAuLD,oGAAoG;AACpG,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA4FhH;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAK7G"}
|