swagger.yaml 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361
  1. basePath: /v1
  2. definitions:
  3. catwalk.Model:
  4. properties:
  5. can_reason:
  6. type: boolean
  7. context_window:
  8. type: integer
  9. cost_per_1m_in:
  10. type: number
  11. cost_per_1m_in_cached:
  12. type: number
  13. cost_per_1m_out:
  14. type: number
  15. cost_per_1m_out_cached:
  16. type: number
  17. default_max_tokens:
  18. type: integer
  19. default_reasoning_effort:
  20. type: string
  21. id:
  22. type: string
  23. name:
  24. type: string
  25. options:
  26. $ref: '#/definitions/catwalk.ModelOptions'
  27. reasoning_levels:
  28. items:
  29. type: string
  30. type: array
  31. supports_attachments:
  32. type: boolean
  33. type: object
  34. catwalk.ModelOptions:
  35. properties:
  36. frequency_penalty:
  37. type: number
  38. presence_penalty:
  39. type: number
  40. provider_options:
  41. additionalProperties: {}
  42. type: object
  43. temperature:
  44. type: number
  45. top_k:
  46. type: integer
  47. top_p:
  48. type: number
  49. type: object
  50. config.Attribution:
  51. properties:
  52. co_authored_by:
  53. type: boolean
  54. generated_with:
  55. type: boolean
  56. trailer_style:
  57. $ref: '#/definitions/config.TrailerStyle'
  58. type: object
  59. config.Completions:
  60. properties:
  61. max_depth:
  62. type: integer
  63. max_items:
  64. type: integer
  65. type: object
  66. config.LSPConfig:
  67. properties:
  68. args:
  69. items:
  70. type: string
  71. type: array
  72. command:
  73. type: string
  74. disabled:
  75. type: boolean
  76. env:
  77. additionalProperties:
  78. type: string
  79. type: object
  80. filetypes:
  81. items:
  82. type: string
  83. type: array
  84. init_options:
  85. additionalProperties: {}
  86. type: object
  87. options:
  88. additionalProperties: {}
  89. type: object
  90. root_markers:
  91. items:
  92. type: string
  93. type: array
  94. timeout:
  95. type: integer
  96. type: object
  97. config.LSPs:
  98. additionalProperties:
  99. $ref: '#/definitions/config.LSPConfig'
  100. type: object
  101. config.MCPConfig:
  102. properties:
  103. args:
  104. items:
  105. type: string
  106. type: array
  107. command:
  108. type: string
  109. disabled:
  110. type: boolean
  111. disabled_tools:
  112. items:
  113. type: string
  114. type: array
  115. env:
  116. additionalProperties:
  117. type: string
  118. type: object
  119. headers:
  120. additionalProperties:
  121. type: string
  122. description: 'TODO: maybe make it possible to get the value from the env'
  123. type: object
  124. timeout:
  125. type: integer
  126. type:
  127. $ref: '#/definitions/config.MCPType'
  128. url:
  129. type: string
  130. type: object
  131. config.MCPType:
  132. enum:
  133. - stdio
  134. - sse
  135. - http
  136. type: string
  137. x-enum-varnames:
  138. - MCPStdio
  139. - MCPSSE
  140. - MCPHttp
  141. config.MCPs:
  142. additionalProperties:
  143. $ref: '#/definitions/config.MCPConfig'
  144. type: object
  145. config.Permissions:
  146. properties:
  147. allowed_tools:
  148. items:
  149. type: string
  150. type: array
  151. type: object
  152. config.Scope:
  153. enum:
  154. - 0
  155. - 1
  156. type: integer
  157. x-enum-varnames:
  158. - ScopeGlobal
  159. - ScopeWorkspace
  160. config.SelectedModel:
  161. properties:
  162. frequency_penalty:
  163. type: number
  164. max_tokens:
  165. description: Overrides the default model configuration.
  166. type: integer
  167. model:
  168. description: |-
  169. The model id as used by the provider API.
  170. Required.
  171. type: string
  172. presence_penalty:
  173. type: number
  174. provider:
  175. description: |-
  176. The model provider, same as the key/id used in the providers config.
  177. Required.
  178. type: string
  179. provider_options:
  180. additionalProperties: {}
  181. description: Override provider specific options.
  182. type: object
  183. reasoning_effort:
  184. description: Only used by models that use the openai provider and need this
  185. set.
  186. type: string
  187. temperature:
  188. type: number
  189. think:
  190. description: Used by anthropic models that can reason to indicate if the model
  191. should think.
  192. type: boolean
  193. top_k:
  194. type: integer
  195. top_p:
  196. type: number
  197. type: object
  198. config.SelectedModelType:
  199. enum:
  200. - large
  201. - small
  202. type: string
  203. x-enum-varnames:
  204. - SelectedModelTypeLarge
  205. - SelectedModelTypeSmall
  206. config.TUIOptions:
  207. properties:
  208. compact_mode:
  209. type: boolean
  210. completions:
  211. $ref: '#/definitions/config.Completions'
  212. diff_mode:
  213. type: string
  214. transparent:
  215. type: boolean
  216. type: object
  217. config.ToolGrep:
  218. properties:
  219. timeout:
  220. $ref: '#/definitions/time.Duration'
  221. type: object
  222. config.ToolLs:
  223. properties:
  224. max_depth:
  225. type: integer
  226. max_items:
  227. type: integer
  228. type: object
  229. config.Tools:
  230. properties:
  231. grep:
  232. $ref: '#/definitions/config.ToolGrep'
  233. ls:
  234. $ref: '#/definitions/config.ToolLs'
  235. type: object
  236. config.TrailerStyle:
  237. enum:
  238. - none
  239. - co-authored-by
  240. - assisted-by
  241. type: string
  242. x-enum-varnames:
  243. - TrailerStyleNone
  244. - TrailerStyleCoAuthoredBy
  245. - TrailerStyleAssistedBy
  246. csync.Map-string-config_ProviderConfig:
  247. type: object
  248. github_com_charmbracelet_crush_internal_config.Config:
  249. properties:
  250. $schema:
  251. type: string
  252. lsp:
  253. $ref: '#/definitions/config.LSPs'
  254. mcp:
  255. $ref: '#/definitions/config.MCPs'
  256. models:
  257. additionalProperties:
  258. $ref: '#/definitions/config.SelectedModel'
  259. description: We currently only support large/small as values here.
  260. type: object
  261. options:
  262. $ref: '#/definitions/github_com_charmbracelet_crush_internal_config.Options'
  263. permissions:
  264. $ref: '#/definitions/config.Permissions'
  265. providers:
  266. allOf:
  267. - $ref: '#/definitions/csync.Map-string-config_ProviderConfig'
  268. description: The providers that are configured
  269. recent_models:
  270. additionalProperties:
  271. items:
  272. $ref: '#/definitions/config.SelectedModel'
  273. type: array
  274. description: Recently used models stored in the data directory config.
  275. type: object
  276. tools:
  277. $ref: '#/definitions/config.Tools'
  278. type: object
  279. github_com_charmbracelet_crush_internal_config.Options:
  280. properties:
  281. attribution:
  282. $ref: '#/definitions/config.Attribution'
  283. auto_lsp:
  284. type: boolean
  285. context_paths:
  286. items:
  287. type: string
  288. type: array
  289. data_directory:
  290. description: Relative to the cwd
  291. type: string
  292. debug:
  293. type: boolean
  294. debug_lsp:
  295. type: boolean
  296. disable_auto_summarize:
  297. type: boolean
  298. disable_default_providers:
  299. type: boolean
  300. disable_metrics:
  301. type: boolean
  302. disable_notifications:
  303. type: boolean
  304. disable_provider_auto_update:
  305. type: boolean
  306. disabled_tools:
  307. items:
  308. type: string
  309. type: array
  310. initialize_as:
  311. type: string
  312. progress:
  313. type: boolean
  314. skills_paths:
  315. items:
  316. type: string
  317. type: array
  318. tui:
  319. $ref: '#/definitions/config.TUIOptions'
  320. type: object
  321. github_com_charmbracelet_crush_internal_proto.Message:
  322. properties:
  323. created_at:
  324. type: integer
  325. id:
  326. type: string
  327. model:
  328. type: string
  329. parts:
  330. items: {}
  331. type: array
  332. provider:
  333. type: string
  334. role:
  335. $ref: '#/definitions/proto.MessageRole'
  336. session_id:
  337. type: string
  338. updated_at:
  339. type: integer
  340. type: object
  341. lsp.ServerState:
  342. enum:
  343. - 0
  344. - 1
  345. - 2
  346. - 3
  347. - 4
  348. - 5
  349. type: integer
  350. x-enum-varnames:
  351. - StateUnstarted
  352. - StateStarting
  353. - StateReady
  354. - StateError
  355. - StateStopped
  356. - StateDisabled
  357. proto.AgentInfo:
  358. properties:
  359. is_busy:
  360. type: boolean
  361. is_ready:
  362. type: boolean
  363. model:
  364. $ref: '#/definitions/catwalk.Model'
  365. model_cfg:
  366. $ref: '#/definitions/config.SelectedModel'
  367. type: object
  368. proto.AgentMessage:
  369. properties:
  370. attachments:
  371. items:
  372. $ref: '#/definitions/proto.Attachment'
  373. type: array
  374. prompt:
  375. type: string
  376. session_id:
  377. type: string
  378. type: object
  379. proto.AgentSession:
  380. properties:
  381. completion_tokens:
  382. type: integer
  383. cost:
  384. type: number
  385. created_at:
  386. type: integer
  387. id:
  388. type: string
  389. is_busy:
  390. type: boolean
  391. message_count:
  392. type: integer
  393. parent_session_id:
  394. type: string
  395. prompt_tokens:
  396. type: integer
  397. summary_message_id:
  398. type: string
  399. title:
  400. type: string
  401. updated_at:
  402. type: integer
  403. type: object
  404. proto.Attachment:
  405. properties:
  406. content:
  407. items:
  408. type: integer
  409. type: array
  410. file_name:
  411. type: string
  412. file_path:
  413. type: string
  414. mime_type:
  415. type: string
  416. type: object
  417. proto.ConfigCompactRequest:
  418. properties:
  419. enabled:
  420. type: boolean
  421. scope:
  422. $ref: '#/definitions/config.Scope'
  423. type: object
  424. proto.ConfigModelRequest:
  425. properties:
  426. model:
  427. $ref: '#/definitions/config.SelectedModel'
  428. model_type:
  429. $ref: '#/definitions/config.SelectedModelType'
  430. scope:
  431. $ref: '#/definitions/config.Scope'
  432. type: object
  433. proto.ConfigProviderKeyRequest:
  434. properties:
  435. api_key: {}
  436. provider_id:
  437. type: string
  438. scope:
  439. $ref: '#/definitions/config.Scope'
  440. type: object
  441. proto.ConfigRefreshOAuthRequest:
  442. properties:
  443. provider_id:
  444. type: string
  445. scope:
  446. $ref: '#/definitions/config.Scope'
  447. type: object
  448. proto.ConfigRemoveRequest:
  449. properties:
  450. key:
  451. type: string
  452. scope:
  453. $ref: '#/definitions/config.Scope'
  454. type: object
  455. proto.ConfigSetRequest:
  456. properties:
  457. key:
  458. type: string
  459. scope:
  460. $ref: '#/definitions/config.Scope'
  461. value: {}
  462. type: object
  463. proto.Error:
  464. properties:
  465. message:
  466. type: string
  467. type: object
  468. proto.File:
  469. properties:
  470. content:
  471. type: string
  472. created_at:
  473. type: integer
  474. id:
  475. type: string
  476. path:
  477. type: string
  478. session_id:
  479. type: string
  480. updated_at:
  481. type: integer
  482. version:
  483. type: integer
  484. type: object
  485. proto.FileTrackerReadRequest:
  486. properties:
  487. path:
  488. type: string
  489. session_id:
  490. type: string
  491. type: object
  492. proto.ImportCopilotResponse:
  493. properties:
  494. success:
  495. type: boolean
  496. token: {}
  497. type: object
  498. proto.LSPClientInfo:
  499. properties:
  500. connected_at:
  501. type: string
  502. diagnostic_count:
  503. type: integer
  504. error: {}
  505. name:
  506. type: string
  507. state:
  508. $ref: '#/definitions/lsp.ServerState'
  509. type: object
  510. proto.LSPStartRequest:
  511. properties:
  512. path:
  513. type: string
  514. type: object
  515. proto.MCPClientInfo:
  516. properties:
  517. connected_at:
  518. type: string
  519. error: {}
  520. name:
  521. type: string
  522. prompt_count:
  523. type: integer
  524. resource_count:
  525. type: integer
  526. state:
  527. $ref: '#/definitions/proto.MCPState'
  528. tool_count:
  529. type: integer
  530. type: object
  531. proto.MCPGetPromptRequest:
  532. properties:
  533. args:
  534. additionalProperties:
  535. type: string
  536. type: object
  537. client_id:
  538. type: string
  539. prompt_id:
  540. type: string
  541. type: object
  542. proto.MCPGetPromptResponse:
  543. properties:
  544. prompt:
  545. type: string
  546. type: object
  547. proto.MCPNameRequest:
  548. properties:
  549. name:
  550. type: string
  551. type: object
  552. proto.MCPReadResourceRequest:
  553. properties:
  554. name:
  555. type: string
  556. uri:
  557. type: string
  558. type: object
  559. proto.MCPState:
  560. enum:
  561. - 0
  562. - 1
  563. - 2
  564. - 3
  565. type: integer
  566. x-enum-varnames:
  567. - MCPStateDisabled
  568. - MCPStateStarting
  569. - MCPStateConnected
  570. - MCPStateError
  571. proto.MessageRole:
  572. enum:
  573. - assistant
  574. - user
  575. - system
  576. - tool
  577. type: string
  578. x-enum-varnames:
  579. - Assistant
  580. - User
  581. - System
  582. - Tool
  583. proto.PermissionAction:
  584. enum:
  585. - allow
  586. - allow_session
  587. - deny
  588. type: string
  589. x-enum-varnames:
  590. - PermissionAllow
  591. - PermissionAllowForSession
  592. - PermissionDeny
  593. proto.PermissionGrant:
  594. properties:
  595. action:
  596. $ref: '#/definitions/proto.PermissionAction'
  597. permission:
  598. $ref: '#/definitions/proto.PermissionRequest'
  599. type: object
  600. proto.PermissionRequest:
  601. properties:
  602. action:
  603. type: string
  604. description:
  605. type: string
  606. id:
  607. type: string
  608. params: {}
  609. path:
  610. type: string
  611. session_id:
  612. type: string
  613. tool_call_id:
  614. type: string
  615. tool_name:
  616. type: string
  617. type: object
  618. proto.PermissionSkipRequest:
  619. properties:
  620. skip:
  621. type: boolean
  622. type: object
  623. proto.ProjectInitPromptResponse:
  624. properties:
  625. prompt:
  626. type: string
  627. type: object
  628. proto.ProjectNeedsInitResponse:
  629. properties:
  630. needs_init:
  631. type: boolean
  632. type: object
  633. proto.ServerControl:
  634. properties:
  635. command:
  636. type: string
  637. type: object
  638. proto.Session:
  639. properties:
  640. completion_tokens:
  641. type: integer
  642. cost:
  643. type: number
  644. created_at:
  645. type: integer
  646. id:
  647. type: string
  648. message_count:
  649. type: integer
  650. parent_session_id:
  651. type: string
  652. prompt_tokens:
  653. type: integer
  654. summary_message_id:
  655. type: string
  656. title:
  657. type: string
  658. updated_at:
  659. type: integer
  660. type: object
  661. proto.VersionInfo:
  662. properties:
  663. commit:
  664. type: string
  665. go_version:
  666. type: string
  667. platform:
  668. type: string
  669. version:
  670. type: string
  671. type: object
  672. proto.Workspace:
  673. properties:
  674. config:
  675. $ref: '#/definitions/github_com_charmbracelet_crush_internal_config.Config'
  676. data_dir:
  677. type: string
  678. debug:
  679. type: boolean
  680. env:
  681. items:
  682. type: string
  683. type: array
  684. id:
  685. type: string
  686. path:
  687. type: string
  688. version:
  689. type: string
  690. yolo:
  691. type: boolean
  692. type: object
  693. time.Duration:
  694. enum:
  695. - -9223372036854775808
  696. - 9223372036854775807
  697. - 1
  698. - 1000
  699. - 1000000
  700. - 1000000000
  701. - 60000000000
  702. - 3600000000000
  703. format: int64
  704. type: integer
  705. x-enum-varnames:
  706. - minDuration
  707. - maxDuration
  708. - Nanosecond
  709. - Microsecond
  710. - Millisecond
  711. - Second
  712. - Minute
  713. - Hour
  714. info:
  715. contact:
  716. name: Charm
  717. url: https://charm.sh
  718. description: Crush is a terminal-based AI coding assistant. This API is served over
  719. a Unix socket (or Windows named pipe) and provides programmatic access to workspaces,
  720. sessions, agents, LSP, MCP, and more.
  721. license:
  722. name: MIT
  723. url: https://github.com/charmbracelet/crush/blob/main/LICENSE
  724. title: Crush API
  725. version: "1.0"
  726. paths:
  727. /config:
  728. get:
  729. produces:
  730. - application/json
  731. responses:
  732. "200":
  733. description: OK
  734. schema:
  735. type: object
  736. summary: Get server config
  737. tags:
  738. - system
  739. /control:
  740. post:
  741. consumes:
  742. - application/json
  743. parameters:
  744. - description: Control command (e.g. shutdown)
  745. in: body
  746. name: request
  747. required: true
  748. schema:
  749. $ref: '#/definitions/proto.ServerControl'
  750. responses:
  751. "200":
  752. description: OK
  753. "400":
  754. description: Bad Request
  755. schema:
  756. $ref: '#/definitions/proto.Error'
  757. summary: Send server control command
  758. tags:
  759. - system
  760. /health:
  761. get:
  762. responses:
  763. "200":
  764. description: OK
  765. summary: Health check
  766. tags:
  767. - system
  768. /version:
  769. get:
  770. produces:
  771. - application/json
  772. responses:
  773. "200":
  774. description: OK
  775. schema:
  776. $ref: '#/definitions/proto.VersionInfo'
  777. summary: Get server version
  778. tags:
  779. - system
  780. /workspaces:
  781. get:
  782. produces:
  783. - application/json
  784. responses:
  785. "200":
  786. description: OK
  787. schema:
  788. items:
  789. $ref: '#/definitions/proto.Workspace'
  790. type: array
  791. summary: List workspaces
  792. tags:
  793. - workspaces
  794. post:
  795. consumes:
  796. - application/json
  797. parameters:
  798. - description: Workspace creation params
  799. in: body
  800. name: request
  801. required: true
  802. schema:
  803. $ref: '#/definitions/proto.Workspace'
  804. produces:
  805. - application/json
  806. responses:
  807. "200":
  808. description: OK
  809. schema:
  810. $ref: '#/definitions/proto.Workspace'
  811. "400":
  812. description: Bad Request
  813. schema:
  814. $ref: '#/definitions/proto.Error'
  815. "500":
  816. description: Internal Server Error
  817. schema:
  818. $ref: '#/definitions/proto.Error'
  819. summary: Create workspace
  820. tags:
  821. - workspaces
  822. /workspaces/{id}:
  823. delete:
  824. parameters:
  825. - description: Workspace ID
  826. in: path
  827. name: id
  828. required: true
  829. type: string
  830. responses:
  831. "200":
  832. description: OK
  833. "404":
  834. description: Not Found
  835. schema:
  836. $ref: '#/definitions/proto.Error'
  837. summary: Delete workspace
  838. tags:
  839. - workspaces
  840. get:
  841. parameters:
  842. - description: Workspace ID
  843. in: path
  844. name: id
  845. required: true
  846. type: string
  847. produces:
  848. - application/json
  849. responses:
  850. "200":
  851. description: OK
  852. schema:
  853. $ref: '#/definitions/proto.Workspace'
  854. "404":
  855. description: Not Found
  856. schema:
  857. $ref: '#/definitions/proto.Error'
  858. "500":
  859. description: Internal Server Error
  860. schema:
  861. $ref: '#/definitions/proto.Error'
  862. summary: Get workspace
  863. tags:
  864. - workspaces
  865. /workspaces/{id}/agent:
  866. get:
  867. parameters:
  868. - description: Workspace ID
  869. in: path
  870. name: id
  871. required: true
  872. type: string
  873. produces:
  874. - application/json
  875. responses:
  876. "200":
  877. description: OK
  878. schema:
  879. $ref: '#/definitions/proto.AgentInfo'
  880. "404":
  881. description: Not Found
  882. schema:
  883. $ref: '#/definitions/proto.Error'
  884. "500":
  885. description: Internal Server Error
  886. schema:
  887. $ref: '#/definitions/proto.Error'
  888. summary: Get agent info
  889. tags:
  890. - agent
  891. post:
  892. consumes:
  893. - application/json
  894. parameters:
  895. - description: Workspace ID
  896. in: path
  897. name: id
  898. required: true
  899. type: string
  900. - description: Agent message
  901. in: body
  902. name: request
  903. required: true
  904. schema:
  905. $ref: '#/definitions/proto.AgentMessage'
  906. responses:
  907. "200":
  908. description: OK
  909. "400":
  910. description: Bad Request
  911. schema:
  912. $ref: '#/definitions/proto.Error'
  913. "404":
  914. description: Not Found
  915. schema:
  916. $ref: '#/definitions/proto.Error'
  917. "500":
  918. description: Internal Server Error
  919. schema:
  920. $ref: '#/definitions/proto.Error'
  921. summary: Send message to agent
  922. tags:
  923. - agent
  924. /workspaces/{id}/agent/default-small-model:
  925. get:
  926. parameters:
  927. - description: Workspace ID
  928. in: path
  929. name: id
  930. required: true
  931. type: string
  932. - description: Provider ID
  933. in: query
  934. name: provider_id
  935. type: string
  936. produces:
  937. - application/json
  938. responses:
  939. "200":
  940. description: OK
  941. schema:
  942. type: object
  943. "404":
  944. description: Not Found
  945. schema:
  946. $ref: '#/definitions/proto.Error'
  947. "500":
  948. description: Internal Server Error
  949. schema:
  950. $ref: '#/definitions/proto.Error'
  951. summary: Get default small model
  952. tags:
  953. - agent
  954. /workspaces/{id}/agent/init:
  955. post:
  956. parameters:
  957. - description: Workspace ID
  958. in: path
  959. name: id
  960. required: true
  961. type: string
  962. responses:
  963. "200":
  964. description: OK
  965. "404":
  966. description: Not Found
  967. schema:
  968. $ref: '#/definitions/proto.Error'
  969. "500":
  970. description: Internal Server Error
  971. schema:
  972. $ref: '#/definitions/proto.Error'
  973. summary: Initialize agent
  974. tags:
  975. - agent
  976. /workspaces/{id}/agent/sessions/{sid}:
  977. get:
  978. parameters:
  979. - description: Workspace ID
  980. in: path
  981. name: id
  982. required: true
  983. type: string
  984. - description: Session ID
  985. in: path
  986. name: sid
  987. required: true
  988. type: string
  989. produces:
  990. - application/json
  991. responses:
  992. "200":
  993. description: OK
  994. schema:
  995. $ref: '#/definitions/proto.AgentSession'
  996. "404":
  997. description: Not Found
  998. schema:
  999. $ref: '#/definitions/proto.Error'
  1000. "500":
  1001. description: Internal Server Error
  1002. schema:
  1003. $ref: '#/definitions/proto.Error'
  1004. summary: Get agent session
  1005. tags:
  1006. - agent
  1007. /workspaces/{id}/agent/sessions/{sid}/cancel:
  1008. post:
  1009. parameters:
  1010. - description: Workspace ID
  1011. in: path
  1012. name: id
  1013. required: true
  1014. type: string
  1015. - description: Session ID
  1016. in: path
  1017. name: sid
  1018. required: true
  1019. type: string
  1020. responses:
  1021. "200":
  1022. description: OK
  1023. "404":
  1024. description: Not Found
  1025. schema:
  1026. $ref: '#/definitions/proto.Error'
  1027. "500":
  1028. description: Internal Server Error
  1029. schema:
  1030. $ref: '#/definitions/proto.Error'
  1031. summary: Cancel agent session
  1032. tags:
  1033. - agent
  1034. /workspaces/{id}/agent/sessions/{sid}/prompts/clear:
  1035. post:
  1036. parameters:
  1037. - description: Workspace ID
  1038. in: path
  1039. name: id
  1040. required: true
  1041. type: string
  1042. - description: Session ID
  1043. in: path
  1044. name: sid
  1045. required: true
  1046. type: string
  1047. responses:
  1048. "200":
  1049. description: OK
  1050. "404":
  1051. description: Not Found
  1052. schema:
  1053. $ref: '#/definitions/proto.Error'
  1054. "500":
  1055. description: Internal Server Error
  1056. schema:
  1057. $ref: '#/definitions/proto.Error'
  1058. summary: Clear prompt queue
  1059. tags:
  1060. - agent
  1061. /workspaces/{id}/agent/sessions/{sid}/prompts/list:
  1062. get:
  1063. parameters:
  1064. - description: Workspace ID
  1065. in: path
  1066. name: id
  1067. required: true
  1068. type: string
  1069. - description: Session ID
  1070. in: path
  1071. name: sid
  1072. required: true
  1073. type: string
  1074. produces:
  1075. - application/json
  1076. responses:
  1077. "200":
  1078. description: OK
  1079. schema:
  1080. items:
  1081. type: string
  1082. type: array
  1083. "404":
  1084. description: Not Found
  1085. schema:
  1086. $ref: '#/definitions/proto.Error'
  1087. "500":
  1088. description: Internal Server Error
  1089. schema:
  1090. $ref: '#/definitions/proto.Error'
  1091. summary: List queued prompts
  1092. tags:
  1093. - agent
  1094. /workspaces/{id}/agent/sessions/{sid}/prompts/queued:
  1095. get:
  1096. parameters:
  1097. - description: Workspace ID
  1098. in: path
  1099. name: id
  1100. required: true
  1101. type: string
  1102. - description: Session ID
  1103. in: path
  1104. name: sid
  1105. required: true
  1106. type: string
  1107. produces:
  1108. - application/json
  1109. responses:
  1110. "200":
  1111. description: OK
  1112. schema:
  1113. type: object
  1114. "404":
  1115. description: Not Found
  1116. schema:
  1117. $ref: '#/definitions/proto.Error'
  1118. "500":
  1119. description: Internal Server Error
  1120. schema:
  1121. $ref: '#/definitions/proto.Error'
  1122. summary: Get queued prompt status
  1123. tags:
  1124. - agent
  1125. /workspaces/{id}/agent/sessions/{sid}/summarize:
  1126. post:
  1127. parameters:
  1128. - description: Workspace ID
  1129. in: path
  1130. name: id
  1131. required: true
  1132. type: string
  1133. - description: Session ID
  1134. in: path
  1135. name: sid
  1136. required: true
  1137. type: string
  1138. responses:
  1139. "200":
  1140. description: OK
  1141. "404":
  1142. description: Not Found
  1143. schema:
  1144. $ref: '#/definitions/proto.Error'
  1145. "500":
  1146. description: Internal Server Error
  1147. schema:
  1148. $ref: '#/definitions/proto.Error'
  1149. summary: Summarize session
  1150. tags:
  1151. - agent
  1152. /workspaces/{id}/agent/update:
  1153. post:
  1154. parameters:
  1155. - description: Workspace ID
  1156. in: path
  1157. name: id
  1158. required: true
  1159. type: string
  1160. responses:
  1161. "200":
  1162. description: OK
  1163. "404":
  1164. description: Not Found
  1165. schema:
  1166. $ref: '#/definitions/proto.Error'
  1167. "500":
  1168. description: Internal Server Error
  1169. schema:
  1170. $ref: '#/definitions/proto.Error'
  1171. summary: Update agent
  1172. tags:
  1173. - agent
  1174. /workspaces/{id}/config:
  1175. get:
  1176. parameters:
  1177. - description: Workspace ID
  1178. in: path
  1179. name: id
  1180. required: true
  1181. type: string
  1182. produces:
  1183. - application/json
  1184. responses:
  1185. "200":
  1186. description: OK
  1187. schema:
  1188. type: object
  1189. "404":
  1190. description: Not Found
  1191. schema:
  1192. $ref: '#/definitions/proto.Error'
  1193. "500":
  1194. description: Internal Server Error
  1195. schema:
  1196. $ref: '#/definitions/proto.Error'
  1197. summary: Get workspace config
  1198. tags:
  1199. - workspaces
  1200. /workspaces/{id}/config/compact:
  1201. post:
  1202. consumes:
  1203. - application/json
  1204. parameters:
  1205. - description: Workspace ID
  1206. in: path
  1207. name: id
  1208. required: true
  1209. type: string
  1210. - description: Config compact request
  1211. in: body
  1212. name: request
  1213. required: true
  1214. schema:
  1215. $ref: '#/definitions/proto.ConfigCompactRequest'
  1216. responses:
  1217. "200":
  1218. description: OK
  1219. "400":
  1220. description: Bad Request
  1221. schema:
  1222. $ref: '#/definitions/proto.Error'
  1223. "404":
  1224. description: Not Found
  1225. schema:
  1226. $ref: '#/definitions/proto.Error'
  1227. "500":
  1228. description: Internal Server Error
  1229. schema:
  1230. $ref: '#/definitions/proto.Error'
  1231. summary: Set compact mode
  1232. tags:
  1233. - config
  1234. /workspaces/{id}/config/import-copilot:
  1235. post:
  1236. parameters:
  1237. - description: Workspace ID
  1238. in: path
  1239. name: id
  1240. required: true
  1241. type: string
  1242. produces:
  1243. - application/json
  1244. responses:
  1245. "200":
  1246. description: OK
  1247. schema:
  1248. $ref: '#/definitions/proto.ImportCopilotResponse'
  1249. "404":
  1250. description: Not Found
  1251. schema:
  1252. $ref: '#/definitions/proto.Error'
  1253. "500":
  1254. description: Internal Server Error
  1255. schema:
  1256. $ref: '#/definitions/proto.Error'
  1257. summary: Import Copilot credentials
  1258. tags:
  1259. - config
  1260. /workspaces/{id}/config/model:
  1261. post:
  1262. consumes:
  1263. - application/json
  1264. parameters:
  1265. - description: Workspace ID
  1266. in: path
  1267. name: id
  1268. required: true
  1269. type: string
  1270. - description: Config model request
  1271. in: body
  1272. name: request
  1273. required: true
  1274. schema:
  1275. $ref: '#/definitions/proto.ConfigModelRequest'
  1276. responses:
  1277. "200":
  1278. description: OK
  1279. "400":
  1280. description: Bad Request
  1281. schema:
  1282. $ref: '#/definitions/proto.Error'
  1283. "404":
  1284. description: Not Found
  1285. schema:
  1286. $ref: '#/definitions/proto.Error'
  1287. "500":
  1288. description: Internal Server Error
  1289. schema:
  1290. $ref: '#/definitions/proto.Error'
  1291. summary: Set the preferred model
  1292. tags:
  1293. - config
  1294. /workspaces/{id}/config/provider-key:
  1295. post:
  1296. consumes:
  1297. - application/json
  1298. parameters:
  1299. - description: Workspace ID
  1300. in: path
  1301. name: id
  1302. required: true
  1303. type: string
  1304. - description: Config provider key request
  1305. in: body
  1306. name: request
  1307. required: true
  1308. schema:
  1309. $ref: '#/definitions/proto.ConfigProviderKeyRequest'
  1310. responses:
  1311. "200":
  1312. description: OK
  1313. "400":
  1314. description: Bad Request
  1315. schema:
  1316. $ref: '#/definitions/proto.Error'
  1317. "404":
  1318. description: Not Found
  1319. schema:
  1320. $ref: '#/definitions/proto.Error'
  1321. "500":
  1322. description: Internal Server Error
  1323. schema:
  1324. $ref: '#/definitions/proto.Error'
  1325. summary: Set provider API key
  1326. tags:
  1327. - config
  1328. /workspaces/{id}/config/refresh-oauth:
  1329. post:
  1330. consumes:
  1331. - application/json
  1332. parameters:
  1333. - description: Workspace ID
  1334. in: path
  1335. name: id
  1336. required: true
  1337. type: string
  1338. - description: Refresh OAuth request
  1339. in: body
  1340. name: request
  1341. required: true
  1342. schema:
  1343. $ref: '#/definitions/proto.ConfigRefreshOAuthRequest'
  1344. responses:
  1345. "200":
  1346. description: OK
  1347. "400":
  1348. description: Bad Request
  1349. schema:
  1350. $ref: '#/definitions/proto.Error'
  1351. "404":
  1352. description: Not Found
  1353. schema:
  1354. $ref: '#/definitions/proto.Error'
  1355. "500":
  1356. description: Internal Server Error
  1357. schema:
  1358. $ref: '#/definitions/proto.Error'
  1359. summary: Refresh OAuth token
  1360. tags:
  1361. - config
  1362. /workspaces/{id}/config/remove:
  1363. post:
  1364. consumes:
  1365. - application/json
  1366. parameters:
  1367. - description: Workspace ID
  1368. in: path
  1369. name: id
  1370. required: true
  1371. type: string
  1372. - description: Config remove request
  1373. in: body
  1374. name: request
  1375. required: true
  1376. schema:
  1377. $ref: '#/definitions/proto.ConfigRemoveRequest'
  1378. responses:
  1379. "200":
  1380. description: OK
  1381. "400":
  1382. description: Bad Request
  1383. schema:
  1384. $ref: '#/definitions/proto.Error'
  1385. "404":
  1386. description: Not Found
  1387. schema:
  1388. $ref: '#/definitions/proto.Error'
  1389. "500":
  1390. description: Internal Server Error
  1391. schema:
  1392. $ref: '#/definitions/proto.Error'
  1393. summary: Remove a config field
  1394. tags:
  1395. - config
  1396. /workspaces/{id}/config/set:
  1397. post:
  1398. consumes:
  1399. - application/json
  1400. parameters:
  1401. - description: Workspace ID
  1402. in: path
  1403. name: id
  1404. required: true
  1405. type: string
  1406. - description: Config set request
  1407. in: body
  1408. name: request
  1409. required: true
  1410. schema:
  1411. $ref: '#/definitions/proto.ConfigSetRequest'
  1412. responses:
  1413. "200":
  1414. description: OK
  1415. "400":
  1416. description: Bad Request
  1417. schema:
  1418. $ref: '#/definitions/proto.Error'
  1419. "404":
  1420. description: Not Found
  1421. schema:
  1422. $ref: '#/definitions/proto.Error'
  1423. "500":
  1424. description: Internal Server Error
  1425. schema:
  1426. $ref: '#/definitions/proto.Error'
  1427. summary: Set a config field
  1428. tags:
  1429. - config
  1430. /workspaces/{id}/events:
  1431. get:
  1432. parameters:
  1433. - description: Workspace ID
  1434. in: path
  1435. name: id
  1436. required: true
  1437. type: string
  1438. produces:
  1439. - text/event-stream
  1440. responses:
  1441. "200":
  1442. description: OK
  1443. "404":
  1444. description: Not Found
  1445. schema:
  1446. $ref: '#/definitions/proto.Error'
  1447. "500":
  1448. description: Internal Server Error
  1449. schema:
  1450. $ref: '#/definitions/proto.Error'
  1451. summary: Stream workspace events (SSE)
  1452. tags:
  1453. - workspaces
  1454. /workspaces/{id}/filetracker/lastread:
  1455. get:
  1456. parameters:
  1457. - description: Workspace ID
  1458. in: path
  1459. name: id
  1460. required: true
  1461. type: string
  1462. - description: Session ID
  1463. in: query
  1464. name: session_id
  1465. type: string
  1466. - description: File path
  1467. in: query
  1468. name: path
  1469. required: true
  1470. type: string
  1471. produces:
  1472. - application/json
  1473. responses:
  1474. "200":
  1475. description: OK
  1476. schema:
  1477. type: object
  1478. "404":
  1479. description: Not Found
  1480. schema:
  1481. $ref: '#/definitions/proto.Error'
  1482. "500":
  1483. description: Internal Server Error
  1484. schema:
  1485. $ref: '#/definitions/proto.Error'
  1486. summary: Get last read time for file
  1487. tags:
  1488. - filetracker
  1489. /workspaces/{id}/filetracker/read:
  1490. post:
  1491. consumes:
  1492. - application/json
  1493. parameters:
  1494. - description: Workspace ID
  1495. in: path
  1496. name: id
  1497. required: true
  1498. type: string
  1499. - description: File tracker read request
  1500. in: body
  1501. name: request
  1502. required: true
  1503. schema:
  1504. $ref: '#/definitions/proto.FileTrackerReadRequest'
  1505. responses:
  1506. "200":
  1507. description: OK
  1508. "400":
  1509. description: Bad Request
  1510. schema:
  1511. $ref: '#/definitions/proto.Error'
  1512. "404":
  1513. description: Not Found
  1514. schema:
  1515. $ref: '#/definitions/proto.Error'
  1516. "500":
  1517. description: Internal Server Error
  1518. schema:
  1519. $ref: '#/definitions/proto.Error'
  1520. summary: Record file read
  1521. tags:
  1522. - filetracker
  1523. /workspaces/{id}/lsps:
  1524. get:
  1525. parameters:
  1526. - description: Workspace ID
  1527. in: path
  1528. name: id
  1529. required: true
  1530. type: string
  1531. produces:
  1532. - application/json
  1533. responses:
  1534. "200":
  1535. description: OK
  1536. schema:
  1537. additionalProperties:
  1538. $ref: '#/definitions/proto.LSPClientInfo'
  1539. type: object
  1540. "404":
  1541. description: Not Found
  1542. schema:
  1543. $ref: '#/definitions/proto.Error'
  1544. "500":
  1545. description: Internal Server Error
  1546. schema:
  1547. $ref: '#/definitions/proto.Error'
  1548. summary: List LSP clients
  1549. tags:
  1550. - lsp
  1551. /workspaces/{id}/lsps/{lsp}/diagnostics:
  1552. get:
  1553. parameters:
  1554. - description: Workspace ID
  1555. in: path
  1556. name: id
  1557. required: true
  1558. type: string
  1559. - description: LSP client name
  1560. in: path
  1561. name: lsp
  1562. required: true
  1563. type: string
  1564. produces:
  1565. - application/json
  1566. responses:
  1567. "200":
  1568. description: OK
  1569. schema:
  1570. type: object
  1571. "404":
  1572. description: Not Found
  1573. schema:
  1574. $ref: '#/definitions/proto.Error'
  1575. "500":
  1576. description: Internal Server Error
  1577. schema:
  1578. $ref: '#/definitions/proto.Error'
  1579. summary: Get LSP diagnostics
  1580. tags:
  1581. - lsp
  1582. /workspaces/{id}/lsps/start:
  1583. post:
  1584. consumes:
  1585. - application/json
  1586. parameters:
  1587. - description: Workspace ID
  1588. in: path
  1589. name: id
  1590. required: true
  1591. type: string
  1592. - description: LSP start request
  1593. in: body
  1594. name: request
  1595. required: true
  1596. schema:
  1597. $ref: '#/definitions/proto.LSPStartRequest'
  1598. responses:
  1599. "200":
  1600. description: OK
  1601. "400":
  1602. description: Bad Request
  1603. schema:
  1604. $ref: '#/definitions/proto.Error'
  1605. "404":
  1606. description: Not Found
  1607. schema:
  1608. $ref: '#/definitions/proto.Error'
  1609. "500":
  1610. description: Internal Server Error
  1611. schema:
  1612. $ref: '#/definitions/proto.Error'
  1613. summary: Start LSP server
  1614. tags:
  1615. - lsp
  1616. /workspaces/{id}/lsps/stop:
  1617. post:
  1618. parameters:
  1619. - description: Workspace ID
  1620. in: path
  1621. name: id
  1622. required: true
  1623. type: string
  1624. responses:
  1625. "200":
  1626. description: OK
  1627. "404":
  1628. description: Not Found
  1629. schema:
  1630. $ref: '#/definitions/proto.Error'
  1631. "500":
  1632. description: Internal Server Error
  1633. schema:
  1634. $ref: '#/definitions/proto.Error'
  1635. summary: Stop all LSP servers
  1636. tags:
  1637. - lsp
  1638. /workspaces/{id}/mcp/get-prompt:
  1639. post:
  1640. consumes:
  1641. - application/json
  1642. parameters:
  1643. - description: Workspace ID
  1644. in: path
  1645. name: id
  1646. required: true
  1647. type: string
  1648. - description: MCP get prompt request
  1649. in: body
  1650. name: request
  1651. required: true
  1652. schema:
  1653. $ref: '#/definitions/proto.MCPGetPromptRequest'
  1654. produces:
  1655. - application/json
  1656. responses:
  1657. "200":
  1658. description: OK
  1659. schema:
  1660. $ref: '#/definitions/proto.MCPGetPromptResponse'
  1661. "400":
  1662. description: Bad Request
  1663. schema:
  1664. $ref: '#/definitions/proto.Error'
  1665. "404":
  1666. description: Not Found
  1667. schema:
  1668. $ref: '#/definitions/proto.Error'
  1669. "500":
  1670. description: Internal Server Error
  1671. schema:
  1672. $ref: '#/definitions/proto.Error'
  1673. summary: Get MCP prompt
  1674. tags:
  1675. - mcp
  1676. /workspaces/{id}/mcp/read-resource:
  1677. post:
  1678. consumes:
  1679. - application/json
  1680. parameters:
  1681. - description: Workspace ID
  1682. in: path
  1683. name: id
  1684. required: true
  1685. type: string
  1686. - description: MCP read resource request
  1687. in: body
  1688. name: request
  1689. required: true
  1690. schema:
  1691. $ref: '#/definitions/proto.MCPReadResourceRequest'
  1692. produces:
  1693. - application/json
  1694. responses:
  1695. "200":
  1696. description: OK
  1697. schema:
  1698. type: object
  1699. "400":
  1700. description: Bad Request
  1701. schema:
  1702. $ref: '#/definitions/proto.Error'
  1703. "404":
  1704. description: Not Found
  1705. schema:
  1706. $ref: '#/definitions/proto.Error'
  1707. "500":
  1708. description: Internal Server Error
  1709. schema:
  1710. $ref: '#/definitions/proto.Error'
  1711. summary: Read MCP resource
  1712. tags:
  1713. - mcp
  1714. /workspaces/{id}/mcp/refresh-prompts:
  1715. post:
  1716. consumes:
  1717. - application/json
  1718. parameters:
  1719. - description: Workspace ID
  1720. in: path
  1721. name: id
  1722. required: true
  1723. type: string
  1724. - description: MCP name request
  1725. in: body
  1726. name: request
  1727. required: true
  1728. schema:
  1729. $ref: '#/definitions/proto.MCPNameRequest'
  1730. responses:
  1731. "200":
  1732. description: OK
  1733. "400":
  1734. description: Bad Request
  1735. schema:
  1736. $ref: '#/definitions/proto.Error'
  1737. "404":
  1738. description: Not Found
  1739. schema:
  1740. $ref: '#/definitions/proto.Error'
  1741. "500":
  1742. description: Internal Server Error
  1743. schema:
  1744. $ref: '#/definitions/proto.Error'
  1745. summary: Refresh MCP prompts
  1746. tags:
  1747. - mcp
  1748. /workspaces/{id}/mcp/refresh-resources:
  1749. post:
  1750. consumes:
  1751. - application/json
  1752. parameters:
  1753. - description: Workspace ID
  1754. in: path
  1755. name: id
  1756. required: true
  1757. type: string
  1758. - description: MCP name request
  1759. in: body
  1760. name: request
  1761. required: true
  1762. schema:
  1763. $ref: '#/definitions/proto.MCPNameRequest'
  1764. responses:
  1765. "200":
  1766. description: OK
  1767. "400":
  1768. description: Bad Request
  1769. schema:
  1770. $ref: '#/definitions/proto.Error'
  1771. "404":
  1772. description: Not Found
  1773. schema:
  1774. $ref: '#/definitions/proto.Error'
  1775. "500":
  1776. description: Internal Server Error
  1777. schema:
  1778. $ref: '#/definitions/proto.Error'
  1779. summary: Refresh MCP resources
  1780. tags:
  1781. - mcp
  1782. /workspaces/{id}/mcp/refresh-tools:
  1783. post:
  1784. consumes:
  1785. - application/json
  1786. parameters:
  1787. - description: Workspace ID
  1788. in: path
  1789. name: id
  1790. required: true
  1791. type: string
  1792. - description: MCP name request
  1793. in: body
  1794. name: request
  1795. required: true
  1796. schema:
  1797. $ref: '#/definitions/proto.MCPNameRequest'
  1798. responses:
  1799. "200":
  1800. description: OK
  1801. "400":
  1802. description: Bad Request
  1803. schema:
  1804. $ref: '#/definitions/proto.Error'
  1805. "404":
  1806. description: Not Found
  1807. schema:
  1808. $ref: '#/definitions/proto.Error'
  1809. "500":
  1810. description: Internal Server Error
  1811. schema:
  1812. $ref: '#/definitions/proto.Error'
  1813. summary: Refresh MCP tools
  1814. tags:
  1815. - mcp
  1816. /workspaces/{id}/mcp/states:
  1817. get:
  1818. parameters:
  1819. - description: Workspace ID
  1820. in: path
  1821. name: id
  1822. required: true
  1823. type: string
  1824. produces:
  1825. - application/json
  1826. responses:
  1827. "200":
  1828. description: OK
  1829. schema:
  1830. additionalProperties:
  1831. $ref: '#/definitions/proto.MCPClientInfo'
  1832. type: object
  1833. "404":
  1834. description: Not Found
  1835. schema:
  1836. $ref: '#/definitions/proto.Error'
  1837. "500":
  1838. description: Internal Server Error
  1839. schema:
  1840. $ref: '#/definitions/proto.Error'
  1841. summary: Get MCP client states
  1842. tags:
  1843. - mcp
  1844. /workspaces/{id}/messages/user:
  1845. get:
  1846. parameters:
  1847. - description: Workspace ID
  1848. in: path
  1849. name: id
  1850. required: true
  1851. type: string
  1852. produces:
  1853. - application/json
  1854. responses:
  1855. "200":
  1856. description: OK
  1857. schema:
  1858. items:
  1859. $ref: '#/definitions/github_com_charmbracelet_crush_internal_proto.Message'
  1860. type: array
  1861. "404":
  1862. description: Not Found
  1863. schema:
  1864. $ref: '#/definitions/proto.Error'
  1865. "500":
  1866. description: Internal Server Error
  1867. schema:
  1868. $ref: '#/definitions/proto.Error'
  1869. summary: Get all user messages for workspace
  1870. tags:
  1871. - workspaces
  1872. /workspaces/{id}/permissions/grant:
  1873. post:
  1874. consumes:
  1875. - application/json
  1876. parameters:
  1877. - description: Workspace ID
  1878. in: path
  1879. name: id
  1880. required: true
  1881. type: string
  1882. - description: Permission grant
  1883. in: body
  1884. name: request
  1885. required: true
  1886. schema:
  1887. $ref: '#/definitions/proto.PermissionGrant'
  1888. responses:
  1889. "200":
  1890. description: OK
  1891. "400":
  1892. description: Bad Request
  1893. schema:
  1894. $ref: '#/definitions/proto.Error'
  1895. "404":
  1896. description: Not Found
  1897. schema:
  1898. $ref: '#/definitions/proto.Error'
  1899. "500":
  1900. description: Internal Server Error
  1901. schema:
  1902. $ref: '#/definitions/proto.Error'
  1903. summary: Grant permission
  1904. tags:
  1905. - permissions
  1906. /workspaces/{id}/permissions/skip:
  1907. get:
  1908. parameters:
  1909. - description: Workspace ID
  1910. in: path
  1911. name: id
  1912. required: true
  1913. type: string
  1914. produces:
  1915. - application/json
  1916. responses:
  1917. "200":
  1918. description: OK
  1919. schema:
  1920. $ref: '#/definitions/proto.PermissionSkipRequest'
  1921. "404":
  1922. description: Not Found
  1923. schema:
  1924. $ref: '#/definitions/proto.Error'
  1925. "500":
  1926. description: Internal Server Error
  1927. schema:
  1928. $ref: '#/definitions/proto.Error'
  1929. summary: Get skip permissions status
  1930. tags:
  1931. - permissions
  1932. post:
  1933. consumes:
  1934. - application/json
  1935. parameters:
  1936. - description: Workspace ID
  1937. in: path
  1938. name: id
  1939. required: true
  1940. type: string
  1941. - description: Permission skip request
  1942. in: body
  1943. name: request
  1944. required: true
  1945. schema:
  1946. $ref: '#/definitions/proto.PermissionSkipRequest'
  1947. responses:
  1948. "200":
  1949. description: OK
  1950. "400":
  1951. description: Bad Request
  1952. schema:
  1953. $ref: '#/definitions/proto.Error'
  1954. "404":
  1955. description: Not Found
  1956. schema:
  1957. $ref: '#/definitions/proto.Error'
  1958. "500":
  1959. description: Internal Server Error
  1960. schema:
  1961. $ref: '#/definitions/proto.Error'
  1962. summary: Set skip permissions
  1963. tags:
  1964. - permissions
  1965. /workspaces/{id}/project/init:
  1966. post:
  1967. parameters:
  1968. - description: Workspace ID
  1969. in: path
  1970. name: id
  1971. required: true
  1972. type: string
  1973. responses:
  1974. "200":
  1975. description: OK
  1976. "404":
  1977. description: Not Found
  1978. schema:
  1979. $ref: '#/definitions/proto.Error'
  1980. "500":
  1981. description: Internal Server Error
  1982. schema:
  1983. $ref: '#/definitions/proto.Error'
  1984. summary: Mark project as initialized
  1985. tags:
  1986. - project
  1987. /workspaces/{id}/project/init-prompt:
  1988. get:
  1989. parameters:
  1990. - description: Workspace ID
  1991. in: path
  1992. name: id
  1993. required: true
  1994. type: string
  1995. produces:
  1996. - application/json
  1997. responses:
  1998. "200":
  1999. description: OK
  2000. schema:
  2001. $ref: '#/definitions/proto.ProjectInitPromptResponse'
  2002. "404":
  2003. description: Not Found
  2004. schema:
  2005. $ref: '#/definitions/proto.Error'
  2006. "500":
  2007. description: Internal Server Error
  2008. schema:
  2009. $ref: '#/definitions/proto.Error'
  2010. summary: Get project initialization prompt
  2011. tags:
  2012. - project
  2013. /workspaces/{id}/project/needs-init:
  2014. get:
  2015. parameters:
  2016. - description: Workspace ID
  2017. in: path
  2018. name: id
  2019. required: true
  2020. type: string
  2021. produces:
  2022. - application/json
  2023. responses:
  2024. "200":
  2025. description: OK
  2026. schema:
  2027. $ref: '#/definitions/proto.ProjectNeedsInitResponse'
  2028. "404":
  2029. description: Not Found
  2030. schema:
  2031. $ref: '#/definitions/proto.Error'
  2032. "500":
  2033. description: Internal Server Error
  2034. schema:
  2035. $ref: '#/definitions/proto.Error'
  2036. summary: Check if project needs initialization
  2037. tags:
  2038. - project
  2039. /workspaces/{id}/providers:
  2040. get:
  2041. parameters:
  2042. - description: Workspace ID
  2043. in: path
  2044. name: id
  2045. required: true
  2046. type: string
  2047. produces:
  2048. - application/json
  2049. responses:
  2050. "200":
  2051. description: OK
  2052. schema:
  2053. type: object
  2054. "404":
  2055. description: Not Found
  2056. schema:
  2057. $ref: '#/definitions/proto.Error'
  2058. "500":
  2059. description: Internal Server Error
  2060. schema:
  2061. $ref: '#/definitions/proto.Error'
  2062. summary: Get workspace providers
  2063. tags:
  2064. - workspaces
  2065. /workspaces/{id}/sessions:
  2066. get:
  2067. parameters:
  2068. - description: Workspace ID
  2069. in: path
  2070. name: id
  2071. required: true
  2072. type: string
  2073. produces:
  2074. - application/json
  2075. responses:
  2076. "200":
  2077. description: OK
  2078. schema:
  2079. items:
  2080. $ref: '#/definitions/proto.Session'
  2081. type: array
  2082. "404":
  2083. description: Not Found
  2084. schema:
  2085. $ref: '#/definitions/proto.Error'
  2086. "500":
  2087. description: Internal Server Error
  2088. schema:
  2089. $ref: '#/definitions/proto.Error'
  2090. summary: List sessions
  2091. tags:
  2092. - sessions
  2093. post:
  2094. consumes:
  2095. - application/json
  2096. parameters:
  2097. - description: Workspace ID
  2098. in: path
  2099. name: id
  2100. required: true
  2101. type: string
  2102. - description: Session creation params (title)
  2103. in: body
  2104. name: request
  2105. required: true
  2106. schema:
  2107. $ref: '#/definitions/proto.Session'
  2108. produces:
  2109. - application/json
  2110. responses:
  2111. "200":
  2112. description: OK
  2113. schema:
  2114. $ref: '#/definitions/proto.Session'
  2115. "400":
  2116. description: Bad Request
  2117. schema:
  2118. $ref: '#/definitions/proto.Error'
  2119. "404":
  2120. description: Not Found
  2121. schema:
  2122. $ref: '#/definitions/proto.Error'
  2123. "500":
  2124. description: Internal Server Error
  2125. schema:
  2126. $ref: '#/definitions/proto.Error'
  2127. summary: Create session
  2128. tags:
  2129. - sessions
  2130. /workspaces/{id}/sessions/{sid}:
  2131. delete:
  2132. parameters:
  2133. - description: Workspace ID
  2134. in: path
  2135. name: id
  2136. required: true
  2137. type: string
  2138. - description: Session ID
  2139. in: path
  2140. name: sid
  2141. required: true
  2142. type: string
  2143. responses:
  2144. "200":
  2145. description: OK
  2146. "404":
  2147. description: Not Found
  2148. schema:
  2149. $ref: '#/definitions/proto.Error'
  2150. "500":
  2151. description: Internal Server Error
  2152. schema:
  2153. $ref: '#/definitions/proto.Error'
  2154. summary: Delete session
  2155. tags:
  2156. - sessions
  2157. get:
  2158. parameters:
  2159. - description: Workspace ID
  2160. in: path
  2161. name: id
  2162. required: true
  2163. type: string
  2164. - description: Session ID
  2165. in: path
  2166. name: sid
  2167. required: true
  2168. type: string
  2169. produces:
  2170. - application/json
  2171. responses:
  2172. "200":
  2173. description: OK
  2174. schema:
  2175. $ref: '#/definitions/proto.Session'
  2176. "404":
  2177. description: Not Found
  2178. schema:
  2179. $ref: '#/definitions/proto.Error'
  2180. "500":
  2181. description: Internal Server Error
  2182. schema:
  2183. $ref: '#/definitions/proto.Error'
  2184. summary: Get session
  2185. tags:
  2186. - sessions
  2187. put:
  2188. consumes:
  2189. - application/json
  2190. parameters:
  2191. - description: Workspace ID
  2192. in: path
  2193. name: id
  2194. required: true
  2195. type: string
  2196. - description: Session ID
  2197. in: path
  2198. name: sid
  2199. required: true
  2200. type: string
  2201. - description: Updated session
  2202. in: body
  2203. name: request
  2204. required: true
  2205. schema:
  2206. $ref: '#/definitions/proto.Session'
  2207. produces:
  2208. - application/json
  2209. responses:
  2210. "200":
  2211. description: OK
  2212. schema:
  2213. $ref: '#/definitions/proto.Session'
  2214. "400":
  2215. description: Bad Request
  2216. schema:
  2217. $ref: '#/definitions/proto.Error'
  2218. "404":
  2219. description: Not Found
  2220. schema:
  2221. $ref: '#/definitions/proto.Error'
  2222. "500":
  2223. description: Internal Server Error
  2224. schema:
  2225. $ref: '#/definitions/proto.Error'
  2226. summary: Update session
  2227. tags:
  2228. - sessions
  2229. /workspaces/{id}/sessions/{sid}/filetracker/files:
  2230. get:
  2231. parameters:
  2232. - description: Workspace ID
  2233. in: path
  2234. name: id
  2235. required: true
  2236. type: string
  2237. - description: Session ID
  2238. in: path
  2239. name: sid
  2240. required: true
  2241. type: string
  2242. produces:
  2243. - application/json
  2244. responses:
  2245. "200":
  2246. description: OK
  2247. schema:
  2248. items:
  2249. type: string
  2250. type: array
  2251. "404":
  2252. description: Not Found
  2253. schema:
  2254. $ref: '#/definitions/proto.Error'
  2255. "500":
  2256. description: Internal Server Error
  2257. schema:
  2258. $ref: '#/definitions/proto.Error'
  2259. summary: List tracked files for session
  2260. tags:
  2261. - filetracker
  2262. /workspaces/{id}/sessions/{sid}/history:
  2263. get:
  2264. parameters:
  2265. - description: Workspace ID
  2266. in: path
  2267. name: id
  2268. required: true
  2269. type: string
  2270. - description: Session ID
  2271. in: path
  2272. name: sid
  2273. required: true
  2274. type: string
  2275. produces:
  2276. - application/json
  2277. responses:
  2278. "200":
  2279. description: OK
  2280. schema:
  2281. items:
  2282. $ref: '#/definitions/proto.File'
  2283. type: array
  2284. "404":
  2285. description: Not Found
  2286. schema:
  2287. $ref: '#/definitions/proto.Error'
  2288. "500":
  2289. description: Internal Server Error
  2290. schema:
  2291. $ref: '#/definitions/proto.Error'
  2292. summary: Get session history
  2293. tags:
  2294. - sessions
  2295. /workspaces/{id}/sessions/{sid}/messages:
  2296. get:
  2297. parameters:
  2298. - description: Workspace ID
  2299. in: path
  2300. name: id
  2301. required: true
  2302. type: string
  2303. - description: Session ID
  2304. in: path
  2305. name: sid
  2306. required: true
  2307. type: string
  2308. produces:
  2309. - application/json
  2310. responses:
  2311. "200":
  2312. description: OK
  2313. schema:
  2314. items:
  2315. $ref: '#/definitions/github_com_charmbracelet_crush_internal_proto.Message'
  2316. type: array
  2317. "404":
  2318. description: Not Found
  2319. schema:
  2320. $ref: '#/definitions/proto.Error'
  2321. "500":
  2322. description: Internal Server Error
  2323. schema:
  2324. $ref: '#/definitions/proto.Error'
  2325. summary: Get session messages
  2326. tags:
  2327. - sessions
  2328. /workspaces/{id}/sessions/{sid}/messages/user:
  2329. get:
  2330. parameters:
  2331. - description: Workspace ID
  2332. in: path
  2333. name: id
  2334. required: true
  2335. type: string
  2336. - description: Session ID
  2337. in: path
  2338. name: sid
  2339. required: true
  2340. type: string
  2341. produces:
  2342. - application/json
  2343. responses:
  2344. "200":
  2345. description: OK
  2346. schema:
  2347. items:
  2348. $ref: '#/definitions/github_com_charmbracelet_crush_internal_proto.Message'
  2349. type: array
  2350. "404":
  2351. description: Not Found
  2352. schema:
  2353. $ref: '#/definitions/proto.Error'
  2354. "500":
  2355. description: Internal Server Error
  2356. schema:
  2357. $ref: '#/definitions/proto.Error'
  2358. summary: Get user messages for session
  2359. tags:
  2360. - sessions
  2361. swagger: "2.0"