import { commonSchemas } from '../catalog/tool-definition-utils.js'; import type { ToolDefinition } from './core-tool-definition.js'; export const manageAssetToolDefinition: ToolDefinition = { name: 'manage_asset', category: 'core', description: 'Create/import/manage assets, material graphs, material instances, procedural textures, render targets, and dependency analysis.', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: [ 'list', 'import', 'duplicate', 'duplicate_asset', 'rename', 'rename_asset', 'move', 'move_asset', 'delete', 'delete_asset', 'delete_assets', 'create_folder', 'search_assets', 'get_dependencies', 'get_source_control_state', 'analyze_graph', 'get_asset_graph', 'create_thumbnail', 'set_tags', 'get_metadata', 'set_metadata', 'validate', 'fixup_redirectors', 'find_by_tag', 'generate_report', 'create_material', 'create_material_instance', 'create_render_target', 'generate_lods', 'add_material_parameter', 'list_instances', 'reset_instance_parameters', 'exists', 'get_material_stats', 'nanite_rebuild_mesh', 'bulk_rename', 'bulk_delete', 'source_control_checkout', 'source_control_submit', 'add_material_node', 'connect_material_pins', 'remove_material_node', 'break_material_connections', 'get_material_node_details', 'rebuild_material' ], description: 'Action to perform' }, assetPath: commonSchemas.assetPath, directory: commonSchemas.directoryPath, classNames: commonSchemas.arrayOfStrings, packagePaths: commonSchemas.arrayOfStrings, recursivePaths: commonSchemas.booleanProp, recursiveClasses: commonSchemas.booleanProp, limit: commonSchemas.numberProp, timeoutMs: commonSchemas.numberProp, sourcePath: commonSchemas.sourcePath, destinationPath: commonSchemas.destinationPath, assetPaths: commonSchemas.arrayOfStrings, lodCount: commonSchemas.numberProp, reductionSettings: commonSchemas.objectProp, nodeName: commonSchemas.name, eventName: commonSchemas.eventName, memberClass: commonSchemas.stringProp, posX: commonSchemas.numberProp, posY: commonSchemas.numberProp, newName: commonSchemas.newName, overwrite: commonSchemas.overwrite, save: commonSchemas.save, fixupRedirectors: commonSchemas.booleanProp, directoryPath: commonSchemas.directoryPath, name: commonSchemas.name, path: commonSchemas.directoryPath, parentMaterial: commonSchemas.materialPath, parameters: commonSchemas.objectProp, width: commonSchemas.numberProp, height: commonSchemas.numberProp, format: commonSchemas.stringProp, meshPath: commonSchemas.meshPath, tag: commonSchemas.tagName, metadata: commonSchemas.objectProp, graphName: commonSchemas.graphName, nodeType: commonSchemas.stringProp, nodeId: commonSchemas.nodeId, sourceNodeId: commonSchemas.sourceNodeId, targetNodeId: commonSchemas.targetNodeId, inputName: commonSchemas.pinName, fromNodeId: commonSchemas.sourceNodeId, fromPin: commonSchemas.sourcePin, toNodeId: commonSchemas.targetNodeId, toPin: commonSchemas.targetPin, parameterName: commonSchemas.parameterName, value: commonSchemas.value, x: commonSchemas.numberProp, y: commonSchemas.numberProp, comment: commonSchemas.stringProp, parentNodeId: commonSchemas.nodeId, childNodeId: commonSchemas.nodeId, maxDepth: commonSchemas.numberProp, prefix: commonSchemas.stringProp, suffix: commonSchemas.stringProp, searchText: commonSchemas.stringProp, replaceText: commonSchemas.stringProp, paths: commonSchemas.arrayOfStrings, description: commonSchemas.stringProp, checkoutFiles: commonSchemas.booleanProp, showConfirmation: commonSchemas.booleanProp, pinName: commonSchemas.pinName, desc: commonSchemas.stringProp, materialPath: commonSchemas.materialPath, texturePath: commonSchemas.texturePath, expressionClass: commonSchemas.stringProp, coordinateIndex: commonSchemas.numberProp, parameterType: commonSchemas.stringProp, nodes: commonSchemas.arrayOfObjects, tags: commonSchemas.arrayOfStrings, folderPath: commonSchemas.directoryPath, sourceNode: commonSchemas.sourceNodeId, targetNode: commonSchemas.targetNodeId, outputPin: commonSchemas.sourcePin, inputPin: commonSchemas.targetPin, type: commonSchemas.stringProp, defaultValue: commonSchemas.value, expressionIndex: commonSchemas.nodeId }, required: ['action'] }, outputSchema: { type: 'object', properties: { ...commonSchemas.outputBase, assets: commonSchemas.arrayOfObjects, paths: commonSchemas.arrayOfStrings, path: commonSchemas.stringProp, nodeId: commonSchemas.nodeId, details: commonSchemas.objectProp } } };