oh-my-opencode-slim.schema.json 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  1. {
  2. "$schema": "https://json-schema.org/draft/2020-12/schema",
  3. "type": "object",
  4. "properties": {
  5. "preset": {
  6. "type": "string"
  7. },
  8. "setDefaultAgent": {
  9. "type": "boolean"
  10. },
  11. "scoringEngineVersion": {
  12. "type": "string",
  13. "enum": ["v1", "v2-shadow", "v2"]
  14. },
  15. "balanceProviderUsage": {
  16. "type": "boolean"
  17. },
  18. "manualPlan": {
  19. "type": "object",
  20. "properties": {
  21. "orchestrator": {
  22. "type": "object",
  23. "properties": {
  24. "primary": {
  25. "type": "string",
  26. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  27. },
  28. "fallback1": {
  29. "type": "string",
  30. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  31. },
  32. "fallback2": {
  33. "type": "string",
  34. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  35. },
  36. "fallback3": {
  37. "type": "string",
  38. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  39. }
  40. },
  41. "required": ["primary", "fallback1", "fallback2", "fallback3"]
  42. },
  43. "oracle": {
  44. "type": "object",
  45. "properties": {
  46. "primary": {
  47. "type": "string",
  48. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  49. },
  50. "fallback1": {
  51. "type": "string",
  52. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  53. },
  54. "fallback2": {
  55. "type": "string",
  56. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  57. },
  58. "fallback3": {
  59. "type": "string",
  60. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  61. }
  62. },
  63. "required": ["primary", "fallback1", "fallback2", "fallback3"]
  64. },
  65. "designer": {
  66. "type": "object",
  67. "properties": {
  68. "primary": {
  69. "type": "string",
  70. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  71. },
  72. "fallback1": {
  73. "type": "string",
  74. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  75. },
  76. "fallback2": {
  77. "type": "string",
  78. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  79. },
  80. "fallback3": {
  81. "type": "string",
  82. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  83. }
  84. },
  85. "required": ["primary", "fallback1", "fallback2", "fallback3"]
  86. },
  87. "explorer": {
  88. "type": "object",
  89. "properties": {
  90. "primary": {
  91. "type": "string",
  92. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  93. },
  94. "fallback1": {
  95. "type": "string",
  96. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  97. },
  98. "fallback2": {
  99. "type": "string",
  100. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  101. },
  102. "fallback3": {
  103. "type": "string",
  104. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  105. }
  106. },
  107. "required": ["primary", "fallback1", "fallback2", "fallback3"]
  108. },
  109. "librarian": {
  110. "type": "object",
  111. "properties": {
  112. "primary": {
  113. "type": "string",
  114. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  115. },
  116. "fallback1": {
  117. "type": "string",
  118. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  119. },
  120. "fallback2": {
  121. "type": "string",
  122. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  123. },
  124. "fallback3": {
  125. "type": "string",
  126. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  127. }
  128. },
  129. "required": ["primary", "fallback1", "fallback2", "fallback3"]
  130. },
  131. "fixer": {
  132. "type": "object",
  133. "properties": {
  134. "primary": {
  135. "type": "string",
  136. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  137. },
  138. "fallback1": {
  139. "type": "string",
  140. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  141. },
  142. "fallback2": {
  143. "type": "string",
  144. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  145. },
  146. "fallback3": {
  147. "type": "string",
  148. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  149. }
  150. },
  151. "required": ["primary", "fallback1", "fallback2", "fallback3"]
  152. }
  153. },
  154. "required": [
  155. "orchestrator",
  156. "oracle",
  157. "designer",
  158. "explorer",
  159. "librarian",
  160. "fixer"
  161. ],
  162. "additionalProperties": false
  163. },
  164. "presets": {
  165. "type": "object",
  166. "propertyNames": {
  167. "type": "string"
  168. },
  169. "additionalProperties": {
  170. "type": "object",
  171. "propertyNames": {
  172. "type": "string"
  173. },
  174. "additionalProperties": {
  175. "type": "object",
  176. "properties": {
  177. "model": {
  178. "anyOf": [
  179. {
  180. "type": "string"
  181. },
  182. {
  183. "type": "array",
  184. "items": {
  185. "anyOf": [
  186. {
  187. "type": "string"
  188. },
  189. {
  190. "type": "object",
  191. "properties": {
  192. "id": {
  193. "type": "string"
  194. },
  195. "variant": {
  196. "type": "string"
  197. }
  198. },
  199. "required": ["id"]
  200. }
  201. ]
  202. }
  203. }
  204. ]
  205. },
  206. "temperature": {
  207. "type": "number",
  208. "minimum": 0,
  209. "maximum": 2
  210. },
  211. "variant": {
  212. "type": "string"
  213. },
  214. "skills": {
  215. "type": "array",
  216. "items": {
  217. "type": "string"
  218. }
  219. },
  220. "mcps": {
  221. "type": "array",
  222. "items": {
  223. "type": "string"
  224. }
  225. }
  226. }
  227. }
  228. }
  229. },
  230. "agents": {
  231. "type": "object",
  232. "propertyNames": {
  233. "type": "string"
  234. },
  235. "additionalProperties": {
  236. "type": "object",
  237. "properties": {
  238. "model": {
  239. "anyOf": [
  240. {
  241. "type": "string"
  242. },
  243. {
  244. "type": "array",
  245. "items": {
  246. "anyOf": [
  247. {
  248. "type": "string"
  249. },
  250. {
  251. "type": "object",
  252. "properties": {
  253. "id": {
  254. "type": "string"
  255. },
  256. "variant": {
  257. "type": "string"
  258. }
  259. },
  260. "required": ["id"]
  261. }
  262. ]
  263. }
  264. }
  265. ]
  266. },
  267. "temperature": {
  268. "type": "number",
  269. "minimum": 0,
  270. "maximum": 2
  271. },
  272. "variant": {
  273. "type": "string"
  274. },
  275. "skills": {
  276. "type": "array",
  277. "items": {
  278. "type": "string"
  279. }
  280. },
  281. "mcps": {
  282. "type": "array",
  283. "items": {
  284. "type": "string"
  285. }
  286. }
  287. }
  288. }
  289. },
  290. "disabled_mcps": {
  291. "type": "array",
  292. "items": {
  293. "type": "string"
  294. }
  295. },
  296. "tmux": {
  297. "type": "object",
  298. "properties": {
  299. "enabled": {
  300. "default": false,
  301. "type": "boolean"
  302. },
  303. "layout": {
  304. "default": "main-vertical",
  305. "type": "string",
  306. "enum": [
  307. "main-horizontal",
  308. "main-vertical",
  309. "tiled",
  310. "even-horizontal",
  311. "even-vertical"
  312. ]
  313. },
  314. "main_pane_size": {
  315. "default": 60,
  316. "type": "number",
  317. "minimum": 20,
  318. "maximum": 80
  319. }
  320. }
  321. },
  322. "background": {
  323. "type": "object",
  324. "properties": {
  325. "maxConcurrentStarts": {
  326. "default": 10,
  327. "type": "number",
  328. "minimum": 1,
  329. "maximum": 50
  330. }
  331. }
  332. },
  333. "fallback": {
  334. "type": "object",
  335. "properties": {
  336. "enabled": {
  337. "default": true,
  338. "type": "boolean"
  339. },
  340. "timeoutMs": {
  341. "default": 15000,
  342. "type": "number",
  343. "minimum": 0
  344. },
  345. "retryDelayMs": {
  346. "default": 500,
  347. "type": "number",
  348. "minimum": 0
  349. },
  350. "chains": {
  351. "default": {},
  352. "type": "object",
  353. "properties": {
  354. "orchestrator": {
  355. "minItems": 1,
  356. "type": "array",
  357. "items": {
  358. "type": "string"
  359. }
  360. },
  361. "oracle": {
  362. "minItems": 1,
  363. "type": "array",
  364. "items": {
  365. "type": "string"
  366. }
  367. },
  368. "designer": {
  369. "minItems": 1,
  370. "type": "array",
  371. "items": {
  372. "type": "string"
  373. }
  374. },
  375. "explorer": {
  376. "minItems": 1,
  377. "type": "array",
  378. "items": {
  379. "type": "string"
  380. }
  381. },
  382. "librarian": {
  383. "minItems": 1,
  384. "type": "array",
  385. "items": {
  386. "type": "string"
  387. }
  388. },
  389. "fixer": {
  390. "minItems": 1,
  391. "type": "array",
  392. "items": {
  393. "type": "string"
  394. }
  395. }
  396. },
  397. "additionalProperties": {
  398. "minItems": 1,
  399. "type": "array",
  400. "items": {
  401. "type": "string"
  402. }
  403. }
  404. }
  405. }
  406. }
  407. },
  408. "title": "oh-my-opencode-slim",
  409. "description": "Configuration schema for oh-my-opencode-slim plugin for OpenCode"
  410. }