config.schema.json 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. {
  2. "type": "object",
  3. "properties": {
  4. "$schema": {
  5. "type": "string"
  6. },
  7. "theme": {
  8. "type": "string"
  9. },
  10. "keybinds": {
  11. "type": "object",
  12. "properties": {
  13. "leader": {
  14. "type": "string"
  15. },
  16. "help": {
  17. "type": "string"
  18. },
  19. "editor_open": {
  20. "type": "string"
  21. },
  22. "session_new": {
  23. "type": "string"
  24. },
  25. "session_list": {
  26. "type": "string"
  27. },
  28. "session_share": {
  29. "type": "string"
  30. },
  31. "session_interrupt": {
  32. "type": "string"
  33. },
  34. "session_compact": {
  35. "type": "string"
  36. },
  37. "tool_details": {
  38. "type": "string"
  39. },
  40. "model_list": {
  41. "type": "string"
  42. },
  43. "theme_list": {
  44. "type": "string"
  45. },
  46. "project_init": {
  47. "type": "string"
  48. },
  49. "input_clear": {
  50. "type": "string"
  51. },
  52. "input_paste": {
  53. "type": "string"
  54. },
  55. "input_submit": {
  56. "type": "string"
  57. },
  58. "input_newline": {
  59. "type": "string"
  60. },
  61. "history_previous": {
  62. "type": "string"
  63. },
  64. "history_next": {
  65. "type": "string"
  66. },
  67. "messages_page_up": {
  68. "type": "string"
  69. },
  70. "messages_page_down": {
  71. "type": "string"
  72. },
  73. "messages_half_page_up": {
  74. "type": "string"
  75. },
  76. "messages_half_page_down": {
  77. "type": "string"
  78. },
  79. "messages_previous": {
  80. "type": "string"
  81. },
  82. "messages_next": {
  83. "type": "string"
  84. },
  85. "messages_first": {
  86. "type": "string"
  87. },
  88. "messages_last": {
  89. "type": "string"
  90. },
  91. "app_exit": {
  92. "type": "string"
  93. }
  94. },
  95. "additionalProperties": false
  96. },
  97. "autoshare": {
  98. "type": "boolean"
  99. },
  100. "autoupdate": {
  101. "type": "boolean"
  102. },
  103. "disabled_providers": {
  104. "type": "array",
  105. "items": {
  106. "type": "string"
  107. }
  108. },
  109. "provider": {
  110. "type": "object",
  111. "additionalProperties": {
  112. "type": "object",
  113. "properties": {
  114. "api": {
  115. "type": "string"
  116. },
  117. "name": {
  118. "type": "string"
  119. },
  120. "env": {
  121. "type": "array",
  122. "items": {
  123. "type": "string"
  124. }
  125. },
  126. "id": {
  127. "type": "string"
  128. },
  129. "npm": {
  130. "type": "string"
  131. },
  132. "models": {
  133. "type": "object",
  134. "additionalProperties": {
  135. "type": "object",
  136. "properties": {
  137. "name": {
  138. "type": "string"
  139. },
  140. "attachment": {
  141. "type": "boolean"
  142. },
  143. "reasoning": {
  144. "type": "boolean"
  145. },
  146. "temperature": {
  147. "type": "boolean"
  148. },
  149. "cost": {
  150. "type": "object",
  151. "properties": {
  152. "input": {
  153. "type": "number"
  154. },
  155. "output": {
  156. "type": "number"
  157. },
  158. "cache_read": {
  159. "type": "number"
  160. },
  161. "cache_write": {
  162. "type": "number"
  163. }
  164. },
  165. "required": [
  166. "input",
  167. "output"
  168. ],
  169. "additionalProperties": false
  170. },
  171. "limit": {
  172. "type": "object",
  173. "properties": {
  174. "context": {
  175. "type": "number"
  176. },
  177. "output": {
  178. "type": "number"
  179. }
  180. },
  181. "required": [
  182. "context",
  183. "output"
  184. ],
  185. "additionalProperties": false
  186. },
  187. "id": {
  188. "type": "string"
  189. }
  190. },
  191. "additionalProperties": false
  192. }
  193. },
  194. "options": {
  195. "type": "object",
  196. "additionalProperties": {}
  197. }
  198. },
  199. "required": [
  200. "models"
  201. ],
  202. "additionalProperties": false
  203. }
  204. },
  205. "mcp": {
  206. "type": "object",
  207. "additionalProperties": {
  208. "anyOf": [
  209. {
  210. "type": "object",
  211. "properties": {
  212. "type": {
  213. "type": "string",
  214. "const": "local"
  215. },
  216. "command": {
  217. "type": "array",
  218. "items": {
  219. "type": "string"
  220. }
  221. },
  222. "environment": {
  223. "type": "object",
  224. "additionalProperties": {
  225. "type": "string"
  226. }
  227. }
  228. },
  229. "required": [
  230. "type",
  231. "command"
  232. ],
  233. "additionalProperties": false
  234. },
  235. {
  236. "type": "object",
  237. "properties": {
  238. "type": {
  239. "type": "string",
  240. "const": "remote"
  241. },
  242. "url": {
  243. "type": "string"
  244. }
  245. },
  246. "required": [
  247. "type",
  248. "url"
  249. ],
  250. "additionalProperties": false
  251. }
  252. ]
  253. }
  254. }
  255. },
  256. "additionalProperties": false,
  257. "$schema": "http://json-schema.org/draft-07/schema#"
  258. }