tf_code/schemas/tfcode.schema.json
Gab abdfa7330e 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
2026-03-24 13:02:06 +11:00

119 lines
3.3 KiB
JSON

{
"$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" }
}
}
}
}
}
}