@gsb-core/mcp-tools
Version:
Shared tools for GSB MCP implementations
157 lines • 4.66 kB
JavaScript
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