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. "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. "cartography": {
  154. "type": "object",
  155. "properties": {
  156. "primary": {
  157. "type": "string",
  158. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  159. },
  160. "fallback1": {
  161. "type": "string",
  162. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  163. },
  164. "fallback2": {
  165. "type": "string",
  166. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  167. },
  168. "fallback3": {
  169. "type": "string",
  170. "pattern": "^[^/\\s]+\\/[^\\s]+$"
  171. }
  172. },
  173. "required": ["primary", "fallback1", "fallback2", "fallback3"]
  174. }
  175. },
  176. "required": [
  177. "orchestrator",
  178. "oracle",
  179. "designer",
  180. "explorer",
  181. "librarian",
  182. "fixer",
  183. "cartography"
  184. ],
  185. "additionalProperties": false
  186. },
  187. "presets": {
  188. "type": "object",
  189. "propertyNames": {
  190. "type": "string"
  191. },
  192. "additionalProperties": {
  193. "type": "object",
  194. "propertyNames": {
  195. "type": "string"
  196. },
  197. "additionalProperties": {
  198. "type": "object",
  199. "properties": {
  200. "model": {
  201. "anyOf": [
  202. {
  203. "type": "string"
  204. },
  205. {
  206. "type": "array",
  207. "items": {
  208. "anyOf": [
  209. {
  210. "type": "string"
  211. },
  212. {
  213. "type": "object",
  214. "properties": {
  215. "id": {
  216. "type": "string"
  217. },
  218. "variant": {
  219. "type": "string"
  220. }
  221. },
  222. "required": ["id"]
  223. }
  224. ]
  225. }
  226. }
  227. ]
  228. },
  229. "temperature": {
  230. "type": "number",
  231. "minimum": 0,
  232. "maximum": 2
  233. },
  234. "variant": {
  235. "type": "string"
  236. },
  237. "skills": {
  238. "type": "array",
  239. "items": {
  240. "type": "string"
  241. }
  242. },
  243. "mcps": {
  244. "type": "array",
  245. "items": {
  246. "type": "string"
  247. }
  248. }
  249. }
  250. }
  251. }
  252. },
  253. "agents": {
  254. "type": "object",
  255. "propertyNames": {
  256. "type": "string"
  257. },
  258. "additionalProperties": {
  259. "type": "object",
  260. "properties": {
  261. "model": {
  262. "anyOf": [
  263. {
  264. "type": "string"
  265. },
  266. {
  267. "type": "array",
  268. "items": {
  269. "anyOf": [
  270. {
  271. "type": "string"
  272. },
  273. {
  274. "type": "object",
  275. "properties": {
  276. "id": {
  277. "type": "string"
  278. },
  279. "variant": {
  280. "type": "string"
  281. }
  282. },
  283. "required": ["id"]
  284. }
  285. ]
  286. }
  287. }
  288. ]
  289. },
  290. "temperature": {
  291. "type": "number",
  292. "minimum": 0,
  293. "maximum": 2
  294. },
  295. "variant": {
  296. "type": "string"
  297. },
  298. "skills": {
  299. "type": "array",
  300. "items": {
  301. "type": "string"
  302. }
  303. },
  304. "mcps": {
  305. "type": "array",
  306. "items": {
  307. "type": "string"
  308. }
  309. }
  310. }
  311. }
  312. },
  313. "disabled_mcps": {
  314. "type": "array",
  315. "items": {
  316. "type": "string"
  317. }
  318. },
  319. "tmux": {
  320. "type": "object",
  321. "properties": {
  322. "enabled": {
  323. "default": false,
  324. "type": "boolean"
  325. },
  326. "layout": {
  327. "default": "main-vertical",
  328. "type": "string",
  329. "enum": [
  330. "main-horizontal",
  331. "main-vertical",
  332. "tiled",
  333. "even-horizontal",
  334. "even-vertical"
  335. ]
  336. },
  337. "main_pane_size": {
  338. "default": 60,
  339. "type": "number",
  340. "minimum": 20,
  341. "maximum": 80
  342. }
  343. }
  344. },
  345. "background": {
  346. "type": "object",
  347. "properties": {
  348. "maxConcurrentStarts": {
  349. "default": 10,
  350. "type": "number",
  351. "minimum": 1,
  352. "maximum": 50
  353. }
  354. }
  355. },
  356. "fallback": {
  357. "type": "object",
  358. "properties": {
  359. "enabled": {
  360. "default": true,
  361. "type": "boolean"
  362. },
  363. "timeoutMs": {
  364. "default": 15000,
  365. "type": "number",
  366. "minimum": 0
  367. },
  368. "retryDelayMs": {
  369. "default": 500,
  370. "type": "number",
  371. "minimum": 0
  372. },
  373. "chains": {
  374. "default": {},
  375. "type": "object",
  376. "properties": {
  377. "orchestrator": {
  378. "minItems": 1,
  379. "type": "array",
  380. "items": {
  381. "type": "string"
  382. }
  383. },
  384. "oracle": {
  385. "minItems": 1,
  386. "type": "array",
  387. "items": {
  388. "type": "string"
  389. }
  390. },
  391. "designer": {
  392. "minItems": 1,
  393. "type": "array",
  394. "items": {
  395. "type": "string"
  396. }
  397. },
  398. "explorer": {
  399. "minItems": 1,
  400. "type": "array",
  401. "items": {
  402. "type": "string"
  403. }
  404. },
  405. "librarian": {
  406. "minItems": 1,
  407. "type": "array",
  408. "items": {
  409. "type": "string"
  410. }
  411. },
  412. "fixer": {
  413. "minItems": 1,
  414. "type": "array",
  415. "items": {
  416. "type": "string"
  417. }
  418. },
  419. "cartography": {
  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. }