holarchy-core-logic 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/authoring.d.ts +1 -1
  2. package/dist/authoring.d.ts.map +1 -1
  3. package/dist/authoring.js +8 -9
  4. package/dist/authoring.js.map +1 -1
  5. package/dist/authority-store.d.ts +7 -2
  6. package/dist/authority-store.d.ts.map +1 -1
  7. package/dist/authority-store.js +21 -8
  8. package/dist/authority-store.js.map +1 -1
  9. package/dist/effective.d.ts +1 -3
  10. package/dist/effective.d.ts.map +1 -1
  11. package/dist/effective.js +0 -2
  12. package/dist/effective.js.map +1 -1
  13. package/dist/governance-policy.d.ts +5 -0
  14. package/dist/governance-policy.d.ts.map +1 -0
  15. package/dist/governance-policy.js +57 -0
  16. package/dist/governance-policy.js.map +1 -0
  17. package/dist/index.d.ts +15 -8
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +12 -6
  20. package/dist/index.js.map +1 -1
  21. package/dist/organization-authority.d.ts +10 -0
  22. package/dist/organization-authority.d.ts.map +1 -0
  23. package/dist/organization-authority.js +229 -0
  24. package/dist/organization-authority.js.map +1 -0
  25. package/dist/organization-entity.d.ts +6 -0
  26. package/dist/organization-entity.d.ts.map +1 -0
  27. package/dist/organization-entity.js +95 -0
  28. package/dist/organization-entity.js.map +1 -0
  29. package/dist/organization-field-edits.d.ts +4 -0
  30. package/dist/organization-field-edits.d.ts.map +1 -0
  31. package/dist/organization-field-edits.js +89 -0
  32. package/dist/organization-field-edits.js.map +1 -0
  33. package/dist/organization-mutations.d.ts +43 -0
  34. package/dist/organization-mutations.d.ts.map +1 -0
  35. package/dist/organization-mutations.js +295 -0
  36. package/dist/organization-mutations.js.map +1 -0
  37. package/dist/organization-reconciliation.d.ts +86 -0
  38. package/dist/organization-reconciliation.d.ts.map +1 -0
  39. package/dist/organization-reconciliation.js +290 -0
  40. package/dist/organization-reconciliation.js.map +1 -0
  41. package/dist/organization-scope.d.ts +8 -0
  42. package/dist/organization-scope.d.ts.map +1 -0
  43. package/dist/organization-scope.js +89 -0
  44. package/dist/organization-scope.js.map +1 -0
  45. package/dist/organization-snapshot-timeline.d.ts.map +1 -1
  46. package/dist/organization-snapshot-timeline.js +1 -25
  47. package/dist/organization-snapshot-timeline.js.map +1 -1
  48. package/dist/organization-state.d.ts +25 -0
  49. package/dist/organization-state.d.ts.map +1 -0
  50. package/dist/organization-state.js +314 -0
  51. package/dist/organization-state.js.map +1 -0
  52. package/dist/validator.d.ts +6 -5
  53. package/dist/validator.d.ts.map +1 -1
  54. package/dist/validator.js +3 -1
  55. package/dist/validator.js.map +1 -1
  56. package/package.json +30 -12
@@ -0,0 +1,89 @@
1
+ import { dataRecord, dataArray, json, HolonAuthorityContractError } from './authority-store.js';
2
+ import { parseOrganizationEntity, canonicalOrganizationValue } from './organization-entity.js';
3
+ const fail = (path, message) => { throw new HolonAuthorityContractError('invalid-organization', path, message); };
4
+ const same = (a, b) => canonicalOrganizationValue(a) === canonicalOrganizationValue(b);
5
+ const exact = (v, keys, path) => {
6
+ const r = { ...dataRecord(v, path) };
7
+ for (const k of keys)
8
+ if (!Object.hasOwn(r, k))
9
+ fail(`${path}.${k}`, 'Missing field');
10
+ for (const k of Object.keys(r))
11
+ if (!keys.includes(k))
12
+ fail(`${path}.${k}`, 'Unknown field');
13
+ return r;
14
+ };
15
+ const check = (actual, expected, path) => {
16
+ if (!same(actual, expected))
17
+ fail(path, 'Mutation precondition failed');
18
+ };
19
+ export function parseEdit(value, path) {
20
+ const raw = dataRecord(value, path), type = raw.type;
21
+ const shapes = { AddField: ['value'], RemoveField: ['expected'], SetField: ['expected', 'value'], ListInsert: ['expected', 'index', 'value'], ListRemove: ['expected', 'index'], ListMove: ['expected', 'fromIndex', 'toIndex'] };
22
+ if (typeof type !== 'string' || !Object.hasOwn(shapes, type))
23
+ fail(path, 'Unknown field operation');
24
+ const e = exact(raw, ['type', 'path', ...shapes[type]], path);
25
+ const parts = dataArray(e.path, `${path}.path`);
26
+ if (!parts.length || parts.some(p => typeof p !== 'string' || !p.length || ['__proto__', 'constructor', 'prototype'].includes(p)))
27
+ fail(path, 'Expected safe nonempty field path');
28
+ if (Object.hasOwn(e, 'expected'))
29
+ json(e.expected, `${path}.expected`);
30
+ if (Object.hasOwn(e, 'value'))
31
+ json(e.value, `${path}.value`);
32
+ if (String(type).startsWith('List') && !Array.isArray(e.expected))
33
+ fail(path, 'List operation requires expected list');
34
+ for (const key of ['index', 'fromIndex', 'toIndex'])
35
+ if (Object.hasOwn(e, key) && (!Number.isSafeInteger(e[key]) || Number(e[key]) < 0))
36
+ fail(path, 'Expected nonnegative index');
37
+ return structuredClone(e);
38
+ }
39
+ export function patch(entity, edits, path, validate = true) {
40
+ const result = structuredClone(entity);
41
+ for (const edit of edits) {
42
+ let owner = result;
43
+ for (const key of edit.path.slice(0, -1)) {
44
+ const child = owner[key];
45
+ if (!Object.hasOwn(owner, key) || child === null || typeof child !== 'object' || Array.isArray(child))
46
+ fail(path, 'Field path is absent or not an object');
47
+ owner = child;
48
+ }
49
+ const key = edit.path.at(-1);
50
+ if (edit.type === 'AddField') {
51
+ if (Object.hasOwn(owner, key))
52
+ fail(path, 'Mutation precondition failed: field already exists');
53
+ owner[key] = structuredClone(edit.value);
54
+ continue;
55
+ }
56
+ if (!Object.hasOwn(owner, key))
57
+ fail(path, 'Field is absent');
58
+ check(owner[key], edit.expected, path);
59
+ if (edit.type === 'RemoveField') {
60
+ delete owner[key];
61
+ continue;
62
+ }
63
+ if (edit.type === 'SetField') {
64
+ owner[key] = structuredClone(edit.value);
65
+ continue;
66
+ }
67
+ if (!Array.isArray(owner[key]))
68
+ fail(path, 'Expected list');
69
+ const list = [...owner[key]];
70
+ if (edit.type === 'ListInsert') {
71
+ if (edit.index > list.length)
72
+ fail(path, 'Index outside list');
73
+ list.splice(edit.index, 0, structuredClone(edit.value));
74
+ }
75
+ if (edit.type === 'ListRemove') {
76
+ if (edit.index >= list.length)
77
+ fail(path, 'Index outside list');
78
+ list.splice(edit.index, 1);
79
+ }
80
+ if (edit.type === 'ListMove') {
81
+ if (edit.fromIndex >= list.length || edit.toIndex >= list.length)
82
+ fail(path, 'Index outside list');
83
+ list.splice(edit.toIndex, 0, list.splice(edit.fromIndex, 1)[0]);
84
+ }
85
+ owner[key] = list;
86
+ }
87
+ return validate ? parseOrganizationEntity(result, path) : result;
88
+ }
89
+ //# sourceMappingURL=organization-field-edits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-field-edits.js","sourceRoot":"","sources":["../src/organization-field-edits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { OrganizationEntity, OrganizationEntityType, OrganizationMutation, OrganizationMutationEvidence, OrganizationEntityValueMutation, OrganizationLegacyTypedMutation, OrganizationFieldEdit, JsonObject } from 'holarchy-core-contract';
2
+ import { DispatchEngine } from 'depa-processor';
3
+ export declare function organizationEntityValue(entity: OrganizationEntity): JsonObject;
4
+ export declare function isOrganizationEntityValueMutation(m: OrganizationMutation): m is OrganizationEntityValueMutation;
5
+ type ValueMutation = OrganizationEntityValueMutation;
6
+ type LegacyEdits = Extract<OrganizationLegacyTypedMutation, {
7
+ edits: readonly OrganizationFieldEdit[];
8
+ }>;
9
+ type Normalized = ValueMutation | LegacyEdits;
10
+ type RebaseResult = {
11
+ after: OrganizationEntity | null;
12
+ operation: OrganizationMutation | null;
13
+ };
14
+ export interface OrganizationMutationDefinition {
15
+ readonly type: string;
16
+ readonly entityType: OrganizationEntityType;
17
+ readonly action: string;
18
+ readonly fields: readonly string[];
19
+ normalize(raw: Record<string, unknown>): Normalized;
20
+ validate(m: Normalized): void;
21
+ apply(b: OrganizationEntity | null, m: Normalized): OrganizationEntity | null;
22
+ rebase(current: OrganizationEntity | null, evidence: OrganizationMutationEvidence, m: Normalized): RebaseResult;
23
+ invert(evidence: OrganizationMutationEvidence, id: string): OrganizationMutation;
24
+ }
25
+ export declare const organizationMutationDefinitions: readonly OrganizationMutationDefinition[];
26
+ export declare function organizationMutationDescriptor(type: string): OrganizationMutationDefinition;
27
+ export declare function parseOrganizationMutation(value: unknown, path?: string): OrganizationMutation;
28
+ export declare function normalizeOrganizationMutationValues(value: OrganizationMutation): OrganizationMutation;
29
+ export declare function organizationEntityReferences(e: OrganizationEntity | null): readonly string[];
30
+ export declare function materializeOrganizationMutation(before: OrganizationEntity | null, input: OrganizationMutation): OrganizationMutationEvidence;
31
+ export declare function rebaseOrganizationMutation(current: OrganizationEntity | null, evidence: OrganizationMutationEvidence): RebaseResult;
32
+ export declare function invertOrganizationMutation(evidence: OrganizationMutationEvidence, id: string): OrganizationMutation;
33
+ export interface OrganizationMutationRuntime {
34
+ readonly dispatcher: DispatchEngine<OrganizationMutationEvidence>;
35
+ }
36
+ type DispatchInput = {
37
+ readonly before: OrganizationEntity | null;
38
+ readonly mutation: OrganizationMutation;
39
+ };
40
+ export declare function createOrganizationMutationRuntime(): OrganizationMutationRuntime;
41
+ export declare function dispatchOrganizationMutation(runtime: OrganizationMutationRuntime, input: DispatchInput, config: null): Promise<OrganizationMutationEvidence>;
42
+ export {};
43
+ //# sourceMappingURL=organization-mutations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-mutations.d.ts","sourceRoot":"","sources":["../src/organization-mutations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,295 @@
1
+ import { ManifestRegistryComposer, DispatchEngine, DispatchStrategyConfig, createRouteKeyDispatchRequest, runByFuncStyleAdapter, stdMakeNullOuterComputed, stdMakeIdentityInnerRuntime, stdMakeIdentityInnerInput, stdMakeIdentityInnerConfig, stdMakeIdentityOuterOutput } from 'depa-processor';
2
+ import { dataRecord, dataArray, HolonAuthorityContractError } from './authority-store.js';
3
+ import { parseOrganizationEntity, parseOrganizationEntityFields, canonicalOrganizationValue } from './organization-entity.js';
4
+ import { parseEdit, patch } from './organization-field-edits.js';
5
+ const fail = (path, message) => { throw new HolonAuthorityContractError('invalid-organization', path, message); };
6
+ const same = (a, b) => canonicalOrganizationValue(a) === canonicalOrganizationValue(b);
7
+ const own = (v, k) => Object.hasOwn(v, k);
8
+ const record = (v) => v !== null && typeof v === 'object' && !Array.isArray(v);
9
+ const identity = (v, p) => {
10
+ if (typeof v !== 'string' || !/^[A-Za-z_][A-Za-z0-9_.:-]*$/.test(v))
11
+ fail(p, 'Expected identity');
12
+ };
13
+ const check = (a, b, p) => {
14
+ if (!same(a, b))
15
+ fail(p, 'Mutation precondition failed');
16
+ };
17
+ function exact(r, required, optional, p) {
18
+ for (const k of required)
19
+ if (!own(r, k))
20
+ fail(`${p}.${k}`, 'Missing field');
21
+ for (const k of Object.keys(r))
22
+ if (!required.includes(k) && !optional.includes(k))
23
+ fail(`${p}.${k}`, 'Unknown field');
24
+ }
25
+ export function organizationEntityValue(entity) { const { kind, id, ...fields } = entity; return fields; }
26
+ export function isOrganizationEntityValueMutation(m) { return ['beforeValue', 'afterValue', 'beforeAbsent', 'afterAbsent'].some(k => own(m, k)); }
27
+ const namingField = (k) => k === 'Member' ? 'displayName' : 'name';
28
+ function rawEntity(r, key, k) {
29
+ const e = parseOrganizationEntity(r[key]);
30
+ if (e.kind !== k || e.id !== r.entityId)
31
+ fail('$.mutation', 'Mutation resource identity mismatch');
32
+ return organizationEntityValue(e);
33
+ }
34
+ function readAt(v, path) {
35
+ let c = v;
36
+ for (const k of path) {
37
+ if (!record(c) || !own(c, k))
38
+ return undefined;
39
+ c = c[k];
40
+ }
41
+ return c;
42
+ }
43
+ function leaves(v, p = []) { return Object.entries(v).flatMap(([k, x]) => record(x) && Object.keys(x).length ? leaves(x, [...p, k]) : [{ path: [...p, k], value: x }]); }
44
+ function setProjection(v, path, x) {
45
+ let o = v;
46
+ for (const k of path.slice(0, -1)) {
47
+ if (['__proto__', 'constructor', 'prototype'].includes(k))
48
+ fail('$.mutation', 'Unsafe field path');
49
+ if (!own(o, k))
50
+ o[k] = {};
51
+ o = o[k];
52
+ }
53
+ const k = path.at(-1);
54
+ if (['__proto__', 'constructor', 'prototype'].includes(k))
55
+ fail('$.mutation', 'Unsafe field path');
56
+ o[k] = structuredClone(x);
57
+ }
58
+ function projectionEdits(m, context = null) {
59
+ const edits = [];
60
+ const visit = (b, a, p = []) => {
61
+ for (const [k, value] of Object.entries(a)) {
62
+ const path = [...p, k];
63
+ if (record(value) && Object.keys(value).length && (record(b[k]) || record(readAt(context, path))))
64
+ visit(record(b[k]) ? b[k] : {}, value, path);
65
+ else
66
+ edits.push(parseEdit(own(b, k) ? { type: 'SetField', path, expected: b[k], value } : { type: 'AddField', path, value }, '$.mutation.afterValue'));
67
+ }
68
+ };
69
+ visit(m.beforeValue ?? {}, m.afterValue ?? {});
70
+ for (const path of m.removeFields ?? []) {
71
+ const expected = readAt(m.beforeValue, path);
72
+ if (expected === undefined)
73
+ fail('$.mutation.removeFields', 'Removal requires before value');
74
+ if (edits.some(e => same(e.path, path)))
75
+ fail('$.mutation.removeFields', 'Field cannot be set and removed together');
76
+ edits.push(parseEdit({ type: 'RemoveField', path, expected }, '$.mutation.removeFields'));
77
+ }
78
+ return edits;
79
+ }
80
+ function applyProjected(before, m) {
81
+ if (!before)
82
+ fail('$.mutation', 'Mutation precondition failed: missing entity');
83
+ if ('edits' in m)
84
+ return patch(before, m.edits, `$.mutations.${m.id}`);
85
+ for (const g of leaves(m.beforeValue ?? {}))
86
+ check(readAt(before, g.path), g.value, `$.mutations.${m.id}.beforeValue`);
87
+ return patch(before, projectionEdits(m, before), `$.mutations.${m.id}`);
88
+ }
89
+ const actions = {
90
+ Create: { fields: ['value'], slots: ['beforeAbsent', 'afterValue'], fullAfter: true, normalize: (r, k) => ({ beforeAbsent: true, afterValue: rawEntity(r, 'value', k) }), apply: (b, m) => { check(b, null, '$.mutation'); return parseOrganizationEntity({ ...('afterValue' in m ? m.afterValue : {}), kind: m.entityType, id: m.entityId }); }, inverse: 'Delete' },
91
+ Delete: { fields: ['expected'], slots: ['beforeValue', 'afterAbsent'], fullBefore: true, normalize: (r, k) => ({ beforeValue: rawEntity(r, 'expected', k), afterAbsent: true }), apply: (b, m) => { check(b && organizationEntityValue(b), 'beforeValue' in m ? m.beforeValue : undefined, '$.mutation'); return null; }, inverse: 'Create' },
92
+ Replace: { fields: ['expected', 'value'], slots: ['beforeValue', 'afterValue'], fullBefore: true, fullAfter: true, normalize: (r, k) => ({ beforeValue: rawEntity(r, 'expected', k), afterValue: rawEntity(r, 'value', k) }), apply: (b, m) => { check(b && organizationEntityValue(b), 'beforeValue' in m ? m.beforeValue : undefined, '$.mutation'); return parseOrganizationEntity({ ...('afterValue' in m ? m.afterValue : {}), kind: m.entityType, id: m.entityId }); }, inverse: 'Replace' },
93
+ Activate: { fields: ['expected'], slots: ['beforeValue', 'afterValue'], selected: () => ['effectiveState'], normalize: r => ({ beforeValue: { effectiveState: r.expected }, afterValue: { effectiveState: true } }), validate: m => check(m.afterValue?.effectiveState, true, '$.mutation.afterValue.effectiveState'), apply: applyProjected, inverse: 'Deactivate' },
94
+ Deactivate: { fields: ['expected'], slots: ['beforeValue', 'afterValue'], selected: () => ['effectiveState'], normalize: r => ({ beforeValue: { effectiveState: r.expected }, afterValue: { effectiveState: false } }), validate: m => check(m.afterValue?.effectiveState, false, '$.mutation.afterValue.effectiveState'), apply: applyProjected, inverse: 'Activate' },
95
+ Rename: { fields: ['expected', 'name'], slots: ['beforeValue', 'afterValue'], selected: k => [namingField(k)], normalize: (r, k) => ({ beforeValue: { [namingField(k)]: r.expected }, afterValue: { [namingField(k)]: r.name } }), apply: applyProjected, inverse: 'Rename' },
96
+ Reparent: { fields: ['expectedParent', 'parent'], slots: ['beforeValue', 'afterValue'], selected: () => ['parentHolonId'], normalize: r => ({ beforeValue: { parentHolonId: r.expectedParent }, afterValue: { parentHolonId: r.parent } }), apply: applyProjected, inverse: 'Reparent' },
97
+ Patch: { fields: ['edits'], slots: ['beforeValue', 'afterValue'], normalize: r => ({ edits: r.edits }), apply: applyProjected, inverse: 'Replace' },
98
+ };
99
+ /** The field interpreter is shared by apply and rebase; it also computes list targets. */
100
+ function rebaseEdits(current, evidence, m) {
101
+ const edits = 'edits' in m ? m.edits : projectionEdits(m, evidence.before);
102
+ let expected = evidence.before, after = current;
103
+ const remaining = [];
104
+ const writes = new Set(edits.map(e => JSON.stringify(e.path)));
105
+ if (!('edits' in m))
106
+ for (const g of leaves(m.beforeValue ?? {}))
107
+ if (!writes.has(JSON.stringify(g.path)))
108
+ check(readAt(current, g.path), g.value, '$.mutation.beforeValue');
109
+ for (const edit of edits) {
110
+ expected = patch(expected, [edit], `$.mutations.${m.id}`, false);
111
+ const desired = readAt(expected, edit.path), actual = readAt(after, edit.path), owner = readAt(after, edit.path.slice(0, -1));
112
+ if (record(owner) && same(actual, desired))
113
+ continue;
114
+ after = patch(after, [edit], `$.mutations.${m.id}`, false);
115
+ remaining.push(edit);
116
+ }
117
+ const validated = parseOrganizationEntity(after);
118
+ if (!remaining.length)
119
+ return { after: validated, operation: null };
120
+ if ('edits' in m)
121
+ return { after: validated, operation: { ...m, edits: remaining } };
122
+ if (remaining.length === edits.length)
123
+ return { after: validated, operation: m };
124
+ const beforeValue = {}, afterValue = {}, removeFields = [];
125
+ for (const e of remaining) {
126
+ if ('expected' in e)
127
+ setProjection(beforeValue, e.path, e.expected);
128
+ if (e.type === 'RemoveField')
129
+ removeFields.push(e.path);
130
+ else
131
+ setProjection(afterValue, e.path, readAt(validated, e.path));
132
+ }
133
+ for (const g of leaves(m.beforeValue ?? {}))
134
+ if (!writes.has(JSON.stringify(g.path)))
135
+ setProjection(beforeValue, g.path, g.value);
136
+ const { removeFields: _old, ...rest } = m;
137
+ return { after: validated, operation: { ...rest, beforeValue, afterValue, ...(removeFields.length ? { removeFields } : {}) } };
138
+ }
139
+ function makeDefinition(entityType, action) {
140
+ const spec = actions[action], type = `${entityType}${action}`;
141
+ return Object.freeze({ type, entityType, action, fields: spec.fields,
142
+ normalize(raw) { const base = { id: raw.id, type: raw.type, entityType: raw.entityType, entityId: raw.entityId, ...(own(raw, 'commandId') ? { commandId: raw.commandId } : {}) }; return (['beforeValue', 'afterValue', 'beforeAbsent', 'afterAbsent'].some(k => own(raw, k)) ? raw : { ...base, ...spec.normalize(raw, entityType) }); },
143
+ validate(m) {
144
+ if ('edits' in m) {
145
+ exact(m, ['id', 'type', 'entityType', 'entityId', 'edits'], ['commandId'], '$.mutation');
146
+ if (action !== 'Patch')
147
+ fail('$.mutation', 'Only Patch supports Edits');
148
+ dataArray(m.edits, '$.mutation.edits').forEach((e, i) => parseEdit(e, `$.mutation.edits[${i}]`));
149
+ return;
150
+ }
151
+ exact(m, ['id', 'type', 'entityType', 'entityId', ...spec.slots], ['commandId', ...(action === 'Patch' ? ['removeFields'] : [])], '$.mutation');
152
+ for (const slot of ['beforeAbsent', 'afterAbsent'])
153
+ if (own(m, slot) && m[slot] !== true)
154
+ fail(`$.mutation.${slot}`, 'Expected true');
155
+ for (const slot of ['beforeValue', 'afterValue'])
156
+ if (own(m, slot)) {
157
+ const f = parseOrganizationEntityFields(entityType, m[slot], `$.mutation.${slot}`);
158
+ const selected = spec.selected?.(entityType);
159
+ if (selected)
160
+ exact(f, selected, [], `$.mutation.${slot}`);
161
+ if ((slot === 'beforeValue' && spec.fullBefore) || (slot === 'afterValue' && spec.fullAfter))
162
+ parseOrganizationEntity({ ...f, kind: entityType, id: m.entityId });
163
+ }
164
+ if (own(m, 'removeFields')) {
165
+ dataArray(m.removeFields, '$.mutation.removeFields').forEach(p => {
166
+ if (!Array.isArray(p))
167
+ fail('$.mutation.removeFields', 'Expected field paths');
168
+ parseEdit({ type: 'RemoveField', path: p, expected: null }, '$.mutation.removeFields');
169
+ });
170
+ }
171
+ if (action === 'Patch')
172
+ projectionEdits(m);
173
+ spec.validate?.(m);
174
+ },
175
+ apply: spec.apply,
176
+ rebase(current, evidence, m) {
177
+ if (same(current, evidence.after))
178
+ return { after: current, operation: null };
179
+ if (spec.apply === applyProjected && current)
180
+ return rebaseEdits(current, evidence, m);
181
+ return { after: materializeOrganizationMutation(current, m).after, operation: m };
182
+ },
183
+ invert(evidence, id) {
184
+ const before = evidence.after, after = evidence.before;
185
+ const base = { id, type: `${entityType}${spec.inverse}`, entityType, entityId: evidence.entityId };
186
+ if (!before)
187
+ return parseOrganizationMutation({ ...base, beforeAbsent: true, afterValue: organizationEntityValue(after) });
188
+ if (!after)
189
+ return parseOrganizationMutation({ ...base, beforeValue: organizationEntityValue(before), afterAbsent: true });
190
+ const selected = spec.selected?.(entityType);
191
+ const project = (e) => selected ? Object.fromEntries(selected.map(k => [k, e[k]])) : organizationEntityValue(e);
192
+ const inverseType = selected?.[0] === 'effectiveState' ? `${entityType}${after.effectiveState ? 'Activate' : 'Deactivate'}` : base.type;
193
+ return parseOrganizationMutation({ ...base, type: inverseType, beforeValue: project(before), afterValue: project(after) });
194
+ },
195
+ });
196
+ }
197
+ const kinds = ['Holon', 'Member', 'Membership', 'Role', 'RoleAssignment', 'GovernancePolicy'];
198
+ const manifests = kinds.flatMap(k => ['Create', 'Delete', 'Replace', 'Activate', 'Deactivate', 'Patch', ...(['Holon', 'Member', 'Role', 'GovernancePolicy'].includes(k) ? ['Rename'] : []), ...(k === 'Membership' ? ['Reparent'] : [])].map(a => ({ type: 'component_manifest', id: `holon.${k}${a}`, kind: 'component', exportName: `${k}${a}`, build: () => makeDefinition(k, a) })));
199
+ export const organizationMutationDefinitions = Object.freeze(ManifestRegistryComposer.composeDefs(manifests));
200
+ const definitions = Object.freeze(Object.fromEntries(organizationMutationDefinitions.map(d => [d.type, d])));
201
+ export function organizationMutationDescriptor(type) {
202
+ if (!own(definitions, type))
203
+ fail('$.mutation.type', `Unknown mutation category ${type}`);
204
+ return definitions[type];
205
+ }
206
+ export function parseOrganizationMutation(value, path = '$.mutation') {
207
+ const raw = { ...dataRecord(value, path) };
208
+ if (!own(raw, 'type')) {
209
+ exact(raw, ['id', 'entityId', 'before', 'after'], [], path);
210
+ identity(raw.id, path);
211
+ identity(raw.entityId, path);
212
+ const before = raw.before === null ? null : parseOrganizationEntity(raw.before, path), after = raw.after === null ? null : parseOrganizationEntity(raw.after, path);
213
+ if ((!before && !after) || (before && before.id !== raw.entityId) || (after && after.id !== raw.entityId))
214
+ fail(path, 'Mutation identity mismatch');
215
+ return { id: String(raw.id), entityId: String(raw.entityId), before, after };
216
+ }
217
+ if (typeof raw.type !== 'string')
218
+ fail(path, 'Expected mutation type');
219
+ const def = organizationMutationDescriptor(String(raw.type));
220
+ identity(raw.id, path);
221
+ identity(raw.entityId, path);
222
+ if (own(raw, 'commandId'))
223
+ identity(raw.commandId, path);
224
+ if (raw.entityType !== def.entityType)
225
+ fail(path, 'Mutation entityType does not match operation category');
226
+ if (!isOrganizationEntityValueMutation(raw)) {
227
+ exact(raw, ['id', 'type', 'entityType', 'entityId', ...def.fields], ['commandId'], path);
228
+ if (own(raw, 'edits'))
229
+ raw.edits = dataArray(raw.edits, path).map((e, i) => parseEdit(e, `${path}.edits[${i}]`));
230
+ }
231
+ def.validate(def.normalize(raw));
232
+ return structuredClone(raw);
233
+ }
234
+ export function normalizeOrganizationMutationValues(value) { const m = parseOrganizationMutation(value); return m.type ? structuredClone(organizationMutationDescriptor(m.type).normalize(m)) : m; }
235
+ export function organizationEntityReferences(e) {
236
+ if (!e)
237
+ return [];
238
+ const fields = { Membership: ['subjectId', 'parentHolonId'], Role: ['holonId'], GovernancePolicy: ['holonId'], RoleAssignment: ['membershipId', 'roleId'] };
239
+ return (fields[e.kind] ?? []).map(k => `${k === 'subjectId' ? 'subject' : 'entity'}:${e[k]}`);
240
+ }
241
+ export function materializeOrganizationMutation(before, input) {
242
+ const m = parseOrganizationMutation(input), path = `$.mutations.${m.id}`;
243
+ if (before && before.id !== m.entityId)
244
+ fail(path, 'Mutation identity mismatch');
245
+ let after, readPaths = [['*']], writePaths = readPaths;
246
+ if (!m.type) {
247
+ check(before, m.before, path);
248
+ after = m.after;
249
+ }
250
+ else {
251
+ const def = organizationMutationDescriptor(m.type), n = def.normalize(m);
252
+ if (before && before.kind !== m.entityType)
253
+ fail(path, 'Mutation entity type mismatch');
254
+ after = def.apply(before, n);
255
+ if ('edits' in n) {
256
+ readPaths = n.edits.map(e => e.path);
257
+ writePaths = readPaths;
258
+ }
259
+ else if (!n.beforeAbsent && !n.afterAbsent && def.action !== 'Replace') {
260
+ readPaths = leaves(n.beforeValue ?? {}).map(e => e.path);
261
+ writePaths = projectionEdits(n, before).map(e => e.path);
262
+ }
263
+ }
264
+ const entityType = (before ?? after).kind;
265
+ return { id: m.id, entityId: m.entityId, before, after, operation: m, reads: readPaths.map(p => p.join('.')), writes: writePaths.map(p => p.join('.')), fieldAccesses: [...readPaths.map(path => ({ entityType, entityId: m.entityId, path, mode: 'read' })), ...writePaths.map(path => ({ entityType, entityId: m.entityId, path, mode: 'write' }))], references: organizationEntityReferences(after) };
266
+ }
267
+ export function rebaseOrganizationMutation(current, evidence) {
268
+ const m = evidence.operation;
269
+ if (!m.type)
270
+ return { after: materializeOrganizationMutation(current, m).after, operation: m };
271
+ if (current && (current.id !== m.entityId || current.kind !== m.entityType))
272
+ fail('$.mutation', 'Mutation identity mismatch');
273
+ const def = organizationMutationDescriptor(m.type), normalized = def.normalize(m), result = def.rebase(current, evidence, normalized);
274
+ return result.operation && same(result.operation, normalized) ? { ...result, operation: m } : result;
275
+ }
276
+ export function invertOrganizationMutation(evidence, id) {
277
+ if (!evidence.operation.type)
278
+ return parseOrganizationMutation({ id, entityId: evidence.entityId, before: evidence.after, after: evidence.before });
279
+ return organizationMutationDescriptor(evidence.operation.type).invert(evidence, id);
280
+ }
281
+ export function createOrganizationMutationRuntime() {
282
+ const handler = (input) => { const i = input; return materializeOrganizationMutation(i.before, i.mutation); };
283
+ const dispatcher = new DispatchEngine();
284
+ dispatcher.registerStrategy(DispatchStrategyConfig.forRouteKeyStrategy({ handlerMap: new Map([...organizationMutationDefinitions.map(d => [d.type, handler]), ['legacy', handler]]) }));
285
+ return Object.freeze({ dispatcher });
286
+ }
287
+ export async function dispatchOrganizationMutation(runtime, input, config) {
288
+ return runByFuncStyleAdapter(runtime, input, config, stdMakeNullOuterComputed, stdMakeIdentityInnerRuntime, stdMakeIdentityInnerInput, stdMakeIdentityInnerConfig, async (rt, i) => {
289
+ const r = await rt.dispatcher.dispatch(createRouteKeyDispatchRequest(i.mutation.type ?? 'legacy', i, false));
290
+ if (!r.isHandled())
291
+ fail('$.mutation.type', 'Unknown mutation dispatch');
292
+ return r.getResult();
293
+ }, stdMakeIdentityOuterOutput);
294
+ }
295
+ //# sourceMappingURL=organization-mutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-mutations.js","sourceRoot":"","sources":["../src/organization-mutations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import type { InferenceInput, InferenceResult } from "depa-inference-contract";
2
+ import type { HolonDiagnostic, JsonObject, OrganizationChangeSet, OrganizationMutation, OrganizationState } from "holarchy-core-contract";
3
+ export interface OrganizationReconciliationRuntime {
4
+ infer(input: InferenceInput): Promise<InferenceResult>;
5
+ /** Optional authority-backed history/scope gate. Without it this is a projection-only preview. */
6
+ validateCandidate?(input: {
7
+ readonly remote: OrganizationState;
8
+ readonly candidate: OrganizationState;
9
+ readonly changeSet: OrganizationChangeSet;
10
+ }): Promise<readonly HolonDiagnostic[]>;
11
+ }
12
+ export interface OrganizationLocalProposal {
13
+ readonly changeSet: OrganizationChangeSet;
14
+ readonly dependsOn: readonly string[];
15
+ }
16
+ export interface OrganizationReconciliationInput {
17
+ /** Complete authority projections at one effective time; scoped issued snapshots are not valid inputs. */
18
+ readonly base: OrganizationState;
19
+ readonly remote: OrganizationState;
20
+ readonly local: readonly OrganizationLocalProposal[];
21
+ readonly maxEpochs?: number;
22
+ }
23
+ export interface OrganizationReconciliationCause {
24
+ readonly id: string;
25
+ readonly changeSetId: string;
26
+ readonly code: string;
27
+ readonly path: string;
28
+ readonly message: string;
29
+ readonly detail?: JsonObject;
30
+ readonly mutationType?: string;
31
+ readonly commandId?: string;
32
+ readonly entityType?: string;
33
+ readonly mutationId?: string;
34
+ readonly entityId?: string;
35
+ }
36
+ export interface OrganizationReconciliationEpoch {
37
+ readonly epoch: number;
38
+ readonly rejectedChangeSetIds: readonly string[];
39
+ readonly causes: readonly OrganizationReconciliationCause[];
40
+ readonly inference: InferenceResult;
41
+ }
42
+ export interface OrganizationReconciliationResult {
43
+ readonly status: "ready" | "incomplete";
44
+ readonly validation: "projection-only" | "authority-backed";
45
+ readonly base: OrganizationState;
46
+ readonly remote: OrganizationState;
47
+ readonly candidate: OrganizationState | null;
48
+ readonly basisDigest: string;
49
+ readonly acceptedChangeSetIds: readonly string[];
50
+ readonly rejectedChangeSetIds: readonly string[];
51
+ readonly causes: readonly OrganizationReconciliationCause[];
52
+ readonly inference: InferenceResult | null;
53
+ readonly epochs: readonly OrganizationReconciliationEpoch[];
54
+ readonly replayedOperations: readonly {
55
+ readonly changeSetId: string;
56
+ readonly mutation: OrganizationMutation;
57
+ }[];
58
+ readonly diagnostics: readonly {
59
+ readonly code: string;
60
+ readonly message: string;
61
+ }[];
62
+ }
63
+ export interface ReconciledOrganizationChangeSet {
64
+ readonly changeSet: OrganizationChangeSet;
65
+ readonly provenance: {
66
+ readonly selectedChangeSetIds: readonly string[];
67
+ readonly operations: readonly {
68
+ readonly changeSetId: string;
69
+ readonly mutationId: string;
70
+ readonly successorMutationId: string;
71
+ }[];
72
+ readonly baseRevision: number;
73
+ readonly remoteRevision: number;
74
+ readonly basisDigest: string;
75
+ readonly programFingerprint: string;
76
+ readonly inputFingerprint: string;
77
+ };
78
+ }
79
+ /** Read-only preview over complete authority projections, not scoped issued snapshots.
80
+ * Versioned governance constraints use the same evaluator as public authoring.
81
+ * The inference workspace and candidate never write organization authority.
82
+ */
83
+ export declare function reconcileOrganization(runtime: OrganizationReconciliationRuntime, input: OrganizationReconciliationInput): Promise<OrganizationReconciliationResult>;
84
+ /** Explicit adoption of all accepted whole groups. Reconcile again to select a different subset. */
85
+ export declare function createReconciledChangeSet(result: OrganizationReconciliationResult, id: string): ReconciledOrganizationChangeSet;
86
+ //# sourceMappingURL=organization-reconciliation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-reconciliation.d.ts","sourceRoot":"","sources":["../src/organization-reconciliation.ts"],"names":[],"mappings":"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"}