config.go 60 KB

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