config.go 62 KB

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