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

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