@enfyra/mcp-server 0.2.47 → 0.2.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/lib/discovery-tools.js +4 -4
  2. package/dist/lib/discovery-tools.js.map +1 -1
  3. package/dist/lib/dynamic-script-context-contract.js +1 -1
  4. package/dist/lib/dynamic-script-context-contract.js.map +1 -1
  5. package/dist/lib/mcp-example-schema-relations.js +2 -1
  6. package/dist/lib/mcp-example-schema-relations.js.map +1 -1
  7. package/dist/lib/mutation-guards.js +8 -1
  8. package/dist/lib/mutation-guards.js.map +1 -1
  9. package/dist/lib/required-knowledge.js +4 -2
  10. package/dist/lib/required-knowledge.js.map +1 -1
  11. package/dist/lib/route-inspection-tools.js +1 -1
  12. package/dist/lib/route-inspection-tools.js.map +1 -1
  13. package/dist/lib/schema-relation-contracts.d.ts +3 -0
  14. package/dist/lib/schema-relation-contracts.js +37 -0
  15. package/dist/lib/schema-relation-contracts.js.map +1 -1
  16. package/dist/lib/schema-relation-tools.js +20 -5
  17. package/dist/lib/schema-relation-tools.js.map +1 -1
  18. package/dist/lib/schema-table-contracts.js +2 -0
  19. package/dist/lib/schema-table-contracts.js.map +1 -1
  20. package/dist/lib/schema-table-tools.js +35 -11
  21. package/dist/lib/schema-table-tools.js.map +1 -1
  22. package/dist/lib/schema-tool-operations.d.ts +9 -0
  23. package/dist/lib/schema-tool-operations.js +82 -65
  24. package/dist/lib/schema-tool-operations.js.map +1 -1
  25. package/dist/lib/tool-output-contracts.js +1 -0
  26. package/dist/lib/tool-output-contracts.js.map +1 -1
  27. package/dist/lib/toolset-filter.js +1 -0
  28. package/dist/lib/toolset-filter.js.map +1 -1
  29. package/dist/lib/workflow-definitions.js +4 -4
  30. package/dist/lib/workflow-definitions.js.map +1 -1
  31. package/dist/lib/workflow-planner.js +4 -3
  32. package/dist/lib/workflow-planner.js.map +1 -1
  33. package/package.json +1 -1
@@ -7,13 +7,13 @@ import { assertGlobalRulesAck, globalRulesAckParam } from './required-knowledge.
7
7
  import { jsonContent } from './response-format.js';
8
8
  import { createSchemaToolOperations } from './schema-tool-operations.js';
9
9
  import { executeSequentialBatch } from './sequential-batch.js';
10
- import { assertBulkLimit, assertNoDuplicateRelationConstraintTargets, bulkObjectArrayParam, parseBulkItemsParam, validateRelationConstraintUpdate, } from './table-tool-logic.js';
10
+ import { assertBulkLimit, assertNoDuplicateRelationConstraintTargets, assertOwningRelationCreationInput, bulkObjectArrayParam, parseBulkItemsParam, validateRelationConstraintUpdate, } from './table-tool-logic.js';
11
11
  export function registerSchemaRelationTools(server, ENFYRA_API_URL, options = {}) {
12
12
  const toolset = options.toolset || 'guided';
13
- const { appendRelationToTable, removeRelationFromTable, updateRelationConstraints, } = createSchemaToolOperations(ENFYRA_API_URL, toolset);
13
+ const { appendRelationToTable, createInverseRelation, removeRelationFromTable, updateRelationConstraints, } = createSchemaToolOperations(ENFYRA_API_URL, toolset);
14
14
  // ─── RELATION MUTATIONS ───
15
- server.tool('create_relations', 'Create one or more relations. Always pass items as a native JSON array; for one relation, pass one item. Items run sequentially through the schema queue and table names/aliases are resolved internally.', {
16
- items: bulkObjectArrayParam(z, 'Relation definitions').optional().describe('Native JSON array of relation definitions. Each item uses { sourceTableId, targetTableId or targetTable, type, propertyName, inversePropertyName?, mappedBy?, isNullable?, onDelete?, description? }. Do not send physical FK fields.'),
15
+ server.tool('create_relations', 'Create one or more owning relations. Always pass items as a native JSON array; for one relation, pass one item. This tool rejects inversePropertyName, mappedBy, and one-to-many; evaluate inverseDecision after creation and use create_inverse_relation only for a concrete reverse consumer. Items run sequentially through the schema queue and table names/aliases are resolved internally.', {
16
+ items: bulkObjectArrayParam(z, 'Owning relation definitions').optional().describe('Native JSON array of owning relation definitions. Each item uses { sourceTableId, targetTableId or targetTable, type, propertyName, isNullable?, onDelete?, description? }. Do not send inversePropertyName, mappedBy, one-to-many, or physical FK fields. Evaluate inverseDecision after creation.'),
17
17
  relations: bulkObjectArrayParam(z, 'Relation definitions').optional().describe('Alias for items when the caller naturally names the batch relations. Pass either items or relations, not both.'),
18
18
  maxItems: z.number().int().min(1).max(100).optional().default(100).describe('Safety cap for one schema batch. Default/max is 100.'),
19
19
  globalRulesAckKey: globalRulesAckParam(z),
@@ -23,13 +23,28 @@ export function registerSchemaRelationTools(server, ENFYRA_API_URL, options = {}
23
23
  throw new Error('Pass either items or relations to create_relations, not both.');
24
24
  const parsedItems = parseBulkItemsParam('items', items ?? relations);
25
25
  assertBulkLimit('create_relations', parsedItems, maxItems);
26
+ const owningItems = parsedItems.map((item) => assertOwningRelationCreationInput(item, 'create_relations'));
26
27
  const created = [];
27
- for (const [index, item] of parsedItems.entries()) {
28
+ for (const [index, item] of owningItems.entries()) {
28
29
  const result = await appendRelationToTable({ ...item, globalRulesAckKey });
29
30
  created.push({ index, ...JSON.parse(result.content[0].text) });
30
31
  }
31
32
  return jsonContent({ action: 'relations_created', requested: parsedItems.length, createdCount: created.length, sequential: true, created });
32
33
  });
34
+ server.tool('create_inverse_relation', 'Create the mappedBy side for one existing owning relation. Use only after create_relations/create_tables returns inverseDecision and a concrete response, UI, deep query, aggregate, or parent-to-child consumer requires reverse traversal. The tool derives the inverse type from ESV ownership semantics and reuses the owning FK or junction.', {
35
+ owningTableId: z.union([z.string().min(1), z.number()]).describe('Table id, name, or alias containing the owning relation.'),
36
+ owningRelationId: z.union([z.string().min(1), z.number()]).optional().describe('Exact owning relation id returned by create_relations or inspect_table.'),
37
+ owningPropertyName: z.string().trim().min(1).optional().describe('Owning relation propertyName. Use this when create_tables returned a decision before a relation id was available.'),
38
+ inversePropertyName: z.string().trim().min(1).describe('Semantic property name exposed on the target table for reverse traversal.'),
39
+ consumer: z.string().trim().min(12).describe('Concrete app consumer that reads target-to-source, such as a named response field, UI section, deep query, aggregate, or parent detail workflow.'),
40
+ description: z.string().optional().describe('Optional inverse relation description.'),
41
+ globalRulesAckKey: globalRulesAckParam(z),
42
+ }, async (args) => {
43
+ if (args.owningRelationId === undefined && !args.owningPropertyName) {
44
+ throw new Error('create_inverse_relation requires owningRelationId or owningPropertyName.');
45
+ }
46
+ return createInverseRelation(args);
47
+ });
33
48
  server.tool('update_relation_constraints', 'Update isNullable and/or onDelete for existing relations without changing relation structure. Always pass items as a native JSON array; items run sequentially through the schema queue and preserve the complete table relation aggregate.', {
34
49
  items: bulkObjectArrayParam(z, 'Relation constraint updates').describe('Native JSON array of relation constraint updates: [{ tableId, relationId, isNullable?, onDelete? }]. onDelete must be CASCADE, RESTRICT, or SET NULL. Structural and physical relation fields are rejected.'),
35
50
  maxItems: z.number().int().min(1).max(100).optional().default(100).describe('Safety cap for one schema batch. Default/max is 100.'),
@@ -1 +1 @@
1
- {"version":3,"file":"schema-relation-tools.js","sourceRoot":"","sources":["../../src/lib/schema-relation-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-relation-tools.js","sourceRoot":"","sources":["../../src/lib/schema-relation-tools.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Table & Column tools for Enfyra MCP Server
3
3
  */
4
4
  import { AUTO_MANAGED_COLUMN_NAMES, } from './schema-mutation-coordinator.js';
5
+ import { assertOwningRelationCreationInput } from './schema-relation-contracts.js';
5
6
  import { normalizeTableName } from './tool-input-normalization.js';
6
7
  export function parseJsonArrayParam(name, value) {
7
8
  if (!value)
@@ -120,6 +121,7 @@ export function preflightCreateTableDefinitions(items) {
120
121
  const { columns: userColumns } = stripAutoManagedColumns(columns);
121
122
  const columnNames = userColumns.map((column) => String(column?.name ?? '')).filter(Boolean);
122
123
  const relationNames = relations.map((relation) => String(relation?.propertyName ?? '')).filter(Boolean);
124
+ relations.forEach((relation) => assertOwningRelationCreationInput(relation, `create_tables items[${index}]`));
123
125
  assertNoColumnRelationNameCollision(columnNames, relationNames, `create_tables items[${index}] (${item.name || '<unnamed>'})`);
124
126
  const logicalFields = new Set([...AUTO_MANAGED_COLUMN_NAMES, ...columnNames, ...relationNames]);
125
127
  const indexes = normalizeConstraintGroupsValue(`items[${index}].indexes`, item.indexes ?? []);
@@ -1 +1 @@
1
- {"version":3,"file":"schema-table-contracts.js","sourceRoot":"","sources":["../../src/lib/schema-table-contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-table-contracts.js","sourceRoot":"","sources":["../../src/lib/schema-table-contracts.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { assertGlobalRulesAck, globalRulesAckParam } from './required-knowledge.
8
8
  import { jsonContent } from './response-format.js';
9
9
  import { createSchemaToolOperations } from './schema-tool-operations.js';
10
10
  import { executeSequentialBatch } from './sequential-batch.js';
11
- import { FORBIDDEN_RELATION_KEYS, assertBulkLimit, bulkObjectArrayParam, computeBatchCleanupOrder, getId, getSupportedColumnTypes, metadataColumnNames, metadataColumnOptions, normalizeCreateTableDefinitions, normalizeRelationType, parseBulkItemsParam, preflightCreateTableDefinitions, resolveTableIdentifierFromMetadata, withSchemaQueue, } from './table-tool-logic.js';
11
+ import { FORBIDDEN_RELATION_KEYS, assertBulkLimit, buildInverseDecision, bulkObjectArrayParam, computeBatchCleanupOrder, getId, getSupportedColumnTypes, fetchTableWithDetails, metadataColumnNames, metadataColumnOptions, normalizeCreateTableDefinitions, normalizeRelationType, parseBulkItemsParam, parseJsonArrayParam, preflightCreateTableDefinitions, resolveTableIdentifierFromMetadata, sanitizeExistingRelationForTablePatch, withSchemaQueue, } from './table-tool-logic.js';
12
12
  const COLUMN_SCHEMA_ATTRIBUTES = [
13
13
  'name',
14
14
  'type',
@@ -151,13 +151,13 @@ export function registerSchemaTableTools(server, ENFYRA_API_URL, options = {}) {
151
151
  namespaceRule: 'Column names and relation propertyName values share one table namespace. Do not define a scalar column and a relation with the same name in one table.',
152
152
  },
153
153
  relationDefinitionInput: {
154
- allowedFields: ['targetTableId', 'targetTable', 'type', 'propertyName', 'inversePropertyName', 'mappedBy', 'isNullable', 'onDelete', 'description'],
154
+ allowedFields: ['targetTableId', 'targetTable', 'type', 'propertyName', 'isNullable', 'onDelete', 'description'],
155
155
  relationTypes: relationTypes.length ? relationTypes : ['many-to-one', 'one-to-many', 'one-to-one', 'many-to-many'],
156
156
  onDeleteOptions: onDeleteOptions.length ? onDeleteOptions : ['CASCADE', 'SET NULL', 'RESTRICT'],
157
157
  forbiddenPhysicalFields: FORBIDDEN_RELATION_KEYS,
158
158
  rule: 'Use relations for links between records. Do not create scalar FK columns such as userId, owner_id, categoryIds, or courseId unless the user explicitly wants denormalized snapshot data.',
159
159
  namespaceRule: 'Relation propertyName must be unique among both relation names and scalar column names on the same table. If a relation is named owner, do not also create ownerId/owner as a scalar field.',
160
- inverseDesignRule: 'If a parent detail/read must deep-load a child collection (for example application.reviewAssignments or assignment.scorecards), create the owning child many-to-one relation with inversePropertyName immediately. Without the inverse, parent-to-child deep reads will fail with unknown relation.',
160
+ inverseDesignRule: 'Create the owning relation first without inversePropertyName or mappedBy. Evaluate the returned inverseDecision. Only when a concrete reverse response, UI, deep query, aggregate, or parent-to-child consumer exists, call create_inverse_relation with that consumer and a semantic inversePropertyName.',
161
161
  },
162
162
  constraints: {
163
163
  indexes: 'JSON array of non-unique logical field groups, e.g. [["status","createdAt"]]. Relation propertyName values are allowed.',
@@ -170,9 +170,9 @@ export function registerSchemaTableTools(server, ENFYRA_API_URL, options = {}) {
170
170
  '1. Name domain entities and decide which existing tables are reused, especially enfyra_user for users/owners/actors.',
171
171
  '2. Create independent lookup/base tables first with scalar columns only.',
172
172
  '3. Create dependent tables with scalar columns and relations whose target tables already exist.',
173
- '4. Use create_relations after both tables exist when a relation could not be included during table creation.',
173
+ '4. Use create_relations after both tables exist when an owning relation could not be included during table creation.',
174
174
  '5. Add relation-based unique groups in the same create_tables item when the relations are declared there, or via update_tables after relations exist.',
175
- '6. Before deep parent detail queries, confirm every child collection relation exists as an inversePropertyName on the owning child relation.',
175
+ '6. Evaluate each returned inverseDecision. Call create_inverse_relation only for a concrete target-to-source consumer; otherwise keep the relation one-way.',
176
176
  '7. Insert records using column names and relation propertyName values, never hidden FK columns.',
177
177
  '8. Re-inspect each table with inspect_table before writing records or adding query examples.',
178
178
  ],
@@ -186,8 +186,8 @@ export function registerSchemaTableTools(server, ENFYRA_API_URL, options = {}) {
186
186
  // ─── TABLE MUTATIONS ───
187
187
  server.tool('create_tables', [
188
188
  'Create one or more table definitions. Always pass items as a native JSON array; for one table, pass one item.',
189
- 'The tool creates tables sequentially, creates columns with each table, then creates all requested relations after every table in the batch exists. This avoids relation target races for weak agents.',
190
- 'Each item supports { name, description?, isSingleRecord?, columns?, relations?, indexes?, uniques? }. columns/relations/indexes/uniques may be arrays inside the item.',
189
+ 'The tool creates tables sequentially, creates columns with each table, then creates all requested owning relations after every table in the batch exists. This avoids relation target races for weak agents.',
190
+ 'Each item supports { name, description?, isSingleRecord?, columns?, relations?, indexes?, uniques? }. Relations reject inversePropertyName, mappedBy, and one-to-many; evaluate inverseDecisions after creation and use create_inverse_relation only for a concrete reverse consumer. columns/relations/indexes/uniques may be arrays inside the item.',
191
191
  'Column items may include metadata and placeholder. For ordinary application fields, omit isPublished and isUpdatable because both default to true; false has API-access and canonical-PATCH consequences, not merely UI consequences. For type richtext, store editor configuration at column.metadata.richText using JSON-safe values; function callbacks are eApp source configuration, not column JSON.',
192
192
  'Do not include id, _id, createdAt, or updatedAt in columns; Enfyra manages them and create_tables strips them before save.',
193
193
  'Every field named in indexes/uniques must be a scalar column, auto-managed column, or relation propertyName in the same table item; otherwise the tool rejects the whole batch before creating tables.',
@@ -234,8 +234,6 @@ export function registerSchemaTableTools(server, ENFYRA_API_URL, options = {}) {
234
234
  targetTableId: tableId,
235
235
  type: relation.type,
236
236
  propertyName: relation.propertyName,
237
- inversePropertyName: relation.inversePropertyName,
238
- mappedBy: relation.mappedBy,
239
237
  isNullable: relation.isNullable,
240
238
  onDelete: relation.onDelete,
241
239
  description: relation.description,
@@ -267,8 +265,6 @@ export function registerSchemaTableTools(server, ENFYRA_API_URL, options = {}) {
267
265
  targetTableId: resolvedTargetId,
268
266
  type: relation.type,
269
267
  propertyName: relation.propertyName,
270
- inversePropertyName: relation.inversePropertyName,
271
- mappedBy: relation.mappedBy,
272
268
  isNullable: relation.isNullable,
273
269
  onDelete: relation.onDelete,
274
270
  description: relation.description,
@@ -285,6 +281,33 @@ export function registerSchemaTableTools(server, ENFYRA_API_URL, options = {}) {
285
281
  if (constraintResult)
286
282
  appliedDeferredConstraints.push({ index: constraints.index, ...constraintResult });
287
283
  }
284
+ const inverseDecisions = [];
285
+ for (const [index, item] of parsedItems.entries()) {
286
+ const tableId = createdTableIds.get(String(item.name || '').toLowerCase());
287
+ if (tableId === undefined)
288
+ continue;
289
+ const requestedRelations = Array.isArray(item.relations)
290
+ ? item.relations
291
+ : parseJsonArrayParam(`items[${index}].relations`, item.relations || '[]');
292
+ if (requestedRelations.length === 0)
293
+ continue;
294
+ const liveTable = await fetchTableWithDetails(ENFYRA_API_URL, tableId).catch(() => null);
295
+ for (const requestedRelation of requestedRelations) {
296
+ const liveRelation = (liveTable?.relations || []).find((relation) => relation.propertyName === requestedRelation.propertyName);
297
+ const relation = liveRelation
298
+ ? sanitizeExistingRelationForTablePatch(liveRelation)
299
+ : requestedRelation;
300
+ inverseDecisions.push(buildInverseDecision({
301
+ sourceTableId: tableId,
302
+ sourceTableName: item.name,
303
+ targetTableId: relation.targetTable ?? relation.targetTableId,
304
+ targetTableName: liveRelation?.targetTableName || liveRelation?.targetTable?.name,
305
+ relationId: getId(relation),
306
+ propertyName: relation.propertyName,
307
+ type: relation.type,
308
+ }));
309
+ }
310
+ }
288
311
  return jsonContent({
289
312
  action: 'tables_created',
290
313
  requested: parsedItems.length,
@@ -314,6 +337,7 @@ export function registerSchemaTableTools(server, ENFYRA_API_URL, options = {}) {
314
337
  })),
315
338
  createdRelations: createdRelations.map(({ result, responseFormat, ...item }) => item),
316
339
  appliedDeferredConstraints: appliedDeferredConstraints.map(({ result, ...item }) => item),
340
+ inverseDecisions,
317
341
  });
318
342
  });
319
343
  server.tool('update_tables', 'Update one or more table definitions. Always pass items as a native JSON array; for one table, pass one item. Items run sequentially through the schema queue.', {
@@ -1 +1 @@
1
- {"version":3,"file":"schema-table-tools.js","sourceRoot":"","sources":["../../src/lib/schema-table-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-table-tools.js","sourceRoot":"","sources":["../../src/lib/schema-table-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAEL,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,EACL,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,+BAA+B,EAC/B,kCAAkC,EAClC,qCAAqC,EACrC,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,wBAAwB,GAAG;IAC/B,MAAM;IACN,MAAM;IACN,YAAY;IACZ,UAAU;IACV,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,SAAS;IACT,aAAa;IACb,UAAU;CACX,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAgC,EAAE;IACjG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC;IAC5C,MAAM,EACJ,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,cAAc,GACf,GAAG,0BAA0B,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACxD,eAAe;IAEb,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,uLAAuL,EACvL;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;QAC/I,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;QACnH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;KACvG,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/B,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,0HAA0H,CAAC,CAAC;QAC9I,CAAC;QACD,IAAI,GAAG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO;aACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACf,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;YACtC,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;YAC5C,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC;iBAChD,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACL,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC;YACjB,MAAM,EAAE,gBAAgB;YACxB,eAAe,EAAE,OAAO,CAAC,MAAM;YAC/B,iBAAiB,EAAE,MAAM,CAAC,MAAM;YAChC,kBAAkB,EAAE,cAAc,CAAC,MAAM;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;YACjB,mBAAmB,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YAC3E,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc;YACrC,MAAM,EAAE,MAAM,IAAI,IAAI;YACtB,MAAM,EAAE,cAAc;YACtB,UAAU,EAAE,iHAAiH;SAC9H,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEJ,MAAM,CAAC,IAAI,CACP,2BAA2B,EAC3B;QACE,0DAA0D;QAC1D,gEAAgE;QAChE,wLAAwL;KACzL,CAAC,IAAI,CAAC,GAAG,CAAC,EACX,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3E,oBAAoB,CAAC,cAAc,CAAC;YACpC,kBAAkB,CAAC,cAAc,EAAE,cAAc,CAAC;YAClD,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;QACvD,MAAM,aAAa,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACzF,MAAM,eAAe,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAC/F,MAAM,eAAe,GAAG,mBAAmB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAC3E,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;QAClD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QACpF,MAAM,kBAAkB,GAAG,CAAC,eAAe,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,kBAAkB,GAAG,CAAC,eAAe,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEvF,OAAO,WAAW,CAAC;YACjB,MAAM,EAAE,uBAAuB;YAC/B,QAAQ,EAAE,6IAA6I;YACvJ,oBAAoB;YACpB,iBAAiB,EAAE;gBACjB,0BAA0B,EAAE,kBAAkB;gBAC9C,0BAA0B,EAAE,kBAAkB;gBAC9C,kBAAkB,EAAE,eAAe,CAAC,MAAM,KAAK,SAAS;oBACtD,CAAC,CAAC,iEAAiE;oBACnE,CAAC,CAAC,yDAAyD;aAC9D;YACD,gBAAgB,EAAE;gBAChB,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,CAAC;gBACvD,aAAa,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;gBACvC,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;gBACxC,mBAAmB,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAChD,kBAAkB,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC;gBACpD,QAAQ,EAAE,eAAe,CAAC,MAAM,KAAK,SAAS;oBAC5C,CAAC,CAAC,gFAAgF;oBAClF,CAAC,CAAC,0EAA0E;gBAC9E,kBAAkB,EAAE,qLAAqL;gBACzM,kBAAkB,EAAE;oBAClB,SAAS,EAAE,yHAAyH;oBACpI,SAAS,EAAE,gJAAgJ;oBAC3J,mBAAmB,EAAE,oOAAoO;oBACzP,iBAAiB,EAAE,kHAAkH;iBACtI;aACF;YACD,qBAAqB,EAAE;gBACrB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC;gBAC3K,cAAc,EAAE,oBAAoB;gBACpC,aAAa,EAAE;oBACb,qDAAqD;oBACrD,4BAA4B;oBAC5B,4GAA4G;oBAC5G,mDAAmD;oBACnD,4BAA4B;oBAC5B,2CAA2C;oBAC3C,6DAA6D;oBAC7D,yFAAyF;oBACzF,2BAA2B;iBAC5B;gBACD,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjH,kBAAkB,EAAE,6IAA6I;gBACjK,6BAA6B,EAAE;oBAC7B,eAAe,EAAE,mKAAmK;oBACpL,WAAW,EAAE,0TAA0T;oBACvU,WAAW,EAAE,wPAAwP;oBACrQ,WAAW,EAAE,sKAAsK;oBACnL,kBAAkB,EAAE,yIAAyI;iBAC9J;gBACD,gBAAgB,EAAE;oBAChB,WAAW,EAAE,UAAU;oBACvB,YAAY,EAAE,mDAAmD;oBACjE,aAAa,EAAE,yQAAyQ;oBACxR,UAAU,EAAE,mLAAmL;oBAC/L,UAAU,EAAE,8IAA8I;iBAC3J;gBACD,aAAa,EAAE,wJAAwJ;aACxK;YACD,uBAAuB,EAAE;gBACvB,aAAa,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC;gBAChH,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC;gBAClH,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;gBAC/F,uBAAuB,EAAE,uBAAuB;gBAChD,IAAI,EAAE,0LAA0L;gBAChM,aAAa,EAAE,6LAA6L;gBAC5M,iBAAiB,EAAE,4SAA4S;aAChU;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,yHAAyH;gBAClI,OAAO,EAAE,uEAAuE;gBAChF,eAAe,EAAE,qNAAqN;gBACtO,qBAAqB,EAAE,mMAAmM;gBAC1N,oBAAoB,EAAE,4MAA4M;aACnO;YACD,mBAAmB,EAAE;gBACnB,sHAAsH;gBACtH,0EAA0E;gBAC1E,iGAAiG;gBACjG,sHAAsH;gBACtH,uJAAuJ;gBACvJ,6JAA6J;gBAC7J,iGAAiG;gBACjG,8FAA8F;aAC/F;YACD,wBAAwB,EAAE;gBACxB,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,kBAAkB;aAC7B;SACF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEJ,0BAA0B;IAExB,MAAM,CAAC,IAAI,CACT,eAAe,EACf;QACE,+GAA+G;QAC/G,8MAA8M;QAC9M,wVAAwV;QACxV,4YAA4Y;QAC5Y,4HAA4H;QAC5H,wMAAwM;QACxM,oIAAoI;QACpI,+IAA+I;QAC/I,4JAA4J;KAC7J,CAAC,IAAI,CAAC,GAAG,CAAC,EACX;QACE,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;QACnK,MAAM,EAAE,oBAAoB,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0GAA0G,CAAC;QACpL,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,yFAAyF,CAAC;QACtK,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;KAC1C,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE;QACvD,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC3H,MAAM,WAAW,GAAG,+BAA+B,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;QACnG,eAAe,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,+BAA+B,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAClH,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gFAAgF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtH,CAAC;QACA,MAAM,OAAO,GAAgB,EAAE,CAAC;QACjC,MAAM,iBAAiB,GAAgB,EAAE,CAAC;QAC1C,MAAM,mBAAmB,GAAgB,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAC;QAE3D,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;YACnG,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACrD,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9F,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;gBACrD,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC;oBAChD,aAAa,EAAE,OAAO;oBACtB,aAAa,EAAE,OAAO;oBACtB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,iBAAiB;iBAClB,CAAC,CAAC,CAAC;YACN,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;gBACtD,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC7G,mBAAmB,CAAC,IAAI,CAAC;oBACvB,KAAK;oBACL,OAAO;oBACP,GAAG,MAAM,CAAC,mBAAmB;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAEA,MAAM,gBAAgB,GAAgB,EAAE,CAAC;QACzC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrC,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,OAAO,YAAY,GAAG,aAAa,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAChH,MAAM,gBAAgB,GAAG,CAAC,UAAU,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClI,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC;gBACjD,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,aAAa,EAAE,gBAAgB;gBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,iBAAiB;aAClB,CAAC,CAAC;YACF,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;QAEF,MAAM,0BAA0B,GAAgB,EAAE,CAAC;QAClD,KAAK,MAAM,WAAW,IAAI,mBAAmB,EAAE,CAAC;YAC9C,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,WAAW,CAAC,OAAO,EAAE;gBACjG,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC,CAAC,CAAC;YACJ,IAAI,gBAAgB;gBAAE,0BAA0B,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC;QAC7G,CAAC;QAEA,MAAM,gBAAgB,GAAgB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3E,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YACpC,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,mBAAmB,CAAC,SAAS,KAAK,aAAa,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;YAC7E,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC9C,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACzF,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;gBACnD,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CACpD,CAAC,QAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,KAAK,iBAAiB,CAAC,YAAY,CAClF,CAAC;gBACF,MAAM,QAAQ,GAAG,YAAY;oBAC3B,CAAC,CAAC,qCAAqC,CAAC,YAAY,CAAC;oBACrD,CAAC,CAAC,iBAAiB,CAAC;gBACtB,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC;oBACzC,aAAa,EAAE,OAAO;oBACtB,eAAe,EAAE,IAAI,CAAC,IAAI;oBAC1B,aAAa,EAAE,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,aAAa;oBAC7D,eAAe,EAAE,YAAY,EAAE,eAAe,IAAI,YAAY,EAAE,WAAW,EAAE,IAAI;oBACjF,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;oBAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAEF,OAAO,WAAW,CAAC;YACf,MAAM,EAAE,gBAAgB;YACxB,SAAS,EAAE,WAAW,CAAC,MAAM;YAC7B,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,qBAAqB,EAAE,iBAAiB,CAAC,MAAM;YAC/C,oBAAoB,EAAE,gBAAgB,CAAC,MAAM;YAC7C,uBAAuB,EAAE,mBAAmB,CAAC,MAAM;YACnD,8BAA8B,EAAE,0BAA0B,CAAC,MAAM;YACjE,UAAU,EAAE,IAAI;YAChB,wBAAwB,EAAE,IAAI;YAC9B,6BAA6B,EAAE,IAAI;YACnC,YAAY,EAAE;gBACZ,iBAAiB,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,OAAO,EAAE;gBACnD,iBAAiB;gBACjB,gBAAgB,EAAE,iBAAiB;gBACnC,gBAAgB,EAAE,oJAAoJ;gBACtK,UAAU,EAAE,6JAA6J;gBACzK,SAAS,EAAE,wJAAwJ;aACpK;YACF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC1E,GAAG,IAAI;gBACP,MAAM,EAAE;oBACN,QAAQ,EAAE,MAAM,EAAE,QAAQ;oBAC1B,qBAAqB,EAAE,MAAM,EAAE,qBAAqB;oBACpD,iBAAiB,EAAE,MAAM,EAAE,iBAAiB;iBAC7C;aACF,CAAC,CAAC;YACJ,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;YACrF,0BAA0B,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;YACzF,gBAAgB;SAClB,CAAC,CAAC;IACH,CAAC,CACF,CAAC;IAEL,MAAM,CAAC,IAAI,CACP,eAAe,EACf,gKAAgK,EAChK;QACE,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,2KAA2K,CAAC;QAC1O,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACnI,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;KAC1C,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE;QAC/C,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxD,eAAe,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,wBAAwB,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3I,CAAC,CACF,CAAC;IAEJ,MAAM,CAAC,IAAI,CACP,eAAe,EACf,iSAAiS,EACjS;QACE,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,qNAAqN,CAAC;QACpR,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACnI,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,+EAA+E,CAAC;QACxI,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;KACvJ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE;QACxD,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxD,eAAe,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,kCAAkC,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;YACxD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAC9C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,4DAA4D,IAAI,CAAC,SAAS,8CAA8C,CAAC,CAAC;gBAC1J,CAAC;gBACD,MAAM,eAAe,GAAG,kCAAkC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,KAAK,aAAa,CAAC,CAAC;gBACjH,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC7D,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,iCAAiC,eAAe,cAAc,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBACvH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,OAAO,GAAgB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;oBACxD,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,eAAe,EAAE,SAAS;oBAC1B,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,OAAO,GAAG;gBACd,MAAM,EAAE,uBAAuB;gBAC/B,SAAS,EAAE,WAAW,CAAC,MAAM;gBAC7B,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,OAAO;gBACP,aAAa,EAAE;oBACb,kBAAkB,EAAE,iBAAiB;oBACrC,eAAe,EAAE,KAAK;oBACtB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACtC,EAAE,EAAE,IAAI,CAAC,OAAO;wBAChB,IAAI,EAAE,IAAI,CAAC,SAAS;qBACrB,CAAC,CAAC;iBACJ;gBACD,IAAI,EAAE,6IAA6I;aACpJ,CAAC;YACF,OAAO,yBAAyB,CAAC,eAAe,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9E,KAAK;YACL,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;gBAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;QAChC,MAAM,aAAa,GAAG;YACpB,kBAAkB,EAAE,8BAA8B;YAClD,eAAe,EAAE,KAAK,CAAC,MAAM,KAAK,WAAW;mBACxC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,KAAK,IAAI,CAAC;YAC1E,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,IAAI,EAAE,CAAC;YACrF,kBAAkB,EAAE,OAAO;iBACxB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC;iBACpD,MAAM,CAAC,OAAO,CAAC;SACnB,CAAC;QACF,MAAM,UAAU,GAAG,aAAa,CAAC,eAAe,KAAK,IAAI,CAAC;QAC1D,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,iBAAiB;gBACxC,CAAC,CAAC,+BAA+B;gBACjC,CAAC,CAAC,UAAU;oBACV,CAAC,CAAC,0BAA0B;oBAC5B,CAAC,CAAC,gBAAgB;YACtB,SAAS,EAAE,WAAW,CAAC,MAAM;YAC7B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,OAAO;YACP,aAAa;YACb,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvC,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,MAAM,KAAK,iBAAiB,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAClG,CAAC,CACF,CAAC;IAEJ,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,0LAA0L,EAC1L;QACE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QACrG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;QAC7G,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAClH,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;KAC3H,EACD,KAAK,EAAE,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,EAAE;QAC/E,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACxC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,GAAG,WAAW,GAAG,SAAS,qBAAqB,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,EAAE;YACtI,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;QAChF,MAAM,YAAY,GAAG,WAAW,EAAE,QAAQ,KAAK,IAAI,IAAI,WAAW,EAAE,mBAAmB,CAAC;QACxF,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,WAAW,CAAC;gBACjB,MAAM,EAAE,+BAA+B;gBACvC,OAAO,EAAE,6IAA6I;gBACtJ,sBAAsB,EAAE,WAAW,CAAC,mBAAmB;aACxD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,WAAW,CAAC;YACjB,MAAM,EAAE,2BAA2B;YACnC,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -2,6 +2,15 @@ import { type AnyRecord } from './table-tool-logic.js';
2
2
  export declare function createSchemaToolOperations(ENFYRA_API_URL: any, toolset: any): {
3
3
  appendColumnToTable: (args: any) => Promise<import("./types.js").ToolResult>;
4
4
  appendRelationToTable: (args: any) => Promise<import("./types.js").ToolResult>;
5
+ createInverseRelation: ({ owningTableId, owningRelationId, owningPropertyName, inversePropertyName, consumer, description, globalRulesAckKey, }: {
6
+ owningTableId: any;
7
+ owningRelationId: any;
8
+ owningPropertyName: any;
9
+ inversePropertyName: any;
10
+ consumer: any;
11
+ description: any;
12
+ globalRulesAckKey: any;
13
+ }) => Promise<import("./types.js").ToolResult>;
5
14
  applyDeferredConstraints: (tableId: any, deferredConstraints: any) => Promise<{
6
15
  action: string;
7
16
  tableId: any;
@@ -5,7 +5,7 @@ import { fetchAPI } from './fetch.js';
5
5
  import { fetchMetadataContext, fetchTableCatalog } from './metadata-client.js';
6
6
  import { assertGlobalRulesAck } from './required-knowledge.js';
7
7
  import { jsonContent } from './response-format.js';
8
- import { getColumnContractBroadening, assertColumnNameCanBeCreated, assertIndexesDoNotReferenceUniqueFields, assertNoColumnRelationNameCollision, assertNoForbiddenRelationKeys, buildColumnDefinition, buildPrimaryColumnForDbType, fetchTableWithDetails, getId, getPatchableColumns, getSupportedColumnTypes, mergeConstraintGroups, normalizeColumnForTablePatch, normalizeColumnOptionsValue, parseColumnTypeOptions, normalizeColumnTypeForLiveMetadata, normalizeColumnsForLiveMetadata, normalizeConstraintGroupsValue, normalizeRelationForTablePatch, parseJsonArrayParam, patchTableAutoConfirm, pruneIndexesThatOverlapUniques, resolveRelationConstraintGroups, resolveTableIdentifierFromMetadata, sanitizeExistingRelationForTablePatch, splitRelationConstraintGroups, validateRelationConstraintUpdate, relationMetadataFingerprint, stripAutoManagedColumns, summarizeCreatedTableSchema, verifyColumnCascade, verifyRelationCascade, withSchemaQueue, } from './table-tool-logic.js';
8
+ import { getColumnContractBroadening, assertColumnNameCanBeCreated, assertIndexesDoNotReferenceUniqueFields, assertNoColumnRelationNameCollision, assertNoForbiddenRelationKeys, assertOwningRelationCreationInput, buildInverseDecision, buildColumnDefinition, buildPrimaryColumnForDbType, fetchTableWithDetails, getId, getPatchableColumns, getSupportedColumnTypes, mergeConstraintGroups, deriveInverseRelationType, normalizeColumnForTablePatch, normalizeColumnOptionsValue, parseColumnTypeOptions, normalizeColumnTypeForLiveMetadata, normalizeColumnsForLiveMetadata, normalizeConstraintGroupsValue, normalizeRelationForTablePatch, parseJsonArrayParam, patchTableAutoConfirm, pruneIndexesThatOverlapUniques, resolveRelationConstraintGroups, resolveTableIdentifierFromMetadata, sanitizeExistingRelationForTablePatch, splitRelationConstraintGroups, validateRelationConstraintUpdate, relationMetadataFingerprint, stripAutoManagedColumns, summarizeCreatedTableSchema, verifyColumnCascade, verifyRelationCascade, withSchemaQueue, } from './table-tool-logic.js';
9
9
  export function createSchemaToolOperations(ENFYRA_API_URL, toolset) {
10
10
  const apiBase = ENFYRA_API_URL.replace(/\/$/, '');
11
11
  async function appendColumnToTable(args) {
@@ -41,8 +41,10 @@ export function createSchemaToolOperations(ENFYRA_API_URL, toolset) {
41
41
  return withSchemaQueue(async () => {
42
42
  assertNoForbiddenRelationKeys(args);
43
43
  const { sourceTableId, targetTableId, targetTable } = args;
44
- const relationPatch = normalizeRelationForTablePatch(args);
45
- const { type, propertyName, inversePropertyName, mappedBy, isNullable, onDelete, description } = relationPatch;
44
+ const relationPatch = args.allowInverseCreation
45
+ ? normalizeRelationForTablePatch(args)
46
+ : assertOwningRelationCreationInput(args, 'create_relations');
47
+ const { type, propertyName, mappedBy, isNullable, onDelete, description } = relationPatch;
46
48
  const targetRef = targetTableId ?? targetTable;
47
49
  if (targetRef === undefined || targetRef === null || targetRef === '') {
48
50
  throw new Error('create_relations requires targetTableId or targetTable. Pass an existing table id, name, or alias.');
@@ -57,8 +59,6 @@ export function createSchemaToolOperations(ENFYRA_API_URL, toolset) {
57
59
  const existingRelations = (tableData.relations || []).map(sanitizeExistingRelationForTablePatch);
58
60
  const beforeIds = existingRelations.map((relation) => String(getId(relation))).filter((id) => id !== 'null');
59
61
  const newRelation = { targetTable: resolvedTargetTableId, type, propertyName };
60
- if (inversePropertyName !== undefined)
61
- newRelation.inversePropertyName = inversePropertyName || null;
62
62
  if (mappedBy !== undefined)
63
63
  newRelation.mappedBy = mappedBy;
64
64
  if (isNullable !== undefined)
@@ -68,17 +68,90 @@ export function createSchemaToolOperations(ENFYRA_API_URL, toolset) {
68
68
  if (description !== undefined)
69
69
  newRelation.description = description;
70
70
  const result = await patchTableAutoConfirm(ENFYRA_API_URL, resolvedSourceTableId, { relations: [...existingRelations, newRelation] });
71
- await verifyRelationCascade(ENFYRA_API_URL, resolvedSourceTableId, beforeIds, {
71
+ const afterRelations = await verifyRelationCascade(ENFYRA_API_URL, resolvedSourceTableId, beforeIds, {
72
72
  action: 'create',
73
73
  propertyName,
74
74
  });
75
+ const savedRelation = afterRelations.find((relation) => relation.propertyName === propertyName);
76
+ const sourceTable = catalog.find((table) => String(getId(table)) === String(resolvedSourceTableId));
77
+ const targetTableRecord = catalog.find((table) => String(getId(table)) === String(resolvedTargetTableId));
75
78
  return jsonContent({
76
79
  action: 'relation_created',
77
- relation: { propertyName, type, sourceTableId: resolvedSourceTableId, targetTableId: resolvedTargetTableId },
80
+ relation: { id: getId(savedRelation), propertyName, type, sourceTableId: resolvedSourceTableId, targetTableId: resolvedTargetTableId },
81
+ ...(!mappedBy ? {
82
+ inverseDecision: buildInverseDecision({
83
+ sourceTableId: resolvedSourceTableId,
84
+ sourceTableName: sourceTable?.name,
85
+ targetTableId: resolvedTargetTableId,
86
+ targetTableName: targetTableRecord?.name,
87
+ relationId: getId(savedRelation),
88
+ propertyName,
89
+ type,
90
+ }),
91
+ } : {}),
78
92
  result,
79
93
  });
80
94
  });
81
95
  }
96
+ async function createInverseRelation({ owningTableId, owningRelationId, owningPropertyName, inversePropertyName, consumer, description, globalRulesAckKey, }) {
97
+ assertGlobalRulesAck(globalRulesAckKey);
98
+ const catalog = await fetchTableCatalog(ENFYRA_API_URL);
99
+ const resolvedOwningTableId = resolveTableIdentifierFromMetadata(catalog, owningTableId, 'owningTableId');
100
+ const owningTable = await fetchTableWithDetails(ENFYRA_API_URL, resolvedOwningTableId);
101
+ const owningRelations = (owningTable.relations || []).map(sanitizeExistingRelationForTablePatch);
102
+ const owningRelation = owningRelations.find((relation) => ((owningRelationId === undefined || String(getId(relation)) === String(owningRelationId)) &&
103
+ (!owningPropertyName || relation.propertyName === owningPropertyName)));
104
+ if (!owningRelation) {
105
+ const relationRef = owningRelationId === undefined ? `'${String(owningPropertyName)}'` : String(owningRelationId);
106
+ throw new Error(`Owning relation ${relationRef} was not found on table ${String(resolvedOwningTableId)}.`);
107
+ }
108
+ if (owningRelation.mappedBy) {
109
+ throw new Error(`Relation ${String(getId(owningRelation))} is already an inverse relation; pass its owning relation instead.`);
110
+ }
111
+ const resolvedTargetTableId = resolveTableIdentifierFromMetadata(catalog, owningRelation.targetTable, 'owning relation targetTable');
112
+ const targetTable = await fetchTableWithDetails(ENFYRA_API_URL, resolvedTargetTableId);
113
+ const targetRelations = (targetTable.relations || []).map(sanitizeExistingRelationForTablePatch);
114
+ const existingInverse = targetRelations.find((relation) => (relation.mappedBy === owningRelation.propertyName &&
115
+ String(relation.targetTable) === String(resolvedOwningTableId)));
116
+ if (existingInverse) {
117
+ throw new Error(`Owning relation ${String(getId(owningRelation))} already has inverse '${String(existingInverse.propertyName)}'.`);
118
+ }
119
+ if (targetRelations.some((relation) => relation.propertyName === inversePropertyName)) {
120
+ throw new Error(`Inverse property '${inversePropertyName}' already exists on table ${String(resolvedTargetTableId)}.`);
121
+ }
122
+ const inverseType = deriveInverseRelationType(owningRelation.type);
123
+ const created = await appendRelationToTable({
124
+ sourceTableId: resolvedTargetTableId,
125
+ targetTableId: resolvedOwningTableId,
126
+ type: inverseType,
127
+ propertyName: inversePropertyName,
128
+ mappedBy: owningRelation.propertyName,
129
+ isNullable: owningRelation.isNullable,
130
+ onDelete: owningRelation.onDelete,
131
+ description,
132
+ allowInverseCreation: true,
133
+ globalRulesAckKey,
134
+ });
135
+ const payload = JSON.parse(created.content[0].text);
136
+ return jsonContent({
137
+ action: 'inverse_relation_created',
138
+ owning: {
139
+ tableId: resolvedOwningTableId,
140
+ relationId: getId(owningRelation),
141
+ propertyName: owningRelation.propertyName,
142
+ type: owningRelation.type,
143
+ },
144
+ inverse: {
145
+ tableId: resolvedTargetTableId,
146
+ relationId: payload.relation?.id,
147
+ propertyName: inversePropertyName,
148
+ type: inverseType,
149
+ mappedBy: owningRelation.propertyName,
150
+ },
151
+ consumer,
152
+ result: payload.result,
153
+ });
154
+ }
82
155
  async function updateRelationConstraints({ globalRulesAckKey, ...args }) {
83
156
  const update = validateRelationConstraintUpdate(args);
84
157
  assertGlobalRulesAck(globalRulesAckKey);
@@ -213,63 +286,6 @@ export function createSchemaToolOperations(ENFYRA_API_URL, toolset) {
213
286
  throw new Error(`Relation ${relationId} was not found on table ${tableId}; refusing schema cascade patch.`);
214
287
  }
215
288
  const target = existingRelations.find((relation) => String(getId(relation)) === String(relationId));
216
- if (target?.mappedBy) {
217
- const owningTableId = target.targetTable;
218
- const owningTable = await fetchTableWithDetails(ENFYRA_API_URL, owningTableId);
219
- if (!owningTable) {
220
- throw new Error(`Owning table ${owningTableId} for inverse relation ${relationId} was not found.`);
221
- }
222
- const owningRelations = (owningTable.relations || []).map(sanitizeExistingRelationForTablePatch);
223
- const owningRelation = owningRelations.find((relation) => relation.propertyName === target.mappedBy &&
224
- String(relation.targetTable) === String(tableId));
225
- if (!owningRelation) {
226
- throw new Error(`Owning relation '${target.mappedBy}' for inverse relation ${relationId} was not found on table ${owningTableId}.`);
227
- }
228
- const detachedRelations = owningRelations.map((relation) => {
229
- if (String(getId(relation)) !== String(getId(owningRelation)))
230
- return relation;
231
- const { inversePropertyName, ...withoutInverse } = relation;
232
- return withoutInverse;
233
- });
234
- if (!confirm) {
235
- return {
236
- content: [{ type: 'text', text: JSON.stringify({
237
- action: 'detach_inverse_relation_preview',
238
- tableId,
239
- relationId,
240
- targetRelation: target,
241
- owningTableId,
242
- owningRelationId: getId(owningRelation),
243
- preservedRelationIds: beforeIds.filter((id) => id !== String(relationId)),
244
- destructive: true,
245
- next: 'Call delete_relations again with the same one-item array and confirm=true to remove the inverse from the owning relation snapshot.',
246
- }, null, 2) }],
247
- };
248
- }
249
- assertGlobalRulesAck(globalRulesAckKey);
250
- const result = await patchTableAutoConfirm(ENFYRA_API_URL, owningTableId, {
251
- relations: detachedRelations,
252
- });
253
- const afterRelations = await verifyRelationCascade(ENFYRA_API_URL, tableId, beforeIds, {
254
- action: 'delete',
255
- relationId,
256
- });
257
- return jsonContent({
258
- action: 'inverse_relation_detached',
259
- tableId,
260
- relationId,
261
- owningTableId,
262
- owningRelationId: getId(owningRelation),
263
- result,
264
- postcondition: {
265
- verificationMethod: 'table_schema_relation_ids',
266
- confirmedAbsent: !afterRelations.some((relation) => String(getId(relation)) === String(relationId)),
267
- remainingRelationIds: afterRelations
268
- .filter((relation) => String(getId(relation)) === String(relationId))
269
- .map(getId),
270
- },
271
- });
272
- }
273
289
  if (!confirm) {
274
290
  return {
275
291
  content: [{ type: 'text', text: JSON.stringify({
@@ -322,7 +338,7 @@ export function createSchemaToolOperations(ENFYRA_API_URL, toolset) {
322
338
  ...(args._requestedTableName ? [{ field: 'name', from: args._requestedTableName, to: args.name, reason: 'Enfyra table names are lowercase.' }] : []),
323
339
  ...normalizations,
324
340
  ];
325
- const allRelations = arrayValue('relations', args.relations).map(normalizeRelationForTablePatch);
341
+ const allRelations = arrayValue('relations', args.relations).map((relation) => assertOwningRelationCreationInput(relation, 'create_tables'));
326
342
  const relationNames = new Set(allRelations.map((relation) => relation.propertyName).filter(Boolean));
327
343
  assertNoColumnRelationNameCollision(normalizedUserColumns.map((column) => String(column.name || '')).filter(Boolean), allRelations.map((relation) => String(relation.propertyName || '')).filter(Boolean), `create_tables item "${args.name}"`);
328
344
  const catalog = await fetchTableCatalog(ENFYRA_API_URL);
@@ -656,6 +672,7 @@ export function createSchemaToolOperations(ENFYRA_API_URL, toolset) {
656
672
  return {
657
673
  appendColumnToTable,
658
674
  appendRelationToTable,
675
+ createInverseRelation,
659
676
  applyDeferredConstraints,
660
677
  arrayValue,
661
678
  createOneTable,