config.go 63 KB

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