UNPKG

@gsb-core/mcp-tools

Version:

Shared tools for GSB MCP implementations

157 lines 4.66 kB
import { EntityDefService } from '@gsb-core/core'; import { SchemaManagerService } from '@gsb-core/core'; const entityDefService = EntityDefService.getInstance(false); const schemaManagerService = SchemaManagerService.getInstance(false); export const gsbEntityDefTools = { /** * Gets common property definitions that can be used when creating entity properties */ getCommonPropertyDefs: async ({ token, tenantCode }) => { return EntityDefService.PROPERTY_DEFINITIONS; }, /** * Creates a new entity definition with the specified schema */ createEntityDef: async ({ entityDef, token, tenantCode }) => { try { const result = await entityDefService.createEntityDef(entityDef, token, tenantCode); return { id: result, success: true }; } catch (error) { return { ...error, success: false }; } }, /** * Updates an existing entity definition */ updateEntityDef: async ({ entityDef, token, tenantCode }) => { try { if (!entityDef.id) { return { success: false, error: 'Entity definition ID is required for update' }; } const result = await entityDefService.updateEntityDef(entityDef, token, tenantCode); return { success: result }; } catch (error) { return { ...error, success: false }; } }, /** * Adds a new property to an entity definition */ addProperty: async ({ property, entityDef, token, tenantCode }) => { try { const result = await entityDefService.addProperty(property, entityDef, token, tenantCode); return { success: result }; } catch (error) { return { ...error, success: false }; } }, /** * Removes a property from an entity definition */ removeProperty: async ({ property, entityDef, token, tenantCode }) => { try { const result = await entityDefService.removeProperty(property, entityDef, token, tenantCode); return { success: result }; } catch (error) { return { ...error, success: false }; } }, /** * Updates an existing property in an entity definition */ updateProperty: async ({ property, entityDef, token, tenantCode }) => { try { // Ensure the property has the propertyName value set const result = await entityDefService.updateProperty(property, entityDef, token, tenantCode); return { success: result }; } catch (error) { return { ...error, success: false }; } }, /** * Gets an entity definition by ID */ getEntityDef: async ({ entityDef, token, tenantCode }) => { try { const result = await entityDefService.getEntityDef(entityDef, token, tenantCode); return { entityDef: result, success: true }; } catch (error) { return { ...error, success: false }; } }, /** * Queries entity definitions */ queryEntityDefs: async ({ searchTerm, page, pageSize, includeSystem, token, tenantCode }) => { try { const result = await entityDefService.searchEntityDefs(searchTerm, page, pageSize, includeSystem, token, tenantCode); return { ...result, success: true }; } catch (error) { return { ...error, success: false }; } }, /** * Creates or updates schema entities and properties */ createOrUpdateSchema: async ({ entityDefs, token, tenantCode }) => { try { const result = await schemaManagerService.createOrUpdateSchema(entityDefs, token || '', tenantCode || ''); return { ...result, success: true }; } catch (error) { return { ...error, success: false }; } } }; //# sourceMappingURL=gsb-entity-def-tools.js.map