mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-07 17:28:53 +00:00
feat: initialize tfcode project structure
- Add README.md as living documentation - Add tfcode.json schema and config template - Add FORK_MANAGEMENT.md with mirror-based fork strategy - Add scripts/rebrand.sh for reapplying branding after upstream merges - Add packages/tf-sync Python module using official ToothFairyAI SDK - Add packages/tf-mcp-bridge TypeScript module (stub) - Multi-region support (AU, EU, US) - Tool sync: MCP servers, Agent Skills, Database Scripts, API Functions
This commit is contained in:
119
schemas/tfcode.schema.json
Normal file
119
schemas/tfcode.schema.json
Normal file
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"$schema": "https://toothfairyai.com/schemas/tfcode.json",
|
||||
"$defs": {
|
||||
"ToolType": {
|
||||
"type": "string",
|
||||
"enum": ["mcp_server", "agent_skill", "database_script", "api_function"]
|
||||
},
|
||||
"FunctionRequestType": {
|
||||
"type": "string",
|
||||
"enum": ["get", "post", "put", "delete", "patch", "custom", "graphql_query", "graphql_mutation"]
|
||||
},
|
||||
"AuthVia": {
|
||||
"type": "string",
|
||||
"enum": ["tf_proxy", "user_provided"]
|
||||
},
|
||||
"Tool": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": { "$ref": "#/$defs/ToolType" },
|
||||
"isMCPServer": { "type": "boolean" },
|
||||
"isAgentSkill": { "type": "boolean" },
|
||||
"isDatabaseScript": { "type": "boolean" },
|
||||
"requestType": { "$ref": "#/$defs/FunctionRequestType" },
|
||||
"url": { "type": "string" },
|
||||
"auth_via": { "$ref": "#/$defs/AuthVia" },
|
||||
"api_key": { "type": "string" },
|
||||
"tools": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"description": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema": { "type": "string" },
|
||||
"toothfairy": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": { "type": "boolean", "default": true },
|
||||
"workspace_id": { "type": "string" },
|
||||
"api_key": { "type": "string" },
|
||||
"region": {
|
||||
"type": "string",
|
||||
"enum": ["au", "eu", "us"],
|
||||
"default": "au"
|
||||
},
|
||||
"sync": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"on_startup": { "type": "boolean", "default": true },
|
||||
"interval": { "type": "integer", "default": 3600 },
|
||||
"tools": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"types": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "enum": ["mcp", "skill", "database", "function"] }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"mcp_proxy": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"url": { "type": "string" },
|
||||
"timeout": { "type": "integer", "default": 30000 }
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["workspace_id", "api_key"]
|
||||
},
|
||||
"tools": {
|
||||
"type": "object",
|
||||
"additionalProperties": { "$ref": "#/$defs/Tool" }
|
||||
},
|
||||
"agent": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mode": { "type": "string", "enum": ["primary", "subagent"] },
|
||||
"model": { "type": "string" },
|
||||
"temperature": { "type": "number" },
|
||||
"description": { "type": "string" },
|
||||
"prompt": { "type": "string" },
|
||||
"tools": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"mcp": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"model": { "type": "string" },
|
||||
"autoupdate": { "type": "boolean" },
|
||||
"formatter": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"command": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"extensions": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user