crush-schema.json 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "definitions": {
  4. "agent": {
  5. "description": "Agent configuration",
  6. "properties": {
  7. "maxTokens": {
  8. "description": "Maximum tokens for the agent",
  9. "minimum": 1,
  10. "type": "integer"
  11. },
  12. "model": {
  13. "description": "Model ID for the agent",
  14. "enum": [
  15. "gpt-4.1",
  16. "llama-3.3-70b-versatile",
  17. "azure.gpt-4.1",
  18. "openrouter.gpt-4o",
  19. "openrouter.o1-mini",
  20. "openrouter.claude-3-haiku",
  21. "claude-3-opus",
  22. "gpt-4o",
  23. "gpt-4o-mini",
  24. "o1",
  25. "meta-llama/llama-4-maverick-17b-128e-instruct",
  26. "azure.o3-mini",
  27. "openrouter.gpt-4o-mini",
  28. "openrouter.o1",
  29. "claude-3.5-haiku",
  30. "o4-mini",
  31. "azure.gpt-4.1-mini",
  32. "openrouter.o3",
  33. "grok-3-beta",
  34. "o3-mini",
  35. "qwen-qwq",
  36. "azure.o1",
  37. "openrouter.gemini-2.5-flash",
  38. "openrouter.gemini-2.5",
  39. "o1-mini",
  40. "azure.gpt-4o",
  41. "openrouter.gpt-4.1-mini",
  42. "openrouter.claude-3.5-sonnet",
  43. "openrouter.o3-mini",
  44. "gpt-4.1-mini",
  45. "gpt-4.5-preview",
  46. "gpt-4.1-nano",
  47. "deepseek-r1-distill-llama-70b",
  48. "azure.gpt-4o-mini",
  49. "openrouter.gpt-4.1",
  50. "bedrock.claude-3.7-sonnet",
  51. "claude-3-haiku",
  52. "o3",
  53. "gemini-2.0-flash-lite",
  54. "azure.o3",
  55. "azure.gpt-4.5-preview",
  56. "openrouter.claude-3-opus",
  57. "grok-3-mini-fast-beta",
  58. "claude-4-sonnet",
  59. "azure.o4-mini",
  60. "grok-3-fast-beta",
  61. "claude-3.5-sonnet",
  62. "azure.o1-mini",
  63. "openrouter.claude-3.7-sonnet",
  64. "openrouter.gpt-4.5-preview",
  65. "grok-3-mini-beta",
  66. "claude-3.7-sonnet",
  67. "gemini-2.0-flash",
  68. "openrouter.deepseek-r1-free",
  69. "vertexai.gemini-2.5-flash",
  70. "vertexai.gemini-2.5",
  71. "o1-pro",
  72. "gemini-2.5",
  73. "meta-llama/llama-4-scout-17b-16e-instruct",
  74. "azure.gpt-4.1-nano",
  75. "openrouter.gpt-4.1-nano",
  76. "gemini-2.5-flash",
  77. "openrouter.o4-mini",
  78. "openrouter.claude-3.5-haiku",
  79. "claude-4-opus",
  80. "openrouter.o1-pro"
  81. ],
  82. "type": "string"
  83. },
  84. "reasoningEffort": {
  85. "description": "Reasoning effort for models that support it (OpenAI, Anthropic)",
  86. "enum": [
  87. "low",
  88. "medium",
  89. "high"
  90. ],
  91. "type": "string"
  92. }
  93. },
  94. "required": [
  95. "model"
  96. ],
  97. "type": "object"
  98. }
  99. },
  100. "description": "Configuration schema for the Crush application",
  101. "properties": {
  102. "agents": {
  103. "additionalProperties": {
  104. "description": "Agent configuration",
  105. "properties": {
  106. "maxTokens": {
  107. "description": "Maximum tokens for the agent",
  108. "minimum": 1,
  109. "type": "integer"
  110. },
  111. "model": {
  112. "description": "Model ID for the agent",
  113. "enum": [
  114. "gpt-4.1",
  115. "llama-3.3-70b-versatile",
  116. "azure.gpt-4.1",
  117. "openrouter.gpt-4o",
  118. "openrouter.o1-mini",
  119. "openrouter.claude-3-haiku",
  120. "claude-3-opus",
  121. "gpt-4o",
  122. "gpt-4o-mini",
  123. "o1",
  124. "meta-llama/llama-4-maverick-17b-128e-instruct",
  125. "azure.o3-mini",
  126. "openrouter.gpt-4o-mini",
  127. "openrouter.o1",
  128. "claude-3.5-haiku",
  129. "o4-mini",
  130. "azure.gpt-4.1-mini",
  131. "openrouter.o3",
  132. "grok-3-beta",
  133. "o3-mini",
  134. "qwen-qwq",
  135. "azure.o1",
  136. "openrouter.gemini-2.5-flash",
  137. "openrouter.gemini-2.5",
  138. "o1-mini",
  139. "azure.gpt-4o",
  140. "openrouter.gpt-4.1-mini",
  141. "openrouter.claude-3.5-sonnet",
  142. "openrouter.o3-mini",
  143. "gpt-4.1-mini",
  144. "gpt-4.5-preview",
  145. "gpt-4.1-nano",
  146. "deepseek-r1-distill-llama-70b",
  147. "azure.gpt-4o-mini",
  148. "openrouter.gpt-4.1",
  149. "bedrock.claude-3.7-sonnet",
  150. "claude-3-haiku",
  151. "o3",
  152. "gemini-2.0-flash-lite",
  153. "azure.o3",
  154. "azure.gpt-4.5-preview",
  155. "openrouter.claude-3-opus",
  156. "grok-3-mini-fast-beta",
  157. "claude-4-sonnet",
  158. "azure.o4-mini",
  159. "grok-3-fast-beta",
  160. "claude-3.5-sonnet",
  161. "azure.o1-mini",
  162. "openrouter.claude-3.7-sonnet",
  163. "openrouter.gpt-4.5-preview",
  164. "grok-3-mini-beta",
  165. "claude-3.7-sonnet",
  166. "gemini-2.0-flash",
  167. "openrouter.deepseek-r1-free",
  168. "vertexai.gemini-2.5-flash",
  169. "vertexai.gemini-2.5",
  170. "o1-pro",
  171. "gemini-2.5",
  172. "meta-llama/llama-4-scout-17b-16e-instruct",
  173. "azure.gpt-4.1-nano",
  174. "openrouter.gpt-4.1-nano",
  175. "gemini-2.5-flash",
  176. "openrouter.o4-mini",
  177. "openrouter.claude-3.5-haiku",
  178. "claude-4-opus",
  179. "openrouter.o1-pro"
  180. ],
  181. "type": "string"
  182. },
  183. "reasoningEffort": {
  184. "description": "Reasoning effort for models that support it (OpenAI, Anthropic)",
  185. "enum": [
  186. "low",
  187. "medium",
  188. "high"
  189. ],
  190. "type": "string"
  191. }
  192. },
  193. "required": [
  194. "model"
  195. ],
  196. "type": "object"
  197. },
  198. "description": "Agent configurations",
  199. "properties": {
  200. "coder": {
  201. "$ref": "#/definitions/agent"
  202. },
  203. "task": {
  204. "$ref": "#/definitions/agent"
  205. },
  206. "title": {
  207. "$ref": "#/definitions/agent"
  208. }
  209. },
  210. "type": "object"
  211. },
  212. "contextPaths": {
  213. "default": [
  214. ".github/copilot-instructions.md",
  215. ".cursorrules",
  216. ".cursor/rules/",
  217. "CLAUDE.md",
  218. "CLAUDE.local.md",
  219. "crush.md",
  220. "crush.local.md",
  221. "Crush.md",
  222. "Crush.local.md",
  223. "CRUSH.md",
  224. "CRUSH.local.md"
  225. ],
  226. "description": "Context paths for the application",
  227. "items": {
  228. "type": "string"
  229. },
  230. "type": "array"
  231. },
  232. "data": {
  233. "description": "Storage configuration",
  234. "properties": {
  235. "directory": {
  236. "default": ".crush",
  237. "description": "Directory where application data is stored",
  238. "type": "string"
  239. }
  240. },
  241. "required": [
  242. "directory"
  243. ],
  244. "type": "object"
  245. },
  246. "debug": {
  247. "default": false,
  248. "description": "Enable debug mode",
  249. "type": "boolean"
  250. },
  251. "debugLSP": {
  252. "default": false,
  253. "description": "Enable LSP debug mode",
  254. "type": "boolean"
  255. },
  256. "lsp": {
  257. "additionalProperties": {
  258. "description": "LSP configuration for a language",
  259. "properties": {
  260. "args": {
  261. "description": "Command arguments for the LSP server",
  262. "items": {
  263. "type": "string"
  264. },
  265. "type": "array"
  266. },
  267. "command": {
  268. "description": "Command to execute for the LSP server",
  269. "type": "string"
  270. },
  271. "disabled": {
  272. "default": false,
  273. "description": "Whether the LSP is disabled",
  274. "type": "boolean"
  275. },
  276. "options": {
  277. "description": "Additional options for the LSP server",
  278. "type": "object"
  279. }
  280. },
  281. "required": [
  282. "command"
  283. ],
  284. "type": "object"
  285. },
  286. "description": "Language Server Protocol configurations",
  287. "type": "object"
  288. },
  289. "mcpServers": {
  290. "additionalProperties": {
  291. "description": "MCP server configuration",
  292. "properties": {
  293. "args": {
  294. "description": "Command arguments for the MCP server",
  295. "items": {
  296. "type": "string"
  297. },
  298. "type": "array"
  299. },
  300. "command": {
  301. "description": "Command to execute for the MCP server",
  302. "type": "string"
  303. },
  304. "env": {
  305. "description": "Environment variables for the MCP server",
  306. "items": {
  307. "type": "string"
  308. },
  309. "type": "array"
  310. },
  311. "headers": {
  312. "additionalProperties": {
  313. "type": "string"
  314. },
  315. "description": "HTTP headers for SSE type MCP servers",
  316. "type": "object"
  317. },
  318. "type": {
  319. "default": "stdio",
  320. "description": "Type of MCP server",
  321. "enum": [
  322. "stdio",
  323. "sse"
  324. ],
  325. "type": "string"
  326. },
  327. "url": {
  328. "description": "URL for SSE type MCP servers",
  329. "type": "string"
  330. }
  331. },
  332. "required": [
  333. "command"
  334. ],
  335. "type": "object"
  336. },
  337. "description": "Model Control Protocol server configurations",
  338. "type": "object"
  339. },
  340. "providers": {
  341. "additionalProperties": {
  342. "description": "Provider configuration",
  343. "properties": {
  344. "apiKey": {
  345. "description": "API key for the provider",
  346. "type": "string"
  347. },
  348. "disabled": {
  349. "default": false,
  350. "description": "Whether the provider is disabled",
  351. "type": "boolean"
  352. },
  353. "provider": {
  354. "description": "Provider type",
  355. "enum": [
  356. "anthropic",
  357. "openai",
  358. "gemini",
  359. "groq",
  360. "openrouter",
  361. "bedrock",
  362. "azure",
  363. "vertexai"
  364. ],
  365. "type": "string"
  366. }
  367. },
  368. "type": "object"
  369. },
  370. "description": "LLM provider configurations",
  371. "type": "object"
  372. },
  373. "tui": {
  374. "description": "Terminal User Interface configuration",
  375. "properties": {
  376. "theme": {
  377. "default": "crush",
  378. "description": "TUI theme name",
  379. "enum": [
  380. "crush",
  381. "catppuccin",
  382. "dracula",
  383. "flexoki",
  384. "gruvbox",
  385. "monokai",
  386. "onedark",
  387. "tokyonight",
  388. "tron"
  389. ],
  390. "type": "string"
  391. }
  392. },
  393. "type": "object"
  394. },
  395. "wd": {
  396. "description": "Working directory for the application",
  397. "type": "string"
  398. }
  399. },
  400. "title": "Crush Configuration",
  401. "type": "object"
  402. }