holarchy-core-logic 0.2.0 → 0.3.1
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/dist/authoring.d.ts +1 -1
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.js +8 -9
- package/dist/authoring.js.map +1 -1
- package/dist/authority-store.d.ts +7 -2
- package/dist/authority-store.d.ts.map +1 -1
- package/dist/authority-store.js +21 -8
- package/dist/authority-store.js.map +1 -1
- package/dist/effective-snapshot.d.ts.map +1 -1
- package/dist/effective-snapshot.js +3 -5
- package/dist/effective-snapshot.js.map +1 -1
- package/dist/effective.d.ts +1 -3
- package/dist/effective.d.ts.map +1 -1
- package/dist/effective.js +0 -2
- package/dist/effective.js.map +1 -1
- package/dist/governance-policy.d.ts +5 -0
- package/dist/governance-policy.d.ts.map +1 -0
- package/dist/governance-policy.js +57 -0
- package/dist/governance-policy.js.map +1 -0
- package/dist/index.d.ts +15 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/dist/organization-authority.d.ts +10 -0
- package/dist/organization-authority.d.ts.map +1 -0
- package/dist/organization-authority.js +229 -0
- package/dist/organization-authority.js.map +1 -0
- package/dist/organization-entity.d.ts +6 -0
- package/dist/organization-entity.d.ts.map +1 -0
- package/dist/organization-entity.js +95 -0
- package/dist/organization-entity.js.map +1 -0
- package/dist/organization-field-edits.d.ts +4 -0
- package/dist/organization-field-edits.d.ts.map +1 -0
- package/dist/organization-field-edits.js +89 -0
- package/dist/organization-field-edits.js.map +1 -0
- package/dist/organization-mutations.d.ts +43 -0
- package/dist/organization-mutations.d.ts.map +1 -0
- package/dist/organization-mutations.js +295 -0
- package/dist/organization-mutations.js.map +1 -0
- package/dist/organization-reconciliation.d.ts +86 -0
- package/dist/organization-reconciliation.d.ts.map +1 -0
- package/dist/organization-reconciliation.js +290 -0
- package/dist/organization-reconciliation.js.map +1 -0
- package/dist/organization-scope.d.ts +8 -0
- package/dist/organization-scope.d.ts.map +1 -0
- package/dist/organization-scope.js +89 -0
- package/dist/organization-scope.js.map +1 -0
- package/dist/organization-snapshot-timeline.d.ts.map +1 -1
- package/dist/organization-snapshot-timeline.js +1 -25
- package/dist/organization-snapshot-timeline.js.map +1 -1
- package/dist/organization-state.d.ts +25 -0
- package/dist/organization-state.d.ts.map +1 -0
- package/dist/organization-state.js +314 -0
- package/dist/organization-state.js.map +1 -0
- package/dist/validator.d.ts +6 -5
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +3 -1
- package/dist/validator.js.map +1 -1
- package/package.json +22 -6
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { ORGANIZATION_CHANGESET_SCHEMA } from "holarchy-core-contract";
|
|
2
|
+
import { materializeOrganizationMutation, rebaseOrganizationMutation } from "./organization-mutations.js";
|
|
3
|
+
import { HolonAuthorityContractError } from "./authority-store.js";
|
|
4
|
+
import { sha256Basis } from "./authoring.js";
|
|
5
|
+
import { assertOrganizationEntityIdentity, applyOrganizationChangeSet, canonicalOrganizationValue, diffOrganizationStates, organizationStateToFacts, parseOrganizationChangeSet, parseOrganizationEntity, parseOrganizationState, requireCompleteOrganizationState } from "./organization-state.js";
|
|
6
|
+
import { validateDesiredHolarchy } from "./validator.js";
|
|
7
|
+
const same = (a, b) => canonicalOrganizationValue(a) === canonicalOrganizationValue(b);
|
|
8
|
+
const invalid = (path, message) => { throw new HolonAuthorityContractError("invalid-organization", path, message); };
|
|
9
|
+
const record = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
|
|
10
|
+
function freeze(value) {
|
|
11
|
+
if (value && typeof value === "object") {
|
|
12
|
+
for (const child of Object.values(value))
|
|
13
|
+
freeze(child);
|
|
14
|
+
Object.freeze(value);
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
function program() {
|
|
19
|
+
const atom = (relation, ...variables) => ({ relation, terms: variables.map(name => ({ var: name })) });
|
|
20
|
+
return { id: "holarchy-reconciliation", version: "2", relations: [{ name: "seed", arity: 2 }, { name: "depends", arity: 2 }, { name: "invalid", arity: 2 }, { name: "governance_limit", arity: 6 }], rules: [
|
|
21
|
+
{ id: "governance-role-assignment-limit", head: atom("invalid", "group", "cause"), body: [atom("governance_limit", "group", "cause", "policyVersion", "role", "actual", "maximum")] },
|
|
22
|
+
{ id: "root-cause", head: atom("invalid", "group", "cause"), body: [atom("seed", "group", "cause")] },
|
|
23
|
+
{ id: "dependency-propagation", head: atom("invalid", "group", "cause"), body: [atom("depends", "group", "parent"), atom("invalid", "parent", "cause")] },
|
|
24
|
+
] };
|
|
25
|
+
}
|
|
26
|
+
/** Objects merge recursively; arrays remain ordered atomic field values. */
|
|
27
|
+
function mergeValue(before, after, current, path, conflict) {
|
|
28
|
+
if (same(before, after))
|
|
29
|
+
return current;
|
|
30
|
+
if (same(current, before) || same(current, after))
|
|
31
|
+
return after;
|
|
32
|
+
if (record(before) && record(after) && record(current)) {
|
|
33
|
+
const merged = { ...current };
|
|
34
|
+
for (const key of new Set([...Object.keys(before), ...Object.keys(after)])) {
|
|
35
|
+
const value = mergeValue(before[key], after[key], current[key], `${path}.${key}`, conflict);
|
|
36
|
+
if (value === undefined)
|
|
37
|
+
delete merged[key];
|
|
38
|
+
else
|
|
39
|
+
merged[key] = value;
|
|
40
|
+
}
|
|
41
|
+
return merged;
|
|
42
|
+
}
|
|
43
|
+
conflict(path);
|
|
44
|
+
return current;
|
|
45
|
+
}
|
|
46
|
+
/** Read-only preview over complete authority projections, not scoped issued snapshots.
|
|
47
|
+
* Versioned governance constraints use the same evaluator as public authoring.
|
|
48
|
+
* The inference workspace and candidate never write organization authority.
|
|
49
|
+
*/
|
|
50
|
+
export async function reconcileOrganization(runtime, input) {
|
|
51
|
+
const base = requireCompleteOrganizationState(input.base), remote = requireCompleteOrganizationState(input.remote);
|
|
52
|
+
if (base.authorityId !== remote.authorityId || base.effectiveDate !== remote.effectiveDate || remote.revision < base.revision || (remote.revision === base.revision && !same(base, remote)))
|
|
53
|
+
invalid("$.remote", "Remote must share authority/effective time and identify the same or a newer revision");
|
|
54
|
+
const maxEpochs = input.maxEpochs ?? 32;
|
|
55
|
+
if (!Number.isSafeInteger(maxEpochs) || maxEpochs < 1 || maxEpochs > 256)
|
|
56
|
+
invalid("$.maxEpochs", "Expected an epoch budget from 1 to 256");
|
|
57
|
+
if (!Array.isArray(input.local))
|
|
58
|
+
invalid("$.local", "Expected local proposals");
|
|
59
|
+
const local = input.local.map((proposal, index) => {
|
|
60
|
+
const changeSet = parseOrganizationChangeSet(proposal.changeSet);
|
|
61
|
+
if (changeSet.authorityId !== base.authorityId || changeSet.expectedRevision !== base.revision || changeSet.effectiveDate !== base.effectiveDate)
|
|
62
|
+
invalid(`$.local[${index}]`, "Local proposal authority/revision/effective time differs from Base");
|
|
63
|
+
if (!Array.isArray(proposal.dependsOn) || proposal.dependsOn.some(id => typeof id !== "string"))
|
|
64
|
+
invalid(`$.local[${index}].dependsOn`, "Expected dependency IDs");
|
|
65
|
+
return { changeSet, dependsOn: [...new Set(proposal.dependsOn)].sort(), evidence: [] };
|
|
66
|
+
});
|
|
67
|
+
const ids = new Set(local.map(p => p.changeSet.id));
|
|
68
|
+
if (ids.size !== local.length)
|
|
69
|
+
invalid("$.local", "Duplicate ChangeSet identity");
|
|
70
|
+
for (const p of local)
|
|
71
|
+
for (const dependency of p.dependsOn)
|
|
72
|
+
if (!ids.has(dependency))
|
|
73
|
+
invalid("$.local.dependsOn", `Unknown local prerequisite ${dependency}`);
|
|
74
|
+
const basisDigest = sha256Basis(canonicalOrganizationValue({ base, remote, local }));
|
|
75
|
+
const staticCauses = [];
|
|
76
|
+
const cause = (list, changeSetId, code, path, message, mutation, detail) => {
|
|
77
|
+
const operation = mutation && ("operation" in mutation ? mutation.operation : mutation);
|
|
78
|
+
const value = { changeSetId, code, path, message, ...(operation?.type ? { mutationType: operation.type, entityType: operation.entityType } : {}), ...(operation?.type && operation.commandId ? { commandId: operation.commandId } : {}), ...(detail ? { detail } : {}), ...(mutation ? { mutationId: mutation.id, entityId: mutation.entityId } : {}) };
|
|
79
|
+
const id = sha256Basis(canonicalOrganizationValue(value));
|
|
80
|
+
if (!list.some(c => c.id === id))
|
|
81
|
+
list.push({ id, ...value });
|
|
82
|
+
};
|
|
83
|
+
// Every before image must originate in Base or a preceding local proposal,
|
|
84
|
+
// rather than a different branch falsely claiming this revision.
|
|
85
|
+
const versions = new Map(base.entities.map(e => [e.id, [e]]));
|
|
86
|
+
const creators = new Map();
|
|
87
|
+
const baseIds = new Set(base.entities.map(e => e.id));
|
|
88
|
+
for (const { changeSet, evidence } of local) {
|
|
89
|
+
const staged = new Map([...versions].map(([id, values]) => [id, [...values]]));
|
|
90
|
+
const count = staticCauses.length;
|
|
91
|
+
for (const operation of changeSet.mutations) {
|
|
92
|
+
const known = staged.get(operation.entityId) ?? [null];
|
|
93
|
+
let mutation;
|
|
94
|
+
for (const value of [...known].reverse()) {
|
|
95
|
+
try {
|
|
96
|
+
mutation = materializeOrganizationMutation(value, operation);
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
catch { /* Try a prior local version, never Remote. */ }
|
|
100
|
+
}
|
|
101
|
+
if (!mutation) {
|
|
102
|
+
cause(staticCauses, changeSet.id, "LOCAL_BASE_MISMATCH", `$.mutations.${operation.id}`, "Operation precondition does not belong to Base or prior local intent", operation);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
evidence.push(mutation);
|
|
106
|
+
staged.set(mutation.entityId, [...known, mutation.after]);
|
|
107
|
+
if (!baseIds.has(mutation.entityId) && mutation.before === null && mutation.after !== null) {
|
|
108
|
+
for (const key of [`entity:${mutation.entityId}`, ...(mutation.after.kind === "Holon" || mutation.after.kind === "Member" ? [`subject:${mutation.after.subjectId}`] : [])])
|
|
109
|
+
creators.set(key, [...new Set([...(creators.get(key) ?? []), changeSet.id])]);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (staticCauses.length === count)
|
|
113
|
+
for (const [id, values] of staged)
|
|
114
|
+
versions.set(id, values);
|
|
115
|
+
}
|
|
116
|
+
const dependencies = new Map(local.map(p => [p.changeSet.id, new Set(p.dependsOn)]));
|
|
117
|
+
for (const { changeSet, evidence } of local)
|
|
118
|
+
for (const mutation of evidence) {
|
|
119
|
+
const keys = [...(mutation.before && !baseIds.has(mutation.entityId) ? [`entity:${mutation.entityId}`] : []), ...mutation.references];
|
|
120
|
+
for (const key of keys)
|
|
121
|
+
for (const creator of creators.get(key) ?? [])
|
|
122
|
+
if (creator !== changeSet.id)
|
|
123
|
+
dependencies.get(changeSet.id).add(creator);
|
|
124
|
+
}
|
|
125
|
+
const epochs = [];
|
|
126
|
+
let previousRejected = new Set(), lastInference = null, lastCauses = staticCauses;
|
|
127
|
+
const selections = new Set(["[]"]);
|
|
128
|
+
let replayedOperations = [];
|
|
129
|
+
const result = (status, candidate, rejected, diagnostics) => freeze({ status, validation: runtime.validateCandidate ? "authority-backed" : "projection-only", base, remote, candidate, basisDigest, acceptedChangeSetIds: status === "ready" ? local.filter(p => !rejected.has(p.changeSet.id)).map(p => p.changeSet.id) : [], rejectedChangeSetIds: [...rejected].sort(), causes: lastCauses, inference: lastInference, epochs, replayedOperations: status === "ready" ? replayedOperations : [], diagnostics });
|
|
130
|
+
for (let epoch = 1; epoch <= maxEpochs; epoch++) {
|
|
131
|
+
let candidate = remote;
|
|
132
|
+
replayedOperations = [];
|
|
133
|
+
const causes = [...staticCauses];
|
|
134
|
+
for (const { changeSet, evidence } of local) {
|
|
135
|
+
if (staticCauses.some(c => c.changeSetId === changeSet.id))
|
|
136
|
+
continue;
|
|
137
|
+
const entities = new Map(candidate.entities.map(e => [e.id, e])), rebased = [];
|
|
138
|
+
const priorCount = causes.length;
|
|
139
|
+
const appliedOperations = [];
|
|
140
|
+
for (const mutation of evidence) {
|
|
141
|
+
const current = entities.get(mutation.entityId) ?? null;
|
|
142
|
+
let after;
|
|
143
|
+
let replayedOperation = mutation.operation;
|
|
144
|
+
if (mutation.operation.type) {
|
|
145
|
+
if (mutation.before?.effectiveState && mutation.after?.effectiveState && current && !current.effectiveState)
|
|
146
|
+
cause(causes, changeSet.id, "REMOTE_RETIRED_ENTITY", `$.entities.${mutation.entityId}.effectiveState`, "Local operation requires an entity retired remotely", mutation);
|
|
147
|
+
try {
|
|
148
|
+
const replay = rebaseOrganizationMutation(current, mutation);
|
|
149
|
+
after = replay.after;
|
|
150
|
+
replayedOperation = replay.operation;
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
cause(causes, changeSet.id, mutation.before === null ? "CREATE_CONFLICT" : mutation.after === null ? "DELETE_MODIFY_CONFLICT" : current === null ? "MISSING_ENTITY" : "FIELD_CONFLICT", `$.mutations.${mutation.id}`, error instanceof Error ? error.message : String(error), mutation);
|
|
154
|
+
after = current;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else if (mutation.before === null) {
|
|
158
|
+
if (current !== null && !same(current, mutation.after))
|
|
159
|
+
cause(causes, changeSet.id, "CREATE_CONFLICT", `$.entities.${mutation.entityId}`, "Remote or another proposal already creates a different entity", mutation);
|
|
160
|
+
after = mutation.after;
|
|
161
|
+
}
|
|
162
|
+
else if (mutation.after === null) {
|
|
163
|
+
if (current !== null && !same(current, mutation.before))
|
|
164
|
+
cause(causes, changeSet.id, "DELETE_MODIFY_CONFLICT", `$.entities.${mutation.entityId}`, "Entity changed while local intent deletes it", mutation);
|
|
165
|
+
after = null;
|
|
166
|
+
}
|
|
167
|
+
else if (current === null) {
|
|
168
|
+
cause(causes, changeSet.id, "MISSING_ENTITY", `$.entities.${mutation.entityId}`, "Entity required by local mutation is absent", mutation);
|
|
169
|
+
after = null;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
if (mutation.before.effectiveState && mutation.after.effectiveState && !current.effectiveState)
|
|
173
|
+
cause(causes, changeSet.id, "REMOTE_RETIRED_ENTITY", `$.entities.${mutation.entityId}.effectiveState`, "Local intent requires an entity that was retired remotely", mutation);
|
|
174
|
+
try {
|
|
175
|
+
after = parseOrganizationEntity(mergeValue(mutation.before, mutation.after, current, `$.entities.${mutation.entityId}`, path => cause(causes, changeSet.id, "FIELD_CONFLICT", path, "Local and remote changed the same field differently", mutation)));
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
cause(causes, changeSet.id, "INVALID_CHANGESET", `$.entities.${mutation.entityId}`, error instanceof Error ? error.message : String(error), mutation);
|
|
179
|
+
after = current;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (current && after)
|
|
183
|
+
try {
|
|
184
|
+
assertOrganizationEntityIdentity(current, after, `$.mutations.${mutation.id}.after`);
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
cause(causes, changeSet.id, "INVALID_CHANGESET", error instanceof HolonAuthorityContractError ? error.path : `$.mutations.${mutation.id}`, error instanceof Error ? error.message : String(error), mutation);
|
|
188
|
+
after = current;
|
|
189
|
+
}
|
|
190
|
+
const replacement = { id: mutation.id, entityId: mutation.entityId, before: current, after };
|
|
191
|
+
rebased.push(replacement);
|
|
192
|
+
if (!same(current, after))
|
|
193
|
+
appliedOperations.push(mutation.operation.type ? replayedOperation : replacement);
|
|
194
|
+
if (after)
|
|
195
|
+
entities.set(mutation.entityId, after);
|
|
196
|
+
else
|
|
197
|
+
entities.delete(mutation.entityId);
|
|
198
|
+
}
|
|
199
|
+
if (causes.length !== priorCount)
|
|
200
|
+
continue;
|
|
201
|
+
for (const entity of remote.entities)
|
|
202
|
+
if (!entities.has(entity.id))
|
|
203
|
+
cause(causes, changeSet.id, "IDENTITY_DELETE", `$.entities.${entity.id}`, "Durable identity must be deactivated, not deleted");
|
|
204
|
+
if (causes.length !== priorCount)
|
|
205
|
+
continue;
|
|
206
|
+
const trial = { ...candidate, entities: [...entities.values()] };
|
|
207
|
+
for (const diagnostic of validateDesiredHolarchy(organizationStateToFacts(trial), trial.effectiveDate)) {
|
|
208
|
+
const mutation = evidence.find(m => diagnostic.path === `$.entities.${m.entityId}` || diagnostic.path.startsWith(`$.entities.${m.entityId}.`));
|
|
209
|
+
cause(causes, changeSet.id, diagnostic.code, diagnostic.path, diagnostic.message, mutation, diagnostic.detail);
|
|
210
|
+
}
|
|
211
|
+
if (causes.length !== priorCount)
|
|
212
|
+
continue;
|
|
213
|
+
try {
|
|
214
|
+
const next = applyOrganizationChangeSet(candidate, { ...changeSet, expectedRevision: remote.revision, mutations: rebased });
|
|
215
|
+
if (runtime.validateCandidate) {
|
|
216
|
+
let validation;
|
|
217
|
+
try {
|
|
218
|
+
validation = await runtime.validateCandidate({ remote, candidate: next, changeSet: diffOrganizationStates(remote, next, `${changeSet.id}-replay-preview`) });
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
return result("incomplete", null, previousRejected, [{ code: "CANDIDATE_VALIDATION_FAILURE", message: error instanceof Error ? error.message : String(error) }]);
|
|
222
|
+
}
|
|
223
|
+
if (!Array.isArray(validation) || validation.some(d => !record(d) || typeof d.code !== "string" || typeof d.path !== "string" || typeof d.message !== "string"))
|
|
224
|
+
return result("incomplete", null, previousRejected, [{ code: "CANDIDATE_VALIDATION_PROTOCOL", message: "Candidate validator returned malformed diagnostics" }]);
|
|
225
|
+
for (const diagnostic of validation)
|
|
226
|
+
cause(causes, changeSet.id, diagnostic.code, diagnostic.path, diagnostic.message, evidence.find(m => diagnostic.path === `$.entities.${m.entityId}` || diagnostic.path.startsWith(`$.entities.${m.entityId}.`)), diagnostic.detail);
|
|
227
|
+
if (validation.length)
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
// Rejected groups are still tested to withdraw stale diagnoses, but never enter this epoch's candidate.
|
|
231
|
+
if (!previousRejected.has(changeSet.id)) {
|
|
232
|
+
candidate = next;
|
|
233
|
+
replayedOperations.push(...appliedOperations.map(mutation => ({ changeSetId: changeSet.id, mutation })));
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
const path = error instanceof HolonAuthorityContractError ? error.path : "$.changeSet";
|
|
238
|
+
cause(causes, changeSet.id, "INVALID_CHANGESET", path, error instanceof Error ? error.message : String(error), evidence.find(m => path === `$.mutations.${m.id}` || path.startsWith(`$.mutations.${m.id}.`)) ?? evidence.find(m => path === `$.entities.${m.entityId}` || path.startsWith(`$.entities.${m.entityId}.`)));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
lastCauses = causes;
|
|
242
|
+
const inferenceInput = { epoch: `holarchy-${basisDigest}-${epoch}`, program: program(), facts: [
|
|
243
|
+
...causes.map(c => c.code === "GOVERNANCE_ROLE_ASSIGNMENT_LIMIT" && c.detail
|
|
244
|
+
? { relation: "governance_limit", values: [c.changeSetId, c.id, String(c.detail.policyVersionId), String(c.detail.roleId), Number(c.detail.actualActive), Number(c.detail.maxActive)], source: `basis:${basisDigest}:cause:${c.id}` }
|
|
245
|
+
: { relation: "seed", values: [c.changeSetId, c.id], source: `basis:${basisDigest}:cause:${c.id}` }),
|
|
246
|
+
...[...dependencies].flatMap(([group, parents]) => [...parents].sort().map(parent => ({ relation: "depends", values: [group, parent], source: `basis:${basisDigest}:dependency:${group}:${parent}` }))),
|
|
247
|
+
] };
|
|
248
|
+
try {
|
|
249
|
+
const received = await runtime.infer(inferenceInput);
|
|
250
|
+
if (!record(received) || !["complete", "incomplete", "invalid"].includes(String(received.status)) || !Array.isArray(received.facts) || !Array.isArray(received.supports) || !Array.isArray(received.diagnostics)
|
|
251
|
+
|| received.facts.some(f => !record(f) || typeof f.id !== "string" || typeof f.relation !== "string" || !Array.isArray(f.values))
|
|
252
|
+
|| received.diagnostics.some(d => !record(d) || typeof d.code !== "string" || typeof d.message !== "string"))
|
|
253
|
+
return result("incomplete", null, previousRejected, [{ code: "INFERENCE_PROTOCOL", message: "Inference returned malformed result data" }]);
|
|
254
|
+
lastInference = freeze(structuredClone(received));
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
return result("incomplete", null, previousRejected, [{ code: "INFERENCE_FAILURE", message: error instanceof Error ? error.message : String(error) }]);
|
|
258
|
+
}
|
|
259
|
+
if (lastInference.status !== "complete")
|
|
260
|
+
return result("incomplete", null, previousRejected, [{ code: "INFERENCE_INCOMPLETE", message: lastInference.diagnostics.map(d => `${d.code}: ${d.message}`).join("; ") }]);
|
|
261
|
+
const invalidFacts = lastInference.facts.filter(f => f.relation === "invalid");
|
|
262
|
+
const knownCauses = new Set(causes.map(c => c.id));
|
|
263
|
+
if (lastInference.epoch !== inferenceInput.epoch || !lastInference.inputFingerprint || !lastInference.programFingerprint || invalidFacts.some(f => f.values.length !== 2 || !ids.has(String(f.values[0])) || !knownCauses.has(String(f.values[1]))) || causes.some(c => !invalidFacts.some(f => f.values[0] === c.changeSetId && f.values[1] === c.id)))
|
|
264
|
+
return result("incomplete", null, previousRejected, [{ code: "INFERENCE_PROTOCOL", message: "Inference returned inconsistent epoch or root facts" }]);
|
|
265
|
+
const rejected = new Set(invalidFacts.map(f => String(f.values[0])));
|
|
266
|
+
if ([...dependencies].some(([group, parents]) => !rejected.has(group) && [...parents].some(parent => rejected.has(parent))))
|
|
267
|
+
return result("incomplete", null, rejected, [{ code: "INFERENCE_PROTOCOL", message: "Inference omitted a required dependency rejection" }]);
|
|
268
|
+
epochs.push({ epoch, rejectedChangeSetIds: [...rejected].sort(), causes, inference: lastInference });
|
|
269
|
+
const selection = JSON.stringify([...rejected].sort());
|
|
270
|
+
if (selection === JSON.stringify([...previousRejected].sort()))
|
|
271
|
+
return result("ready", candidate, rejected, []);
|
|
272
|
+
if (selections.has(selection))
|
|
273
|
+
return result("incomplete", null, rejected, [{ code: "REPLAY_OSCILLATION", message: "Candidate selection repeated without a fixed point" }]);
|
|
274
|
+
selections.add(selection);
|
|
275
|
+
previousRejected = rejected;
|
|
276
|
+
}
|
|
277
|
+
return result("incomplete", null, previousRejected, [{ code: "REPLAY_BUDGET", message: "Epoch budget exhausted before candidate selection converged" }]);
|
|
278
|
+
}
|
|
279
|
+
/** Explicit adoption of all accepted whole groups. Reconcile again to select a different subset. */
|
|
280
|
+
export function createReconciledChangeSet(result, id) {
|
|
281
|
+
if (result.status !== "ready" || result.candidate === null || result.inference?.status !== "complete")
|
|
282
|
+
invalid("$.reconciliation", "Only a complete converged candidate can become a successor");
|
|
283
|
+
if (result.acceptedChangeSetIds.includes(id) || result.rejectedChangeSetIds.includes(id))
|
|
284
|
+
invalid("$.id", "Successor requires a new explicit ChangeSet identity");
|
|
285
|
+
const changeSet = parseOrganizationChangeSet({ schema: ORGANIZATION_CHANGESET_SCHEMA, id, authorityId: result.remote.authorityId, expectedRevision: result.remote.revision, effectiveDate: result.remote.effectiveDate, mutations: result.replayedOperations.map(({ mutation }, index) => ({ ...mutation, id: `${id}-${index + 1}` })) });
|
|
286
|
+
if (!same(applyOrganizationChangeSet(result.remote, changeSet), result.candidate))
|
|
287
|
+
invalid("$.reconciliation", "Replayed operations do not reproduce candidate");
|
|
288
|
+
return freeze({ changeSet, provenance: { operations: result.replayedOperations.map(({ changeSetId, mutation }, index) => ({ changeSetId, mutationId: mutation.id, successorMutationId: `${id}-${index + 1}` })), selectedChangeSetIds: [...result.acceptedChangeSetIds], baseRevision: result.base.revision, remoteRevision: result.remote.revision, basisDigest: result.basisDigest, programFingerprint: result.inference.programFingerprint, inputFingerprint: result.inference.inputFingerprint } });
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=organization-reconciliation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-reconciliation.js","sourceRoot":"","sources":["../src/organization-reconciliation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { HolonAuthoritySnapshot, HolonGovernanceRuntime, OrganizationAuthorizationPort, OrganizationAuthoringRuntime, OrganizationChangeSet, OrganizationState, OrganizationWriteScope, OrganizationMutationEvidence } from "holarchy-core-contract";
|
|
2
|
+
/** Explicit local-owner composition. A transport must bind its own trusted authorization port. */
|
|
3
|
+
export declare function createTrustedOrganizationRuntime(runtime: HolonGovernanceRuntime): OrganizationAuthoringRuntime;
|
|
4
|
+
export declare function resolveOrganizationWriteScope(authorization: OrganizationAuthorizationPort | undefined, authority: HolonAuthoritySnapshot, actorRef: string, effectiveDate: string): Promise<OrganizationWriteScope>;
|
|
5
|
+
export declare function assertOrganizationWriteScope(scope: OrganizationWriteScope, before: OrganizationState, after: OrganizationState, group: OrganizationChangeSet, evidence?: readonly OrganizationMutationEvidence[]): void;
|
|
6
|
+
/** Partial read view: missing relations remain unknown, never synthesized as inactive facts. */
|
|
7
|
+
export declare function projectOrganizationScope(input: OrganizationState, rootHolonIds: readonly string[]): OrganizationState;
|
|
8
|
+
//# sourceMappingURL=organization-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-scope.d.ts","sourceRoot":"","sources":["../src/organization-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,qBAAqB,EAAsB,iBAAiB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAM9Q,kGAAkG;AAClG,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,sBAAsB,GAAG,4BAA4B,CAE9G;AAED,wBAAsB,6BAA6B,CAAC,aAAa,EAAE,6BAA6B,GAAG,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CASzN;AAoCD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,CAAC,EAAE,SAAS,4BAA4B,EAAE,GAAG,IAAI,CAcvN;AAED,gGAAgG;AAChG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,iBAAiB,CAQrH"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { dataArray, dataRecord, HolonAuthorityContractError } from "./authority-store.js";
|
|
2
|
+
import { parseOrganizationState, requireCompleteOrganizationState } from "./organization-state.js";
|
|
3
|
+
const fail = (path, message) => { throw new HolonAuthorityContractError("organization-scope-denied", path, message); };
|
|
4
|
+
/** Explicit local-owner composition. A transport must bind its own trusted authorization port. */
|
|
5
|
+
export function createTrustedOrganizationRuntime(runtime) {
|
|
6
|
+
return { ...runtime, authorization: { resolveScope: () => ({ kind: "all" }) } };
|
|
7
|
+
}
|
|
8
|
+
export async function resolveOrganizationWriteScope(authorization, authority, actorRef, effectiveDate) {
|
|
9
|
+
if (!authorization || typeof authorization.resolveScope !== "function")
|
|
10
|
+
fail("$.runtime.authorization", "An explicit trusted authorization port is required");
|
|
11
|
+
const value = dataRecord(await authorization.resolveScope({ authority, actorRef, effectiveDate }), "$.authorization.scope");
|
|
12
|
+
if (value.kind === "all" && Object.keys(value).length === 1)
|
|
13
|
+
return { kind: "all" };
|
|
14
|
+
if (value.kind === "roots" && Object.keys(value).length === 2 && Object.hasOwn(value, "rootHolonIds")) {
|
|
15
|
+
const roots = dataArray(value.rootHolonIds, "$.authorization.rootHolonIds");
|
|
16
|
+
if (roots.length && roots.every(id => typeof id === "string" && (authority.tables.Holon ?? []).some(h => h.id === id)) && new Set(roots).size === roots.length)
|
|
17
|
+
return { kind: "roots", rootHolonIds: roots };
|
|
18
|
+
}
|
|
19
|
+
return fail("$.authorization.scope", "Host did not grant a valid organization write scope");
|
|
20
|
+
}
|
|
21
|
+
function holonsInRoots(state, rootIds) {
|
|
22
|
+
const allowed = new Set(rootIds);
|
|
23
|
+
const holons = state.entities.filter((entity) => entity.kind === "Holon");
|
|
24
|
+
let changed = true;
|
|
25
|
+
while (changed) {
|
|
26
|
+
changed = false;
|
|
27
|
+
for (const entity of state.entities)
|
|
28
|
+
if (entity.kind === "Membership" && entity.effectiveState && entity.mode === "primary" && allowed.has(entity.parentHolonId)) {
|
|
29
|
+
const child = holons.find(h => h.subjectId === entity.subjectId && h.effectiveState);
|
|
30
|
+
if (child && !allowed.has(child.id)) {
|
|
31
|
+
allowed.add(child.id);
|
|
32
|
+
changed = true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return allowed;
|
|
37
|
+
}
|
|
38
|
+
function owns(entity, states, allowed) {
|
|
39
|
+
const rows = states.flatMap(state => state.entities);
|
|
40
|
+
switch (entity.kind) {
|
|
41
|
+
case "Holon": return allowed.has(entity.id);
|
|
42
|
+
case "Role":
|
|
43
|
+
case "GovernancePolicy": return allowed.has(entity.holonId);
|
|
44
|
+
case "Membership": return allowed.has(entity.parentHolonId);
|
|
45
|
+
case "Member": {
|
|
46
|
+
const parents = rows.filter((row) => row.kind === "Membership" && row.effectiveState && row.subjectId === entity.subjectId);
|
|
47
|
+
// Editing global member data requires all of its selected affiliations;
|
|
48
|
+
// an unassigned member requires the host's explicit full-authority grant.
|
|
49
|
+
return parents.length > 0 && parents.every(parent => allowed.has(parent.parentHolonId));
|
|
50
|
+
}
|
|
51
|
+
case "RoleAssignment": {
|
|
52
|
+
const memberships = rows.filter((row) => row.kind === "Membership" && row.id === entity.membershipId);
|
|
53
|
+
const roles = rows.filter((row) => row.kind === "Role" && row.id === entity.roleId);
|
|
54
|
+
return memberships.length > 0 && roles.length > 0 && memberships.every(m => allowed.has(m.parentHolonId)) && roles.every(r => allowed.has(r.holonId));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export function assertOrganizationWriteScope(scope, before, after, group, evidence) {
|
|
59
|
+
if (scope.kind === "all")
|
|
60
|
+
return;
|
|
61
|
+
if (scope.kind !== "roots")
|
|
62
|
+
fail("$.authorization.scope", "Organization write denied");
|
|
63
|
+
const roots = scope.kind === "roots" ? scope.rootHolonIds : [];
|
|
64
|
+
const priorRoots = holonsInRoots(before, roots), nextRoots = holonsInRoots(after, roots);
|
|
65
|
+
for (const mutation of evidence ?? group.mutations.map(m => m.type ? { id: m.id, entityId: m.entityId, before: before.entities.find(e => e.id === m.entityId) ?? null, after: after.entities.find(e => e.id === m.entityId) ?? null } : m)) {
|
|
66
|
+
if (mutation.before && !owns(mutation.before, [before, after], priorRoots))
|
|
67
|
+
fail(`$.mutations.${mutation.id}.before`, `Entity ${mutation.entityId} is outside the host's authorized roots`);
|
|
68
|
+
if (mutation.after && !owns(mutation.after, [before, after], mutation.after.effectiveState ? nextRoots : priorRoots))
|
|
69
|
+
fail(`$.mutations.${mutation.id}.after`, `Entity ${mutation.entityId} is outside the host's authorized roots`);
|
|
70
|
+
if (mutation.after?.kind === "Membership" && mutation.after.effectiveState) {
|
|
71
|
+
const subjectId = mutation.after.subjectId;
|
|
72
|
+
const existingSubject = before.entities.find(entity => (entity.kind === "Holon" || entity.kind === "Member") && entity.subjectId === subjectId);
|
|
73
|
+
if (existingSubject && !owns(existingSubject, [before], priorRoots))
|
|
74
|
+
fail(`$.mutations.${mutation.id}.after.subjectId`, "A new membership cannot claim an existing subject outside the prior authorized scope");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** Partial read view: missing relations remain unknown, never synthesized as inactive facts. */
|
|
79
|
+
export function projectOrganizationScope(input, rootHolonIds) {
|
|
80
|
+
const state = requireCompleteOrganizationState(input);
|
|
81
|
+
if (!rootHolonIds.length || rootHolonIds.some(id => !state.entities.some(e => e.kind === "Holon" && e.id === id)))
|
|
82
|
+
fail("$.rootHolonIds", "Expected existing root Holons");
|
|
83
|
+
const allowed = holonsInRoots(state, rootHolonIds);
|
|
84
|
+
const entities = state.entities.filter(entity => entity.kind === "Member"
|
|
85
|
+
? state.entities.some(e => e.kind === "Membership" && e.subjectId === entity.subjectId && allowed.has(e.parentHolonId))
|
|
86
|
+
: owns(entity, [state], allowed));
|
|
87
|
+
return parseOrganizationState({ ...state, coverage: "partial", entities });
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=organization-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-scope.js","sourceRoot":"","sources":["../src/organization-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-snapshot-timeline.d.ts","sourceRoot":"","sources":["../src/organization-snapshot-timeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uBAAuB,EAE5B,KAAK,oCAAoC,EAE1C,MAAM,wBAAwB,CAAC;AAIhC,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;CACnC;AAED,qBAAa,iCAAkC,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;
|
|
1
|
+
{"version":3,"file":"organization-snapshot-timeline.d.ts","sourceRoot":"","sources":["../src/organization-snapshot-timeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uBAAuB,EAE5B,KAAK,oCAAoC,EAE1C,MAAM,wBAAwB,CAAC;AAIhC,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;CACnC;AAED,qBAAa,iCAAkC,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AA2QD,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,mCAAmC,GAC3C,oCAAoC,CAoBtC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HOLON_AUTHORITY_API_VERSION, normalizeHolonEffectiveSnapshotTree, } from "holarchy-core-contract";
|
|
2
|
-
import { normalizeHolonAuthorityTables } from "./authority-store";
|
|
2
|
+
import { normalizeHolonAuthorityTables } from "./authority-store.js";
|
|
3
3
|
export class OrganizationSnapshotTimelineError extends Error {
|
|
4
4
|
path;
|
|
5
5
|
constructor(path, message) {
|
|
@@ -142,32 +142,8 @@ function stableRecord(kind, row) {
|
|
|
142
142
|
return { kind, ...row };
|
|
143
143
|
}
|
|
144
144
|
function selectedVersionRecord(kind, row) {
|
|
145
|
-
if (kind === "RoleVersion") {
|
|
146
|
-
const { domainsJson, accountabilitiesJson, policiesJson, capabilityRequirementsJson, ...rest } = row;
|
|
147
|
-
return {
|
|
148
|
-
kind,
|
|
149
|
-
...rest,
|
|
150
|
-
domains: parseJson(domainsJson, "$.RoleVersion.domainsJson"),
|
|
151
|
-
accountabilities: parseJson(accountabilitiesJson, "$.RoleVersion.accountabilitiesJson"),
|
|
152
|
-
policies: parseJson(policiesJson, "$.RoleVersion.policiesJson"),
|
|
153
|
-
capabilityRequirements: parseJson(capabilityRequirementsJson, "$.RoleVersion.capabilityRequirementsJson"),
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
if (kind === "GovernancePolicyVersion") {
|
|
157
|
-
const { rulesJson, ...rest } = row;
|
|
158
|
-
return { kind, ...rest, rules: parseJson(rulesJson, "$.GovernancePolicyVersion.rulesJson") };
|
|
159
|
-
}
|
|
160
145
|
return { kind, ...row };
|
|
161
146
|
}
|
|
162
|
-
function parseJson(value, path) {
|
|
163
|
-
const source = exactString(value, path);
|
|
164
|
-
try {
|
|
165
|
-
return JSON.parse(source);
|
|
166
|
-
}
|
|
167
|
-
catch {
|
|
168
|
-
return fail(path, "Expected canonical JSON data");
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
147
|
function projectRecords(authority, input) {
|
|
172
148
|
const day = input.effectiveAt.slice(0, 10);
|
|
173
149
|
const tables = authority.tables;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-snapshot-timeline.js","sourceRoot":"","sources":["../src/organization-snapshot-timeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"organization-snapshot-timeline.js","sourceRoot":"","sources":["../src/organization-snapshot-timeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type OrganizationMutationRuntime } from "./organization-mutations.js";
|
|
2
|
+
import { type OrganizationEntity, type OrganizationState, type OrganizationChangeSet, type OrganizationCommandInput, type OrganizationMutationEvidence } from "holarchy-core-contract";
|
|
3
|
+
import { type DesiredHolarchyFacts } from "./validator.js";
|
|
4
|
+
export { parseOrganizationEntity, canonicalOrganizationValue, parseOrganizationEntityFields } from "./organization-entity.js";
|
|
5
|
+
/** Compatibility projection for the existing temporal validator/planner; no persistence. */
|
|
6
|
+
export declare function organizationStateToFacts(state: OrganizationState): DesiredHolarchyFacts;
|
|
7
|
+
export declare function parseOrganizationState(value: unknown): OrganizationState;
|
|
8
|
+
export declare function parseOrganizationChangeSet(value: unknown): OrganizationChangeSet;
|
|
9
|
+
export declare function assertOrganizationEntityIdentity(before: OrganizationEntity, after: OrganizationEntity, path?: string): void;
|
|
10
|
+
export declare function applyOrganizationChangeSet(input: OrganizationState, value: OrganizationChangeSet): OrganizationState;
|
|
11
|
+
/** Ordered operation evidence; intermediate relation gaps are validated only at the ChangeSet boundary. */
|
|
12
|
+
export declare function materializeOrganizationChangeSet(base: OrganizationState, value: OrganizationChangeSet): readonly OrganizationMutationEvidence[];
|
|
13
|
+
export declare function diffOrganizationStates(input: OrganizationState, desired: OrganizationState, changeSetId: string): OrganizationChangeSet;
|
|
14
|
+
export declare function projectOrganizationStateFromFacts(facts: DesiredHolarchyFacts, basis: Omit<OrganizationState, "entities">): OrganizationState;
|
|
15
|
+
export declare function planOrganizationCommands(input: OrganizationState, request: OrganizationCommandInput): OrganizationChangeSet;
|
|
16
|
+
export declare function requireCompleteOrganizationState(input: OrganizationState): OrganizationState;
|
|
17
|
+
/** Sequential depa-processor dispatch over one private candidate; no durable writes. */
|
|
18
|
+
export declare function dispatchOrganizationChangeSet(runtime: OrganizationMutationRuntime, input: {
|
|
19
|
+
base: OrganizationState;
|
|
20
|
+
changeSet: OrganizationChangeSet;
|
|
21
|
+
}, config: null): Promise<{
|
|
22
|
+
state: OrganizationState;
|
|
23
|
+
evidence: readonly OrganizationMutationEvidence[];
|
|
24
|
+
}>;
|
|
25
|
+
//# sourceMappingURL=organization-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-state.d.ts","sourceRoot":"","sources":["../src/organization-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2L,KAAK,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AACxQ,OAAO,EAAkF,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAgH,KAAK,qBAAqB,EAAE,KAAK,wBAAwB,EAAmB,KAAK,4BAA4B,EAA+D,MAAM,wBAAwB,CAAC;AAInc,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAsB9H,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,oBAAoB,CAkCvF;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CA2BxE;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAgBhF;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,SAA4B,GAAG,IAAI,CAK9I;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,GAAG,iBAAiB,CAapH;AACD,2GAA2G;AAC3G,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,GAAG,SAAS,4BAA4B,EAAE,CAgB/I;AAsBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAgBvI;AACD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,iBAAiB,CAqC5I;AACD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,wBAAwB,GAAG,qBAAqB,CAkC3H;AACD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,CAK5F;AAmCD,wFAAwF;AACxF,wBAAsB,6BAA6B,CAAC,OAAO,EAAE,2BAA2B,EAAE,KAAK,EAAE;IAC7F,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,qBAAqB,CAAC;CACpC,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,SAAS,4BAA4B,EAAE,CAAC;CACrD,CAAC,CAkBD"}
|