config.schema.json 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. {
  2. "type": "object",
  3. "properties": {
  4. "$schema": {
  5. "type": "string"
  6. },
  7. "provider": {
  8. "type": "object",
  9. "additionalProperties": {
  10. "type": "object",
  11. "properties": {
  12. "name": {
  13. "type": "string"
  14. },
  15. "env": {
  16. "type": "array",
  17. "items": {
  18. "type": "string"
  19. }
  20. },
  21. "id": {
  22. "type": "string"
  23. },
  24. "npm": {
  25. "type": "string"
  26. },
  27. "models": {
  28. "type": "object",
  29. "additionalProperties": {
  30. "type": "object",
  31. "properties": {
  32. "name": {
  33. "type": "string"
  34. },
  35. "attachment": {
  36. "type": "boolean"
  37. },
  38. "reasoning": {
  39. "type": "boolean"
  40. },
  41. "temperature": {
  42. "type": "boolean"
  43. },
  44. "cost": {
  45. "type": "object",
  46. "properties": {
  47. "input": {
  48. "type": "number"
  49. },
  50. "output": {
  51. "type": "number"
  52. },
  53. "inputCached": {
  54. "type": "number"
  55. },
  56. "outputCached": {
  57. "type": "number"
  58. }
  59. },
  60. "required": [
  61. "input",
  62. "output",
  63. "inputCached",
  64. "outputCached"
  65. ],
  66. "additionalProperties": false
  67. },
  68. "limit": {
  69. "type": "object",
  70. "properties": {
  71. "context": {
  72. "type": "number"
  73. },
  74. "output": {
  75. "type": "number"
  76. }
  77. },
  78. "required": [
  79. "context",
  80. "output"
  81. ],
  82. "additionalProperties": false
  83. },
  84. "id": {
  85. "type": "string"
  86. }
  87. },
  88. "additionalProperties": false
  89. }
  90. },
  91. "options": {
  92. "type": "object",
  93. "additionalProperties": {}
  94. }
  95. },
  96. "required": [
  97. "models"
  98. ],
  99. "additionalProperties": false
  100. }
  101. },
  102. "mcp": {
  103. "type": "object",
  104. "additionalProperties": {
  105. "anyOf": [
  106. {
  107. "type": "object",
  108. "properties": {
  109. "type": {
  110. "type": "string",
  111. "const": "local"
  112. },
  113. "command": {
  114. "type": "array",
  115. "items": {
  116. "type": "string"
  117. }
  118. },
  119. "environment": {
  120. "type": "object",
  121. "additionalProperties": {
  122. "type": "string"
  123. }
  124. }
  125. },
  126. "required": [
  127. "type",
  128. "command"
  129. ],
  130. "additionalProperties": false
  131. },
  132. {
  133. "type": "object",
  134. "properties": {
  135. "type": {
  136. "type": "string",
  137. "const": "remote"
  138. },
  139. "url": {
  140. "type": "string"
  141. }
  142. },
  143. "required": [
  144. "type",
  145. "url"
  146. ],
  147. "additionalProperties": false
  148. }
  149. ]
  150. }
  151. }
  152. },
  153. "additionalProperties": false,
  154. "$schema": "http://json-schema.org/draft-07/schema#"
  155. }