docs.go 115 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589
  1. // Package swagger Code generated by swaggo/swag. DO NOT EDIT
  2. package swagger
  3. import "github.com/swaggo/swag"
  4. const docTemplate = `{
  5. "schemes": {{ marshal .Schemes }},
  6. "swagger": "2.0",
  7. "info": {
  8. "description": "{{escape .Description}}",
  9. "title": "{{.Title}}",
  10. "contact": {
  11. "name": "Charm",
  12. "url": "https://charm.sh"
  13. },
  14. "license": {
  15. "name": "MIT",
  16. "url": "https://github.com/charmbracelet/crush/blob/main/LICENSE"
  17. },
  18. "version": "{{.Version}}"
  19. },
  20. "host": "{{.Host}}",
  21. "basePath": "{{.BasePath}}",
  22. "paths": {
  23. "/config": {
  24. "get": {
  25. "produces": [
  26. "application/json"
  27. ],
  28. "tags": [
  29. "system"
  30. ],
  31. "summary": "Get server config",
  32. "responses": {
  33. "200": {
  34. "description": "OK",
  35. "schema": {
  36. "type": "object"
  37. }
  38. }
  39. }
  40. }
  41. },
  42. "/control": {
  43. "post": {
  44. "consumes": [
  45. "application/json"
  46. ],
  47. "tags": [
  48. "system"
  49. ],
  50. "summary": "Send server control command",
  51. "parameters": [
  52. {
  53. "description": "Control command (e.g. shutdown)",
  54. "name": "request",
  55. "in": "body",
  56. "required": true,
  57. "schema": {
  58. "$ref": "#/definitions/proto.ServerControl"
  59. }
  60. }
  61. ],
  62. "responses": {
  63. "200": {
  64. "description": "OK"
  65. },
  66. "400": {
  67. "description": "Bad Request",
  68. "schema": {
  69. "$ref": "#/definitions/proto.Error"
  70. }
  71. }
  72. }
  73. }
  74. },
  75. "/health": {
  76. "get": {
  77. "tags": [
  78. "system"
  79. ],
  80. "summary": "Health check",
  81. "responses": {
  82. "200": {
  83. "description": "OK"
  84. }
  85. }
  86. }
  87. },
  88. "/version": {
  89. "get": {
  90. "produces": [
  91. "application/json"
  92. ],
  93. "tags": [
  94. "system"
  95. ],
  96. "summary": "Get server version",
  97. "responses": {
  98. "200": {
  99. "description": "OK",
  100. "schema": {
  101. "$ref": "#/definitions/proto.VersionInfo"
  102. }
  103. }
  104. }
  105. }
  106. },
  107. "/workspaces": {
  108. "get": {
  109. "produces": [
  110. "application/json"
  111. ],
  112. "tags": [
  113. "workspaces"
  114. ],
  115. "summary": "List workspaces",
  116. "responses": {
  117. "200": {
  118. "description": "OK",
  119. "schema": {
  120. "type": "array",
  121. "items": {
  122. "$ref": "#/definitions/proto.Workspace"
  123. }
  124. }
  125. }
  126. }
  127. },
  128. "post": {
  129. "consumes": [
  130. "application/json"
  131. ],
  132. "produces": [
  133. "application/json"
  134. ],
  135. "tags": [
  136. "workspaces"
  137. ],
  138. "summary": "Create workspace",
  139. "parameters": [
  140. {
  141. "description": "Workspace creation params",
  142. "name": "request",
  143. "in": "body",
  144. "required": true,
  145. "schema": {
  146. "$ref": "#/definitions/proto.Workspace"
  147. }
  148. }
  149. ],
  150. "responses": {
  151. "200": {
  152. "description": "OK",
  153. "schema": {
  154. "$ref": "#/definitions/proto.Workspace"
  155. }
  156. },
  157. "400": {
  158. "description": "Bad Request",
  159. "schema": {
  160. "$ref": "#/definitions/proto.Error"
  161. }
  162. },
  163. "500": {
  164. "description": "Internal Server Error",
  165. "schema": {
  166. "$ref": "#/definitions/proto.Error"
  167. }
  168. }
  169. }
  170. }
  171. },
  172. "/workspaces/{id}": {
  173. "get": {
  174. "produces": [
  175. "application/json"
  176. ],
  177. "tags": [
  178. "workspaces"
  179. ],
  180. "summary": "Get workspace",
  181. "parameters": [
  182. {
  183. "type": "string",
  184. "description": "Workspace ID",
  185. "name": "id",
  186. "in": "path",
  187. "required": true
  188. }
  189. ],
  190. "responses": {
  191. "200": {
  192. "description": "OK",
  193. "schema": {
  194. "$ref": "#/definitions/proto.Workspace"
  195. }
  196. },
  197. "404": {
  198. "description": "Not Found",
  199. "schema": {
  200. "$ref": "#/definitions/proto.Error"
  201. }
  202. },
  203. "500": {
  204. "description": "Internal Server Error",
  205. "schema": {
  206. "$ref": "#/definitions/proto.Error"
  207. }
  208. }
  209. }
  210. },
  211. "delete": {
  212. "tags": [
  213. "workspaces"
  214. ],
  215. "summary": "Delete workspace",
  216. "parameters": [
  217. {
  218. "type": "string",
  219. "description": "Workspace ID",
  220. "name": "id",
  221. "in": "path",
  222. "required": true
  223. }
  224. ],
  225. "responses": {
  226. "200": {
  227. "description": "OK"
  228. },
  229. "404": {
  230. "description": "Not Found",
  231. "schema": {
  232. "$ref": "#/definitions/proto.Error"
  233. }
  234. }
  235. }
  236. }
  237. },
  238. "/workspaces/{id}/agent": {
  239. "get": {
  240. "produces": [
  241. "application/json"
  242. ],
  243. "tags": [
  244. "agent"
  245. ],
  246. "summary": "Get agent info",
  247. "parameters": [
  248. {
  249. "type": "string",
  250. "description": "Workspace ID",
  251. "name": "id",
  252. "in": "path",
  253. "required": true
  254. }
  255. ],
  256. "responses": {
  257. "200": {
  258. "description": "OK",
  259. "schema": {
  260. "$ref": "#/definitions/proto.AgentInfo"
  261. }
  262. },
  263. "404": {
  264. "description": "Not Found",
  265. "schema": {
  266. "$ref": "#/definitions/proto.Error"
  267. }
  268. },
  269. "500": {
  270. "description": "Internal Server Error",
  271. "schema": {
  272. "$ref": "#/definitions/proto.Error"
  273. }
  274. }
  275. }
  276. },
  277. "post": {
  278. "consumes": [
  279. "application/json"
  280. ],
  281. "tags": [
  282. "agent"
  283. ],
  284. "summary": "Send message to agent",
  285. "parameters": [
  286. {
  287. "type": "string",
  288. "description": "Workspace ID",
  289. "name": "id",
  290. "in": "path",
  291. "required": true
  292. },
  293. {
  294. "description": "Agent message",
  295. "name": "request",
  296. "in": "body",
  297. "required": true,
  298. "schema": {
  299. "$ref": "#/definitions/proto.AgentMessage"
  300. }
  301. }
  302. ],
  303. "responses": {
  304. "200": {
  305. "description": "OK"
  306. },
  307. "400": {
  308. "description": "Bad Request",
  309. "schema": {
  310. "$ref": "#/definitions/proto.Error"
  311. }
  312. },
  313. "404": {
  314. "description": "Not Found",
  315. "schema": {
  316. "$ref": "#/definitions/proto.Error"
  317. }
  318. },
  319. "500": {
  320. "description": "Internal Server Error",
  321. "schema": {
  322. "$ref": "#/definitions/proto.Error"
  323. }
  324. }
  325. }
  326. }
  327. },
  328. "/workspaces/{id}/agent/default-small-model": {
  329. "get": {
  330. "produces": [
  331. "application/json"
  332. ],
  333. "tags": [
  334. "agent"
  335. ],
  336. "summary": "Get default small model",
  337. "parameters": [
  338. {
  339. "type": "string",
  340. "description": "Workspace ID",
  341. "name": "id",
  342. "in": "path",
  343. "required": true
  344. },
  345. {
  346. "type": "string",
  347. "description": "Provider ID",
  348. "name": "provider_id",
  349. "in": "query"
  350. }
  351. ],
  352. "responses": {
  353. "200": {
  354. "description": "OK",
  355. "schema": {
  356. "type": "object"
  357. }
  358. },
  359. "404": {
  360. "description": "Not Found",
  361. "schema": {
  362. "$ref": "#/definitions/proto.Error"
  363. }
  364. },
  365. "500": {
  366. "description": "Internal Server Error",
  367. "schema": {
  368. "$ref": "#/definitions/proto.Error"
  369. }
  370. }
  371. }
  372. }
  373. },
  374. "/workspaces/{id}/agent/init": {
  375. "post": {
  376. "tags": [
  377. "agent"
  378. ],
  379. "summary": "Initialize agent",
  380. "parameters": [
  381. {
  382. "type": "string",
  383. "description": "Workspace ID",
  384. "name": "id",
  385. "in": "path",
  386. "required": true
  387. }
  388. ],
  389. "responses": {
  390. "200": {
  391. "description": "OK"
  392. },
  393. "404": {
  394. "description": "Not Found",
  395. "schema": {
  396. "$ref": "#/definitions/proto.Error"
  397. }
  398. },
  399. "500": {
  400. "description": "Internal Server Error",
  401. "schema": {
  402. "$ref": "#/definitions/proto.Error"
  403. }
  404. }
  405. }
  406. }
  407. },
  408. "/workspaces/{id}/agent/sessions/{sid}": {
  409. "get": {
  410. "produces": [
  411. "application/json"
  412. ],
  413. "tags": [
  414. "agent"
  415. ],
  416. "summary": "Get agent session",
  417. "parameters": [
  418. {
  419. "type": "string",
  420. "description": "Workspace ID",
  421. "name": "id",
  422. "in": "path",
  423. "required": true
  424. },
  425. {
  426. "type": "string",
  427. "description": "Session ID",
  428. "name": "sid",
  429. "in": "path",
  430. "required": true
  431. }
  432. ],
  433. "responses": {
  434. "200": {
  435. "description": "OK",
  436. "schema": {
  437. "$ref": "#/definitions/proto.AgentSession"
  438. }
  439. },
  440. "404": {
  441. "description": "Not Found",
  442. "schema": {
  443. "$ref": "#/definitions/proto.Error"
  444. }
  445. },
  446. "500": {
  447. "description": "Internal Server Error",
  448. "schema": {
  449. "$ref": "#/definitions/proto.Error"
  450. }
  451. }
  452. }
  453. }
  454. },
  455. "/workspaces/{id}/agent/sessions/{sid}/cancel": {
  456. "post": {
  457. "tags": [
  458. "agent"
  459. ],
  460. "summary": "Cancel agent session",
  461. "parameters": [
  462. {
  463. "type": "string",
  464. "description": "Workspace ID",
  465. "name": "id",
  466. "in": "path",
  467. "required": true
  468. },
  469. {
  470. "type": "string",
  471. "description": "Session ID",
  472. "name": "sid",
  473. "in": "path",
  474. "required": true
  475. }
  476. ],
  477. "responses": {
  478. "200": {
  479. "description": "OK"
  480. },
  481. "404": {
  482. "description": "Not Found",
  483. "schema": {
  484. "$ref": "#/definitions/proto.Error"
  485. }
  486. },
  487. "500": {
  488. "description": "Internal Server Error",
  489. "schema": {
  490. "$ref": "#/definitions/proto.Error"
  491. }
  492. }
  493. }
  494. }
  495. },
  496. "/workspaces/{id}/agent/sessions/{sid}/prompts/clear": {
  497. "post": {
  498. "tags": [
  499. "agent"
  500. ],
  501. "summary": "Clear prompt queue",
  502. "parameters": [
  503. {
  504. "type": "string",
  505. "description": "Workspace ID",
  506. "name": "id",
  507. "in": "path",
  508. "required": true
  509. },
  510. {
  511. "type": "string",
  512. "description": "Session ID",
  513. "name": "sid",
  514. "in": "path",
  515. "required": true
  516. }
  517. ],
  518. "responses": {
  519. "200": {
  520. "description": "OK"
  521. },
  522. "404": {
  523. "description": "Not Found",
  524. "schema": {
  525. "$ref": "#/definitions/proto.Error"
  526. }
  527. },
  528. "500": {
  529. "description": "Internal Server Error",
  530. "schema": {
  531. "$ref": "#/definitions/proto.Error"
  532. }
  533. }
  534. }
  535. }
  536. },
  537. "/workspaces/{id}/agent/sessions/{sid}/prompts/list": {
  538. "get": {
  539. "produces": [
  540. "application/json"
  541. ],
  542. "tags": [
  543. "agent"
  544. ],
  545. "summary": "List queued prompts",
  546. "parameters": [
  547. {
  548. "type": "string",
  549. "description": "Workspace ID",
  550. "name": "id",
  551. "in": "path",
  552. "required": true
  553. },
  554. {
  555. "type": "string",
  556. "description": "Session ID",
  557. "name": "sid",
  558. "in": "path",
  559. "required": true
  560. }
  561. ],
  562. "responses": {
  563. "200": {
  564. "description": "OK",
  565. "schema": {
  566. "type": "array",
  567. "items": {
  568. "type": "string"
  569. }
  570. }
  571. },
  572. "404": {
  573. "description": "Not Found",
  574. "schema": {
  575. "$ref": "#/definitions/proto.Error"
  576. }
  577. },
  578. "500": {
  579. "description": "Internal Server Error",
  580. "schema": {
  581. "$ref": "#/definitions/proto.Error"
  582. }
  583. }
  584. }
  585. }
  586. },
  587. "/workspaces/{id}/agent/sessions/{sid}/prompts/queued": {
  588. "get": {
  589. "produces": [
  590. "application/json"
  591. ],
  592. "tags": [
  593. "agent"
  594. ],
  595. "summary": "Get queued prompt status",
  596. "parameters": [
  597. {
  598. "type": "string",
  599. "description": "Workspace ID",
  600. "name": "id",
  601. "in": "path",
  602. "required": true
  603. },
  604. {
  605. "type": "string",
  606. "description": "Session ID",
  607. "name": "sid",
  608. "in": "path",
  609. "required": true
  610. }
  611. ],
  612. "responses": {
  613. "200": {
  614. "description": "OK",
  615. "schema": {
  616. "type": "object"
  617. }
  618. },
  619. "404": {
  620. "description": "Not Found",
  621. "schema": {
  622. "$ref": "#/definitions/proto.Error"
  623. }
  624. },
  625. "500": {
  626. "description": "Internal Server Error",
  627. "schema": {
  628. "$ref": "#/definitions/proto.Error"
  629. }
  630. }
  631. }
  632. }
  633. },
  634. "/workspaces/{id}/agent/sessions/{sid}/summarize": {
  635. "post": {
  636. "tags": [
  637. "agent"
  638. ],
  639. "summary": "Summarize session",
  640. "parameters": [
  641. {
  642. "type": "string",
  643. "description": "Workspace ID",
  644. "name": "id",
  645. "in": "path",
  646. "required": true
  647. },
  648. {
  649. "type": "string",
  650. "description": "Session ID",
  651. "name": "sid",
  652. "in": "path",
  653. "required": true
  654. }
  655. ],
  656. "responses": {
  657. "200": {
  658. "description": "OK"
  659. },
  660. "404": {
  661. "description": "Not Found",
  662. "schema": {
  663. "$ref": "#/definitions/proto.Error"
  664. }
  665. },
  666. "500": {
  667. "description": "Internal Server Error",
  668. "schema": {
  669. "$ref": "#/definitions/proto.Error"
  670. }
  671. }
  672. }
  673. }
  674. },
  675. "/workspaces/{id}/agent/update": {
  676. "post": {
  677. "tags": [
  678. "agent"
  679. ],
  680. "summary": "Update agent",
  681. "parameters": [
  682. {
  683. "type": "string",
  684. "description": "Workspace ID",
  685. "name": "id",
  686. "in": "path",
  687. "required": true
  688. }
  689. ],
  690. "responses": {
  691. "200": {
  692. "description": "OK"
  693. },
  694. "404": {
  695. "description": "Not Found",
  696. "schema": {
  697. "$ref": "#/definitions/proto.Error"
  698. }
  699. },
  700. "500": {
  701. "description": "Internal Server Error",
  702. "schema": {
  703. "$ref": "#/definitions/proto.Error"
  704. }
  705. }
  706. }
  707. }
  708. },
  709. "/workspaces/{id}/config": {
  710. "get": {
  711. "produces": [
  712. "application/json"
  713. ],
  714. "tags": [
  715. "workspaces"
  716. ],
  717. "summary": "Get workspace config",
  718. "parameters": [
  719. {
  720. "type": "string",
  721. "description": "Workspace ID",
  722. "name": "id",
  723. "in": "path",
  724. "required": true
  725. }
  726. ],
  727. "responses": {
  728. "200": {
  729. "description": "OK",
  730. "schema": {
  731. "type": "object"
  732. }
  733. },
  734. "404": {
  735. "description": "Not Found",
  736. "schema": {
  737. "$ref": "#/definitions/proto.Error"
  738. }
  739. },
  740. "500": {
  741. "description": "Internal Server Error",
  742. "schema": {
  743. "$ref": "#/definitions/proto.Error"
  744. }
  745. }
  746. }
  747. }
  748. },
  749. "/workspaces/{id}/config/compact": {
  750. "post": {
  751. "consumes": [
  752. "application/json"
  753. ],
  754. "tags": [
  755. "config"
  756. ],
  757. "summary": "Set compact mode",
  758. "parameters": [
  759. {
  760. "type": "string",
  761. "description": "Workspace ID",
  762. "name": "id",
  763. "in": "path",
  764. "required": true
  765. },
  766. {
  767. "description": "Config compact request",
  768. "name": "request",
  769. "in": "body",
  770. "required": true,
  771. "schema": {
  772. "$ref": "#/definitions/proto.ConfigCompactRequest"
  773. }
  774. }
  775. ],
  776. "responses": {
  777. "200": {
  778. "description": "OK"
  779. },
  780. "400": {
  781. "description": "Bad Request",
  782. "schema": {
  783. "$ref": "#/definitions/proto.Error"
  784. }
  785. },
  786. "404": {
  787. "description": "Not Found",
  788. "schema": {
  789. "$ref": "#/definitions/proto.Error"
  790. }
  791. },
  792. "500": {
  793. "description": "Internal Server Error",
  794. "schema": {
  795. "$ref": "#/definitions/proto.Error"
  796. }
  797. }
  798. }
  799. }
  800. },
  801. "/workspaces/{id}/config/import-copilot": {
  802. "post": {
  803. "produces": [
  804. "application/json"
  805. ],
  806. "tags": [
  807. "config"
  808. ],
  809. "summary": "Import Copilot credentials",
  810. "parameters": [
  811. {
  812. "type": "string",
  813. "description": "Workspace ID",
  814. "name": "id",
  815. "in": "path",
  816. "required": true
  817. }
  818. ],
  819. "responses": {
  820. "200": {
  821. "description": "OK",
  822. "schema": {
  823. "$ref": "#/definitions/proto.ImportCopilotResponse"
  824. }
  825. },
  826. "404": {
  827. "description": "Not Found",
  828. "schema": {
  829. "$ref": "#/definitions/proto.Error"
  830. }
  831. },
  832. "500": {
  833. "description": "Internal Server Error",
  834. "schema": {
  835. "$ref": "#/definitions/proto.Error"
  836. }
  837. }
  838. }
  839. }
  840. },
  841. "/workspaces/{id}/config/model": {
  842. "post": {
  843. "consumes": [
  844. "application/json"
  845. ],
  846. "tags": [
  847. "config"
  848. ],
  849. "summary": "Set the preferred model",
  850. "parameters": [
  851. {
  852. "type": "string",
  853. "description": "Workspace ID",
  854. "name": "id",
  855. "in": "path",
  856. "required": true
  857. },
  858. {
  859. "description": "Config model request",
  860. "name": "request",
  861. "in": "body",
  862. "required": true,
  863. "schema": {
  864. "$ref": "#/definitions/proto.ConfigModelRequest"
  865. }
  866. }
  867. ],
  868. "responses": {
  869. "200": {
  870. "description": "OK"
  871. },
  872. "400": {
  873. "description": "Bad Request",
  874. "schema": {
  875. "$ref": "#/definitions/proto.Error"
  876. }
  877. },
  878. "404": {
  879. "description": "Not Found",
  880. "schema": {
  881. "$ref": "#/definitions/proto.Error"
  882. }
  883. },
  884. "500": {
  885. "description": "Internal Server Error",
  886. "schema": {
  887. "$ref": "#/definitions/proto.Error"
  888. }
  889. }
  890. }
  891. }
  892. },
  893. "/workspaces/{id}/config/provider-key": {
  894. "post": {
  895. "consumes": [
  896. "application/json"
  897. ],
  898. "tags": [
  899. "config"
  900. ],
  901. "summary": "Set provider API key",
  902. "parameters": [
  903. {
  904. "type": "string",
  905. "description": "Workspace ID",
  906. "name": "id",
  907. "in": "path",
  908. "required": true
  909. },
  910. {
  911. "description": "Config provider key request",
  912. "name": "request",
  913. "in": "body",
  914. "required": true,
  915. "schema": {
  916. "$ref": "#/definitions/proto.ConfigProviderKeyRequest"
  917. }
  918. }
  919. ],
  920. "responses": {
  921. "200": {
  922. "description": "OK"
  923. },
  924. "400": {
  925. "description": "Bad Request",
  926. "schema": {
  927. "$ref": "#/definitions/proto.Error"
  928. }
  929. },
  930. "404": {
  931. "description": "Not Found",
  932. "schema": {
  933. "$ref": "#/definitions/proto.Error"
  934. }
  935. },
  936. "500": {
  937. "description": "Internal Server Error",
  938. "schema": {
  939. "$ref": "#/definitions/proto.Error"
  940. }
  941. }
  942. }
  943. }
  944. },
  945. "/workspaces/{id}/config/refresh-oauth": {
  946. "post": {
  947. "consumes": [
  948. "application/json"
  949. ],
  950. "tags": [
  951. "config"
  952. ],
  953. "summary": "Refresh OAuth token",
  954. "parameters": [
  955. {
  956. "type": "string",
  957. "description": "Workspace ID",
  958. "name": "id",
  959. "in": "path",
  960. "required": true
  961. },
  962. {
  963. "description": "Refresh OAuth request",
  964. "name": "request",
  965. "in": "body",
  966. "required": true,
  967. "schema": {
  968. "$ref": "#/definitions/proto.ConfigRefreshOAuthRequest"
  969. }
  970. }
  971. ],
  972. "responses": {
  973. "200": {
  974. "description": "OK"
  975. },
  976. "400": {
  977. "description": "Bad Request",
  978. "schema": {
  979. "$ref": "#/definitions/proto.Error"
  980. }
  981. },
  982. "404": {
  983. "description": "Not Found",
  984. "schema": {
  985. "$ref": "#/definitions/proto.Error"
  986. }
  987. },
  988. "500": {
  989. "description": "Internal Server Error",
  990. "schema": {
  991. "$ref": "#/definitions/proto.Error"
  992. }
  993. }
  994. }
  995. }
  996. },
  997. "/workspaces/{id}/config/remove": {
  998. "post": {
  999. "consumes": [
  1000. "application/json"
  1001. ],
  1002. "tags": [
  1003. "config"
  1004. ],
  1005. "summary": "Remove a config field",
  1006. "parameters": [
  1007. {
  1008. "type": "string",
  1009. "description": "Workspace ID",
  1010. "name": "id",
  1011. "in": "path",
  1012. "required": true
  1013. },
  1014. {
  1015. "description": "Config remove request",
  1016. "name": "request",
  1017. "in": "body",
  1018. "required": true,
  1019. "schema": {
  1020. "$ref": "#/definitions/proto.ConfigRemoveRequest"
  1021. }
  1022. }
  1023. ],
  1024. "responses": {
  1025. "200": {
  1026. "description": "OK"
  1027. },
  1028. "400": {
  1029. "description": "Bad Request",
  1030. "schema": {
  1031. "$ref": "#/definitions/proto.Error"
  1032. }
  1033. },
  1034. "404": {
  1035. "description": "Not Found",
  1036. "schema": {
  1037. "$ref": "#/definitions/proto.Error"
  1038. }
  1039. },
  1040. "500": {
  1041. "description": "Internal Server Error",
  1042. "schema": {
  1043. "$ref": "#/definitions/proto.Error"
  1044. }
  1045. }
  1046. }
  1047. }
  1048. },
  1049. "/workspaces/{id}/config/set": {
  1050. "post": {
  1051. "consumes": [
  1052. "application/json"
  1053. ],
  1054. "tags": [
  1055. "config"
  1056. ],
  1057. "summary": "Set a config field",
  1058. "parameters": [
  1059. {
  1060. "type": "string",
  1061. "description": "Workspace ID",
  1062. "name": "id",
  1063. "in": "path",
  1064. "required": true
  1065. },
  1066. {
  1067. "description": "Config set request",
  1068. "name": "request",
  1069. "in": "body",
  1070. "required": true,
  1071. "schema": {
  1072. "$ref": "#/definitions/proto.ConfigSetRequest"
  1073. }
  1074. }
  1075. ],
  1076. "responses": {
  1077. "200": {
  1078. "description": "OK"
  1079. },
  1080. "400": {
  1081. "description": "Bad Request",
  1082. "schema": {
  1083. "$ref": "#/definitions/proto.Error"
  1084. }
  1085. },
  1086. "404": {
  1087. "description": "Not Found",
  1088. "schema": {
  1089. "$ref": "#/definitions/proto.Error"
  1090. }
  1091. },
  1092. "500": {
  1093. "description": "Internal Server Error",
  1094. "schema": {
  1095. "$ref": "#/definitions/proto.Error"
  1096. }
  1097. }
  1098. }
  1099. }
  1100. },
  1101. "/workspaces/{id}/events": {
  1102. "get": {
  1103. "produces": [
  1104. "text/event-stream"
  1105. ],
  1106. "tags": [
  1107. "workspaces"
  1108. ],
  1109. "summary": "Stream workspace events (SSE)",
  1110. "parameters": [
  1111. {
  1112. "type": "string",
  1113. "description": "Workspace ID",
  1114. "name": "id",
  1115. "in": "path",
  1116. "required": true
  1117. }
  1118. ],
  1119. "responses": {
  1120. "200": {
  1121. "description": "OK"
  1122. },
  1123. "404": {
  1124. "description": "Not Found",
  1125. "schema": {
  1126. "$ref": "#/definitions/proto.Error"
  1127. }
  1128. },
  1129. "500": {
  1130. "description": "Internal Server Error",
  1131. "schema": {
  1132. "$ref": "#/definitions/proto.Error"
  1133. }
  1134. }
  1135. }
  1136. }
  1137. },
  1138. "/workspaces/{id}/filetracker/lastread": {
  1139. "get": {
  1140. "produces": [
  1141. "application/json"
  1142. ],
  1143. "tags": [
  1144. "filetracker"
  1145. ],
  1146. "summary": "Get last read time for file",
  1147. "parameters": [
  1148. {
  1149. "type": "string",
  1150. "description": "Workspace ID",
  1151. "name": "id",
  1152. "in": "path",
  1153. "required": true
  1154. },
  1155. {
  1156. "type": "string",
  1157. "description": "Session ID",
  1158. "name": "session_id",
  1159. "in": "query"
  1160. },
  1161. {
  1162. "type": "string",
  1163. "description": "File path",
  1164. "name": "path",
  1165. "in": "query",
  1166. "required": true
  1167. }
  1168. ],
  1169. "responses": {
  1170. "200": {
  1171. "description": "OK",
  1172. "schema": {
  1173. "type": "object"
  1174. }
  1175. },
  1176. "404": {
  1177. "description": "Not Found",
  1178. "schema": {
  1179. "$ref": "#/definitions/proto.Error"
  1180. }
  1181. },
  1182. "500": {
  1183. "description": "Internal Server Error",
  1184. "schema": {
  1185. "$ref": "#/definitions/proto.Error"
  1186. }
  1187. }
  1188. }
  1189. }
  1190. },
  1191. "/workspaces/{id}/filetracker/read": {
  1192. "post": {
  1193. "consumes": [
  1194. "application/json"
  1195. ],
  1196. "tags": [
  1197. "filetracker"
  1198. ],
  1199. "summary": "Record file read",
  1200. "parameters": [
  1201. {
  1202. "type": "string",
  1203. "description": "Workspace ID",
  1204. "name": "id",
  1205. "in": "path",
  1206. "required": true
  1207. },
  1208. {
  1209. "description": "File tracker read request",
  1210. "name": "request",
  1211. "in": "body",
  1212. "required": true,
  1213. "schema": {
  1214. "$ref": "#/definitions/proto.FileTrackerReadRequest"
  1215. }
  1216. }
  1217. ],
  1218. "responses": {
  1219. "200": {
  1220. "description": "OK"
  1221. },
  1222. "400": {
  1223. "description": "Bad Request",
  1224. "schema": {
  1225. "$ref": "#/definitions/proto.Error"
  1226. }
  1227. },
  1228. "404": {
  1229. "description": "Not Found",
  1230. "schema": {
  1231. "$ref": "#/definitions/proto.Error"
  1232. }
  1233. },
  1234. "500": {
  1235. "description": "Internal Server Error",
  1236. "schema": {
  1237. "$ref": "#/definitions/proto.Error"
  1238. }
  1239. }
  1240. }
  1241. }
  1242. },
  1243. "/workspaces/{id}/lsps": {
  1244. "get": {
  1245. "produces": [
  1246. "application/json"
  1247. ],
  1248. "tags": [
  1249. "lsp"
  1250. ],
  1251. "summary": "List LSP clients",
  1252. "parameters": [
  1253. {
  1254. "type": "string",
  1255. "description": "Workspace ID",
  1256. "name": "id",
  1257. "in": "path",
  1258. "required": true
  1259. }
  1260. ],
  1261. "responses": {
  1262. "200": {
  1263. "description": "OK",
  1264. "schema": {
  1265. "type": "object",
  1266. "additionalProperties": {
  1267. "$ref": "#/definitions/proto.LSPClientInfo"
  1268. }
  1269. }
  1270. },
  1271. "404": {
  1272. "description": "Not Found",
  1273. "schema": {
  1274. "$ref": "#/definitions/proto.Error"
  1275. }
  1276. },
  1277. "500": {
  1278. "description": "Internal Server Error",
  1279. "schema": {
  1280. "$ref": "#/definitions/proto.Error"
  1281. }
  1282. }
  1283. }
  1284. }
  1285. },
  1286. "/workspaces/{id}/lsps/start": {
  1287. "post": {
  1288. "consumes": [
  1289. "application/json"
  1290. ],
  1291. "tags": [
  1292. "lsp"
  1293. ],
  1294. "summary": "Start LSP server",
  1295. "parameters": [
  1296. {
  1297. "type": "string",
  1298. "description": "Workspace ID",
  1299. "name": "id",
  1300. "in": "path",
  1301. "required": true
  1302. },
  1303. {
  1304. "description": "LSP start request",
  1305. "name": "request",
  1306. "in": "body",
  1307. "required": true,
  1308. "schema": {
  1309. "$ref": "#/definitions/proto.LSPStartRequest"
  1310. }
  1311. }
  1312. ],
  1313. "responses": {
  1314. "200": {
  1315. "description": "OK"
  1316. },
  1317. "400": {
  1318. "description": "Bad Request",
  1319. "schema": {
  1320. "$ref": "#/definitions/proto.Error"
  1321. }
  1322. },
  1323. "404": {
  1324. "description": "Not Found",
  1325. "schema": {
  1326. "$ref": "#/definitions/proto.Error"
  1327. }
  1328. },
  1329. "500": {
  1330. "description": "Internal Server Error",
  1331. "schema": {
  1332. "$ref": "#/definitions/proto.Error"
  1333. }
  1334. }
  1335. }
  1336. }
  1337. },
  1338. "/workspaces/{id}/lsps/stop": {
  1339. "post": {
  1340. "tags": [
  1341. "lsp"
  1342. ],
  1343. "summary": "Stop all LSP servers",
  1344. "parameters": [
  1345. {
  1346. "type": "string",
  1347. "description": "Workspace ID",
  1348. "name": "id",
  1349. "in": "path",
  1350. "required": true
  1351. }
  1352. ],
  1353. "responses": {
  1354. "200": {
  1355. "description": "OK"
  1356. },
  1357. "404": {
  1358. "description": "Not Found",
  1359. "schema": {
  1360. "$ref": "#/definitions/proto.Error"
  1361. }
  1362. },
  1363. "500": {
  1364. "description": "Internal Server Error",
  1365. "schema": {
  1366. "$ref": "#/definitions/proto.Error"
  1367. }
  1368. }
  1369. }
  1370. }
  1371. },
  1372. "/workspaces/{id}/lsps/{lsp}/diagnostics": {
  1373. "get": {
  1374. "produces": [
  1375. "application/json"
  1376. ],
  1377. "tags": [
  1378. "lsp"
  1379. ],
  1380. "summary": "Get LSP diagnostics",
  1381. "parameters": [
  1382. {
  1383. "type": "string",
  1384. "description": "Workspace ID",
  1385. "name": "id",
  1386. "in": "path",
  1387. "required": true
  1388. },
  1389. {
  1390. "type": "string",
  1391. "description": "LSP client name",
  1392. "name": "lsp",
  1393. "in": "path",
  1394. "required": true
  1395. }
  1396. ],
  1397. "responses": {
  1398. "200": {
  1399. "description": "OK",
  1400. "schema": {
  1401. "type": "object"
  1402. }
  1403. },
  1404. "404": {
  1405. "description": "Not Found",
  1406. "schema": {
  1407. "$ref": "#/definitions/proto.Error"
  1408. }
  1409. },
  1410. "500": {
  1411. "description": "Internal Server Error",
  1412. "schema": {
  1413. "$ref": "#/definitions/proto.Error"
  1414. }
  1415. }
  1416. }
  1417. }
  1418. },
  1419. "/workspaces/{id}/mcp/get-prompt": {
  1420. "post": {
  1421. "consumes": [
  1422. "application/json"
  1423. ],
  1424. "produces": [
  1425. "application/json"
  1426. ],
  1427. "tags": [
  1428. "mcp"
  1429. ],
  1430. "summary": "Get MCP prompt",
  1431. "parameters": [
  1432. {
  1433. "type": "string",
  1434. "description": "Workspace ID",
  1435. "name": "id",
  1436. "in": "path",
  1437. "required": true
  1438. },
  1439. {
  1440. "description": "MCP get prompt request",
  1441. "name": "request",
  1442. "in": "body",
  1443. "required": true,
  1444. "schema": {
  1445. "$ref": "#/definitions/proto.MCPGetPromptRequest"
  1446. }
  1447. }
  1448. ],
  1449. "responses": {
  1450. "200": {
  1451. "description": "OK",
  1452. "schema": {
  1453. "$ref": "#/definitions/proto.MCPGetPromptResponse"
  1454. }
  1455. },
  1456. "400": {
  1457. "description": "Bad Request",
  1458. "schema": {
  1459. "$ref": "#/definitions/proto.Error"
  1460. }
  1461. },
  1462. "404": {
  1463. "description": "Not Found",
  1464. "schema": {
  1465. "$ref": "#/definitions/proto.Error"
  1466. }
  1467. },
  1468. "500": {
  1469. "description": "Internal Server Error",
  1470. "schema": {
  1471. "$ref": "#/definitions/proto.Error"
  1472. }
  1473. }
  1474. }
  1475. }
  1476. },
  1477. "/workspaces/{id}/mcp/read-resource": {
  1478. "post": {
  1479. "consumes": [
  1480. "application/json"
  1481. ],
  1482. "produces": [
  1483. "application/json"
  1484. ],
  1485. "tags": [
  1486. "mcp"
  1487. ],
  1488. "summary": "Read MCP resource",
  1489. "parameters": [
  1490. {
  1491. "type": "string",
  1492. "description": "Workspace ID",
  1493. "name": "id",
  1494. "in": "path",
  1495. "required": true
  1496. },
  1497. {
  1498. "description": "MCP read resource request",
  1499. "name": "request",
  1500. "in": "body",
  1501. "required": true,
  1502. "schema": {
  1503. "$ref": "#/definitions/proto.MCPReadResourceRequest"
  1504. }
  1505. }
  1506. ],
  1507. "responses": {
  1508. "200": {
  1509. "description": "OK",
  1510. "schema": {
  1511. "type": "object"
  1512. }
  1513. },
  1514. "400": {
  1515. "description": "Bad Request",
  1516. "schema": {
  1517. "$ref": "#/definitions/proto.Error"
  1518. }
  1519. },
  1520. "404": {
  1521. "description": "Not Found",
  1522. "schema": {
  1523. "$ref": "#/definitions/proto.Error"
  1524. }
  1525. },
  1526. "500": {
  1527. "description": "Internal Server Error",
  1528. "schema": {
  1529. "$ref": "#/definitions/proto.Error"
  1530. }
  1531. }
  1532. }
  1533. }
  1534. },
  1535. "/workspaces/{id}/mcp/refresh-prompts": {
  1536. "post": {
  1537. "consumes": [
  1538. "application/json"
  1539. ],
  1540. "tags": [
  1541. "mcp"
  1542. ],
  1543. "summary": "Refresh MCP prompts",
  1544. "parameters": [
  1545. {
  1546. "type": "string",
  1547. "description": "Workspace ID",
  1548. "name": "id",
  1549. "in": "path",
  1550. "required": true
  1551. },
  1552. {
  1553. "description": "MCP name request",
  1554. "name": "request",
  1555. "in": "body",
  1556. "required": true,
  1557. "schema": {
  1558. "$ref": "#/definitions/proto.MCPNameRequest"
  1559. }
  1560. }
  1561. ],
  1562. "responses": {
  1563. "200": {
  1564. "description": "OK"
  1565. },
  1566. "400": {
  1567. "description": "Bad Request",
  1568. "schema": {
  1569. "$ref": "#/definitions/proto.Error"
  1570. }
  1571. },
  1572. "404": {
  1573. "description": "Not Found",
  1574. "schema": {
  1575. "$ref": "#/definitions/proto.Error"
  1576. }
  1577. },
  1578. "500": {
  1579. "description": "Internal Server Error",
  1580. "schema": {
  1581. "$ref": "#/definitions/proto.Error"
  1582. }
  1583. }
  1584. }
  1585. }
  1586. },
  1587. "/workspaces/{id}/mcp/refresh-resources": {
  1588. "post": {
  1589. "consumes": [
  1590. "application/json"
  1591. ],
  1592. "tags": [
  1593. "mcp"
  1594. ],
  1595. "summary": "Refresh MCP resources",
  1596. "parameters": [
  1597. {
  1598. "type": "string",
  1599. "description": "Workspace ID",
  1600. "name": "id",
  1601. "in": "path",
  1602. "required": true
  1603. },
  1604. {
  1605. "description": "MCP name request",
  1606. "name": "request",
  1607. "in": "body",
  1608. "required": true,
  1609. "schema": {
  1610. "$ref": "#/definitions/proto.MCPNameRequest"
  1611. }
  1612. }
  1613. ],
  1614. "responses": {
  1615. "200": {
  1616. "description": "OK"
  1617. },
  1618. "400": {
  1619. "description": "Bad Request",
  1620. "schema": {
  1621. "$ref": "#/definitions/proto.Error"
  1622. }
  1623. },
  1624. "404": {
  1625. "description": "Not Found",
  1626. "schema": {
  1627. "$ref": "#/definitions/proto.Error"
  1628. }
  1629. },
  1630. "500": {
  1631. "description": "Internal Server Error",
  1632. "schema": {
  1633. "$ref": "#/definitions/proto.Error"
  1634. }
  1635. }
  1636. }
  1637. }
  1638. },
  1639. "/workspaces/{id}/mcp/refresh-tools": {
  1640. "post": {
  1641. "consumes": [
  1642. "application/json"
  1643. ],
  1644. "tags": [
  1645. "mcp"
  1646. ],
  1647. "summary": "Refresh MCP tools",
  1648. "parameters": [
  1649. {
  1650. "type": "string",
  1651. "description": "Workspace ID",
  1652. "name": "id",
  1653. "in": "path",
  1654. "required": true
  1655. },
  1656. {
  1657. "description": "MCP name request",
  1658. "name": "request",
  1659. "in": "body",
  1660. "required": true,
  1661. "schema": {
  1662. "$ref": "#/definitions/proto.MCPNameRequest"
  1663. }
  1664. }
  1665. ],
  1666. "responses": {
  1667. "200": {
  1668. "description": "OK"
  1669. },
  1670. "400": {
  1671. "description": "Bad Request",
  1672. "schema": {
  1673. "$ref": "#/definitions/proto.Error"
  1674. }
  1675. },
  1676. "404": {
  1677. "description": "Not Found",
  1678. "schema": {
  1679. "$ref": "#/definitions/proto.Error"
  1680. }
  1681. },
  1682. "500": {
  1683. "description": "Internal Server Error",
  1684. "schema": {
  1685. "$ref": "#/definitions/proto.Error"
  1686. }
  1687. }
  1688. }
  1689. }
  1690. },
  1691. "/workspaces/{id}/mcp/states": {
  1692. "get": {
  1693. "produces": [
  1694. "application/json"
  1695. ],
  1696. "tags": [
  1697. "mcp"
  1698. ],
  1699. "summary": "Get MCP client states",
  1700. "parameters": [
  1701. {
  1702. "type": "string",
  1703. "description": "Workspace ID",
  1704. "name": "id",
  1705. "in": "path",
  1706. "required": true
  1707. }
  1708. ],
  1709. "responses": {
  1710. "200": {
  1711. "description": "OK",
  1712. "schema": {
  1713. "type": "object",
  1714. "additionalProperties": {
  1715. "$ref": "#/definitions/proto.MCPClientInfo"
  1716. }
  1717. }
  1718. },
  1719. "404": {
  1720. "description": "Not Found",
  1721. "schema": {
  1722. "$ref": "#/definitions/proto.Error"
  1723. }
  1724. },
  1725. "500": {
  1726. "description": "Internal Server Error",
  1727. "schema": {
  1728. "$ref": "#/definitions/proto.Error"
  1729. }
  1730. }
  1731. }
  1732. }
  1733. },
  1734. "/workspaces/{id}/messages/user": {
  1735. "get": {
  1736. "produces": [
  1737. "application/json"
  1738. ],
  1739. "tags": [
  1740. "workspaces"
  1741. ],
  1742. "summary": "Get all user messages for workspace",
  1743. "parameters": [
  1744. {
  1745. "type": "string",
  1746. "description": "Workspace ID",
  1747. "name": "id",
  1748. "in": "path",
  1749. "required": true
  1750. }
  1751. ],
  1752. "responses": {
  1753. "200": {
  1754. "description": "OK",
  1755. "schema": {
  1756. "type": "array",
  1757. "items": {
  1758. "$ref": "#/definitions/github_com_charmbracelet_crush_internal_proto.Message"
  1759. }
  1760. }
  1761. },
  1762. "404": {
  1763. "description": "Not Found",
  1764. "schema": {
  1765. "$ref": "#/definitions/proto.Error"
  1766. }
  1767. },
  1768. "500": {
  1769. "description": "Internal Server Error",
  1770. "schema": {
  1771. "$ref": "#/definitions/proto.Error"
  1772. }
  1773. }
  1774. }
  1775. }
  1776. },
  1777. "/workspaces/{id}/permissions/grant": {
  1778. "post": {
  1779. "consumes": [
  1780. "application/json"
  1781. ],
  1782. "tags": [
  1783. "permissions"
  1784. ],
  1785. "summary": "Grant permission",
  1786. "parameters": [
  1787. {
  1788. "type": "string",
  1789. "description": "Workspace ID",
  1790. "name": "id",
  1791. "in": "path",
  1792. "required": true
  1793. },
  1794. {
  1795. "description": "Permission grant",
  1796. "name": "request",
  1797. "in": "body",
  1798. "required": true,
  1799. "schema": {
  1800. "$ref": "#/definitions/proto.PermissionGrant"
  1801. }
  1802. }
  1803. ],
  1804. "responses": {
  1805. "200": {
  1806. "description": "OK"
  1807. },
  1808. "400": {
  1809. "description": "Bad Request",
  1810. "schema": {
  1811. "$ref": "#/definitions/proto.Error"
  1812. }
  1813. },
  1814. "404": {
  1815. "description": "Not Found",
  1816. "schema": {
  1817. "$ref": "#/definitions/proto.Error"
  1818. }
  1819. },
  1820. "500": {
  1821. "description": "Internal Server Error",
  1822. "schema": {
  1823. "$ref": "#/definitions/proto.Error"
  1824. }
  1825. }
  1826. }
  1827. }
  1828. },
  1829. "/workspaces/{id}/permissions/skip": {
  1830. "get": {
  1831. "produces": [
  1832. "application/json"
  1833. ],
  1834. "tags": [
  1835. "permissions"
  1836. ],
  1837. "summary": "Get skip permissions status",
  1838. "parameters": [
  1839. {
  1840. "type": "string",
  1841. "description": "Workspace ID",
  1842. "name": "id",
  1843. "in": "path",
  1844. "required": true
  1845. }
  1846. ],
  1847. "responses": {
  1848. "200": {
  1849. "description": "OK",
  1850. "schema": {
  1851. "$ref": "#/definitions/proto.PermissionSkipRequest"
  1852. }
  1853. },
  1854. "404": {
  1855. "description": "Not Found",
  1856. "schema": {
  1857. "$ref": "#/definitions/proto.Error"
  1858. }
  1859. },
  1860. "500": {
  1861. "description": "Internal Server Error",
  1862. "schema": {
  1863. "$ref": "#/definitions/proto.Error"
  1864. }
  1865. }
  1866. }
  1867. },
  1868. "post": {
  1869. "consumes": [
  1870. "application/json"
  1871. ],
  1872. "tags": [
  1873. "permissions"
  1874. ],
  1875. "summary": "Set skip permissions",
  1876. "parameters": [
  1877. {
  1878. "type": "string",
  1879. "description": "Workspace ID",
  1880. "name": "id",
  1881. "in": "path",
  1882. "required": true
  1883. },
  1884. {
  1885. "description": "Permission skip request",
  1886. "name": "request",
  1887. "in": "body",
  1888. "required": true,
  1889. "schema": {
  1890. "$ref": "#/definitions/proto.PermissionSkipRequest"
  1891. }
  1892. }
  1893. ],
  1894. "responses": {
  1895. "200": {
  1896. "description": "OK"
  1897. },
  1898. "400": {
  1899. "description": "Bad Request",
  1900. "schema": {
  1901. "$ref": "#/definitions/proto.Error"
  1902. }
  1903. },
  1904. "404": {
  1905. "description": "Not Found",
  1906. "schema": {
  1907. "$ref": "#/definitions/proto.Error"
  1908. }
  1909. },
  1910. "500": {
  1911. "description": "Internal Server Error",
  1912. "schema": {
  1913. "$ref": "#/definitions/proto.Error"
  1914. }
  1915. }
  1916. }
  1917. }
  1918. },
  1919. "/workspaces/{id}/project/init": {
  1920. "post": {
  1921. "tags": [
  1922. "project"
  1923. ],
  1924. "summary": "Mark project as initialized",
  1925. "parameters": [
  1926. {
  1927. "type": "string",
  1928. "description": "Workspace ID",
  1929. "name": "id",
  1930. "in": "path",
  1931. "required": true
  1932. }
  1933. ],
  1934. "responses": {
  1935. "200": {
  1936. "description": "OK"
  1937. },
  1938. "404": {
  1939. "description": "Not Found",
  1940. "schema": {
  1941. "$ref": "#/definitions/proto.Error"
  1942. }
  1943. },
  1944. "500": {
  1945. "description": "Internal Server Error",
  1946. "schema": {
  1947. "$ref": "#/definitions/proto.Error"
  1948. }
  1949. }
  1950. }
  1951. }
  1952. },
  1953. "/workspaces/{id}/project/init-prompt": {
  1954. "get": {
  1955. "produces": [
  1956. "application/json"
  1957. ],
  1958. "tags": [
  1959. "project"
  1960. ],
  1961. "summary": "Get project initialization prompt",
  1962. "parameters": [
  1963. {
  1964. "type": "string",
  1965. "description": "Workspace ID",
  1966. "name": "id",
  1967. "in": "path",
  1968. "required": true
  1969. }
  1970. ],
  1971. "responses": {
  1972. "200": {
  1973. "description": "OK",
  1974. "schema": {
  1975. "$ref": "#/definitions/proto.ProjectInitPromptResponse"
  1976. }
  1977. },
  1978. "404": {
  1979. "description": "Not Found",
  1980. "schema": {
  1981. "$ref": "#/definitions/proto.Error"
  1982. }
  1983. },
  1984. "500": {
  1985. "description": "Internal Server Error",
  1986. "schema": {
  1987. "$ref": "#/definitions/proto.Error"
  1988. }
  1989. }
  1990. }
  1991. }
  1992. },
  1993. "/workspaces/{id}/project/needs-init": {
  1994. "get": {
  1995. "produces": [
  1996. "application/json"
  1997. ],
  1998. "tags": [
  1999. "project"
  2000. ],
  2001. "summary": "Check if project needs initialization",
  2002. "parameters": [
  2003. {
  2004. "type": "string",
  2005. "description": "Workspace ID",
  2006. "name": "id",
  2007. "in": "path",
  2008. "required": true
  2009. }
  2010. ],
  2011. "responses": {
  2012. "200": {
  2013. "description": "OK",
  2014. "schema": {
  2015. "$ref": "#/definitions/proto.ProjectNeedsInitResponse"
  2016. }
  2017. },
  2018. "404": {
  2019. "description": "Not Found",
  2020. "schema": {
  2021. "$ref": "#/definitions/proto.Error"
  2022. }
  2023. },
  2024. "500": {
  2025. "description": "Internal Server Error",
  2026. "schema": {
  2027. "$ref": "#/definitions/proto.Error"
  2028. }
  2029. }
  2030. }
  2031. }
  2032. },
  2033. "/workspaces/{id}/providers": {
  2034. "get": {
  2035. "produces": [
  2036. "application/json"
  2037. ],
  2038. "tags": [
  2039. "workspaces"
  2040. ],
  2041. "summary": "Get workspace providers",
  2042. "parameters": [
  2043. {
  2044. "type": "string",
  2045. "description": "Workspace ID",
  2046. "name": "id",
  2047. "in": "path",
  2048. "required": true
  2049. }
  2050. ],
  2051. "responses": {
  2052. "200": {
  2053. "description": "OK",
  2054. "schema": {
  2055. "type": "object"
  2056. }
  2057. },
  2058. "404": {
  2059. "description": "Not Found",
  2060. "schema": {
  2061. "$ref": "#/definitions/proto.Error"
  2062. }
  2063. },
  2064. "500": {
  2065. "description": "Internal Server Error",
  2066. "schema": {
  2067. "$ref": "#/definitions/proto.Error"
  2068. }
  2069. }
  2070. }
  2071. }
  2072. },
  2073. "/workspaces/{id}/sessions": {
  2074. "get": {
  2075. "produces": [
  2076. "application/json"
  2077. ],
  2078. "tags": [
  2079. "sessions"
  2080. ],
  2081. "summary": "List sessions",
  2082. "parameters": [
  2083. {
  2084. "type": "string",
  2085. "description": "Workspace ID",
  2086. "name": "id",
  2087. "in": "path",
  2088. "required": true
  2089. }
  2090. ],
  2091. "responses": {
  2092. "200": {
  2093. "description": "OK",
  2094. "schema": {
  2095. "type": "array",
  2096. "items": {
  2097. "$ref": "#/definitions/proto.Session"
  2098. }
  2099. }
  2100. },
  2101. "404": {
  2102. "description": "Not Found",
  2103. "schema": {
  2104. "$ref": "#/definitions/proto.Error"
  2105. }
  2106. },
  2107. "500": {
  2108. "description": "Internal Server Error",
  2109. "schema": {
  2110. "$ref": "#/definitions/proto.Error"
  2111. }
  2112. }
  2113. }
  2114. },
  2115. "post": {
  2116. "consumes": [
  2117. "application/json"
  2118. ],
  2119. "produces": [
  2120. "application/json"
  2121. ],
  2122. "tags": [
  2123. "sessions"
  2124. ],
  2125. "summary": "Create session",
  2126. "parameters": [
  2127. {
  2128. "type": "string",
  2129. "description": "Workspace ID",
  2130. "name": "id",
  2131. "in": "path",
  2132. "required": true
  2133. },
  2134. {
  2135. "description": "Session creation params (title)",
  2136. "name": "request",
  2137. "in": "body",
  2138. "required": true,
  2139. "schema": {
  2140. "$ref": "#/definitions/proto.Session"
  2141. }
  2142. }
  2143. ],
  2144. "responses": {
  2145. "200": {
  2146. "description": "OK",
  2147. "schema": {
  2148. "$ref": "#/definitions/proto.Session"
  2149. }
  2150. },
  2151. "400": {
  2152. "description": "Bad Request",
  2153. "schema": {
  2154. "$ref": "#/definitions/proto.Error"
  2155. }
  2156. },
  2157. "404": {
  2158. "description": "Not Found",
  2159. "schema": {
  2160. "$ref": "#/definitions/proto.Error"
  2161. }
  2162. },
  2163. "500": {
  2164. "description": "Internal Server Error",
  2165. "schema": {
  2166. "$ref": "#/definitions/proto.Error"
  2167. }
  2168. }
  2169. }
  2170. }
  2171. },
  2172. "/workspaces/{id}/sessions/{sid}": {
  2173. "get": {
  2174. "produces": [
  2175. "application/json"
  2176. ],
  2177. "tags": [
  2178. "sessions"
  2179. ],
  2180. "summary": "Get session",
  2181. "parameters": [
  2182. {
  2183. "type": "string",
  2184. "description": "Workspace ID",
  2185. "name": "id",
  2186. "in": "path",
  2187. "required": true
  2188. },
  2189. {
  2190. "type": "string",
  2191. "description": "Session ID",
  2192. "name": "sid",
  2193. "in": "path",
  2194. "required": true
  2195. }
  2196. ],
  2197. "responses": {
  2198. "200": {
  2199. "description": "OK",
  2200. "schema": {
  2201. "$ref": "#/definitions/proto.Session"
  2202. }
  2203. },
  2204. "404": {
  2205. "description": "Not Found",
  2206. "schema": {
  2207. "$ref": "#/definitions/proto.Error"
  2208. }
  2209. },
  2210. "500": {
  2211. "description": "Internal Server Error",
  2212. "schema": {
  2213. "$ref": "#/definitions/proto.Error"
  2214. }
  2215. }
  2216. }
  2217. },
  2218. "put": {
  2219. "consumes": [
  2220. "application/json"
  2221. ],
  2222. "produces": [
  2223. "application/json"
  2224. ],
  2225. "tags": [
  2226. "sessions"
  2227. ],
  2228. "summary": "Update session",
  2229. "parameters": [
  2230. {
  2231. "type": "string",
  2232. "description": "Workspace ID",
  2233. "name": "id",
  2234. "in": "path",
  2235. "required": true
  2236. },
  2237. {
  2238. "type": "string",
  2239. "description": "Session ID",
  2240. "name": "sid",
  2241. "in": "path",
  2242. "required": true
  2243. },
  2244. {
  2245. "description": "Updated session",
  2246. "name": "request",
  2247. "in": "body",
  2248. "required": true,
  2249. "schema": {
  2250. "$ref": "#/definitions/proto.Session"
  2251. }
  2252. }
  2253. ],
  2254. "responses": {
  2255. "200": {
  2256. "description": "OK",
  2257. "schema": {
  2258. "$ref": "#/definitions/proto.Session"
  2259. }
  2260. },
  2261. "400": {
  2262. "description": "Bad Request",
  2263. "schema": {
  2264. "$ref": "#/definitions/proto.Error"
  2265. }
  2266. },
  2267. "404": {
  2268. "description": "Not Found",
  2269. "schema": {
  2270. "$ref": "#/definitions/proto.Error"
  2271. }
  2272. },
  2273. "500": {
  2274. "description": "Internal Server Error",
  2275. "schema": {
  2276. "$ref": "#/definitions/proto.Error"
  2277. }
  2278. }
  2279. }
  2280. },
  2281. "delete": {
  2282. "tags": [
  2283. "sessions"
  2284. ],
  2285. "summary": "Delete session",
  2286. "parameters": [
  2287. {
  2288. "type": "string",
  2289. "description": "Workspace ID",
  2290. "name": "id",
  2291. "in": "path",
  2292. "required": true
  2293. },
  2294. {
  2295. "type": "string",
  2296. "description": "Session ID",
  2297. "name": "sid",
  2298. "in": "path",
  2299. "required": true
  2300. }
  2301. ],
  2302. "responses": {
  2303. "200": {
  2304. "description": "OK"
  2305. },
  2306. "404": {
  2307. "description": "Not Found",
  2308. "schema": {
  2309. "$ref": "#/definitions/proto.Error"
  2310. }
  2311. },
  2312. "500": {
  2313. "description": "Internal Server Error",
  2314. "schema": {
  2315. "$ref": "#/definitions/proto.Error"
  2316. }
  2317. }
  2318. }
  2319. }
  2320. },
  2321. "/workspaces/{id}/sessions/{sid}/filetracker/files": {
  2322. "get": {
  2323. "produces": [
  2324. "application/json"
  2325. ],
  2326. "tags": [
  2327. "filetracker"
  2328. ],
  2329. "summary": "List tracked files for session",
  2330. "parameters": [
  2331. {
  2332. "type": "string",
  2333. "description": "Workspace ID",
  2334. "name": "id",
  2335. "in": "path",
  2336. "required": true
  2337. },
  2338. {
  2339. "type": "string",
  2340. "description": "Session ID",
  2341. "name": "sid",
  2342. "in": "path",
  2343. "required": true
  2344. }
  2345. ],
  2346. "responses": {
  2347. "200": {
  2348. "description": "OK",
  2349. "schema": {
  2350. "type": "array",
  2351. "items": {
  2352. "type": "string"
  2353. }
  2354. }
  2355. },
  2356. "404": {
  2357. "description": "Not Found",
  2358. "schema": {
  2359. "$ref": "#/definitions/proto.Error"
  2360. }
  2361. },
  2362. "500": {
  2363. "description": "Internal Server Error",
  2364. "schema": {
  2365. "$ref": "#/definitions/proto.Error"
  2366. }
  2367. }
  2368. }
  2369. }
  2370. },
  2371. "/workspaces/{id}/sessions/{sid}/history": {
  2372. "get": {
  2373. "produces": [
  2374. "application/json"
  2375. ],
  2376. "tags": [
  2377. "sessions"
  2378. ],
  2379. "summary": "Get session history",
  2380. "parameters": [
  2381. {
  2382. "type": "string",
  2383. "description": "Workspace ID",
  2384. "name": "id",
  2385. "in": "path",
  2386. "required": true
  2387. },
  2388. {
  2389. "type": "string",
  2390. "description": "Session ID",
  2391. "name": "sid",
  2392. "in": "path",
  2393. "required": true
  2394. }
  2395. ],
  2396. "responses": {
  2397. "200": {
  2398. "description": "OK",
  2399. "schema": {
  2400. "type": "array",
  2401. "items": {
  2402. "$ref": "#/definitions/proto.File"
  2403. }
  2404. }
  2405. },
  2406. "404": {
  2407. "description": "Not Found",
  2408. "schema": {
  2409. "$ref": "#/definitions/proto.Error"
  2410. }
  2411. },
  2412. "500": {
  2413. "description": "Internal Server Error",
  2414. "schema": {
  2415. "$ref": "#/definitions/proto.Error"
  2416. }
  2417. }
  2418. }
  2419. }
  2420. },
  2421. "/workspaces/{id}/sessions/{sid}/messages": {
  2422. "get": {
  2423. "produces": [
  2424. "application/json"
  2425. ],
  2426. "tags": [
  2427. "sessions"
  2428. ],
  2429. "summary": "Get session messages",
  2430. "parameters": [
  2431. {
  2432. "type": "string",
  2433. "description": "Workspace ID",
  2434. "name": "id",
  2435. "in": "path",
  2436. "required": true
  2437. },
  2438. {
  2439. "type": "string",
  2440. "description": "Session ID",
  2441. "name": "sid",
  2442. "in": "path",
  2443. "required": true
  2444. }
  2445. ],
  2446. "responses": {
  2447. "200": {
  2448. "description": "OK",
  2449. "schema": {
  2450. "type": "array",
  2451. "items": {
  2452. "$ref": "#/definitions/github_com_charmbracelet_crush_internal_proto.Message"
  2453. }
  2454. }
  2455. },
  2456. "404": {
  2457. "description": "Not Found",
  2458. "schema": {
  2459. "$ref": "#/definitions/proto.Error"
  2460. }
  2461. },
  2462. "500": {
  2463. "description": "Internal Server Error",
  2464. "schema": {
  2465. "$ref": "#/definitions/proto.Error"
  2466. }
  2467. }
  2468. }
  2469. }
  2470. },
  2471. "/workspaces/{id}/sessions/{sid}/messages/user": {
  2472. "get": {
  2473. "produces": [
  2474. "application/json"
  2475. ],
  2476. "tags": [
  2477. "sessions"
  2478. ],
  2479. "summary": "Get user messages for session",
  2480. "parameters": [
  2481. {
  2482. "type": "string",
  2483. "description": "Workspace ID",
  2484. "name": "id",
  2485. "in": "path",
  2486. "required": true
  2487. },
  2488. {
  2489. "type": "string",
  2490. "description": "Session ID",
  2491. "name": "sid",
  2492. "in": "path",
  2493. "required": true
  2494. }
  2495. ],
  2496. "responses": {
  2497. "200": {
  2498. "description": "OK",
  2499. "schema": {
  2500. "type": "array",
  2501. "items": {
  2502. "$ref": "#/definitions/github_com_charmbracelet_crush_internal_proto.Message"
  2503. }
  2504. }
  2505. },
  2506. "404": {
  2507. "description": "Not Found",
  2508. "schema": {
  2509. "$ref": "#/definitions/proto.Error"
  2510. }
  2511. },
  2512. "500": {
  2513. "description": "Internal Server Error",
  2514. "schema": {
  2515. "$ref": "#/definitions/proto.Error"
  2516. }
  2517. }
  2518. }
  2519. }
  2520. }
  2521. },
  2522. "definitions": {
  2523. "catwalk.Model": {
  2524. "type": "object",
  2525. "properties": {
  2526. "can_reason": {
  2527. "type": "boolean"
  2528. },
  2529. "context_window": {
  2530. "type": "integer"
  2531. },
  2532. "cost_per_1m_in": {
  2533. "type": "number"
  2534. },
  2535. "cost_per_1m_in_cached": {
  2536. "type": "number"
  2537. },
  2538. "cost_per_1m_out": {
  2539. "type": "number"
  2540. },
  2541. "cost_per_1m_out_cached": {
  2542. "type": "number"
  2543. },
  2544. "default_max_tokens": {
  2545. "type": "integer"
  2546. },
  2547. "default_reasoning_effort": {
  2548. "type": "string"
  2549. },
  2550. "id": {
  2551. "type": "string"
  2552. },
  2553. "name": {
  2554. "type": "string"
  2555. },
  2556. "options": {
  2557. "$ref": "#/definitions/catwalk.ModelOptions"
  2558. },
  2559. "reasoning_levels": {
  2560. "type": "array",
  2561. "items": {
  2562. "type": "string"
  2563. }
  2564. },
  2565. "supports_attachments": {
  2566. "type": "boolean"
  2567. }
  2568. }
  2569. },
  2570. "catwalk.ModelOptions": {
  2571. "type": "object",
  2572. "properties": {
  2573. "frequency_penalty": {
  2574. "type": "number"
  2575. },
  2576. "presence_penalty": {
  2577. "type": "number"
  2578. },
  2579. "provider_options": {
  2580. "type": "object",
  2581. "additionalProperties": {}
  2582. },
  2583. "temperature": {
  2584. "type": "number"
  2585. },
  2586. "top_k": {
  2587. "type": "integer"
  2588. },
  2589. "top_p": {
  2590. "type": "number"
  2591. }
  2592. }
  2593. },
  2594. "config.Attribution": {
  2595. "type": "object",
  2596. "properties": {
  2597. "co_authored_by": {
  2598. "type": "boolean"
  2599. },
  2600. "generated_with": {
  2601. "type": "boolean"
  2602. },
  2603. "trailer_style": {
  2604. "$ref": "#/definitions/config.TrailerStyle"
  2605. }
  2606. }
  2607. },
  2608. "config.Completions": {
  2609. "type": "object",
  2610. "properties": {
  2611. "max_depth": {
  2612. "type": "integer"
  2613. },
  2614. "max_items": {
  2615. "type": "integer"
  2616. }
  2617. }
  2618. },
  2619. "config.LSPConfig": {
  2620. "type": "object",
  2621. "properties": {
  2622. "args": {
  2623. "type": "array",
  2624. "items": {
  2625. "type": "string"
  2626. }
  2627. },
  2628. "command": {
  2629. "type": "string"
  2630. },
  2631. "disabled": {
  2632. "type": "boolean"
  2633. },
  2634. "env": {
  2635. "type": "object",
  2636. "additionalProperties": {
  2637. "type": "string"
  2638. }
  2639. },
  2640. "filetypes": {
  2641. "type": "array",
  2642. "items": {
  2643. "type": "string"
  2644. }
  2645. },
  2646. "init_options": {
  2647. "type": "object",
  2648. "additionalProperties": {}
  2649. },
  2650. "options": {
  2651. "type": "object",
  2652. "additionalProperties": {}
  2653. },
  2654. "root_markers": {
  2655. "type": "array",
  2656. "items": {
  2657. "type": "string"
  2658. }
  2659. },
  2660. "timeout": {
  2661. "type": "integer"
  2662. }
  2663. }
  2664. },
  2665. "config.LSPs": {
  2666. "type": "object",
  2667. "additionalProperties": {
  2668. "$ref": "#/definitions/config.LSPConfig"
  2669. }
  2670. },
  2671. "config.MCPConfig": {
  2672. "type": "object",
  2673. "properties": {
  2674. "args": {
  2675. "type": "array",
  2676. "items": {
  2677. "type": "string"
  2678. }
  2679. },
  2680. "command": {
  2681. "type": "string"
  2682. },
  2683. "disabled": {
  2684. "type": "boolean"
  2685. },
  2686. "disabled_tools": {
  2687. "type": "array",
  2688. "items": {
  2689. "type": "string"
  2690. }
  2691. },
  2692. "env": {
  2693. "type": "object",
  2694. "additionalProperties": {
  2695. "type": "string"
  2696. }
  2697. },
  2698. "headers": {
  2699. "description": "TODO: maybe make it possible to get the value from the env",
  2700. "type": "object",
  2701. "additionalProperties": {
  2702. "type": "string"
  2703. }
  2704. },
  2705. "timeout": {
  2706. "type": "integer"
  2707. },
  2708. "type": {
  2709. "$ref": "#/definitions/config.MCPType"
  2710. },
  2711. "url": {
  2712. "type": "string"
  2713. }
  2714. }
  2715. },
  2716. "config.MCPType": {
  2717. "type": "string",
  2718. "enum": [
  2719. "stdio",
  2720. "sse",
  2721. "http"
  2722. ],
  2723. "x-enum-varnames": [
  2724. "MCPStdio",
  2725. "MCPSSE",
  2726. "MCPHttp"
  2727. ]
  2728. },
  2729. "config.MCPs": {
  2730. "type": "object",
  2731. "additionalProperties": {
  2732. "$ref": "#/definitions/config.MCPConfig"
  2733. }
  2734. },
  2735. "config.Permissions": {
  2736. "type": "object",
  2737. "properties": {
  2738. "allowed_tools": {
  2739. "type": "array",
  2740. "items": {
  2741. "type": "string"
  2742. }
  2743. }
  2744. }
  2745. },
  2746. "config.Scope": {
  2747. "type": "integer",
  2748. "enum": [
  2749. 0,
  2750. 1
  2751. ],
  2752. "x-enum-varnames": [
  2753. "ScopeGlobal",
  2754. "ScopeWorkspace"
  2755. ]
  2756. },
  2757. "config.SelectedModel": {
  2758. "type": "object",
  2759. "properties": {
  2760. "frequency_penalty": {
  2761. "type": "number"
  2762. },
  2763. "max_tokens": {
  2764. "description": "Overrides the default model configuration.",
  2765. "type": "integer"
  2766. },
  2767. "model": {
  2768. "description": "The model id as used by the provider API.\nRequired.",
  2769. "type": "string"
  2770. },
  2771. "presence_penalty": {
  2772. "type": "number"
  2773. },
  2774. "provider": {
  2775. "description": "The model provider, same as the key/id used in the providers config.\nRequired.",
  2776. "type": "string"
  2777. },
  2778. "provider_options": {
  2779. "description": "Override provider specific options.",
  2780. "type": "object",
  2781. "additionalProperties": {}
  2782. },
  2783. "reasoning_effort": {
  2784. "description": "Only used by models that use the openai provider and need this set.",
  2785. "type": "string"
  2786. },
  2787. "temperature": {
  2788. "type": "number"
  2789. },
  2790. "think": {
  2791. "description": "Used by anthropic models that can reason to indicate if the model should think.",
  2792. "type": "boolean"
  2793. },
  2794. "top_k": {
  2795. "type": "integer"
  2796. },
  2797. "top_p": {
  2798. "type": "number"
  2799. }
  2800. }
  2801. },
  2802. "config.SelectedModelType": {
  2803. "type": "string",
  2804. "enum": [
  2805. "large",
  2806. "small"
  2807. ],
  2808. "x-enum-varnames": [
  2809. "SelectedModelTypeLarge",
  2810. "SelectedModelTypeSmall"
  2811. ]
  2812. },
  2813. "config.TUIOptions": {
  2814. "type": "object",
  2815. "properties": {
  2816. "compact_mode": {
  2817. "type": "boolean"
  2818. },
  2819. "completions": {
  2820. "$ref": "#/definitions/config.Completions"
  2821. },
  2822. "diff_mode": {
  2823. "type": "string"
  2824. },
  2825. "transparent": {
  2826. "type": "boolean"
  2827. }
  2828. }
  2829. },
  2830. "config.ToolGrep": {
  2831. "type": "object",
  2832. "properties": {
  2833. "timeout": {
  2834. "$ref": "#/definitions/time.Duration"
  2835. }
  2836. }
  2837. },
  2838. "config.ToolLs": {
  2839. "type": "object",
  2840. "properties": {
  2841. "max_depth": {
  2842. "type": "integer"
  2843. },
  2844. "max_items": {
  2845. "type": "integer"
  2846. }
  2847. }
  2848. },
  2849. "config.Tools": {
  2850. "type": "object",
  2851. "properties": {
  2852. "grep": {
  2853. "$ref": "#/definitions/config.ToolGrep"
  2854. },
  2855. "ls": {
  2856. "$ref": "#/definitions/config.ToolLs"
  2857. }
  2858. }
  2859. },
  2860. "config.TrailerStyle": {
  2861. "type": "string",
  2862. "enum": [
  2863. "none",
  2864. "co-authored-by",
  2865. "assisted-by"
  2866. ],
  2867. "x-enum-varnames": [
  2868. "TrailerStyleNone",
  2869. "TrailerStyleCoAuthoredBy",
  2870. "TrailerStyleAssistedBy"
  2871. ]
  2872. },
  2873. "csync.Map-string-config_ProviderConfig": {
  2874. "type": "object"
  2875. },
  2876. "github_com_charmbracelet_crush_internal_config.Config": {
  2877. "type": "object",
  2878. "properties": {
  2879. "$schema": {
  2880. "type": "string"
  2881. },
  2882. "lsp": {
  2883. "$ref": "#/definitions/config.LSPs"
  2884. },
  2885. "mcp": {
  2886. "$ref": "#/definitions/config.MCPs"
  2887. },
  2888. "models": {
  2889. "description": "We currently only support large/small as values here.",
  2890. "type": "object",
  2891. "additionalProperties": {
  2892. "$ref": "#/definitions/config.SelectedModel"
  2893. }
  2894. },
  2895. "options": {
  2896. "$ref": "#/definitions/github_com_charmbracelet_crush_internal_config.Options"
  2897. },
  2898. "permissions": {
  2899. "$ref": "#/definitions/config.Permissions"
  2900. },
  2901. "providers": {
  2902. "description": "The providers that are configured",
  2903. "allOf": [
  2904. {
  2905. "$ref": "#/definitions/csync.Map-string-config_ProviderConfig"
  2906. }
  2907. ]
  2908. },
  2909. "recent_models": {
  2910. "description": "Recently used models stored in the data directory config.",
  2911. "type": "object",
  2912. "additionalProperties": {
  2913. "type": "array",
  2914. "items": {
  2915. "$ref": "#/definitions/config.SelectedModel"
  2916. }
  2917. }
  2918. },
  2919. "tools": {
  2920. "$ref": "#/definitions/config.Tools"
  2921. }
  2922. }
  2923. },
  2924. "github_com_charmbracelet_crush_internal_config.Options": {
  2925. "type": "object",
  2926. "properties": {
  2927. "attribution": {
  2928. "$ref": "#/definitions/config.Attribution"
  2929. },
  2930. "auto_lsp": {
  2931. "type": "boolean"
  2932. },
  2933. "context_paths": {
  2934. "type": "array",
  2935. "items": {
  2936. "type": "string"
  2937. }
  2938. },
  2939. "data_directory": {
  2940. "description": "Relative to the cwd",
  2941. "type": "string"
  2942. },
  2943. "debug": {
  2944. "type": "boolean"
  2945. },
  2946. "debug_lsp": {
  2947. "type": "boolean"
  2948. },
  2949. "disable_auto_summarize": {
  2950. "type": "boolean"
  2951. },
  2952. "disable_default_providers": {
  2953. "type": "boolean"
  2954. },
  2955. "disable_metrics": {
  2956. "type": "boolean"
  2957. },
  2958. "disable_notifications": {
  2959. "type": "boolean"
  2960. },
  2961. "disable_provider_auto_update": {
  2962. "type": "boolean"
  2963. },
  2964. "disabled_tools": {
  2965. "type": "array",
  2966. "items": {
  2967. "type": "string"
  2968. }
  2969. },
  2970. "initialize_as": {
  2971. "type": "string"
  2972. },
  2973. "progress": {
  2974. "type": "boolean"
  2975. },
  2976. "skills_paths": {
  2977. "type": "array",
  2978. "items": {
  2979. "type": "string"
  2980. }
  2981. },
  2982. "tui": {
  2983. "$ref": "#/definitions/config.TUIOptions"
  2984. }
  2985. }
  2986. },
  2987. "github_com_charmbracelet_crush_internal_proto.Message": {
  2988. "type": "object",
  2989. "properties": {
  2990. "created_at": {
  2991. "type": "integer"
  2992. },
  2993. "id": {
  2994. "type": "string"
  2995. },
  2996. "model": {
  2997. "type": "string"
  2998. },
  2999. "parts": {
  3000. "type": "array",
  3001. "items": {}
  3002. },
  3003. "provider": {
  3004. "type": "string"
  3005. },
  3006. "role": {
  3007. "$ref": "#/definitions/proto.MessageRole"
  3008. },
  3009. "session_id": {
  3010. "type": "string"
  3011. },
  3012. "updated_at": {
  3013. "type": "integer"
  3014. }
  3015. }
  3016. },
  3017. "lsp.ServerState": {
  3018. "type": "integer",
  3019. "enum": [
  3020. 0,
  3021. 1,
  3022. 2,
  3023. 3,
  3024. 4,
  3025. 5
  3026. ],
  3027. "x-enum-varnames": [
  3028. "StateUnstarted",
  3029. "StateStarting",
  3030. "StateReady",
  3031. "StateError",
  3032. "StateStopped",
  3033. "StateDisabled"
  3034. ]
  3035. },
  3036. "proto.AgentInfo": {
  3037. "type": "object",
  3038. "properties": {
  3039. "is_busy": {
  3040. "type": "boolean"
  3041. },
  3042. "is_ready": {
  3043. "type": "boolean"
  3044. },
  3045. "model": {
  3046. "$ref": "#/definitions/catwalk.Model"
  3047. },
  3048. "model_cfg": {
  3049. "$ref": "#/definitions/config.SelectedModel"
  3050. }
  3051. }
  3052. },
  3053. "proto.AgentMessage": {
  3054. "type": "object",
  3055. "properties": {
  3056. "attachments": {
  3057. "type": "array",
  3058. "items": {
  3059. "$ref": "#/definitions/proto.Attachment"
  3060. }
  3061. },
  3062. "prompt": {
  3063. "type": "string"
  3064. },
  3065. "session_id": {
  3066. "type": "string"
  3067. }
  3068. }
  3069. },
  3070. "proto.AgentSession": {
  3071. "type": "object",
  3072. "properties": {
  3073. "completion_tokens": {
  3074. "type": "integer"
  3075. },
  3076. "cost": {
  3077. "type": "number"
  3078. },
  3079. "created_at": {
  3080. "type": "integer"
  3081. },
  3082. "id": {
  3083. "type": "string"
  3084. },
  3085. "is_busy": {
  3086. "type": "boolean"
  3087. },
  3088. "message_count": {
  3089. "type": "integer"
  3090. },
  3091. "parent_session_id": {
  3092. "type": "string"
  3093. },
  3094. "prompt_tokens": {
  3095. "type": "integer"
  3096. },
  3097. "summary_message_id": {
  3098. "type": "string"
  3099. },
  3100. "title": {
  3101. "type": "string"
  3102. },
  3103. "updated_at": {
  3104. "type": "integer"
  3105. }
  3106. }
  3107. },
  3108. "proto.Attachment": {
  3109. "type": "object",
  3110. "properties": {
  3111. "content": {
  3112. "type": "array",
  3113. "items": {
  3114. "type": "integer"
  3115. }
  3116. },
  3117. "file_name": {
  3118. "type": "string"
  3119. },
  3120. "file_path": {
  3121. "type": "string"
  3122. },
  3123. "mime_type": {
  3124. "type": "string"
  3125. }
  3126. }
  3127. },
  3128. "proto.ConfigCompactRequest": {
  3129. "type": "object",
  3130. "properties": {
  3131. "enabled": {
  3132. "type": "boolean"
  3133. },
  3134. "scope": {
  3135. "$ref": "#/definitions/config.Scope"
  3136. }
  3137. }
  3138. },
  3139. "proto.ConfigModelRequest": {
  3140. "type": "object",
  3141. "properties": {
  3142. "model": {
  3143. "$ref": "#/definitions/config.SelectedModel"
  3144. },
  3145. "model_type": {
  3146. "$ref": "#/definitions/config.SelectedModelType"
  3147. },
  3148. "scope": {
  3149. "$ref": "#/definitions/config.Scope"
  3150. }
  3151. }
  3152. },
  3153. "proto.ConfigProviderKeyRequest": {
  3154. "type": "object",
  3155. "properties": {
  3156. "api_key": {},
  3157. "provider_id": {
  3158. "type": "string"
  3159. },
  3160. "scope": {
  3161. "$ref": "#/definitions/config.Scope"
  3162. }
  3163. }
  3164. },
  3165. "proto.ConfigRefreshOAuthRequest": {
  3166. "type": "object",
  3167. "properties": {
  3168. "provider_id": {
  3169. "type": "string"
  3170. },
  3171. "scope": {
  3172. "$ref": "#/definitions/config.Scope"
  3173. }
  3174. }
  3175. },
  3176. "proto.ConfigRemoveRequest": {
  3177. "type": "object",
  3178. "properties": {
  3179. "key": {
  3180. "type": "string"
  3181. },
  3182. "scope": {
  3183. "$ref": "#/definitions/config.Scope"
  3184. }
  3185. }
  3186. },
  3187. "proto.ConfigSetRequest": {
  3188. "type": "object",
  3189. "properties": {
  3190. "key": {
  3191. "type": "string"
  3192. },
  3193. "scope": {
  3194. "$ref": "#/definitions/config.Scope"
  3195. },
  3196. "value": {}
  3197. }
  3198. },
  3199. "proto.Error": {
  3200. "type": "object",
  3201. "properties": {
  3202. "message": {
  3203. "type": "string"
  3204. }
  3205. }
  3206. },
  3207. "proto.File": {
  3208. "type": "object",
  3209. "properties": {
  3210. "content": {
  3211. "type": "string"
  3212. },
  3213. "created_at": {
  3214. "type": "integer"
  3215. },
  3216. "id": {
  3217. "type": "string"
  3218. },
  3219. "path": {
  3220. "type": "string"
  3221. },
  3222. "session_id": {
  3223. "type": "string"
  3224. },
  3225. "updated_at": {
  3226. "type": "integer"
  3227. },
  3228. "version": {
  3229. "type": "integer"
  3230. }
  3231. }
  3232. },
  3233. "proto.FileTrackerReadRequest": {
  3234. "type": "object",
  3235. "properties": {
  3236. "path": {
  3237. "type": "string"
  3238. },
  3239. "session_id": {
  3240. "type": "string"
  3241. }
  3242. }
  3243. },
  3244. "proto.ImportCopilotResponse": {
  3245. "type": "object",
  3246. "properties": {
  3247. "success": {
  3248. "type": "boolean"
  3249. },
  3250. "token": {}
  3251. }
  3252. },
  3253. "proto.LSPClientInfo": {
  3254. "type": "object",
  3255. "properties": {
  3256. "connected_at": {
  3257. "type": "string"
  3258. },
  3259. "diagnostic_count": {
  3260. "type": "integer"
  3261. },
  3262. "error": {},
  3263. "name": {
  3264. "type": "string"
  3265. },
  3266. "state": {
  3267. "$ref": "#/definitions/lsp.ServerState"
  3268. }
  3269. }
  3270. },
  3271. "proto.LSPStartRequest": {
  3272. "type": "object",
  3273. "properties": {
  3274. "path": {
  3275. "type": "string"
  3276. }
  3277. }
  3278. },
  3279. "proto.MCPClientInfo": {
  3280. "type": "object",
  3281. "properties": {
  3282. "connected_at": {
  3283. "type": "string"
  3284. },
  3285. "error": {},
  3286. "name": {
  3287. "type": "string"
  3288. },
  3289. "prompt_count": {
  3290. "type": "integer"
  3291. },
  3292. "resource_count": {
  3293. "type": "integer"
  3294. },
  3295. "state": {
  3296. "$ref": "#/definitions/proto.MCPState"
  3297. },
  3298. "tool_count": {
  3299. "type": "integer"
  3300. }
  3301. }
  3302. },
  3303. "proto.MCPGetPromptRequest": {
  3304. "type": "object",
  3305. "properties": {
  3306. "args": {
  3307. "type": "object",
  3308. "additionalProperties": {
  3309. "type": "string"
  3310. }
  3311. },
  3312. "client_id": {
  3313. "type": "string"
  3314. },
  3315. "prompt_id": {
  3316. "type": "string"
  3317. }
  3318. }
  3319. },
  3320. "proto.MCPGetPromptResponse": {
  3321. "type": "object",
  3322. "properties": {
  3323. "prompt": {
  3324. "type": "string"
  3325. }
  3326. }
  3327. },
  3328. "proto.MCPNameRequest": {
  3329. "type": "object",
  3330. "properties": {
  3331. "name": {
  3332. "type": "string"
  3333. }
  3334. }
  3335. },
  3336. "proto.MCPReadResourceRequest": {
  3337. "type": "object",
  3338. "properties": {
  3339. "name": {
  3340. "type": "string"
  3341. },
  3342. "uri": {
  3343. "type": "string"
  3344. }
  3345. }
  3346. },
  3347. "proto.MCPState": {
  3348. "type": "integer",
  3349. "enum": [
  3350. 0,
  3351. 1,
  3352. 2,
  3353. 3
  3354. ],
  3355. "x-enum-varnames": [
  3356. "MCPStateDisabled",
  3357. "MCPStateStarting",
  3358. "MCPStateConnected",
  3359. "MCPStateError"
  3360. ]
  3361. },
  3362. "proto.MessageRole": {
  3363. "type": "string",
  3364. "enum": [
  3365. "assistant",
  3366. "user",
  3367. "system",
  3368. "tool"
  3369. ],
  3370. "x-enum-varnames": [
  3371. "Assistant",
  3372. "User",
  3373. "System",
  3374. "Tool"
  3375. ]
  3376. },
  3377. "proto.PermissionAction": {
  3378. "type": "string",
  3379. "enum": [
  3380. "allow",
  3381. "allow_session",
  3382. "deny"
  3383. ],
  3384. "x-enum-varnames": [
  3385. "PermissionAllow",
  3386. "PermissionAllowForSession",
  3387. "PermissionDeny"
  3388. ]
  3389. },
  3390. "proto.PermissionGrant": {
  3391. "type": "object",
  3392. "properties": {
  3393. "action": {
  3394. "$ref": "#/definitions/proto.PermissionAction"
  3395. },
  3396. "permission": {
  3397. "$ref": "#/definitions/proto.PermissionRequest"
  3398. }
  3399. }
  3400. },
  3401. "proto.PermissionRequest": {
  3402. "type": "object",
  3403. "properties": {
  3404. "action": {
  3405. "type": "string"
  3406. },
  3407. "description": {
  3408. "type": "string"
  3409. },
  3410. "id": {
  3411. "type": "string"
  3412. },
  3413. "params": {},
  3414. "path": {
  3415. "type": "string"
  3416. },
  3417. "session_id": {
  3418. "type": "string"
  3419. },
  3420. "tool_call_id": {
  3421. "type": "string"
  3422. },
  3423. "tool_name": {
  3424. "type": "string"
  3425. }
  3426. }
  3427. },
  3428. "proto.PermissionSkipRequest": {
  3429. "type": "object",
  3430. "properties": {
  3431. "skip": {
  3432. "type": "boolean"
  3433. }
  3434. }
  3435. },
  3436. "proto.ProjectInitPromptResponse": {
  3437. "type": "object",
  3438. "properties": {
  3439. "prompt": {
  3440. "type": "string"
  3441. }
  3442. }
  3443. },
  3444. "proto.ProjectNeedsInitResponse": {
  3445. "type": "object",
  3446. "properties": {
  3447. "needs_init": {
  3448. "type": "boolean"
  3449. }
  3450. }
  3451. },
  3452. "proto.ServerControl": {
  3453. "type": "object",
  3454. "properties": {
  3455. "command": {
  3456. "type": "string"
  3457. }
  3458. }
  3459. },
  3460. "proto.Session": {
  3461. "type": "object",
  3462. "properties": {
  3463. "completion_tokens": {
  3464. "type": "integer"
  3465. },
  3466. "cost": {
  3467. "type": "number"
  3468. },
  3469. "created_at": {
  3470. "type": "integer"
  3471. },
  3472. "id": {
  3473. "type": "string"
  3474. },
  3475. "message_count": {
  3476. "type": "integer"
  3477. },
  3478. "parent_session_id": {
  3479. "type": "string"
  3480. },
  3481. "prompt_tokens": {
  3482. "type": "integer"
  3483. },
  3484. "summary_message_id": {
  3485. "type": "string"
  3486. },
  3487. "title": {
  3488. "type": "string"
  3489. },
  3490. "updated_at": {
  3491. "type": "integer"
  3492. }
  3493. }
  3494. },
  3495. "proto.VersionInfo": {
  3496. "type": "object",
  3497. "properties": {
  3498. "commit": {
  3499. "type": "string"
  3500. },
  3501. "go_version": {
  3502. "type": "string"
  3503. },
  3504. "platform": {
  3505. "type": "string"
  3506. },
  3507. "version": {
  3508. "type": "string"
  3509. }
  3510. }
  3511. },
  3512. "proto.Workspace": {
  3513. "type": "object",
  3514. "properties": {
  3515. "config": {
  3516. "$ref": "#/definitions/github_com_charmbracelet_crush_internal_config.Config"
  3517. },
  3518. "data_dir": {
  3519. "type": "string"
  3520. },
  3521. "debug": {
  3522. "type": "boolean"
  3523. },
  3524. "env": {
  3525. "type": "array",
  3526. "items": {
  3527. "type": "string"
  3528. }
  3529. },
  3530. "id": {
  3531. "type": "string"
  3532. },
  3533. "path": {
  3534. "type": "string"
  3535. },
  3536. "version": {
  3537. "type": "string"
  3538. },
  3539. "yolo": {
  3540. "type": "boolean"
  3541. }
  3542. }
  3543. },
  3544. "time.Duration": {
  3545. "type": "integer",
  3546. "format": "int64",
  3547. "enum": [
  3548. -9223372036854775808,
  3549. 9223372036854775807,
  3550. 1,
  3551. 1000,
  3552. 1000000,
  3553. 1000000000,
  3554. 60000000000,
  3555. 3600000000000
  3556. ],
  3557. "x-enum-varnames": [
  3558. "minDuration",
  3559. "maxDuration",
  3560. "Nanosecond",
  3561. "Microsecond",
  3562. "Millisecond",
  3563. "Second",
  3564. "Minute",
  3565. "Hour"
  3566. ]
  3567. }
  3568. }
  3569. }`
  3570. // SwaggerInfo holds exported Swagger Info so clients can modify it
  3571. var SwaggerInfo = &swag.Spec{
  3572. Version: "1.0",
  3573. Host: "",
  3574. BasePath: "/v1",
  3575. Schemes: []string{},
  3576. Title: "Crush API",
  3577. Description: "Crush is a terminal-based AI coding assistant. This API is served over a Unix socket (or Windows named pipe) and provides programmatic access to workspaces, sessions, agents, LSP, MCP, and more.",
  3578. InfoInstanceName: "swagger",
  3579. SwaggerTemplate: docTemplate,
  3580. LeftDelim: "{{",
  3581. RightDelim: "}}",
  3582. }
  3583. func init() {
  3584. swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
  3585. }