config.go 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936
  1. // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
  2. package opencode
  3. import (
  4. "context"
  5. "net/http"
  6. "reflect"
  7. "github.com/sst/opencode-sdk-go/internal/apijson"
  8. "github.com/sst/opencode-sdk-go/internal/requestconfig"
  9. "github.com/sst/opencode-sdk-go/option"
  10. "github.com/tidwall/gjson"
  11. )
  12. // ConfigService contains methods and other services that help with interacting
  13. // with the opencode API.
  14. //
  15. // Note, unlike clients, this service does not read variables from the environment
  16. // automatically. You should not instantiate this service directly, and instead use
  17. // the [NewConfigService] method instead.
  18. type ConfigService struct {
  19. Options []option.RequestOption
  20. }
  21. // NewConfigService generates a new service that applies the given options to each
  22. // request. These options are applied after the parent client's options (if there
  23. // is one), and before any request-specific options.
  24. func NewConfigService(opts ...option.RequestOption) (r *ConfigService) {
  25. r = &ConfigService{}
  26. r.Options = opts
  27. return
  28. }
  29. // Get config info
  30. func (r *ConfigService) Get(ctx context.Context, opts ...option.RequestOption) (res *Config, err error) {
  31. opts = append(r.Options[:], opts...)
  32. path := "config"
  33. err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
  34. return
  35. }
  36. type Config struct {
  37. // JSON schema reference for configuration validation
  38. Schema string `json:"$schema"`
  39. // Agent configuration, see https://opencode.ai/docs/agent
  40. Agent ConfigAgent `json:"agent"`
  41. // @deprecated Use 'share' field instead. Share newly created sessions
  42. // automatically
  43. Autoshare bool `json:"autoshare"`
  44. // Automatically update to the latest version
  45. Autoupdate bool `json:"autoupdate"`
  46. // Disable providers that are loaded automatically
  47. DisabledProviders []string `json:"disabled_providers"`
  48. Experimental ConfigExperimental `json:"experimental"`
  49. Formatter map[string]ConfigFormatter `json:"formatter"`
  50. // Additional instruction files or patterns to include
  51. Instructions []string `json:"instructions"`
  52. // Custom keybind configurations
  53. Keybinds KeybindsConfig `json:"keybinds"`
  54. // @deprecated Always uses stretch layout.
  55. Layout ConfigLayout `json:"layout"`
  56. Lsp map[string]ConfigLsp `json:"lsp"`
  57. // MCP (Model Context Protocol) server configurations
  58. Mcp map[string]ConfigMcp `json:"mcp"`
  59. // @deprecated Use `agent` field instead.
  60. Mode ConfigMode `json:"mode"`
  61. // Model to use in the format of provider/model, eg anthropic/claude-2
  62. Model string `json:"model"`
  63. Permission ConfigPermission `json:"permission"`
  64. Plugin []string `json:"plugin"`
  65. // Custom provider configurations and model overrides
  66. Provider map[string]ConfigProvider `json:"provider"`
  67. // Control sharing behavior:'manual' allows manual sharing via commands, 'auto'
  68. // enables automatic sharing, 'disabled' disables all sharing
  69. Share ConfigShare `json:"share"`
  70. // Small model to use for tasks like title generation in the format of
  71. // provider/model
  72. SmallModel string `json:"small_model"`
  73. Snapshot bool `json:"snapshot"`
  74. // Theme name to use for the interface
  75. Theme string `json:"theme"`
  76. // TUI specific settings
  77. Tui ConfigTui `json:"tui"`
  78. // Custom username to display in conversations instead of system username
  79. Username string `json:"username"`
  80. JSON configJSON `json:"-"`
  81. }
  82. // configJSON contains the JSON metadata for the struct [Config]
  83. type configJSON struct {
  84. Schema apijson.Field
  85. Agent apijson.Field
  86. Autoshare apijson.Field
  87. Autoupdate apijson.Field
  88. DisabledProviders apijson.Field
  89. Experimental apijson.Field
  90. Formatter apijson.Field
  91. Instructions apijson.Field
  92. Keybinds apijson.Field
  93. Layout apijson.Field
  94. Lsp apijson.Field
  95. Mcp apijson.Field
  96. Mode apijson.Field
  97. Model apijson.Field
  98. Permission apijson.Field
  99. Plugin apijson.Field
  100. Provider apijson.Field
  101. Share apijson.Field
  102. SmallModel apijson.Field
  103. Snapshot apijson.Field
  104. Theme apijson.Field
  105. Tui apijson.Field
  106. Username apijson.Field
  107. raw string
  108. ExtraFields map[string]apijson.Field
  109. }
  110. func (r *Config) UnmarshalJSON(data []byte) (err error) {
  111. return apijson.UnmarshalRoot(data, r)
  112. }
  113. func (r configJSON) RawJSON() string {
  114. return r.raw
  115. }
  116. // Agent configuration, see https://opencode.ai/docs/agent
  117. type ConfigAgent struct {
  118. Build ConfigAgentBuild `json:"build"`
  119. General ConfigAgentGeneral `json:"general"`
  120. Plan ConfigAgentPlan `json:"plan"`
  121. ExtraFields map[string]ConfigAgent `json:"-,extras"`
  122. JSON configAgentJSON `json:"-"`
  123. }
  124. // configAgentJSON contains the JSON metadata for the struct [ConfigAgent]
  125. type configAgentJSON struct {
  126. Build apijson.Field
  127. General apijson.Field
  128. Plan apijson.Field
  129. raw string
  130. ExtraFields map[string]apijson.Field
  131. }
  132. func (r *ConfigAgent) UnmarshalJSON(data []byte) (err error) {
  133. return apijson.UnmarshalRoot(data, r)
  134. }
  135. func (r configAgentJSON) RawJSON() string {
  136. return r.raw
  137. }
  138. type ConfigAgentBuild struct {
  139. // Description of when to use the agent
  140. Description string `json:"description"`
  141. Disable bool `json:"disable"`
  142. Mode ConfigAgentBuildMode `json:"mode"`
  143. Model string `json:"model"`
  144. Permission ConfigAgentBuildPermission `json:"permission"`
  145. Prompt string `json:"prompt"`
  146. Temperature float64 `json:"temperature"`
  147. Tools map[string]bool `json:"tools"`
  148. TopP float64 `json:"top_p"`
  149. ExtraFields map[string]interface{} `json:"-,extras"`
  150. JSON configAgentBuildJSON `json:"-"`
  151. }
  152. // configAgentBuildJSON contains the JSON metadata for the struct
  153. // [ConfigAgentBuild]
  154. type configAgentBuildJSON struct {
  155. Description apijson.Field
  156. Disable apijson.Field
  157. Mode apijson.Field
  158. Model apijson.Field
  159. Permission apijson.Field
  160. Prompt apijson.Field
  161. Temperature apijson.Field
  162. Tools apijson.Field
  163. TopP apijson.Field
  164. raw string
  165. ExtraFields map[string]apijson.Field
  166. }
  167. func (r *ConfigAgentBuild) UnmarshalJSON(data []byte) (err error) {
  168. return apijson.UnmarshalRoot(data, r)
  169. }
  170. func (r configAgentBuildJSON) RawJSON() string {
  171. return r.raw
  172. }
  173. type ConfigAgentBuildMode string
  174. const (
  175. ConfigAgentBuildModeSubagent ConfigAgentBuildMode = "subagent"
  176. ConfigAgentBuildModePrimary ConfigAgentBuildMode = "primary"
  177. ConfigAgentBuildModeAll ConfigAgentBuildMode = "all"
  178. )
  179. func (r ConfigAgentBuildMode) IsKnown() bool {
  180. switch r {
  181. case ConfigAgentBuildModeSubagent, ConfigAgentBuildModePrimary, ConfigAgentBuildModeAll:
  182. return true
  183. }
  184. return false
  185. }
  186. type ConfigAgentBuildPermission struct {
  187. Bash ConfigAgentBuildPermissionBashUnion `json:"bash"`
  188. Edit ConfigAgentBuildPermissionEdit `json:"edit"`
  189. Webfetch ConfigAgentBuildPermissionWebfetch `json:"webfetch"`
  190. JSON configAgentBuildPermissionJSON `json:"-"`
  191. }
  192. // configAgentBuildPermissionJSON contains the JSON metadata for the struct
  193. // [ConfigAgentBuildPermission]
  194. type configAgentBuildPermissionJSON struct {
  195. Bash apijson.Field
  196. Edit apijson.Field
  197. Webfetch apijson.Field
  198. raw string
  199. ExtraFields map[string]apijson.Field
  200. }
  201. func (r *ConfigAgentBuildPermission) UnmarshalJSON(data []byte) (err error) {
  202. return apijson.UnmarshalRoot(data, r)
  203. }
  204. func (r configAgentBuildPermissionJSON) RawJSON() string {
  205. return r.raw
  206. }
  207. // Union satisfied by [ConfigAgentBuildPermissionBashString] or
  208. // [ConfigAgentBuildPermissionBashMap].
  209. type ConfigAgentBuildPermissionBashUnion interface {
  210. implementsConfigAgentBuildPermissionBashUnion()
  211. }
  212. func init() {
  213. apijson.RegisterUnion(
  214. reflect.TypeOf((*ConfigAgentBuildPermissionBashUnion)(nil)).Elem(),
  215. "",
  216. apijson.UnionVariant{
  217. TypeFilter: gjson.String,
  218. Type: reflect.TypeOf(ConfigAgentBuildPermissionBashString("")),
  219. },
  220. apijson.UnionVariant{
  221. TypeFilter: gjson.JSON,
  222. Type: reflect.TypeOf(ConfigAgentBuildPermissionBashMap{}),
  223. },
  224. )
  225. }
  226. type ConfigAgentBuildPermissionBashString string
  227. const (
  228. ConfigAgentBuildPermissionBashStringAsk ConfigAgentBuildPermissionBashString = "ask"
  229. ConfigAgentBuildPermissionBashStringAllow ConfigAgentBuildPermissionBashString = "allow"
  230. ConfigAgentBuildPermissionBashStringDeny ConfigAgentBuildPermissionBashString = "deny"
  231. )
  232. func (r ConfigAgentBuildPermissionBashString) IsKnown() bool {
  233. switch r {
  234. case ConfigAgentBuildPermissionBashStringAsk, ConfigAgentBuildPermissionBashStringAllow, ConfigAgentBuildPermissionBashStringDeny:
  235. return true
  236. }
  237. return false
  238. }
  239. func (r ConfigAgentBuildPermissionBashString) implementsConfigAgentBuildPermissionBashUnion() {}
  240. type ConfigAgentBuildPermissionBashMap map[string]ConfigAgentBuildPermissionBashMapItem
  241. func (r ConfigAgentBuildPermissionBashMap) implementsConfigAgentBuildPermissionBashUnion() {}
  242. type ConfigAgentBuildPermissionBashMapItem string
  243. const (
  244. ConfigAgentBuildPermissionBashMapAsk ConfigAgentBuildPermissionBashMapItem = "ask"
  245. ConfigAgentBuildPermissionBashMapAllow ConfigAgentBuildPermissionBashMapItem = "allow"
  246. ConfigAgentBuildPermissionBashMapDeny ConfigAgentBuildPermissionBashMapItem = "deny"
  247. )
  248. func (r ConfigAgentBuildPermissionBashMapItem) IsKnown() bool {
  249. switch r {
  250. case ConfigAgentBuildPermissionBashMapAsk, ConfigAgentBuildPermissionBashMapAllow, ConfigAgentBuildPermissionBashMapDeny:
  251. return true
  252. }
  253. return false
  254. }
  255. type ConfigAgentBuildPermissionEdit string
  256. const (
  257. ConfigAgentBuildPermissionEditAsk ConfigAgentBuildPermissionEdit = "ask"
  258. ConfigAgentBuildPermissionEditAllow ConfigAgentBuildPermissionEdit = "allow"
  259. ConfigAgentBuildPermissionEditDeny ConfigAgentBuildPermissionEdit = "deny"
  260. )
  261. func (r ConfigAgentBuildPermissionEdit) IsKnown() bool {
  262. switch r {
  263. case ConfigAgentBuildPermissionEditAsk, ConfigAgentBuildPermissionEditAllow, ConfigAgentBuildPermissionEditDeny:
  264. return true
  265. }
  266. return false
  267. }
  268. type ConfigAgentBuildPermissionWebfetch string
  269. const (
  270. ConfigAgentBuildPermissionWebfetchAsk ConfigAgentBuildPermissionWebfetch = "ask"
  271. ConfigAgentBuildPermissionWebfetchAllow ConfigAgentBuildPermissionWebfetch = "allow"
  272. ConfigAgentBuildPermissionWebfetchDeny ConfigAgentBuildPermissionWebfetch = "deny"
  273. )
  274. func (r ConfigAgentBuildPermissionWebfetch) IsKnown() bool {
  275. switch r {
  276. case ConfigAgentBuildPermissionWebfetchAsk, ConfigAgentBuildPermissionWebfetchAllow, ConfigAgentBuildPermissionWebfetchDeny:
  277. return true
  278. }
  279. return false
  280. }
  281. type ConfigAgentGeneral struct {
  282. // Description of when to use the agent
  283. Description string `json:"description"`
  284. Disable bool `json:"disable"`
  285. Mode ConfigAgentGeneralMode `json:"mode"`
  286. Model string `json:"model"`
  287. Permission ConfigAgentGeneralPermission `json:"permission"`
  288. Prompt string `json:"prompt"`
  289. Temperature float64 `json:"temperature"`
  290. Tools map[string]bool `json:"tools"`
  291. TopP float64 `json:"top_p"`
  292. ExtraFields map[string]interface{} `json:"-,extras"`
  293. JSON configAgentGeneralJSON `json:"-"`
  294. }
  295. // configAgentGeneralJSON contains the JSON metadata for the struct
  296. // [ConfigAgentGeneral]
  297. type configAgentGeneralJSON struct {
  298. Description apijson.Field
  299. Disable apijson.Field
  300. Mode apijson.Field
  301. Model apijson.Field
  302. Permission apijson.Field
  303. Prompt apijson.Field
  304. Temperature apijson.Field
  305. Tools apijson.Field
  306. TopP apijson.Field
  307. raw string
  308. ExtraFields map[string]apijson.Field
  309. }
  310. func (r *ConfigAgentGeneral) UnmarshalJSON(data []byte) (err error) {
  311. return apijson.UnmarshalRoot(data, r)
  312. }
  313. func (r configAgentGeneralJSON) RawJSON() string {
  314. return r.raw
  315. }
  316. type ConfigAgentGeneralMode string
  317. const (
  318. ConfigAgentGeneralModeSubagent ConfigAgentGeneralMode = "subagent"
  319. ConfigAgentGeneralModePrimary ConfigAgentGeneralMode = "primary"
  320. ConfigAgentGeneralModeAll ConfigAgentGeneralMode = "all"
  321. )
  322. func (r ConfigAgentGeneralMode) IsKnown() bool {
  323. switch r {
  324. case ConfigAgentGeneralModeSubagent, ConfigAgentGeneralModePrimary, ConfigAgentGeneralModeAll:
  325. return true
  326. }
  327. return false
  328. }
  329. type ConfigAgentGeneralPermission struct {
  330. Bash ConfigAgentGeneralPermissionBashUnion `json:"bash"`
  331. Edit ConfigAgentGeneralPermissionEdit `json:"edit"`
  332. Webfetch ConfigAgentGeneralPermissionWebfetch `json:"webfetch"`
  333. JSON configAgentGeneralPermissionJSON `json:"-"`
  334. }
  335. // configAgentGeneralPermissionJSON contains the JSON metadata for the struct
  336. // [ConfigAgentGeneralPermission]
  337. type configAgentGeneralPermissionJSON struct {
  338. Bash apijson.Field
  339. Edit apijson.Field
  340. Webfetch apijson.Field
  341. raw string
  342. ExtraFields map[string]apijson.Field
  343. }
  344. func (r *ConfigAgentGeneralPermission) UnmarshalJSON(data []byte) (err error) {
  345. return apijson.UnmarshalRoot(data, r)
  346. }
  347. func (r configAgentGeneralPermissionJSON) RawJSON() string {
  348. return r.raw
  349. }
  350. // Union satisfied by [ConfigAgentGeneralPermissionBashString] or
  351. // [ConfigAgentGeneralPermissionBashMap].
  352. type ConfigAgentGeneralPermissionBashUnion interface {
  353. implementsConfigAgentGeneralPermissionBashUnion()
  354. }
  355. func init() {
  356. apijson.RegisterUnion(
  357. reflect.TypeOf((*ConfigAgentGeneralPermissionBashUnion)(nil)).Elem(),
  358. "",
  359. apijson.UnionVariant{
  360. TypeFilter: gjson.String,
  361. Type: reflect.TypeOf(ConfigAgentGeneralPermissionBashString("")),
  362. },
  363. apijson.UnionVariant{
  364. TypeFilter: gjson.JSON,
  365. Type: reflect.TypeOf(ConfigAgentGeneralPermissionBashMap{}),
  366. },
  367. )
  368. }
  369. type ConfigAgentGeneralPermissionBashString string
  370. const (
  371. ConfigAgentGeneralPermissionBashStringAsk ConfigAgentGeneralPermissionBashString = "ask"
  372. ConfigAgentGeneralPermissionBashStringAllow ConfigAgentGeneralPermissionBashString = "allow"
  373. ConfigAgentGeneralPermissionBashStringDeny ConfigAgentGeneralPermissionBashString = "deny"
  374. )
  375. func (r ConfigAgentGeneralPermissionBashString) IsKnown() bool {
  376. switch r {
  377. case ConfigAgentGeneralPermissionBashStringAsk, ConfigAgentGeneralPermissionBashStringAllow, ConfigAgentGeneralPermissionBashStringDeny:
  378. return true
  379. }
  380. return false
  381. }
  382. func (r ConfigAgentGeneralPermissionBashString) implementsConfigAgentGeneralPermissionBashUnion() {}
  383. type ConfigAgentGeneralPermissionBashMap map[string]ConfigAgentGeneralPermissionBashMapItem
  384. func (r ConfigAgentGeneralPermissionBashMap) implementsConfigAgentGeneralPermissionBashUnion() {}
  385. type ConfigAgentGeneralPermissionBashMapItem string
  386. const (
  387. ConfigAgentGeneralPermissionBashMapAsk ConfigAgentGeneralPermissionBashMapItem = "ask"
  388. ConfigAgentGeneralPermissionBashMapAllow ConfigAgentGeneralPermissionBashMapItem = "allow"
  389. ConfigAgentGeneralPermissionBashMapDeny ConfigAgentGeneralPermissionBashMapItem = "deny"
  390. )
  391. func (r ConfigAgentGeneralPermissionBashMapItem) IsKnown() bool {
  392. switch r {
  393. case ConfigAgentGeneralPermissionBashMapAsk, ConfigAgentGeneralPermissionBashMapAllow, ConfigAgentGeneralPermissionBashMapDeny:
  394. return true
  395. }
  396. return false
  397. }
  398. type ConfigAgentGeneralPermissionEdit string
  399. const (
  400. ConfigAgentGeneralPermissionEditAsk ConfigAgentGeneralPermissionEdit = "ask"
  401. ConfigAgentGeneralPermissionEditAllow ConfigAgentGeneralPermissionEdit = "allow"
  402. ConfigAgentGeneralPermissionEditDeny ConfigAgentGeneralPermissionEdit = "deny"
  403. )
  404. func (r ConfigAgentGeneralPermissionEdit) IsKnown() bool {
  405. switch r {
  406. case ConfigAgentGeneralPermissionEditAsk, ConfigAgentGeneralPermissionEditAllow, ConfigAgentGeneralPermissionEditDeny:
  407. return true
  408. }
  409. return false
  410. }
  411. type ConfigAgentGeneralPermissionWebfetch string
  412. const (
  413. ConfigAgentGeneralPermissionWebfetchAsk ConfigAgentGeneralPermissionWebfetch = "ask"
  414. ConfigAgentGeneralPermissionWebfetchAllow ConfigAgentGeneralPermissionWebfetch = "allow"
  415. ConfigAgentGeneralPermissionWebfetchDeny ConfigAgentGeneralPermissionWebfetch = "deny"
  416. )
  417. func (r ConfigAgentGeneralPermissionWebfetch) IsKnown() bool {
  418. switch r {
  419. case ConfigAgentGeneralPermissionWebfetchAsk, ConfigAgentGeneralPermissionWebfetchAllow, ConfigAgentGeneralPermissionWebfetchDeny:
  420. return true
  421. }
  422. return false
  423. }
  424. type ConfigAgentPlan struct {
  425. // Description of when to use the agent
  426. Description string `json:"description"`
  427. Disable bool `json:"disable"`
  428. Mode ConfigAgentPlanMode `json:"mode"`
  429. Model string `json:"model"`
  430. Permission ConfigAgentPlanPermission `json:"permission"`
  431. Prompt string `json:"prompt"`
  432. Temperature float64 `json:"temperature"`
  433. Tools map[string]bool `json:"tools"`
  434. TopP float64 `json:"top_p"`
  435. ExtraFields map[string]interface{} `json:"-,extras"`
  436. JSON configAgentPlanJSON `json:"-"`
  437. }
  438. // configAgentPlanJSON contains the JSON metadata for the struct [ConfigAgentPlan]
  439. type configAgentPlanJSON struct {
  440. Description apijson.Field
  441. Disable apijson.Field
  442. Mode apijson.Field
  443. Model apijson.Field
  444. Permission apijson.Field
  445. Prompt apijson.Field
  446. Temperature apijson.Field
  447. Tools apijson.Field
  448. TopP apijson.Field
  449. raw string
  450. ExtraFields map[string]apijson.Field
  451. }
  452. func (r *ConfigAgentPlan) UnmarshalJSON(data []byte) (err error) {
  453. return apijson.UnmarshalRoot(data, r)
  454. }
  455. func (r configAgentPlanJSON) RawJSON() string {
  456. return r.raw
  457. }
  458. type ConfigAgentPlanMode string
  459. const (
  460. ConfigAgentPlanModeSubagent ConfigAgentPlanMode = "subagent"
  461. ConfigAgentPlanModePrimary ConfigAgentPlanMode = "primary"
  462. ConfigAgentPlanModeAll ConfigAgentPlanMode = "all"
  463. )
  464. func (r ConfigAgentPlanMode) IsKnown() bool {
  465. switch r {
  466. case ConfigAgentPlanModeSubagent, ConfigAgentPlanModePrimary, ConfigAgentPlanModeAll:
  467. return true
  468. }
  469. return false
  470. }
  471. type ConfigAgentPlanPermission struct {
  472. Bash ConfigAgentPlanPermissionBashUnion `json:"bash"`
  473. Edit ConfigAgentPlanPermissionEdit `json:"edit"`
  474. Webfetch ConfigAgentPlanPermissionWebfetch `json:"webfetch"`
  475. JSON configAgentPlanPermissionJSON `json:"-"`
  476. }
  477. // configAgentPlanPermissionJSON contains the JSON metadata for the struct
  478. // [ConfigAgentPlanPermission]
  479. type configAgentPlanPermissionJSON struct {
  480. Bash apijson.Field
  481. Edit apijson.Field
  482. Webfetch apijson.Field
  483. raw string
  484. ExtraFields map[string]apijson.Field
  485. }
  486. func (r *ConfigAgentPlanPermission) UnmarshalJSON(data []byte) (err error) {
  487. return apijson.UnmarshalRoot(data, r)
  488. }
  489. func (r configAgentPlanPermissionJSON) RawJSON() string {
  490. return r.raw
  491. }
  492. // Union satisfied by [ConfigAgentPlanPermissionBashString] or
  493. // [ConfigAgentPlanPermissionBashMap].
  494. type ConfigAgentPlanPermissionBashUnion interface {
  495. implementsConfigAgentPlanPermissionBashUnion()
  496. }
  497. func init() {
  498. apijson.RegisterUnion(
  499. reflect.TypeOf((*ConfigAgentPlanPermissionBashUnion)(nil)).Elem(),
  500. "",
  501. apijson.UnionVariant{
  502. TypeFilter: gjson.String,
  503. Type: reflect.TypeOf(ConfigAgentPlanPermissionBashString("")),
  504. },
  505. apijson.UnionVariant{
  506. TypeFilter: gjson.JSON,
  507. Type: reflect.TypeOf(ConfigAgentPlanPermissionBashMap{}),
  508. },
  509. )
  510. }
  511. type ConfigAgentPlanPermissionBashString string
  512. const (
  513. ConfigAgentPlanPermissionBashStringAsk ConfigAgentPlanPermissionBashString = "ask"
  514. ConfigAgentPlanPermissionBashStringAllow ConfigAgentPlanPermissionBashString = "allow"
  515. ConfigAgentPlanPermissionBashStringDeny ConfigAgentPlanPermissionBashString = "deny"
  516. )
  517. func (r ConfigAgentPlanPermissionBashString) IsKnown() bool {
  518. switch r {
  519. case ConfigAgentPlanPermissionBashStringAsk, ConfigAgentPlanPermissionBashStringAllow, ConfigAgentPlanPermissionBashStringDeny:
  520. return true
  521. }
  522. return false
  523. }
  524. func (r ConfigAgentPlanPermissionBashString) implementsConfigAgentPlanPermissionBashUnion() {}
  525. type ConfigAgentPlanPermissionBashMap map[string]ConfigAgentPlanPermissionBashMapItem
  526. func (r ConfigAgentPlanPermissionBashMap) implementsConfigAgentPlanPermissionBashUnion() {}
  527. type ConfigAgentPlanPermissionBashMapItem string
  528. const (
  529. ConfigAgentPlanPermissionBashMapAsk ConfigAgentPlanPermissionBashMapItem = "ask"
  530. ConfigAgentPlanPermissionBashMapAllow ConfigAgentPlanPermissionBashMapItem = "allow"
  531. ConfigAgentPlanPermissionBashMapDeny ConfigAgentPlanPermissionBashMapItem = "deny"
  532. )
  533. func (r ConfigAgentPlanPermissionBashMapItem) IsKnown() bool {
  534. switch r {
  535. case ConfigAgentPlanPermissionBashMapAsk, ConfigAgentPlanPermissionBashMapAllow, ConfigAgentPlanPermissionBashMapDeny:
  536. return true
  537. }
  538. return false
  539. }
  540. type ConfigAgentPlanPermissionEdit string
  541. const (
  542. ConfigAgentPlanPermissionEditAsk ConfigAgentPlanPermissionEdit = "ask"
  543. ConfigAgentPlanPermissionEditAllow ConfigAgentPlanPermissionEdit = "allow"
  544. ConfigAgentPlanPermissionEditDeny ConfigAgentPlanPermissionEdit = "deny"
  545. )
  546. func (r ConfigAgentPlanPermissionEdit) IsKnown() bool {
  547. switch r {
  548. case ConfigAgentPlanPermissionEditAsk, ConfigAgentPlanPermissionEditAllow, ConfigAgentPlanPermissionEditDeny:
  549. return true
  550. }
  551. return false
  552. }
  553. type ConfigAgentPlanPermissionWebfetch string
  554. const (
  555. ConfigAgentPlanPermissionWebfetchAsk ConfigAgentPlanPermissionWebfetch = "ask"
  556. ConfigAgentPlanPermissionWebfetchAllow ConfigAgentPlanPermissionWebfetch = "allow"
  557. ConfigAgentPlanPermissionWebfetchDeny ConfigAgentPlanPermissionWebfetch = "deny"
  558. )
  559. func (r ConfigAgentPlanPermissionWebfetch) IsKnown() bool {
  560. switch r {
  561. case ConfigAgentPlanPermissionWebfetchAsk, ConfigAgentPlanPermissionWebfetchAllow, ConfigAgentPlanPermissionWebfetchDeny:
  562. return true
  563. }
  564. return false
  565. }
  566. type ConfigExperimental struct {
  567. Hook ConfigExperimentalHook `json:"hook"`
  568. JSON configExperimentalJSON `json:"-"`
  569. }
  570. // configExperimentalJSON contains the JSON metadata for the struct
  571. // [ConfigExperimental]
  572. type configExperimentalJSON struct {
  573. Hook apijson.Field
  574. raw string
  575. ExtraFields map[string]apijson.Field
  576. }
  577. func (r *ConfigExperimental) UnmarshalJSON(data []byte) (err error) {
  578. return apijson.UnmarshalRoot(data, r)
  579. }
  580. func (r configExperimentalJSON) RawJSON() string {
  581. return r.raw
  582. }
  583. type ConfigExperimentalHook struct {
  584. FileEdited map[string][]ConfigExperimentalHookFileEdited `json:"file_edited"`
  585. SessionCompleted []ConfigExperimentalHookSessionCompleted `json:"session_completed"`
  586. JSON configExperimentalHookJSON `json:"-"`
  587. }
  588. // configExperimentalHookJSON contains the JSON metadata for the struct
  589. // [ConfigExperimentalHook]
  590. type configExperimentalHookJSON struct {
  591. FileEdited apijson.Field
  592. SessionCompleted apijson.Field
  593. raw string
  594. ExtraFields map[string]apijson.Field
  595. }
  596. func (r *ConfigExperimentalHook) UnmarshalJSON(data []byte) (err error) {
  597. return apijson.UnmarshalRoot(data, r)
  598. }
  599. func (r configExperimentalHookJSON) RawJSON() string {
  600. return r.raw
  601. }
  602. type ConfigExperimentalHookFileEdited struct {
  603. Command []string `json:"command,required"`
  604. Environment map[string]string `json:"environment"`
  605. JSON configExperimentalHookFileEditedJSON `json:"-"`
  606. }
  607. // configExperimentalHookFileEditedJSON contains the JSON metadata for the struct
  608. // [ConfigExperimentalHookFileEdited]
  609. type configExperimentalHookFileEditedJSON struct {
  610. Command apijson.Field
  611. Environment apijson.Field
  612. raw string
  613. ExtraFields map[string]apijson.Field
  614. }
  615. func (r *ConfigExperimentalHookFileEdited) UnmarshalJSON(data []byte) (err error) {
  616. return apijson.UnmarshalRoot(data, r)
  617. }
  618. func (r configExperimentalHookFileEditedJSON) RawJSON() string {
  619. return r.raw
  620. }
  621. type ConfigExperimentalHookSessionCompleted struct {
  622. Command []string `json:"command,required"`
  623. Environment map[string]string `json:"environment"`
  624. JSON configExperimentalHookSessionCompletedJSON `json:"-"`
  625. }
  626. // configExperimentalHookSessionCompletedJSON contains the JSON metadata for the
  627. // struct [ConfigExperimentalHookSessionCompleted]
  628. type configExperimentalHookSessionCompletedJSON struct {
  629. Command apijson.Field
  630. Environment apijson.Field
  631. raw string
  632. ExtraFields map[string]apijson.Field
  633. }
  634. func (r *ConfigExperimentalHookSessionCompleted) UnmarshalJSON(data []byte) (err error) {
  635. return apijson.UnmarshalRoot(data, r)
  636. }
  637. func (r configExperimentalHookSessionCompletedJSON) RawJSON() string {
  638. return r.raw
  639. }
  640. type ConfigFormatter struct {
  641. Command []string `json:"command"`
  642. Disabled bool `json:"disabled"`
  643. Environment map[string]string `json:"environment"`
  644. Extensions []string `json:"extensions"`
  645. JSON configFormatterJSON `json:"-"`
  646. }
  647. // configFormatterJSON contains the JSON metadata for the struct [ConfigFormatter]
  648. type configFormatterJSON struct {
  649. Command apijson.Field
  650. Disabled apijson.Field
  651. Environment apijson.Field
  652. Extensions apijson.Field
  653. raw string
  654. ExtraFields map[string]apijson.Field
  655. }
  656. func (r *ConfigFormatter) UnmarshalJSON(data []byte) (err error) {
  657. return apijson.UnmarshalRoot(data, r)
  658. }
  659. func (r configFormatterJSON) RawJSON() string {
  660. return r.raw
  661. }
  662. // @deprecated Always uses stretch layout.
  663. type ConfigLayout string
  664. const (
  665. ConfigLayoutAuto ConfigLayout = "auto"
  666. ConfigLayoutStretch ConfigLayout = "stretch"
  667. )
  668. func (r ConfigLayout) IsKnown() bool {
  669. switch r {
  670. case ConfigLayoutAuto, ConfigLayoutStretch:
  671. return true
  672. }
  673. return false
  674. }
  675. type ConfigLsp struct {
  676. // This field can have the runtime type of [[]string].
  677. Command interface{} `json:"command"`
  678. Disabled bool `json:"disabled"`
  679. // This field can have the runtime type of [map[string]string].
  680. Env interface{} `json:"env"`
  681. // This field can have the runtime type of [[]string].
  682. Extensions interface{} `json:"extensions"`
  683. // This field can have the runtime type of [map[string]interface{}].
  684. Initialization interface{} `json:"initialization"`
  685. JSON configLspJSON `json:"-"`
  686. union ConfigLspUnion
  687. }
  688. // configLspJSON contains the JSON metadata for the struct [ConfigLsp]
  689. type configLspJSON struct {
  690. Command apijson.Field
  691. Disabled apijson.Field
  692. Env apijson.Field
  693. Extensions apijson.Field
  694. Initialization apijson.Field
  695. raw string
  696. ExtraFields map[string]apijson.Field
  697. }
  698. func (r configLspJSON) RawJSON() string {
  699. return r.raw
  700. }
  701. func (r *ConfigLsp) UnmarshalJSON(data []byte) (err error) {
  702. *r = ConfigLsp{}
  703. err = apijson.UnmarshalRoot(data, &r.union)
  704. if err != nil {
  705. return err
  706. }
  707. return apijson.Port(r.union, &r)
  708. }
  709. // AsUnion returns a [ConfigLspUnion] interface which you can cast to the specific
  710. // types for more type safety.
  711. //
  712. // Possible runtime types of the union are [ConfigLspDisabled], [ConfigLspObject].
  713. func (r ConfigLsp) AsUnion() ConfigLspUnion {
  714. return r.union
  715. }
  716. // Union satisfied by [ConfigLspDisabled] or [ConfigLspObject].
  717. type ConfigLspUnion interface {
  718. implementsConfigLsp()
  719. }
  720. func init() {
  721. apijson.RegisterUnion(
  722. reflect.TypeOf((*ConfigLspUnion)(nil)).Elem(),
  723. "",
  724. apijson.UnionVariant{
  725. TypeFilter: gjson.JSON,
  726. Type: reflect.TypeOf(ConfigLspDisabled{}),
  727. },
  728. apijson.UnionVariant{
  729. TypeFilter: gjson.JSON,
  730. Type: reflect.TypeOf(ConfigLspObject{}),
  731. },
  732. )
  733. }
  734. type ConfigLspDisabled struct {
  735. Disabled ConfigLspDisabledDisabled `json:"disabled,required"`
  736. JSON configLspDisabledJSON `json:"-"`
  737. }
  738. // configLspDisabledJSON contains the JSON metadata for the struct
  739. // [ConfigLspDisabled]
  740. type configLspDisabledJSON struct {
  741. Disabled apijson.Field
  742. raw string
  743. ExtraFields map[string]apijson.Field
  744. }
  745. func (r *ConfigLspDisabled) UnmarshalJSON(data []byte) (err error) {
  746. return apijson.UnmarshalRoot(data, r)
  747. }
  748. func (r configLspDisabledJSON) RawJSON() string {
  749. return r.raw
  750. }
  751. func (r ConfigLspDisabled) implementsConfigLsp() {}
  752. type ConfigLspDisabledDisabled bool
  753. const (
  754. ConfigLspDisabledDisabledTrue ConfigLspDisabledDisabled = true
  755. )
  756. func (r ConfigLspDisabledDisabled) IsKnown() bool {
  757. switch r {
  758. case ConfigLspDisabledDisabledTrue:
  759. return true
  760. }
  761. return false
  762. }
  763. type ConfigLspObject struct {
  764. Command []string `json:"command,required"`
  765. Disabled bool `json:"disabled"`
  766. Env map[string]string `json:"env"`
  767. Extensions []string `json:"extensions"`
  768. Initialization map[string]interface{} `json:"initialization"`
  769. JSON configLspObjectJSON `json:"-"`
  770. }
  771. // configLspObjectJSON contains the JSON metadata for the struct [ConfigLspObject]
  772. type configLspObjectJSON struct {
  773. Command apijson.Field
  774. Disabled apijson.Field
  775. Env apijson.Field
  776. Extensions apijson.Field
  777. Initialization apijson.Field
  778. raw string
  779. ExtraFields map[string]apijson.Field
  780. }
  781. func (r *ConfigLspObject) UnmarshalJSON(data []byte) (err error) {
  782. return apijson.UnmarshalRoot(data, r)
  783. }
  784. func (r configLspObjectJSON) RawJSON() string {
  785. return r.raw
  786. }
  787. func (r ConfigLspObject) implementsConfigLsp() {}
  788. type ConfigMcp struct {
  789. // Type of MCP server connection
  790. Type ConfigMcpType `json:"type,required"`
  791. // This field can have the runtime type of [[]string].
  792. Command interface{} `json:"command"`
  793. // Enable or disable the MCP server on startup
  794. Enabled bool `json:"enabled"`
  795. // This field can have the runtime type of [map[string]string].
  796. Environment interface{} `json:"environment"`
  797. // This field can have the runtime type of [map[string]string].
  798. Headers interface{} `json:"headers"`
  799. // URL of the remote MCP server
  800. URL string `json:"url"`
  801. JSON configMcpJSON `json:"-"`
  802. union ConfigMcpUnion
  803. }
  804. // configMcpJSON contains the JSON metadata for the struct [ConfigMcp]
  805. type configMcpJSON struct {
  806. Type apijson.Field
  807. Command apijson.Field
  808. Enabled apijson.Field
  809. Environment apijson.Field
  810. Headers apijson.Field
  811. URL apijson.Field
  812. raw string
  813. ExtraFields map[string]apijson.Field
  814. }
  815. func (r configMcpJSON) RawJSON() string {
  816. return r.raw
  817. }
  818. func (r *ConfigMcp) UnmarshalJSON(data []byte) (err error) {
  819. *r = ConfigMcp{}
  820. err = apijson.UnmarshalRoot(data, &r.union)
  821. if err != nil {
  822. return err
  823. }
  824. return apijson.Port(r.union, &r)
  825. }
  826. // AsUnion returns a [ConfigMcpUnion] interface which you can cast to the specific
  827. // types for more type safety.
  828. //
  829. // Possible runtime types of the union are [McpLocalConfig], [McpRemoteConfig].
  830. func (r ConfigMcp) AsUnion() ConfigMcpUnion {
  831. return r.union
  832. }
  833. // Union satisfied by [McpLocalConfig] or [McpRemoteConfig].
  834. type ConfigMcpUnion interface {
  835. implementsConfigMcp()
  836. }
  837. func init() {
  838. apijson.RegisterUnion(
  839. reflect.TypeOf((*ConfigMcpUnion)(nil)).Elem(),
  840. "type",
  841. apijson.UnionVariant{
  842. TypeFilter: gjson.JSON,
  843. Type: reflect.TypeOf(McpLocalConfig{}),
  844. DiscriminatorValue: "local",
  845. },
  846. apijson.UnionVariant{
  847. TypeFilter: gjson.JSON,
  848. Type: reflect.TypeOf(McpRemoteConfig{}),
  849. DiscriminatorValue: "remote",
  850. },
  851. )
  852. }
  853. // Type of MCP server connection
  854. type ConfigMcpType string
  855. const (
  856. ConfigMcpTypeLocal ConfigMcpType = "local"
  857. ConfigMcpTypeRemote ConfigMcpType = "remote"
  858. )
  859. func (r ConfigMcpType) IsKnown() bool {
  860. switch r {
  861. case ConfigMcpTypeLocal, ConfigMcpTypeRemote:
  862. return true
  863. }
  864. return false
  865. }
  866. // @deprecated Use `agent` field instead.
  867. type ConfigMode struct {
  868. Build ConfigModeBuild `json:"build"`
  869. Plan ConfigModePlan `json:"plan"`
  870. ExtraFields map[string]ConfigMode `json:"-,extras"`
  871. JSON configModeJSON `json:"-"`
  872. }
  873. // configModeJSON contains the JSON metadata for the struct [ConfigMode]
  874. type configModeJSON struct {
  875. Build apijson.Field
  876. Plan apijson.Field
  877. raw string
  878. ExtraFields map[string]apijson.Field
  879. }
  880. func (r *ConfigMode) UnmarshalJSON(data []byte) (err error) {
  881. return apijson.UnmarshalRoot(data, r)
  882. }
  883. func (r configModeJSON) RawJSON() string {
  884. return r.raw
  885. }
  886. type ConfigModeBuild struct {
  887. // Description of when to use the agent
  888. Description string `json:"description"`
  889. Disable bool `json:"disable"`
  890. Mode ConfigModeBuildMode `json:"mode"`
  891. Model string `json:"model"`
  892. Permission ConfigModeBuildPermission `json:"permission"`
  893. Prompt string `json:"prompt"`
  894. Temperature float64 `json:"temperature"`
  895. Tools map[string]bool `json:"tools"`
  896. TopP float64 `json:"top_p"`
  897. ExtraFields map[string]interface{} `json:"-,extras"`
  898. JSON configModeBuildJSON `json:"-"`
  899. }
  900. // configModeBuildJSON contains the JSON metadata for the struct [ConfigModeBuild]
  901. type configModeBuildJSON struct {
  902. Description apijson.Field
  903. Disable apijson.Field
  904. Mode apijson.Field
  905. Model apijson.Field
  906. Permission apijson.Field
  907. Prompt apijson.Field
  908. Temperature apijson.Field
  909. Tools apijson.Field
  910. TopP apijson.Field
  911. raw string
  912. ExtraFields map[string]apijson.Field
  913. }
  914. func (r *ConfigModeBuild) UnmarshalJSON(data []byte) (err error) {
  915. return apijson.UnmarshalRoot(data, r)
  916. }
  917. func (r configModeBuildJSON) RawJSON() string {
  918. return r.raw
  919. }
  920. type ConfigModeBuildMode string
  921. const (
  922. ConfigModeBuildModeSubagent ConfigModeBuildMode = "subagent"
  923. ConfigModeBuildModePrimary ConfigModeBuildMode = "primary"
  924. ConfigModeBuildModeAll ConfigModeBuildMode = "all"
  925. )
  926. func (r ConfigModeBuildMode) IsKnown() bool {
  927. switch r {
  928. case ConfigModeBuildModeSubagent, ConfigModeBuildModePrimary, ConfigModeBuildModeAll:
  929. return true
  930. }
  931. return false
  932. }
  933. type ConfigModeBuildPermission struct {
  934. Bash ConfigModeBuildPermissionBashUnion `json:"bash"`
  935. Edit ConfigModeBuildPermissionEdit `json:"edit"`
  936. Webfetch ConfigModeBuildPermissionWebfetch `json:"webfetch"`
  937. JSON configModeBuildPermissionJSON `json:"-"`
  938. }
  939. // configModeBuildPermissionJSON contains the JSON metadata for the struct
  940. // [ConfigModeBuildPermission]
  941. type configModeBuildPermissionJSON struct {
  942. Bash apijson.Field
  943. Edit apijson.Field
  944. Webfetch apijson.Field
  945. raw string
  946. ExtraFields map[string]apijson.Field
  947. }
  948. func (r *ConfigModeBuildPermission) UnmarshalJSON(data []byte) (err error) {
  949. return apijson.UnmarshalRoot(data, r)
  950. }
  951. func (r configModeBuildPermissionJSON) RawJSON() string {
  952. return r.raw
  953. }
  954. // Union satisfied by [ConfigModeBuildPermissionBashString] or
  955. // [ConfigModeBuildPermissionBashMap].
  956. type ConfigModeBuildPermissionBashUnion interface {
  957. implementsConfigModeBuildPermissionBashUnion()
  958. }
  959. func init() {
  960. apijson.RegisterUnion(
  961. reflect.TypeOf((*ConfigModeBuildPermissionBashUnion)(nil)).Elem(),
  962. "",
  963. apijson.UnionVariant{
  964. TypeFilter: gjson.String,
  965. Type: reflect.TypeOf(ConfigModeBuildPermissionBashString("")),
  966. },
  967. apijson.UnionVariant{
  968. TypeFilter: gjson.JSON,
  969. Type: reflect.TypeOf(ConfigModeBuildPermissionBashMap{}),
  970. },
  971. )
  972. }
  973. type ConfigModeBuildPermissionBashString string
  974. const (
  975. ConfigModeBuildPermissionBashStringAsk ConfigModeBuildPermissionBashString = "ask"
  976. ConfigModeBuildPermissionBashStringAllow ConfigModeBuildPermissionBashString = "allow"
  977. ConfigModeBuildPermissionBashStringDeny ConfigModeBuildPermissionBashString = "deny"
  978. )
  979. func (r ConfigModeBuildPermissionBashString) IsKnown() bool {
  980. switch r {
  981. case ConfigModeBuildPermissionBashStringAsk, ConfigModeBuildPermissionBashStringAllow, ConfigModeBuildPermissionBashStringDeny:
  982. return true
  983. }
  984. return false
  985. }
  986. func (r ConfigModeBuildPermissionBashString) implementsConfigModeBuildPermissionBashUnion() {}
  987. type ConfigModeBuildPermissionBashMap map[string]ConfigModeBuildPermissionBashMapItem
  988. func (r ConfigModeBuildPermissionBashMap) implementsConfigModeBuildPermissionBashUnion() {}
  989. type ConfigModeBuildPermissionBashMapItem string
  990. const (
  991. ConfigModeBuildPermissionBashMapAsk ConfigModeBuildPermissionBashMapItem = "ask"
  992. ConfigModeBuildPermissionBashMapAllow ConfigModeBuildPermissionBashMapItem = "allow"
  993. ConfigModeBuildPermissionBashMapDeny ConfigModeBuildPermissionBashMapItem = "deny"
  994. )
  995. func (r ConfigModeBuildPermissionBashMapItem) IsKnown() bool {
  996. switch r {
  997. case ConfigModeBuildPermissionBashMapAsk, ConfigModeBuildPermissionBashMapAllow, ConfigModeBuildPermissionBashMapDeny:
  998. return true
  999. }
  1000. return false
  1001. }
  1002. type ConfigModeBuildPermissionEdit string
  1003. const (
  1004. ConfigModeBuildPermissionEditAsk ConfigModeBuildPermissionEdit = "ask"
  1005. ConfigModeBuildPermissionEditAllow ConfigModeBuildPermissionEdit = "allow"
  1006. ConfigModeBuildPermissionEditDeny ConfigModeBuildPermissionEdit = "deny"
  1007. )
  1008. func (r ConfigModeBuildPermissionEdit) IsKnown() bool {
  1009. switch r {
  1010. case ConfigModeBuildPermissionEditAsk, ConfigModeBuildPermissionEditAllow, ConfigModeBuildPermissionEditDeny:
  1011. return true
  1012. }
  1013. return false
  1014. }
  1015. type ConfigModeBuildPermissionWebfetch string
  1016. const (
  1017. ConfigModeBuildPermissionWebfetchAsk ConfigModeBuildPermissionWebfetch = "ask"
  1018. ConfigModeBuildPermissionWebfetchAllow ConfigModeBuildPermissionWebfetch = "allow"
  1019. ConfigModeBuildPermissionWebfetchDeny ConfigModeBuildPermissionWebfetch = "deny"
  1020. )
  1021. func (r ConfigModeBuildPermissionWebfetch) IsKnown() bool {
  1022. switch r {
  1023. case ConfigModeBuildPermissionWebfetchAsk, ConfigModeBuildPermissionWebfetchAllow, ConfigModeBuildPermissionWebfetchDeny:
  1024. return true
  1025. }
  1026. return false
  1027. }
  1028. type ConfigModePlan struct {
  1029. // Description of when to use the agent
  1030. Description string `json:"description"`
  1031. Disable bool `json:"disable"`
  1032. Mode ConfigModePlanMode `json:"mode"`
  1033. Model string `json:"model"`
  1034. Permission ConfigModePlanPermission `json:"permission"`
  1035. Prompt string `json:"prompt"`
  1036. Temperature float64 `json:"temperature"`
  1037. Tools map[string]bool `json:"tools"`
  1038. TopP float64 `json:"top_p"`
  1039. ExtraFields map[string]interface{} `json:"-,extras"`
  1040. JSON configModePlanJSON `json:"-"`
  1041. }
  1042. // configModePlanJSON contains the JSON metadata for the struct [ConfigModePlan]
  1043. type configModePlanJSON struct {
  1044. Description apijson.Field
  1045. Disable apijson.Field
  1046. Mode apijson.Field
  1047. Model apijson.Field
  1048. Permission apijson.Field
  1049. Prompt apijson.Field
  1050. Temperature apijson.Field
  1051. Tools apijson.Field
  1052. TopP apijson.Field
  1053. raw string
  1054. ExtraFields map[string]apijson.Field
  1055. }
  1056. func (r *ConfigModePlan) UnmarshalJSON(data []byte) (err error) {
  1057. return apijson.UnmarshalRoot(data, r)
  1058. }
  1059. func (r configModePlanJSON) RawJSON() string {
  1060. return r.raw
  1061. }
  1062. type ConfigModePlanMode string
  1063. const (
  1064. ConfigModePlanModeSubagent ConfigModePlanMode = "subagent"
  1065. ConfigModePlanModePrimary ConfigModePlanMode = "primary"
  1066. ConfigModePlanModeAll ConfigModePlanMode = "all"
  1067. )
  1068. func (r ConfigModePlanMode) IsKnown() bool {
  1069. switch r {
  1070. case ConfigModePlanModeSubagent, ConfigModePlanModePrimary, ConfigModePlanModeAll:
  1071. return true
  1072. }
  1073. return false
  1074. }
  1075. type ConfigModePlanPermission struct {
  1076. Bash ConfigModePlanPermissionBashUnion `json:"bash"`
  1077. Edit ConfigModePlanPermissionEdit `json:"edit"`
  1078. Webfetch ConfigModePlanPermissionWebfetch `json:"webfetch"`
  1079. JSON configModePlanPermissionJSON `json:"-"`
  1080. }
  1081. // configModePlanPermissionJSON contains the JSON metadata for the struct
  1082. // [ConfigModePlanPermission]
  1083. type configModePlanPermissionJSON struct {
  1084. Bash apijson.Field
  1085. Edit apijson.Field
  1086. Webfetch apijson.Field
  1087. raw string
  1088. ExtraFields map[string]apijson.Field
  1089. }
  1090. func (r *ConfigModePlanPermission) UnmarshalJSON(data []byte) (err error) {
  1091. return apijson.UnmarshalRoot(data, r)
  1092. }
  1093. func (r configModePlanPermissionJSON) RawJSON() string {
  1094. return r.raw
  1095. }
  1096. // Union satisfied by [ConfigModePlanPermissionBashString] or
  1097. // [ConfigModePlanPermissionBashMap].
  1098. type ConfigModePlanPermissionBashUnion interface {
  1099. implementsConfigModePlanPermissionBashUnion()
  1100. }
  1101. func init() {
  1102. apijson.RegisterUnion(
  1103. reflect.TypeOf((*ConfigModePlanPermissionBashUnion)(nil)).Elem(),
  1104. "",
  1105. apijson.UnionVariant{
  1106. TypeFilter: gjson.String,
  1107. Type: reflect.TypeOf(ConfigModePlanPermissionBashString("")),
  1108. },
  1109. apijson.UnionVariant{
  1110. TypeFilter: gjson.JSON,
  1111. Type: reflect.TypeOf(ConfigModePlanPermissionBashMap{}),
  1112. },
  1113. )
  1114. }
  1115. type ConfigModePlanPermissionBashString string
  1116. const (
  1117. ConfigModePlanPermissionBashStringAsk ConfigModePlanPermissionBashString = "ask"
  1118. ConfigModePlanPermissionBashStringAllow ConfigModePlanPermissionBashString = "allow"
  1119. ConfigModePlanPermissionBashStringDeny ConfigModePlanPermissionBashString = "deny"
  1120. )
  1121. func (r ConfigModePlanPermissionBashString) IsKnown() bool {
  1122. switch r {
  1123. case ConfigModePlanPermissionBashStringAsk, ConfigModePlanPermissionBashStringAllow, ConfigModePlanPermissionBashStringDeny:
  1124. return true
  1125. }
  1126. return false
  1127. }
  1128. func (r ConfigModePlanPermissionBashString) implementsConfigModePlanPermissionBashUnion() {}
  1129. type ConfigModePlanPermissionBashMap map[string]ConfigModePlanPermissionBashMapItem
  1130. func (r ConfigModePlanPermissionBashMap) implementsConfigModePlanPermissionBashUnion() {}
  1131. type ConfigModePlanPermissionBashMapItem string
  1132. const (
  1133. ConfigModePlanPermissionBashMapAsk ConfigModePlanPermissionBashMapItem = "ask"
  1134. ConfigModePlanPermissionBashMapAllow ConfigModePlanPermissionBashMapItem = "allow"
  1135. ConfigModePlanPermissionBashMapDeny ConfigModePlanPermissionBashMapItem = "deny"
  1136. )
  1137. func (r ConfigModePlanPermissionBashMapItem) IsKnown() bool {
  1138. switch r {
  1139. case ConfigModePlanPermissionBashMapAsk, ConfigModePlanPermissionBashMapAllow, ConfigModePlanPermissionBashMapDeny:
  1140. return true
  1141. }
  1142. return false
  1143. }
  1144. type ConfigModePlanPermissionEdit string
  1145. const (
  1146. ConfigModePlanPermissionEditAsk ConfigModePlanPermissionEdit = "ask"
  1147. ConfigModePlanPermissionEditAllow ConfigModePlanPermissionEdit = "allow"
  1148. ConfigModePlanPermissionEditDeny ConfigModePlanPermissionEdit = "deny"
  1149. )
  1150. func (r ConfigModePlanPermissionEdit) IsKnown() bool {
  1151. switch r {
  1152. case ConfigModePlanPermissionEditAsk, ConfigModePlanPermissionEditAllow, ConfigModePlanPermissionEditDeny:
  1153. return true
  1154. }
  1155. return false
  1156. }
  1157. type ConfigModePlanPermissionWebfetch string
  1158. const (
  1159. ConfigModePlanPermissionWebfetchAsk ConfigModePlanPermissionWebfetch = "ask"
  1160. ConfigModePlanPermissionWebfetchAllow ConfigModePlanPermissionWebfetch = "allow"
  1161. ConfigModePlanPermissionWebfetchDeny ConfigModePlanPermissionWebfetch = "deny"
  1162. )
  1163. func (r ConfigModePlanPermissionWebfetch) IsKnown() bool {
  1164. switch r {
  1165. case ConfigModePlanPermissionWebfetchAsk, ConfigModePlanPermissionWebfetchAllow, ConfigModePlanPermissionWebfetchDeny:
  1166. return true
  1167. }
  1168. return false
  1169. }
  1170. type ConfigPermission struct {
  1171. Bash ConfigPermissionBashUnion `json:"bash"`
  1172. Edit ConfigPermissionEdit `json:"edit"`
  1173. Webfetch ConfigPermissionWebfetch `json:"webfetch"`
  1174. JSON configPermissionJSON `json:"-"`
  1175. }
  1176. // configPermissionJSON contains the JSON metadata for the struct
  1177. // [ConfigPermission]
  1178. type configPermissionJSON struct {
  1179. Bash apijson.Field
  1180. Edit apijson.Field
  1181. Webfetch apijson.Field
  1182. raw string
  1183. ExtraFields map[string]apijson.Field
  1184. }
  1185. func (r *ConfigPermission) UnmarshalJSON(data []byte) (err error) {
  1186. return apijson.UnmarshalRoot(data, r)
  1187. }
  1188. func (r configPermissionJSON) RawJSON() string {
  1189. return r.raw
  1190. }
  1191. // Union satisfied by [ConfigPermissionBashString] or [ConfigPermissionBashMap].
  1192. type ConfigPermissionBashUnion interface {
  1193. implementsConfigPermissionBashUnion()
  1194. }
  1195. func init() {
  1196. apijson.RegisterUnion(
  1197. reflect.TypeOf((*ConfigPermissionBashUnion)(nil)).Elem(),
  1198. "",
  1199. apijson.UnionVariant{
  1200. TypeFilter: gjson.String,
  1201. Type: reflect.TypeOf(ConfigPermissionBashString("")),
  1202. },
  1203. apijson.UnionVariant{
  1204. TypeFilter: gjson.JSON,
  1205. Type: reflect.TypeOf(ConfigPermissionBashMap{}),
  1206. },
  1207. )
  1208. }
  1209. type ConfigPermissionBashString string
  1210. const (
  1211. ConfigPermissionBashStringAsk ConfigPermissionBashString = "ask"
  1212. ConfigPermissionBashStringAllow ConfigPermissionBashString = "allow"
  1213. ConfigPermissionBashStringDeny ConfigPermissionBashString = "deny"
  1214. )
  1215. func (r ConfigPermissionBashString) IsKnown() bool {
  1216. switch r {
  1217. case ConfigPermissionBashStringAsk, ConfigPermissionBashStringAllow, ConfigPermissionBashStringDeny:
  1218. return true
  1219. }
  1220. return false
  1221. }
  1222. func (r ConfigPermissionBashString) implementsConfigPermissionBashUnion() {}
  1223. type ConfigPermissionBashMap map[string]ConfigPermissionBashMapItem
  1224. func (r ConfigPermissionBashMap) implementsConfigPermissionBashUnion() {}
  1225. type ConfigPermissionBashMapItem string
  1226. const (
  1227. ConfigPermissionBashMapAsk ConfigPermissionBashMapItem = "ask"
  1228. ConfigPermissionBashMapAllow ConfigPermissionBashMapItem = "allow"
  1229. ConfigPermissionBashMapDeny ConfigPermissionBashMapItem = "deny"
  1230. )
  1231. func (r ConfigPermissionBashMapItem) IsKnown() bool {
  1232. switch r {
  1233. case ConfigPermissionBashMapAsk, ConfigPermissionBashMapAllow, ConfigPermissionBashMapDeny:
  1234. return true
  1235. }
  1236. return false
  1237. }
  1238. type ConfigPermissionEdit string
  1239. const (
  1240. ConfigPermissionEditAsk ConfigPermissionEdit = "ask"
  1241. ConfigPermissionEditAllow ConfigPermissionEdit = "allow"
  1242. ConfigPermissionEditDeny ConfigPermissionEdit = "deny"
  1243. )
  1244. func (r ConfigPermissionEdit) IsKnown() bool {
  1245. switch r {
  1246. case ConfigPermissionEditAsk, ConfigPermissionEditAllow, ConfigPermissionEditDeny:
  1247. return true
  1248. }
  1249. return false
  1250. }
  1251. type ConfigPermissionWebfetch string
  1252. const (
  1253. ConfigPermissionWebfetchAsk ConfigPermissionWebfetch = "ask"
  1254. ConfigPermissionWebfetchAllow ConfigPermissionWebfetch = "allow"
  1255. ConfigPermissionWebfetchDeny ConfigPermissionWebfetch = "deny"
  1256. )
  1257. func (r ConfigPermissionWebfetch) IsKnown() bool {
  1258. switch r {
  1259. case ConfigPermissionWebfetchAsk, ConfigPermissionWebfetchAllow, ConfigPermissionWebfetchDeny:
  1260. return true
  1261. }
  1262. return false
  1263. }
  1264. type ConfigProvider struct {
  1265. ID string `json:"id"`
  1266. API string `json:"api"`
  1267. Env []string `json:"env"`
  1268. Models map[string]ConfigProviderModel `json:"models"`
  1269. Name string `json:"name"`
  1270. Npm string `json:"npm"`
  1271. Options ConfigProviderOptions `json:"options"`
  1272. JSON configProviderJSON `json:"-"`
  1273. }
  1274. // configProviderJSON contains the JSON metadata for the struct [ConfigProvider]
  1275. type configProviderJSON struct {
  1276. ID apijson.Field
  1277. API apijson.Field
  1278. Env apijson.Field
  1279. Models apijson.Field
  1280. Name apijson.Field
  1281. Npm apijson.Field
  1282. Options apijson.Field
  1283. raw string
  1284. ExtraFields map[string]apijson.Field
  1285. }
  1286. func (r *ConfigProvider) UnmarshalJSON(data []byte) (err error) {
  1287. return apijson.UnmarshalRoot(data, r)
  1288. }
  1289. func (r configProviderJSON) RawJSON() string {
  1290. return r.raw
  1291. }
  1292. type ConfigProviderModel struct {
  1293. ID string `json:"id"`
  1294. Attachment bool `json:"attachment"`
  1295. Cost ConfigProviderModelsCost `json:"cost"`
  1296. Limit ConfigProviderModelsLimit `json:"limit"`
  1297. Name string `json:"name"`
  1298. Options map[string]interface{} `json:"options"`
  1299. Reasoning bool `json:"reasoning"`
  1300. ReleaseDate string `json:"release_date"`
  1301. Temperature bool `json:"temperature"`
  1302. ToolCall bool `json:"tool_call"`
  1303. JSON configProviderModelJSON `json:"-"`
  1304. }
  1305. // configProviderModelJSON contains the JSON metadata for the struct
  1306. // [ConfigProviderModel]
  1307. type configProviderModelJSON struct {
  1308. ID apijson.Field
  1309. Attachment apijson.Field
  1310. Cost apijson.Field
  1311. Limit apijson.Field
  1312. Name apijson.Field
  1313. Options apijson.Field
  1314. Reasoning apijson.Field
  1315. ReleaseDate apijson.Field
  1316. Temperature apijson.Field
  1317. ToolCall apijson.Field
  1318. raw string
  1319. ExtraFields map[string]apijson.Field
  1320. }
  1321. func (r *ConfigProviderModel) UnmarshalJSON(data []byte) (err error) {
  1322. return apijson.UnmarshalRoot(data, r)
  1323. }
  1324. func (r configProviderModelJSON) RawJSON() string {
  1325. return r.raw
  1326. }
  1327. type ConfigProviderModelsCost struct {
  1328. Input float64 `json:"input,required"`
  1329. Output float64 `json:"output,required"`
  1330. CacheRead float64 `json:"cache_read"`
  1331. CacheWrite float64 `json:"cache_write"`
  1332. JSON configProviderModelsCostJSON `json:"-"`
  1333. }
  1334. // configProviderModelsCostJSON contains the JSON metadata for the struct
  1335. // [ConfigProviderModelsCost]
  1336. type configProviderModelsCostJSON struct {
  1337. Input apijson.Field
  1338. Output apijson.Field
  1339. CacheRead apijson.Field
  1340. CacheWrite apijson.Field
  1341. raw string
  1342. ExtraFields map[string]apijson.Field
  1343. }
  1344. func (r *ConfigProviderModelsCost) UnmarshalJSON(data []byte) (err error) {
  1345. return apijson.UnmarshalRoot(data, r)
  1346. }
  1347. func (r configProviderModelsCostJSON) RawJSON() string {
  1348. return r.raw
  1349. }
  1350. type ConfigProviderModelsLimit struct {
  1351. Context float64 `json:"context,required"`
  1352. Output float64 `json:"output,required"`
  1353. JSON configProviderModelsLimitJSON `json:"-"`
  1354. }
  1355. // configProviderModelsLimitJSON contains the JSON metadata for the struct
  1356. // [ConfigProviderModelsLimit]
  1357. type configProviderModelsLimitJSON struct {
  1358. Context apijson.Field
  1359. Output apijson.Field
  1360. raw string
  1361. ExtraFields map[string]apijson.Field
  1362. }
  1363. func (r *ConfigProviderModelsLimit) UnmarshalJSON(data []byte) (err error) {
  1364. return apijson.UnmarshalRoot(data, r)
  1365. }
  1366. func (r configProviderModelsLimitJSON) RawJSON() string {
  1367. return r.raw
  1368. }
  1369. type ConfigProviderOptions struct {
  1370. APIKey string `json:"apiKey"`
  1371. BaseURL string `json:"baseURL"`
  1372. ExtraFields map[string]interface{} `json:"-,extras"`
  1373. JSON configProviderOptionsJSON `json:"-"`
  1374. }
  1375. // configProviderOptionsJSON contains the JSON metadata for the struct
  1376. // [ConfigProviderOptions]
  1377. type configProviderOptionsJSON struct {
  1378. APIKey apijson.Field
  1379. BaseURL apijson.Field
  1380. raw string
  1381. ExtraFields map[string]apijson.Field
  1382. }
  1383. func (r *ConfigProviderOptions) UnmarshalJSON(data []byte) (err error) {
  1384. return apijson.UnmarshalRoot(data, r)
  1385. }
  1386. func (r configProviderOptionsJSON) RawJSON() string {
  1387. return r.raw
  1388. }
  1389. // Control sharing behavior:'manual' allows manual sharing via commands, 'auto'
  1390. // enables automatic sharing, 'disabled' disables all sharing
  1391. type ConfigShare string
  1392. const (
  1393. ConfigShareManual ConfigShare = "manual"
  1394. ConfigShareAuto ConfigShare = "auto"
  1395. ConfigShareDisabled ConfigShare = "disabled"
  1396. )
  1397. func (r ConfigShare) IsKnown() bool {
  1398. switch r {
  1399. case ConfigShareManual, ConfigShareAuto, ConfigShareDisabled:
  1400. return true
  1401. }
  1402. return false
  1403. }
  1404. // TUI specific settings
  1405. type ConfigTui struct {
  1406. // TUI scroll speed
  1407. ScrollSpeed float64 `json:"scroll_speed,required"`
  1408. JSON configTuiJSON `json:"-"`
  1409. }
  1410. // configTuiJSON contains the JSON metadata for the struct [ConfigTui]
  1411. type configTuiJSON struct {
  1412. ScrollSpeed apijson.Field
  1413. raw string
  1414. ExtraFields map[string]apijson.Field
  1415. }
  1416. func (r *ConfigTui) UnmarshalJSON(data []byte) (err error) {
  1417. return apijson.UnmarshalRoot(data, r)
  1418. }
  1419. func (r configTuiJSON) RawJSON() string {
  1420. return r.raw
  1421. }
  1422. type KeybindsConfig struct {
  1423. // Next agent
  1424. AgentCycle string `json:"agent_cycle,required"`
  1425. // Previous agent
  1426. AgentCycleReverse string `json:"agent_cycle_reverse,required"`
  1427. // List agents
  1428. AgentList string `json:"agent_list,required"`
  1429. // Exit the application
  1430. AppExit string `json:"app_exit,required"`
  1431. // Show help dialog
  1432. AppHelp string `json:"app_help,required"`
  1433. // Open external editor
  1434. EditorOpen string `json:"editor_open,required"`
  1435. // @deprecated Close file
  1436. FileClose string `json:"file_close,required"`
  1437. // @deprecated Split/unified diff
  1438. FileDiffToggle string `json:"file_diff_toggle,required"`
  1439. // @deprecated Currently not available. List files
  1440. FileList string `json:"file_list,required"`
  1441. // @deprecated Search file
  1442. FileSearch string `json:"file_search,required"`
  1443. // Clear input field
  1444. InputClear string `json:"input_clear,required"`
  1445. // Insert newline in input
  1446. InputNewline string `json:"input_newline,required"`
  1447. // Paste from clipboard
  1448. InputPaste string `json:"input_paste,required"`
  1449. // Submit input
  1450. InputSubmit string `json:"input_submit,required"`
  1451. // Leader key for keybind combinations
  1452. Leader string `json:"leader,required"`
  1453. // Copy message
  1454. MessagesCopy string `json:"messages_copy,required"`
  1455. // Navigate to first message
  1456. MessagesFirst string `json:"messages_first,required"`
  1457. // Scroll messages down by half page
  1458. MessagesHalfPageDown string `json:"messages_half_page_down,required"`
  1459. // Scroll messages up by half page
  1460. MessagesHalfPageUp string `json:"messages_half_page_up,required"`
  1461. // Navigate to last message
  1462. MessagesLast string `json:"messages_last,required"`
  1463. // @deprecated Toggle layout
  1464. MessagesLayoutToggle string `json:"messages_layout_toggle,required"`
  1465. // @deprecated Navigate to next message
  1466. MessagesNext string `json:"messages_next,required"`
  1467. // Scroll messages down by one page
  1468. MessagesPageDown string `json:"messages_page_down,required"`
  1469. // Scroll messages up by one page
  1470. MessagesPageUp string `json:"messages_page_up,required"`
  1471. // @deprecated Navigate to previous message
  1472. MessagesPrevious string `json:"messages_previous,required"`
  1473. // Redo message
  1474. MessagesRedo string `json:"messages_redo,required"`
  1475. // @deprecated use messages_undo. Revert message
  1476. MessagesRevert string `json:"messages_revert,required"`
  1477. // Undo message
  1478. MessagesUndo string `json:"messages_undo,required"`
  1479. // Next recent model
  1480. ModelCycleRecent string `json:"model_cycle_recent,required"`
  1481. // Previous recent model
  1482. ModelCycleRecentReverse string `json:"model_cycle_recent_reverse,required"`
  1483. // List available models
  1484. ModelList string `json:"model_list,required"`
  1485. // Create/update AGENTS.md
  1486. ProjectInit string `json:"project_init,required"`
  1487. // Cycle to next child session
  1488. SessionChildCycle string `json:"session_child_cycle,required"`
  1489. // Cycle to previous child session
  1490. SessionChildCycleReverse string `json:"session_child_cycle_reverse,required"`
  1491. // Compact the session
  1492. SessionCompact string `json:"session_compact,required"`
  1493. // Export session to editor
  1494. SessionExport string `json:"session_export,required"`
  1495. // Interrupt current session
  1496. SessionInterrupt string `json:"session_interrupt,required"`
  1497. // List all sessions
  1498. SessionList string `json:"session_list,required"`
  1499. // Create a new session
  1500. SessionNew string `json:"session_new,required"`
  1501. // Share current session
  1502. SessionShare string `json:"session_share,required"`
  1503. // Unshare current session
  1504. SessionUnshare string `json:"session_unshare,required"`
  1505. // @deprecated use agent_cycle. Next agent
  1506. SwitchAgent string `json:"switch_agent,required"`
  1507. // @deprecated use agent_cycle_reverse. Previous agent
  1508. SwitchAgentReverse string `json:"switch_agent_reverse,required"`
  1509. // @deprecated use agent_cycle. Next mode
  1510. SwitchMode string `json:"switch_mode,required"`
  1511. // @deprecated use agent_cycle_reverse. Previous mode
  1512. SwitchModeReverse string `json:"switch_mode_reverse,required"`
  1513. // List available themes
  1514. ThemeList string `json:"theme_list,required"`
  1515. // Toggle thinking blocks
  1516. ThinkingBlocks string `json:"thinking_blocks,required"`
  1517. // Toggle tool details
  1518. ToolDetails string `json:"tool_details,required"`
  1519. JSON keybindsConfigJSON `json:"-"`
  1520. }
  1521. // keybindsConfigJSON contains the JSON metadata for the struct [KeybindsConfig]
  1522. type keybindsConfigJSON struct {
  1523. AgentCycle apijson.Field
  1524. AgentCycleReverse apijson.Field
  1525. AgentList apijson.Field
  1526. AppExit apijson.Field
  1527. AppHelp apijson.Field
  1528. EditorOpen apijson.Field
  1529. FileClose apijson.Field
  1530. FileDiffToggle apijson.Field
  1531. FileList apijson.Field
  1532. FileSearch apijson.Field
  1533. InputClear apijson.Field
  1534. InputNewline apijson.Field
  1535. InputPaste apijson.Field
  1536. InputSubmit apijson.Field
  1537. Leader apijson.Field
  1538. MessagesCopy apijson.Field
  1539. MessagesFirst apijson.Field
  1540. MessagesHalfPageDown apijson.Field
  1541. MessagesHalfPageUp apijson.Field
  1542. MessagesLast apijson.Field
  1543. MessagesLayoutToggle apijson.Field
  1544. MessagesNext apijson.Field
  1545. MessagesPageDown apijson.Field
  1546. MessagesPageUp apijson.Field
  1547. MessagesPrevious apijson.Field
  1548. MessagesRedo apijson.Field
  1549. MessagesRevert apijson.Field
  1550. MessagesUndo apijson.Field
  1551. ModelCycleRecent apijson.Field
  1552. ModelCycleRecentReverse apijson.Field
  1553. ModelList apijson.Field
  1554. ProjectInit apijson.Field
  1555. SessionChildCycle apijson.Field
  1556. SessionChildCycleReverse apijson.Field
  1557. SessionCompact apijson.Field
  1558. SessionExport apijson.Field
  1559. SessionInterrupt apijson.Field
  1560. SessionList apijson.Field
  1561. SessionNew apijson.Field
  1562. SessionShare apijson.Field
  1563. SessionUnshare apijson.Field
  1564. SwitchAgent apijson.Field
  1565. SwitchAgentReverse apijson.Field
  1566. SwitchMode apijson.Field
  1567. SwitchModeReverse apijson.Field
  1568. ThemeList apijson.Field
  1569. ThinkingBlocks apijson.Field
  1570. ToolDetails apijson.Field
  1571. raw string
  1572. ExtraFields map[string]apijson.Field
  1573. }
  1574. func (r *KeybindsConfig) UnmarshalJSON(data []byte) (err error) {
  1575. return apijson.UnmarshalRoot(data, r)
  1576. }
  1577. func (r keybindsConfigJSON) RawJSON() string {
  1578. return r.raw
  1579. }
  1580. type McpLocalConfig struct {
  1581. // Command and arguments to run the MCP server
  1582. Command []string `json:"command,required"`
  1583. // Type of MCP server connection
  1584. Type McpLocalConfigType `json:"type,required"`
  1585. // Enable or disable the MCP server on startup
  1586. Enabled bool `json:"enabled"`
  1587. // Environment variables to set when running the MCP server
  1588. Environment map[string]string `json:"environment"`
  1589. JSON mcpLocalConfigJSON `json:"-"`
  1590. }
  1591. // mcpLocalConfigJSON contains the JSON metadata for the struct [McpLocalConfig]
  1592. type mcpLocalConfigJSON struct {
  1593. Command apijson.Field
  1594. Type apijson.Field
  1595. Enabled apijson.Field
  1596. Environment apijson.Field
  1597. raw string
  1598. ExtraFields map[string]apijson.Field
  1599. }
  1600. func (r *McpLocalConfig) UnmarshalJSON(data []byte) (err error) {
  1601. return apijson.UnmarshalRoot(data, r)
  1602. }
  1603. func (r mcpLocalConfigJSON) RawJSON() string {
  1604. return r.raw
  1605. }
  1606. func (r McpLocalConfig) implementsConfigMcp() {}
  1607. // Type of MCP server connection
  1608. type McpLocalConfigType string
  1609. const (
  1610. McpLocalConfigTypeLocal McpLocalConfigType = "local"
  1611. )
  1612. func (r McpLocalConfigType) IsKnown() bool {
  1613. switch r {
  1614. case McpLocalConfigTypeLocal:
  1615. return true
  1616. }
  1617. return false
  1618. }
  1619. type McpRemoteConfig struct {
  1620. // Type of MCP server connection
  1621. Type McpRemoteConfigType `json:"type,required"`
  1622. // URL of the remote MCP server
  1623. URL string `json:"url,required"`
  1624. // Enable or disable the MCP server on startup
  1625. Enabled bool `json:"enabled"`
  1626. // Headers to send with the request
  1627. Headers map[string]string `json:"headers"`
  1628. JSON mcpRemoteConfigJSON `json:"-"`
  1629. }
  1630. // mcpRemoteConfigJSON contains the JSON metadata for the struct [McpRemoteConfig]
  1631. type mcpRemoteConfigJSON struct {
  1632. Type apijson.Field
  1633. URL apijson.Field
  1634. Enabled apijson.Field
  1635. Headers apijson.Field
  1636. raw string
  1637. ExtraFields map[string]apijson.Field
  1638. }
  1639. func (r *McpRemoteConfig) UnmarshalJSON(data []byte) (err error) {
  1640. return apijson.UnmarshalRoot(data, r)
  1641. }
  1642. func (r mcpRemoteConfigJSON) RawJSON() string {
  1643. return r.raw
  1644. }
  1645. func (r McpRemoteConfig) implementsConfigMcp() {}
  1646. // Type of MCP server connection
  1647. type McpRemoteConfigType string
  1648. const (
  1649. McpRemoteConfigTypeRemote McpRemoteConfigType = "remote"
  1650. )
  1651. func (r McpRemoteConfigType) IsKnown() bool {
  1652. switch r {
  1653. case McpRemoteConfigTypeRemote:
  1654. return true
  1655. }
  1656. return false
  1657. }