Launch from a pinned config, optionally adding agent-local integration tools, subscriptions and interaction handlers and admitting an attributed initial text input in the same transaction. Adding integration capabilities requires project management permission; launching an existing config requires agent operate permission. Reusing an idempotency key returns the current agent even if the retry body differs. The retry body is not applied and integration references are not resolved again.
Send at least one of profile, config, or config_source, and not both config and config_source. With only profile, the agent runs the profile's current config. With profile and config or config_source, the agent is attributed to the profile but runs the given config, which need not be one of the profile's versions. config_source is compiled and saved as a new config during the launch.
An agent config to compile. YAML sources are stored verbatim, so comments and formatting survive; JSON sources, as text or as an object, are stored canonicalized, so the same JSON definition always maps to the same config.
Additional integration tool entries (int____) and optional list_interaction_handlers or set_interaction_handler tools for this agent. Other tool names are not accepted here. Existing config entries win unchanged. Requires project management permission. The derived config is created atomically with the agent and initial input; the profile is unchanged.
Integration-owned conversation subscriptions attached atomically with launch and initial input. Requires project management permission. Subscriptions alone preserve the pinned config. Launch replay never adds or restores subscriptions.
Additional integration interaction handlers, keyed by immutable integration name with empty object values. Slack and Discord handlers require an assigned conversation and accept empty runtime args. Adding a handler does not assign a conversation. Existing entries win unchanged. Requires project management permission.
Initial queued text input, committed atomically with the agent and any derived config. Mutually exclusive with message. Initial inline media is not supported; upload it through the agent input endpoint after launch.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"BMA Developer Docs","description":"BeeOS Managed Agents (BMA): a managed agent platform with a Claude Managed Agents–compatible API, a native REST API, and the Executor Protocol for bringing your own hands and brains.","colors":{"primary":"#F97316","light":"#FB923C","dark":"#C2410C"},"logo":{"light":"/logo/light.svg","dark":"/logo/dark.svg","href":"/"},"favicon":"/favicon.svg","api":{"playground":{"display":"simple"},"examples":{"languages":["curl","python","javascript","go"]}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"https://github.com/beeos-ai/bma-sdk","label":"bma-sdk"},{"href":"https://github.com/beeos-ai/bma-executor-sdk","label":"bma-executor-sdk"}]},"footer":{"socials":{"github":"https://github.com/beeos-ai"}},"fonts":{"heading":{"family":"Inter","weight":600},"body":{"family":"Inter","weight":400}},"integrations":{"telemetry":{"enabled":false}},"navigation":{"languages":[{"language":"en","default":true,"banner":{"content":"BMA is in **early access**. Pages mark each capability as Available, Preview, or Roadmap.","dismissible":true},"href":""},{"language":"zh","banner":{"content":"BMA 处于**抢先体验**阶段。各页面会把每项能力标注为 Available、Preview 或 Roadmap。","dismissible":true},"href":"zh"}]}},"deployment":{"deploymentMetadataValue":{"hasAudioNarration":false,"customDomains":[],"gitSource":{"type":"github","owner":"local","repo":"local","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"local","isBase":true},"buildId":"local","clientVersion":"0.0.4064"},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false,"isLoggedInCli":false,"mintExport":{}},"customCss":[],"page":{"pagePath":"api-reference/native/agents/create-agent","slug":"/api-reference/native/agents/create-agent","pageMetadata":{"openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents","description":"Launch from a pinned config, optionally adding agent-local integration tools, subscriptions and interaction handlers and admitting an attributed initial text input in the same transaction. Adding integration capabilities requires project management permission; launching an existing config requires agent operate permission. Reusing an idempotency key returns the current agent even if the retry body differs. The retry body is not applied and integration references are not resolved again.","href":"/api-reference/native/agents/create-agent","title":"Create agent"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Launch from a pinned config, optionally adding agent-local integration tools, subscriptions and interaction handlers and admitting an attributed initial text input in the same transaction. Adding integration capabilities requires project management permission; launching an existing config requires agent operate permission. Reusing an idempotency key returns the current agent even if the retry body differs. The retry body is not applied and integration references are not resolved again.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents","description":"Launch from a pinned config, optionally adding agent-local integration tools, subscriptions and interaction handlers and admitting an attributed initial text input in the same transaction. Adding integration capabilities requires project management permission; launching an existing config requires agent operate permission. Reusing an idempotency key returns the current agent even if the retry body differs. The retry body is not applied and integration references are not resolved again.","href":"/api-reference/native/agents/create-agent","title":"Create agent"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createAgent","tags":["Agents"],"summary":"Create agent","description":"Launch from a pinned config, optionally adding agent-local integration tools, subscriptions and interaction handlers and admitting an attributed initial text input in the same transaction. Adding integration capabilities requires project management permission; launching an existing config requires agent operate permission. Reusing an idempotency key returns the current agent even if the retry body differs. The retry body is not applied and integration references are not resolved again.","security":["73c647f1-0ab5-40cf-be60-9ad4d13b7220","caf32a3b-74e1-4344-ad32-076b5c9533ce"],"parameters":["5799826d-8a7c-4c5c-93d2-463b7a61389b"],"requestBody":"8eafcbbe-4fc1-4ec2-857b-d81c1f7ba4b4","responses":{"200":"69302ff6-bb34-45b0-8acc-5a81c0397970","201":"6a5acb3c-d948-47b6-b9fe-cc52d363c173","400":"f827eaef-5eec-460b-82ce-968dbec4b2d9","401":"79d04bc5-0156-4c35-b57b-533c8d3403be","403":"0daa0db8-aaf2-435f-906f-adc1cc785af7","404":"70110bbb-98a4-43e0-97b0-4229175ae80f","409":"70a136b1-ef22-43d2-88ea-187e7ffd4f35","503":"8fe115b6-1569-4e1d-a925-edf73141e982","4XX":"80595884-c821-46f6-9ca6-c64f041f2462","5XX":"0d3e82fe-8f2b-4f1c-a9d6-81eb3f5ef972"},"method":"post","type":"path","servers":["0bf5897a-c269-4b65-9499-ed03df44e358","949c42bc-5dd5-4a3b-abdf-7e9c2463228e"],"path":"/orgs/{orgID}/projects/{projectID}/agents","baseUrlOptions":["https://api.staging.bma.beeos.ai/api/v1","/api/v1"],"title":"Create agent","codeSamples":[],"requestExampleLanguages":["bash","python","javascript","go"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"5799826d-8a7c-4c5c-93d2-463b7a61389b":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"isRequired":false,"description":"Idempotency key for replay-safe mutating requests.","uniqueKey":"","typeLabel":"string"},"description":"Idempotency key for replay-safe mutating requests."},"2eca2182-9e94-41a6-87b2-13f5952bad21":{"name":"orgID","in":"path","description":"Organization ID (org_...).","required":true,"schema":{"type":"string","pattern":"^org_[a-z2-7]{26}$","isRequired":true,"description":"Organization ID (org_...).","uniqueKey":"","typeLabel":"string"}},"c07a56f3-fb47-46e9-882a-bccae7e27a46":{"name":"projectID","in":"path","description":"Project ID (proj_...).","required":true,"schema":{"type":"string","pattern":"^proj_[a-z2-7]{26}$","isRequired":true,"description":"Project ID (proj_...).","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Send at least one of profile, config, or config_source, and not both config and config_source. With only profile, the agent runs the profile's current config. With profile and config or config_source, the agent is attributed to the profile but runs the given config, which need not be one of the profile's versions. config_source is compiled and saved as a new config during the launch.","required":["profile"],"properties":{"profile":{"type":"string","pattern":"^aprf_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"oneOf.0.profile","typeLabel":"string"},"config":{"description":"Agent config ID (acfg_...).","type":"string","pattern":"^acfg_[a-z2-7]{26}$","uniqueKey":"oneOf.0.config","typeLabel":"string"},"config_source":{"description":"An agent config to compile. YAML sources are stored verbatim, so comments and formatting survive; JSON sources, as text or as an object, are stored canonicalized, so the same JSON definition always maps to the same config.","type":"object","additionalProperties":false,"required":["source","source_format"],"properties":{"source":{"oneOf":[{"type":"string","description":"Agent config source as YAML or JSON text, or, with source_format json, as a JSON object.","minLength":1,"x-go-type":"json.RawMessage","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.0","typeLabel":"string"},{"type":"object","description":"Agent config source as YAML or JSON text, or, with source_format json, as a JSON object.","required":["instruction","model"],"x-go-type":"json.RawMessage","properties":{"instruction":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.instruction","typeLabel":"string"},"model":{"type":"object","additionalProperties":false,"required":["provider_config","name"],"properties":{"name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.model.name","typeLabel":"string"},"provider_config":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.model.provider_config","typeLabel":"string"},"cache_retention":{"enum":["none","short","long"],"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.model.cache_retention","typeLabel":"enum\u003cstring>"},"context_window_tokens":{"type":"integer","minimum":2,"maximum":2147483647,"description":"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit.","uniqueKey":"oneOf.0.config_source.source.oneOf.1.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.model.default_max_output_tokens","typeLabel":"integer"},"reasoning":{"type":"object","additionalProperties":false,"required":["effort"],"properties":{"effort":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.model.reasoning.effort","typeLabel":"string"}},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.model.reasoning","typeLabel":"object"}},"x-go-type":"json.RawMessage","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.model","typeLabel":"object"},"git_credentials":{"description":"Integration whose git credentials the agent's machines use.","type":"object","additionalProperties":false,"required":["integration"],"properties":{"integration":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9-]{0,31}$","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.git_credentials.integration","typeLabel":"string"},"repository_ids":{"description":"GitHub repository IDs the credentials can access. Defaults to every repository the installation can access.","type":"array","minItems":1,"maxItems":500,"uniqueItems":true,"items":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.git_credentials.repository_ids.items.[INDEX]","typeLabel":"integer"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.git_credentials.repository_ids","typeLabel":"integer[]"},"read_only":{"description":"Prevents pushing, even if the integration allows it.","type":"boolean","uniqueKey":"oneOf.0.config_source.source.oneOf.1.git_credentials.read_only","typeLabel":"boolean"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.git_credentials","typeLabel":"object"},"interaction_handlers":{"oneOf":[{"type":"object","description":"Interaction handlers keyed by integration name.","x-go-type":"json.RawMessage","additionalProperties":{"description":"Enables an integration's interaction handler. Takes no settings.","type":"object","additionalProperties":false,"x-go-type":"agentconfig.AgentConfigIntegrationCapabilitySource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.interaction_handlers.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.interaction_handlers.oneOf.0","typeLabel":"object"},{"type":"null","description":"Interaction handlers keyed by integration name.","x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.interaction_handlers.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.interaction_handlers","typeLabel":"object | null"},"machine_sources":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"object","required":["machine_name"],"x-go-type":"json.RawMessage","properties":{"machine_name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_name","typeLabel":"string"},"cwd":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.cwd","typeLabel":"string"},"delete_after_idle_minutes":{"oneOf":[{"const":0,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes.oneOf.0","typeLabel":"any"},{"type":"integer","maximum":2147483647,"minimum":5,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes.oneOf.1","typeLabel":"integer"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes","typeLabel":"any | integer"},"description":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.description","typeLabel":"string"},"env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay","typeLabel":"object | null"},"initial_num_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.initial_num_machines","typeLabel":"integer"},"machine_cpu":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_memory_mb","typeLabel":"integer"},"machine_pool_name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_pool_name","typeLabel":"string"},"machine_provider_options_overlay":{"oneOf":[{"type":"object","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay","typeLabel":"object | null"},"max_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.max_machines","typeLabel":"integer"},"secret_env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["machine_pool_name"],"x-go-type":"json.RawMessage","properties":{"machine_pool_name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_pool_name","typeLabel":"string"},"cwd":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.cwd","typeLabel":"string"},"delete_after_idle_minutes":{"oneOf":[{"const":0,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes.oneOf.0","typeLabel":"any"},{"type":"integer","maximum":2147483647,"minimum":5,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes.oneOf.1","typeLabel":"integer"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes","typeLabel":"any | integer"},"description":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.description","typeLabel":"string"},"env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay","typeLabel":"object | null"},"initial_num_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.initial_num_machines","typeLabel":"integer"},"machine_cpu":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_memory_mb","typeLabel":"integer"},"machine_name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_name","typeLabel":"string"},"machine_provider_options_overlay":{"oneOf":[{"type":"object","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay","typeLabel":"object | null"},"max_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.max_machines","typeLabel":"integer"},"secret_env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX]","typeLabel":"object"},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.0","typeLabel":"object[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.machine_sources","typeLabel":"object[] | null"},"max_depth":{"type":"integer","minimum":1,"maximum":8,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.max_depth","typeLabel":"integer"},"max_subagents":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.max_subagents","typeLabel":"integer"},"mcp":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"auth":{"type":"object","additionalProperties":false,"required":["type","secret_id"],"properties":{"secret_id":{"type":"string","minLength":1,"pattern":"^sec_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.secret_id","typeLabel":"string"},"type":{"enum":["bearer","oauth","sigv4"],"type":"string","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.type","typeLabel":"enum\u003cstring>"},"region":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.region","typeLabel":"string"},"service":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.service","typeLabel":"string"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth","typeLabel":"object"},"connection_origin":{"description":"Who connects the MCP server. `service` (the default) is connected by the harness through `url`; `environment` is started or connected by the executor from `transport`, in the executor's credential scope.","type":"string","enum":["service","environment"],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.connection_origin","typeLabel":"enum\u003cstring>"},"default_enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled","typeLabel":"boolean | null"},"deferred":{"type":"boolean","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.deferred","typeLabel":"boolean"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission","typeLabel":"object"},"tools":{"type":"object","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"deferred":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred","typeLabel":"boolean | null"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled","typeLabel":"boolean | null"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties","typeLabel":"object"},"propertyNames":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9_-]{0,63}$"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools","typeLabel":"object"},"transport":{"description":"Transport of an environment-origin MCP server. stdio requires `command`; http requires `url`. No shell is involved: `command` is one executable token. `env` values that name a secret stay references; the executor resolves them in its own credential scope.","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"description":"Transport of an MCP server.","type":"string","enum":["stdio","http"],"isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.type","typeLabel":"enum\u003cstring>"},"command":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.command","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.args.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.args","typeLabel":"string[]"},"cwd":{"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.cwd","typeLabel":"string"},"env":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.env.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.env","typeLabel":"object"},"timeout_ms":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.timeout_ms","typeLabel":"integer"},"command_sha256":{"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.command_sha256","typeLabel":"string"},"url":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.url","typeLabel":"string"}},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport","typeLabel":"object"},"url":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.url","typeLabel":"string"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.mcp","typeLabel":"object | null"},"memory_stores":{"oneOf":[{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","access"],"properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","description":"Machine-readable memory store identifier consisting of lowercase ASCII segments separated by single hyphens.","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX].name","typeLabel":"string"},"access":{"type":"string","enum":["read","read_write"],"isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX].access","typeLabel":"enum\u003cstring>"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX]","typeLabel":"object"},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.memory_stores.oneOf.0","typeLabel":"object[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.memory_stores.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.memory_stores","typeLabel":"object[] | null"},"skills":{"oneOf":[{"type":"array","items":{"type":"string","pattern":"^skl_[a-z2-7]{26}$","uniqueKey":"oneOf.0.config_source.source.oneOf.1.skills.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.skills.oneOf.0","typeLabel":"string[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.skills.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.skills","typeLabel":"string[] | null"},"subagents":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"enum":["profile","self"],"type":"string","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.type","typeLabel":"enum\u003cstring>"},"archive_after_idle_minutes":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.archive_after_idle_minutes","typeLabel":"integer"},"description":{"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.description","typeLabel":"string"},"instruction":{"type":"object","additionalProperties":false,"properties":{"append":{"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.instruction.append","typeLabel":"string"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.instruction","typeLabel":"object"},"max_instances":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.max_instances","typeLabel":"integer"},"model":{"type":"object","additionalProperties":false,"dependentRequired":{"name":["provider_config"],"provider_config":["name"]},"properties":{"cache_retention":{"enum":["none","short","long"],"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.cache_retention","typeLabel":"enum\u003cstring>"},"context_window_tokens":{"type":"integer","minimum":2,"maximum":2147483647,"description":"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit.","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.default_max_output_tokens","typeLabel":"integer"},"name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.name","typeLabel":"string"},"provider_config":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.provider_config","typeLabel":"string"},"reasoning":{"type":"object","additionalProperties":false,"required":["effort"],"properties":{"effort":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.reasoning.effort","typeLabel":"string"}},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.reasoning","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model","typeLabel":"object"},"profile":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.profile","typeLabel":"string"}},"if":{"type":"object","required":["type"],"properties":{"type":{"const":"profile"}}},"then":{"required":["profile"]},"else":{"not":{"type":"object","required":["profile"]}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.subagents","typeLabel":"object | null"},"tools":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"deferred":{"type":"boolean","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.deferred","typeLabel":"boolean"},"description":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.description","typeLabel":"string"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled","typeLabel":"boolean | null"},"input_schema":{"description":"A JSON Schema for the tool's input. Keywords beyond those listed, such as additionalProperties or description, are allowed.","type":"object","additionalProperties":true,"required":["type"],"properties":{"type":{"const":"object","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.type","typeLabel":"any"},"properties":{"type":"object","additionalProperties":{"type":"object","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.properties.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.properties","typeLabel":"object"},"required":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.required","typeLabel":"string[]"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema","typeLabel":"object"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission","typeLabel":"object"},"type":{"enum":["built_in","custom"],"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.type","typeLabel":"enum\u003cstring>"}},"if":{"type":"object","required":["type"],"properties":{"type":{"const":"custom"}}},"then":{"required":["description","input_schema"]},"else":{"not":{"anyOf":[{"type":"object","required":["description"]},{"type":"object","required":["input_schema"]}]}},"x-go-type":"agentconfig.AgentConfigToolSource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.config_source.source.oneOf.1.tools","typeLabel":"object | null"},"version":{"enum":["v1"],"type":"string","uniqueKey":"oneOf.0.config_source.source.oneOf.1.version","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.config_source.source.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.0.config_source.source","typeLabel":"string | object"},"source_format":{"description":"Format of source: yaml or json.","type":"string","enum":["yaml","json"],"isRequired":true,"uniqueKey":"oneOf.0.config_source.source_format","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.config_source","typeLabel":"object"},"name":{"type":"string","maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Optional agent name. Omit to inherit the profile name when present; send an empty string to leave the agent unnamed.","uniqueKey":"oneOf.0.name","typeLabel":"string"},"message":{"type":"string","description":"Optional initial text message. Mutually exclusive with initial_input.","uniqueKey":"oneOf.0.message","typeLabel":"string"},"tools":{"type":"object","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"deferred":{"type":"boolean","uniqueKey":"oneOf.0.tools.additionalProperties.deferred","typeLabel":"boolean"},"description":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.tools.additionalProperties.description","typeLabel":"string"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.0.tools.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.tools.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.tools.additionalProperties.enabled","typeLabel":"boolean | null"},"input_schema":{"description":"A JSON Schema for the tool's input. Keywords beyond those listed, such as additionalProperties or description, are allowed.","type":"object","additionalProperties":true,"required":["type"],"properties":{"type":{"const":"object","isRequired":true,"uniqueKey":"oneOf.0.tools.additionalProperties.input_schema.type","typeLabel":"any"},"properties":{"type":"object","additionalProperties":{"type":"object","uniqueKey":"oneOf.0.tools.additionalProperties.input_schema.properties.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.0.tools.additionalProperties.input_schema.properties","typeLabel":"object"},"required":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.tools.additionalProperties.input_schema.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.tools.additionalProperties.input_schema.required","typeLabel":"string[]"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.tools.additionalProperties.input_schema","typeLabel":"object"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.0.tools.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.0.tools.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.0.tools.additionalProperties.permission","typeLabel":"object"},"type":{"enum":["built_in","custom"],"type":"string","uniqueKey":"oneOf.0.tools.additionalProperties.type","typeLabel":"enum\u003cstring>"}},"if":{"type":"object","required":["type"],"properties":{"type":{"const":"custom"}}},"then":{"required":["description","input_schema"]},"else":{"not":{"anyOf":[{"type":"object","required":["description"]},{"type":"object","required":["input_schema"]}]}},"x-go-type":"agentconfig.AgentConfigToolSource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.0.tools.additionalProperties","typeLabel":"object"},"description":"Additional integration tool entries (int__\u003cintegration-name>__\u003coperation>) and optional list_interaction_handlers or set_interaction_handler tools for this agent. Other tool names are not accepted here. Existing config entries win unchanged. Requires project management permission. The derived config is created atomically with the agent and initial input; the profile is unchanged.","uniqueKey":"oneOf.0.tools","typeLabel":"object"},"subscriptions":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["integration_id","conversation"],"properties":{"integration_id":{"type":"string","pattern":"^itg_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"oneOf.0.subscriptions.items.[INDEX].integration_id","typeLabel":"string"},"conversation":{"type":"object","additionalProperties":true,"x-go-type":"json.RawMessage","x-go-type-skip-optional-pointer":true,"description":"One concrete provider address, validated by the integration's capabilities.subscription.conversation_schema. Slack uses channel_id and optional thread_ts; Discord uses channel_id for a channel or thread_id for a thread; GitHub uses repository_id and pull_request. Discord accepts optional parent channel_id and guild_id alongside thread_id and validates their ID format, but subscription creation does not verify them against Discord or retain them as routing restrictions. Only thread_id is retained in a canonical thread address and returned by create/list responses. No credentials or runtime state.","isRequired":true,"uniqueKey":"oneOf.0.subscriptions.items.[INDEX].conversation","typeLabel":"object"}},"uniqueKey":"oneOf.0.subscriptions.items.[INDEX]","typeLabel":"object"},"description":"Integration-owned conversation subscriptions attached atomically with launch and initial input. Requires project management permission. Subscriptions alone preserve the pinned config. Launch replay never adds or restores subscriptions.","uniqueKey":"oneOf.0.subscriptions","typeLabel":"object[]"},"interaction_handlers":{"type":"object","additionalProperties":{"description":"Enables an integration's interaction handler. Takes no settings.","type":"object","additionalProperties":false,"x-go-type":"agentconfig.AgentConfigIntegrationCapabilitySource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.0.interaction_handlers.additionalProperties","typeLabel":"object"},"description":"Additional integration interaction handlers, keyed by immutable integration name with empty object values. Slack and Discord handlers require an assigned conversation and accept empty runtime args. Adding a handler does not assign a conversation. Existing entries win unchanged. Requires project management permission.","uniqueKey":"oneOf.0.interaction_handlers","typeLabel":"object"},"initial_input":{"type":"object","additionalProperties":false,"required":["content_blocks"],"description":"Initial queued text input, committed atomically with the agent and any derived config. Mutually exclusive with message. Initial inline media is not supported; upload it through the agent input endpoint after launch.","properties":{"content_blocks":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"oneOf.0.initial_input.content_blocks.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.initial_input.content_blocks.items.[INDEX].text","typeLabel":"string"},"metadata":{"type":"object","description":"Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 characters, values must be strings of up to 512 characters. Keys beginning with `bma_` are reserved for BMA and may affect product behavior; use them only when intentionally invoking BMA-defined behavior.","x-go-type":"resourcemeta.Metadata","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/resourcemeta"},"x-go-type-skip-optional-pointer":true,"maxProperties":16,"propertyNames":{"minLength":1,"maxLength":64},"additionalProperties":{"type":"string","maxLength":512,"uniqueKey":"oneOf.0.initial_input.content_blocks.items.[INDEX].metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.0.initial_input.content_blocks.items.[INDEX].metadata","typeLabel":"object"}},"uniqueKey":"oneOf.0.initial_input.content_blocks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.initial_input.content_blocks","typeLabel":"object[]"},"actor":{"type":"object","description":"Optional external actor for API key authentication. User-authenticated requests must omit this field. Without it, the authenticated user or API key is the actor.","additionalProperties":false,"required":["provider_user_id"],"properties":{"provider_user_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"oneOf.0.initial_input.actor.provider_user_id","typeLabel":"string"},"provider_tenant_id":{"type":"string","minLength":1,"maxLength":128,"uniqueKey":"oneOf.0.initial_input.actor.provider_tenant_id","typeLabel":"string"},"display_name":{"type":"string","maxLength":256,"uniqueKey":"oneOf.0.initial_input.actor.display_name","typeLabel":"string"},"metadata":{"type":"object","description":"Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 characters, values must be strings of up to 512 characters.","x-go-type":"resourcemeta.Metadata","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/resourcemeta"},"x-go-type-skip-optional-pointer":true,"maxProperties":16,"propertyNames":{"minLength":1,"maxLength":64},"additionalProperties":{"type":"string","maxLength":512,"uniqueKey":"oneOf.0.initial_input.actor.metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.0.initial_input.actor.metadata","typeLabel":"object"}},"uniqueKey":"oneOf.0.initial_input.actor","typeLabel":"object"}},"uniqueKey":"oneOf.0.initial_input","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Send at least one of profile, config, or config_source, and not both config and config_source. With only profile, the agent runs the profile's current config. With profile and config or config_source, the agent is attributed to the profile but runs the given config, which need not be one of the profile's versions. config_source is compiled and saved as a new config during the launch.","required":["config"],"properties":{"config":{"type":"string","description":"Agent config ID (acfg_...).","pattern":"^acfg_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"oneOf.1.config","typeLabel":"string"},"profile":{"type":"string","pattern":"^aprf_[a-z2-7]{26}$","uniqueKey":"oneOf.1.profile","typeLabel":"string"},"config_source":{"description":"An agent config to compile. YAML sources are stored verbatim, so comments and formatting survive; JSON sources, as text or as an object, are stored canonicalized, so the same JSON definition always maps to the same config.","type":"object","additionalProperties":false,"required":["source","source_format"],"properties":{"source":{"oneOf":[{"type":"string","description":"Agent config source as YAML or JSON text, or, with source_format json, as a JSON object.","minLength":1,"x-go-type":"json.RawMessage","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.0","typeLabel":"string"},{"type":"object","description":"Agent config source as YAML or JSON text, or, with source_format json, as a JSON object.","required":["instruction","model"],"x-go-type":"json.RawMessage","properties":{"instruction":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.instruction","typeLabel":"string"},"model":{"type":"object","additionalProperties":false,"required":["provider_config","name"],"properties":{"name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.model.name","typeLabel":"string"},"provider_config":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.model.provider_config","typeLabel":"string"},"cache_retention":{"enum":["none","short","long"],"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.model.cache_retention","typeLabel":"enum\u003cstring>"},"context_window_tokens":{"type":"integer","minimum":2,"maximum":2147483647,"description":"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit.","uniqueKey":"oneOf.1.config_source.source.oneOf.1.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","minimum":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.model.default_max_output_tokens","typeLabel":"integer"},"reasoning":{"type":"object","additionalProperties":false,"required":["effort"],"properties":{"effort":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.model.reasoning.effort","typeLabel":"string"}},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.model.reasoning","typeLabel":"object"}},"x-go-type":"json.RawMessage","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.model","typeLabel":"object"},"git_credentials":{"description":"Integration whose git credentials the agent's machines use.","type":"object","additionalProperties":false,"required":["integration"],"properties":{"integration":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9-]{0,31}$","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.git_credentials.integration","typeLabel":"string"},"repository_ids":{"description":"GitHub repository IDs the credentials can access. Defaults to every repository the installation can access.","type":"array","minItems":1,"maxItems":500,"uniqueItems":true,"items":{"type":"integer","minimum":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.git_credentials.repository_ids.items.[INDEX]","typeLabel":"integer"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.git_credentials.repository_ids","typeLabel":"integer[]"},"read_only":{"description":"Prevents pushing, even if the integration allows it.","type":"boolean","uniqueKey":"oneOf.1.config_source.source.oneOf.1.git_credentials.read_only","typeLabel":"boolean"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.git_credentials","typeLabel":"object"},"interaction_handlers":{"oneOf":[{"type":"object","description":"Interaction handlers keyed by integration name.","x-go-type":"json.RawMessage","additionalProperties":{"description":"Enables an integration's interaction handler. Takes no settings.","type":"object","additionalProperties":false,"x-go-type":"agentconfig.AgentConfigIntegrationCapabilitySource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.interaction_handlers.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.interaction_handlers.oneOf.0","typeLabel":"object"},{"type":"null","description":"Interaction handlers keyed by integration name.","x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.interaction_handlers.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.interaction_handlers","typeLabel":"object | null"},"machine_sources":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"object","required":["machine_name"],"x-go-type":"json.RawMessage","properties":{"machine_name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_name","typeLabel":"string"},"cwd":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.cwd","typeLabel":"string"},"delete_after_idle_minutes":{"oneOf":[{"const":0,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes.oneOf.0","typeLabel":"any"},{"type":"integer","maximum":2147483647,"minimum":5,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes.oneOf.1","typeLabel":"integer"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes","typeLabel":"any | integer"},"description":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.description","typeLabel":"string"},"env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay","typeLabel":"object | null"},"initial_num_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.initial_num_machines","typeLabel":"integer"},"machine_cpu":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_memory_mb","typeLabel":"integer"},"machine_pool_name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_pool_name","typeLabel":"string"},"machine_provider_options_overlay":{"oneOf":[{"type":"object","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay","typeLabel":"object | null"},"max_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.max_machines","typeLabel":"integer"},"secret_env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["machine_pool_name"],"x-go-type":"json.RawMessage","properties":{"machine_pool_name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_pool_name","typeLabel":"string"},"cwd":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.cwd","typeLabel":"string"},"delete_after_idle_minutes":{"oneOf":[{"const":0,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes.oneOf.0","typeLabel":"any"},{"type":"integer","maximum":2147483647,"minimum":5,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes.oneOf.1","typeLabel":"integer"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes","typeLabel":"any | integer"},"description":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.description","typeLabel":"string"},"env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay","typeLabel":"object | null"},"initial_num_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.initial_num_machines","typeLabel":"integer"},"machine_cpu":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_memory_mb","typeLabel":"integer"},"machine_name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_name","typeLabel":"string"},"machine_provider_options_overlay":{"oneOf":[{"type":"object","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay","typeLabel":"object | null"},"max_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.max_machines","typeLabel":"integer"},"secret_env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX]","typeLabel":"object"},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.0","typeLabel":"object[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.machine_sources","typeLabel":"object[] | null"},"max_depth":{"type":"integer","minimum":1,"maximum":8,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.max_depth","typeLabel":"integer"},"max_subagents":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.max_subagents","typeLabel":"integer"},"mcp":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"auth":{"type":"object","additionalProperties":false,"required":["type","secret_id"],"properties":{"secret_id":{"type":"string","minLength":1,"pattern":"^sec_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.secret_id","typeLabel":"string"},"type":{"enum":["bearer","oauth","sigv4"],"type":"string","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.type","typeLabel":"enum\u003cstring>"},"region":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.region","typeLabel":"string"},"service":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.service","typeLabel":"string"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth","typeLabel":"object"},"connection_origin":{"description":"Who connects the MCP server. `service` (the default) is connected by the harness through `url`; `environment` is started or connected by the executor from `transport`, in the executor's credential scope.","type":"string","enum":["service","environment"],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.connection_origin","typeLabel":"enum\u003cstring>"},"default_enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled","typeLabel":"boolean | null"},"deferred":{"type":"boolean","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.deferred","typeLabel":"boolean"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission","typeLabel":"object"},"tools":{"type":"object","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"deferred":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred","typeLabel":"boolean | null"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled","typeLabel":"boolean | null"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties","typeLabel":"object"},"propertyNames":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9_-]{0,63}$"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools","typeLabel":"object"},"transport":{"description":"Transport of an environment-origin MCP server. stdio requires `command`; http requires `url`. No shell is involved: `command` is one executable token. `env` values that name a secret stay references; the executor resolves them in its own credential scope.","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"description":"Transport of an MCP server.","type":"string","enum":["stdio","http"],"isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.type","typeLabel":"enum\u003cstring>"},"command":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.command","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.args.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.args","typeLabel":"string[]"},"cwd":{"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.cwd","typeLabel":"string"},"env":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.env.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.env","typeLabel":"object"},"timeout_ms":{"type":"integer","minimum":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.timeout_ms","typeLabel":"integer"},"command_sha256":{"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.command_sha256","typeLabel":"string"},"url":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.url","typeLabel":"string"}},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport","typeLabel":"object"},"url":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.url","typeLabel":"string"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.mcp","typeLabel":"object | null"},"memory_stores":{"oneOf":[{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","access"],"properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","description":"Machine-readable memory store identifier consisting of lowercase ASCII segments separated by single hyphens.","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX].name","typeLabel":"string"},"access":{"type":"string","enum":["read","read_write"],"isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX].access","typeLabel":"enum\u003cstring>"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX]","typeLabel":"object"},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.memory_stores.oneOf.0","typeLabel":"object[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.memory_stores.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.memory_stores","typeLabel":"object[] | null"},"skills":{"oneOf":[{"type":"array","items":{"type":"string","pattern":"^skl_[a-z2-7]{26}$","uniqueKey":"oneOf.1.config_source.source.oneOf.1.skills.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.skills.oneOf.0","typeLabel":"string[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.skills.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.skills","typeLabel":"string[] | null"},"subagents":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"enum":["profile","self"],"type":"string","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.type","typeLabel":"enum\u003cstring>"},"archive_after_idle_minutes":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.archive_after_idle_minutes","typeLabel":"integer"},"description":{"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.description","typeLabel":"string"},"instruction":{"type":"object","additionalProperties":false,"properties":{"append":{"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.instruction.append","typeLabel":"string"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.instruction","typeLabel":"object"},"max_instances":{"type":"integer","minimum":1,"maximum":2147483647,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.max_instances","typeLabel":"integer"},"model":{"type":"object","additionalProperties":false,"dependentRequired":{"name":["provider_config"],"provider_config":["name"]},"properties":{"cache_retention":{"enum":["none","short","long"],"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.cache_retention","typeLabel":"enum\u003cstring>"},"context_window_tokens":{"type":"integer","minimum":2,"maximum":2147483647,"description":"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit.","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","minimum":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.default_max_output_tokens","typeLabel":"integer"},"name":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.name","typeLabel":"string"},"provider_config":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.provider_config","typeLabel":"string"},"reasoning":{"type":"object","additionalProperties":false,"required":["effort"],"properties":{"effort":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.reasoning.effort","typeLabel":"string"}},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.reasoning","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model","typeLabel":"object"},"profile":{"description":"Name of an existing resource, resolved when the config is compiled.","type":"string","minLength":1,"maxLength":64,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.profile","typeLabel":"string"}},"if":{"type":"object","required":["type"],"properties":{"type":{"const":"profile"}}},"then":{"required":["profile"]},"else":{"not":{"type":"object","required":["profile"]}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.subagents","typeLabel":"object | null"},"tools":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"deferred":{"type":"boolean","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.deferred","typeLabel":"boolean"},"description":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.description","typeLabel":"string"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled","typeLabel":"boolean | null"},"input_schema":{"description":"A JSON Schema for the tool's input. Keywords beyond those listed, such as additionalProperties or description, are allowed.","type":"object","additionalProperties":true,"required":["type"],"properties":{"type":{"const":"object","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.type","typeLabel":"any"},"properties":{"type":"object","additionalProperties":{"type":"object","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.properties.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.properties","typeLabel":"object"},"required":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.required","typeLabel":"string[]"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema","typeLabel":"object"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission","typeLabel":"object"},"type":{"enum":["built_in","custom"],"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.type","typeLabel":"enum\u003cstring>"}},"if":{"type":"object","required":["type"],"properties":{"type":{"const":"custom"}}},"then":{"required":["description","input_schema"]},"else":{"not":{"anyOf":[{"type":"object","required":["description"]},{"type":"object","required":["input_schema"]}]}},"x-go-type":"agentconfig.AgentConfigToolSource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.config_source.source.oneOf.1.tools","typeLabel":"object | null"},"version":{"enum":["v1"],"type":"string","uniqueKey":"oneOf.1.config_source.source.oneOf.1.version","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.config_source.source.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.1.config_source.source","typeLabel":"string | object"},"source_format":{"description":"Format of source: yaml or json.","type":"string","enum":["yaml","json"],"isRequired":true,"uniqueKey":"oneOf.1.config_source.source_format","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.config_source","typeLabel":"object"},"name":{"type":"string","maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Optional agent name. Omit to inherit the profile name when present; send an empty string to leave the agent unnamed.","uniqueKey":"oneOf.1.name","typeLabel":"string"},"message":{"type":"string","description":"Optional initial text message. Mutually exclusive with initial_input.","uniqueKey":"oneOf.1.message","typeLabel":"string"},"tools":{"type":"object","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"deferred":{"type":"boolean","uniqueKey":"oneOf.1.tools.additionalProperties.deferred","typeLabel":"boolean"},"description":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.tools.additionalProperties.description","typeLabel":"string"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.1.tools.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.tools.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.tools.additionalProperties.enabled","typeLabel":"boolean | null"},"input_schema":{"description":"A JSON Schema for the tool's input. Keywords beyond those listed, such as additionalProperties or description, are allowed.","type":"object","additionalProperties":true,"required":["type"],"properties":{"type":{"const":"object","isRequired":true,"uniqueKey":"oneOf.1.tools.additionalProperties.input_schema.type","typeLabel":"any"},"properties":{"type":"object","additionalProperties":{"type":"object","uniqueKey":"oneOf.1.tools.additionalProperties.input_schema.properties.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.1.tools.additionalProperties.input_schema.properties","typeLabel":"object"},"required":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.tools.additionalProperties.input_schema.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.tools.additionalProperties.input_schema.required","typeLabel":"string[]"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.tools.additionalProperties.input_schema","typeLabel":"object"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.1.tools.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.1.tools.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.1.tools.additionalProperties.permission","typeLabel":"object"},"type":{"enum":["built_in","custom"],"type":"string","uniqueKey":"oneOf.1.tools.additionalProperties.type","typeLabel":"enum\u003cstring>"}},"if":{"type":"object","required":["type"],"properties":{"type":{"const":"custom"}}},"then":{"required":["description","input_schema"]},"else":{"not":{"anyOf":[{"type":"object","required":["description"]},{"type":"object","required":["input_schema"]}]}},"x-go-type":"agentconfig.AgentConfigToolSource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.1.tools.additionalProperties","typeLabel":"object"},"description":"Additional integration tool entries (int__\u003cintegration-name>__\u003coperation>) and optional list_interaction_handlers or set_interaction_handler tools for this agent. Other tool names are not accepted here. Existing config entries win unchanged. Requires project management permission. The derived config is created atomically with the agent and initial input; the profile is unchanged.","uniqueKey":"oneOf.1.tools","typeLabel":"object"},"subscriptions":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["integration_id","conversation"],"properties":{"integration_id":{"type":"string","pattern":"^itg_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"oneOf.1.subscriptions.items.[INDEX].integration_id","typeLabel":"string"},"conversation":{"type":"object","additionalProperties":true,"x-go-type":"json.RawMessage","x-go-type-skip-optional-pointer":true,"description":"One concrete provider address, validated by the integration's capabilities.subscription.conversation_schema. Slack uses channel_id and optional thread_ts; Discord uses channel_id for a channel or thread_id for a thread; GitHub uses repository_id and pull_request. Discord accepts optional parent channel_id and guild_id alongside thread_id and validates their ID format, but subscription creation does not verify them against Discord or retain them as routing restrictions. Only thread_id is retained in a canonical thread address and returned by create/list responses. No credentials or runtime state.","isRequired":true,"uniqueKey":"oneOf.1.subscriptions.items.[INDEX].conversation","typeLabel":"object"}},"uniqueKey":"oneOf.1.subscriptions.items.[INDEX]","typeLabel":"object"},"description":"Integration-owned conversation subscriptions attached atomically with launch and initial input. Requires project management permission. Subscriptions alone preserve the pinned config. Launch replay never adds or restores subscriptions.","uniqueKey":"oneOf.1.subscriptions","typeLabel":"object[]"},"interaction_handlers":{"type":"object","additionalProperties":{"description":"Enables an integration's interaction handler. Takes no settings.","type":"object","additionalProperties":false,"x-go-type":"agentconfig.AgentConfigIntegrationCapabilitySource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.1.interaction_handlers.additionalProperties","typeLabel":"object"},"description":"Additional integration interaction handlers, keyed by immutable integration name with empty object values. Slack and Discord handlers require an assigned conversation and accept empty runtime args. Adding a handler does not assign a conversation. Existing entries win unchanged. Requires project management permission.","uniqueKey":"oneOf.1.interaction_handlers","typeLabel":"object"},"initial_input":{"type":"object","additionalProperties":false,"required":["content_blocks"],"description":"Initial queued text input, committed atomically with the agent and any derived config. Mutually exclusive with message. Initial inline media is not supported; upload it through the agent input endpoint after launch.","properties":{"content_blocks":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"oneOf.1.initial_input.content_blocks.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.initial_input.content_blocks.items.[INDEX].text","typeLabel":"string"},"metadata":{"type":"object","description":"Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 characters, values must be strings of up to 512 characters. Keys beginning with `bma_` are reserved for BMA and may affect product behavior; use them only when intentionally invoking BMA-defined behavior.","x-go-type":"resourcemeta.Metadata","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/resourcemeta"},"x-go-type-skip-optional-pointer":true,"maxProperties":16,"propertyNames":{"minLength":1,"maxLength":64},"additionalProperties":{"type":"string","maxLength":512,"uniqueKey":"oneOf.1.initial_input.content_blocks.items.[INDEX].metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.1.initial_input.content_blocks.items.[INDEX].metadata","typeLabel":"object"}},"uniqueKey":"oneOf.1.initial_input.content_blocks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.1.initial_input.content_blocks","typeLabel":"object[]"},"actor":{"type":"object","description":"Optional external actor for API key authentication. User-authenticated requests must omit this field. Without it, the authenticated user or API key is the actor.","additionalProperties":false,"required":["provider_user_id"],"properties":{"provider_user_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"oneOf.1.initial_input.actor.provider_user_id","typeLabel":"string"},"provider_tenant_id":{"type":"string","minLength":1,"maxLength":128,"uniqueKey":"oneOf.1.initial_input.actor.provider_tenant_id","typeLabel":"string"},"display_name":{"type":"string","maxLength":256,"uniqueKey":"oneOf.1.initial_input.actor.display_name","typeLabel":"string"},"metadata":{"type":"object","description":"Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 characters, values must be strings of up to 512 characters.","x-go-type":"resourcemeta.Metadata","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/resourcemeta"},"x-go-type-skip-optional-pointer":true,"maxProperties":16,"propertyNames":{"minLength":1,"maxLength":64},"additionalProperties":{"type":"string","maxLength":512,"uniqueKey":"oneOf.1.initial_input.actor.metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.1.initial_input.actor.metadata","typeLabel":"object"}},"uniqueKey":"oneOf.1.initial_input.actor","typeLabel":"object"}},"uniqueKey":"oneOf.1.initial_input","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"Send at least one of profile, config, or config_source, and not both config and config_source. With only profile, the agent runs the profile's current config. With profile and config or config_source, the agent is attributed to the profile but runs the given config, which need not be one of the profile's versions. config_source is compiled and saved as a new config during the launch.","required":["config_source"],"properties":{"config_source":{"type":"object","description":"An agent config to compile. YAML sources are stored verbatim, so comments and formatting survive; JSON sources, as text or as an object, are stored canonicalized, so the same JSON definition always maps to the same config.","required":["source","source_format"],"properties":{"source":{"oneOf":[{"type":"string","description":"Agent config source as YAML or JSON text, or, with source_format json, as a JSON object.","minLength":1,"x-go-type":"json.RawMessage","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.0","typeLabel":"string"},{"type":"object","description":"Agent config source as YAML or JSON text, or, with source_format json, as a JSON object.","required":["instruction","model"],"x-go-type":"json.RawMessage","properties":{"instruction":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.instruction","typeLabel":"string"},"model":{"type":"object","required":["provider_config","name"],"x-go-type":"json.RawMessage","properties":{"name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.model.name","typeLabel":"string"},"provider_config":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.model.provider_config","typeLabel":"string"},"cache_retention":{"type":"string","enum":["none","short","long"],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.model.cache_retention","typeLabel":"enum\u003cstring>"},"context_window_tokens":{"type":"integer","description":"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit.","maximum":2147483647,"minimum":2,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.model.default_max_output_tokens","typeLabel":"integer"},"reasoning":{"type":"object","required":["effort"],"properties":{"effort":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.model.reasoning.effort","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.model.reasoning","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.model","typeLabel":"object"},"git_credentials":{"type":"object","description":"Integration whose git credentials the agent's machines use.","required":["integration"],"x-go-type":"json.RawMessage","properties":{"integration":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9-]{0,31}$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.git_credentials.integration","typeLabel":"string"},"repository_ids":{"type":"array","items":{"type":"integer","minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.git_credentials.repository_ids.items.[INDEX]","typeLabel":"integer"},"description":"GitHub repository IDs the credentials can access. Defaults to every repository the installation can access.","maxItems":500,"minItems":1,"uniqueItems":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.git_credentials.repository_ids","typeLabel":"integer[]"},"read_only":{"type":"boolean","description":"Prevents pushing, even if the integration allows it.","uniqueKey":"oneOf.2.config_source.source.oneOf.1.git_credentials.read_only","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.git_credentials","typeLabel":"object"},"interaction_handlers":{"oneOf":[{"type":"object","description":"Interaction handlers keyed by integration name.","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","description":"Enables an integration's interaction handler. Takes no settings.","x-go-type":"agentconfig.AgentConfigIntegrationCapabilitySource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.interaction_handlers.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.interaction_handlers.oneOf.0","typeLabel":"object"},{"type":"null","description":"Interaction handlers keyed by integration name.","x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.interaction_handlers.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.interaction_handlers","typeLabel":"object | null"},"machine_sources":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"object","required":["machine_name"],"x-go-type":"json.RawMessage","properties":{"machine_name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_name","typeLabel":"string"},"cwd":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.cwd","typeLabel":"string"},"delete_after_idle_minutes":{"oneOf":[{"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes.oneOf.0","typeLabel":"any"},{"type":"integer","maximum":2147483647,"minimum":5,"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes.oneOf.1","typeLabel":"integer"},{"type":"integer","maximum":2147483647,"minimum":5,"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes.oneOf.2","typeLabel":"integer"},{"type":"integer","maximum":2147483647,"minimum":5,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes.oneOf.3","typeLabel":"integer"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.delete_after_idle_minutes","typeLabel":"any · integer · integer · integer"},"description":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.description","typeLabel":"string"},"env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.env_overlay","typeLabel":"object | null"},"initial_num_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.initial_num_machines","typeLabel":"integer"},"machine_cpu":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_memory_mb","typeLabel":"integer"},"machine_pool_name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_pool_name","typeLabel":"string"},"machine_provider_options_overlay":{"oneOf":[{"type":"object","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.machine_provider_options_overlay","typeLabel":"object | null"},"max_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.max_machines","typeLabel":"integer"},"secret_env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0.secret_env_overlay","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["machine_pool_name","machine_name"],"x-go-type":"json.RawMessage","properties":{"machine_name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_name","typeLabel":"string"},"machine_pool_name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_pool_name","typeLabel":"string"},"cwd":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.cwd","typeLabel":"string"},"delete_after_idle_minutes":{"oneOf":[{"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes.oneOf.0","typeLabel":"any"},{"type":"integer","maximum":2147483647,"minimum":5,"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes.oneOf.1","typeLabel":"integer"},{"type":"integer","maximum":2147483647,"minimum":5,"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes.oneOf.2","typeLabel":"integer"},{"type":"integer","maximum":2147483647,"minimum":5,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes.oneOf.3","typeLabel":"integer"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.delete_after_idle_minutes","typeLabel":"any · integer · integer · integer"},"description":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.description","typeLabel":"string"},"env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.env_overlay","typeLabel":"object | null"},"initial_num_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.initial_num_machines","typeLabel":"integer"},"machine_cpu":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_memory_mb","typeLabel":"integer"},"machine_provider_options_overlay":{"oneOf":[{"type":"object","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.machine_provider_options_overlay","typeLabel":"object | null"},"max_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.max_machines","typeLabel":"integer"},"secret_env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1.secret_env_overlay","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","required":["machine_name","machine_pool_name"],"x-go-type":"json.RawMessage","properties":{"machine_name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.machine_name","typeLabel":"string"},"machine_pool_name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.machine_pool_name","typeLabel":"string"},"cwd":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.cwd","typeLabel":"string"},"delete_after_idle_minutes":{"oneOf":[{"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.delete_after_idle_minutes.oneOf.0","typeLabel":"any"},{"type":"integer","maximum":2147483647,"minimum":5,"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.delete_after_idle_minutes.oneOf.1","typeLabel":"integer"},{"type":"integer","maximum":2147483647,"minimum":5,"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.delete_after_idle_minutes.oneOf.2","typeLabel":"integer"},{"type":"integer","maximum":2147483647,"minimum":5,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.delete_after_idle_minutes.oneOf.3","typeLabel":"integer"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.delete_after_idle_minutes","typeLabel":"any · integer · integer · integer"},"description":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.description","typeLabel":"string"},"env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.env_overlay","typeLabel":"object | null"},"initial_num_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.initial_num_machines","typeLabel":"integer"},"machine_cpu":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.machine_memory_mb","typeLabel":"integer"},"machine_provider_options_overlay":{"oneOf":[{"type":"object","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.machine_provider_options_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.machine_provider_options_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.machine_provider_options_overlay","typeLabel":"object | null"},"max_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.max_machines","typeLabel":"integer"},"secret_env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.secret_env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.secret_env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.secret_env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.secret_env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.secret_env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2.secret_env_overlay","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","required":["machine_pool_name"],"x-go-type":"json.RawMessage","properties":{"machine_pool_name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.machine_pool_name","typeLabel":"string"},"cwd":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.cwd","typeLabel":"string"},"delete_after_idle_minutes":{"oneOf":[{"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.delete_after_idle_minutes.oneOf.0","typeLabel":"any"},{"type":"integer","maximum":2147483647,"minimum":5,"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.delete_after_idle_minutes.oneOf.1","typeLabel":"integer"},{"type":"integer","maximum":2147483647,"minimum":5,"const":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.delete_after_idle_minutes.oneOf.2","typeLabel":"integer"},{"type":"integer","maximum":2147483647,"minimum":5,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.delete_after_idle_minutes.oneOf.3","typeLabel":"integer"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.delete_after_idle_minutes","typeLabel":"any · integer · integer · integer"},"description":{"type":"string","maxLength":4096,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.description","typeLabel":"string"},"env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.env_overlay","typeLabel":"object | null"},"initial_num_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.initial_num_machines","typeLabel":"integer"},"machine_cpu":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.machine_memory_mb","typeLabel":"integer"},"machine_name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.machine_name","typeLabel":"string"},"machine_provider_options_overlay":{"oneOf":[{"type":"object","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.machine_provider_options_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.machine_provider_options_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.machine_provider_options_overlay","typeLabel":"object | null"},"max_machines":{"type":"integer","minimum":0,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.max_machines","typeLabel":"integer"},"secret_env_overlay":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.secret_env_overlay.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.secret_env_overlay.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.secret_env_overlay.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.secret_env_overlay.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.secret_env_overlay.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3.secret_env_overlay","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX].oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0.items.[INDEX]","typeLabel":"object"},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.0","typeLabel":"object[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.machine_sources","typeLabel":"object[] | null"},"max_depth":{"type":"integer","maximum":8,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.max_depth","typeLabel":"integer"},"max_subagents":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.max_subagents","typeLabel":"integer"},"mcp":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","x-go-type":"json.RawMessage","properties":{"auth":{"type":"object","required":["type","secret_id"],"x-go-type":"json.RawMessage","properties":{"secret_id":{"type":"string","minLength":1,"pattern":"^sec_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.secret_id","typeLabel":"string"},"type":{"type":"string","enum":["bearer","oauth","sigv4"],"isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.type","typeLabel":"enum\u003cstring>"},"region":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.region","typeLabel":"string"},"service":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth.service","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.auth","typeLabel":"object"},"connection_origin":{"type":"string","description":"Who connects the MCP server. `service` (the default) is connected by the harness through `url`; `environment` is started or connected by the executor from `transport`, in the executor's credential scope.","enum":["service","environment"],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.connection_origin","typeLabel":"enum\u003cstring>"},"default_enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.default_enabled","typeLabel":"boolean | null"},"deferred":{"type":"boolean","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.deferred","typeLabel":"boolean"},"permission":{"type":"object","required":["mode"],"x-go-type":"json.RawMessage","properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission.parameters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.permission","typeLabel":"object"},"tools":{"type":"object","additionalProperties":{"type":"object","x-go-type":"json.RawMessage","properties":{"deferred":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.deferred","typeLabel":"boolean | null"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.enabled","typeLabel":"boolean | null"},"permission":{"type":"object","required":["mode"],"x-go-type":"json.RawMessage","properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission.parameters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties.permission","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.tools","typeLabel":"object"},"transport":{"type":"object","description":"Transport of an environment-origin MCP server. stdio requires `command`; http requires `url`. No shell is involved: `command` is one executable token. `env` values that name a secret stay references; the executor resolves them in its own credential scope.","required":["type"],"properties":{"type":{"type":"string","description":"Transport of an MCP server.","enum":["stdio","http"],"isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.type","typeLabel":"enum\u003cstring>"},"command":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.command","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.args.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.args","typeLabel":"string[]"},"cwd":{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.cwd","typeLabel":"string"},"env":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.env.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.env","typeLabel":"object"},"timeout_ms":{"type":"integer","minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.timeout_ms","typeLabel":"integer"},"command_sha256":{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.command_sha256","typeLabel":"string"},"url":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport.url","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.transport","typeLabel":"object"},"url":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties.url","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.mcp","typeLabel":"object | null"},"memory_stores":{"oneOf":[{"type":"array","items":{"type":"object","required":["name","access"],"x-go-type":"json.RawMessage","properties":{"name":{"type":"string","description":"Machine-readable memory store identifier consisting of lowercase ASCII segments separated by single hyphens.","maxLength":64,"minLength":1,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX].name","typeLabel":"string"},"access":{"type":"string","enum":["read","read_write"],"isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX].access","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.memory_stores.oneOf.0.items.[INDEX]","typeLabel":"object"},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.memory_stores.oneOf.0","typeLabel":"object[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.memory_stores.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.memory_stores","typeLabel":"object[] | null"},"skills":{"oneOf":[{"type":"array","items":{"type":"string","pattern":"^skl_[a-z2-7]{26}$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.skills.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.skills.oneOf.0","typeLabel":"string[]"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.skills.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.skills","typeLabel":"string[] | null"},"subagents":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","required":["type"],"x-go-type":"json.RawMessage","properties":{"type":{"type":"string","enum":["profile","self"],"isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.type","typeLabel":"enum\u003cstring>"},"archive_after_idle_minutes":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.archive_after_idle_minutes","typeLabel":"integer"},"description":{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.description","typeLabel":"string"},"instruction":{"type":"object","x-go-type":"json.RawMessage","properties":{"append":{"type":"string","uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.instruction.append","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.instruction","typeLabel":"object"},"max_instances":{"type":"integer","maximum":2147483647,"minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.max_instances","typeLabel":"integer"},"model":{"type":"object","x-go-type":"json.RawMessage","properties":{"cache_retention":{"type":"string","enum":["none","short","long"],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.cache_retention","typeLabel":"enum\u003cstring>"},"context_window_tokens":{"type":"integer","description":"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit.","maximum":2147483647,"minimum":2,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","minimum":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.default_max_output_tokens","typeLabel":"integer"},"name":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.name","typeLabel":"string"},"provider_config":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.provider_config","typeLabel":"string"},"reasoning":{"type":"object","required":["effort"],"properties":{"effort":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.reasoning.effort","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model.reasoning","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.model","typeLabel":"object"},"profile":{"type":"string","description":"Name of an existing resource, resolved when the config is compiled.","maxLength":64,"minLength":1,"pattern":"^\\S(?:.*\\S)?$","uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties.profile","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.subagents","typeLabel":"object | null"},"tools":{"oneOf":[{"type":"object","x-go-type":"json.RawMessage","additionalProperties":{"type":"object","x-go-type":"agentconfig.AgentConfigToolSource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"properties":{"deferred":{"type":"boolean","uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.deferred","typeLabel":"boolean"},"description":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.description","typeLabel":"string"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.enabled","typeLabel":"boolean | null"},"input_schema":{"type":"object","description":"A JSON Schema for the tool's input. Keywords beyond those listed, such as additionalProperties or description, are allowed.","required":["type"],"x-go-type":"json.RawMessage","properties":{"type":{"const":"object","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.type","typeLabel":"any"},"properties":{"type":"object","additionalProperties":{"type":"object","uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.properties.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.properties","typeLabel":"object"},"required":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema.required","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.input_schema","typeLabel":"object"},"permission":{"type":"object","required":["mode"],"x-go-type":"json.RawMessage","properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission.parameters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.permission","typeLabel":"object"},"type":{"type":"string","enum":["built_in","custom"],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties.type","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.0","typeLabel":"object"},{"type":"null","x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.tools","typeLabel":"object | null"},"version":{"type":"string","enum":["v1"],"uniqueKey":"oneOf.2.config_source.source.oneOf.1.version","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.2.config_source.source.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.2.config_source.source","typeLabel":"string | object"},"source_format":{"type":"string","description":"Format of source: yaml or json.","enum":["yaml","json"],"isRequired":true,"uniqueKey":"oneOf.2.config_source.source_format","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.2.config_source","typeLabel":"object"},"profile":{"type":"string","pattern":"^aprf_[a-z2-7]{26}$","uniqueKey":"oneOf.2.profile","typeLabel":"string"},"config":{"description":"Agent config ID (acfg_...).","type":"string","pattern":"^acfg_[a-z2-7]{26}$","uniqueKey":"oneOf.2.config","typeLabel":"string"},"name":{"type":"string","maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Optional agent name. Omit to inherit the profile name when present; send an empty string to leave the agent unnamed.","uniqueKey":"oneOf.2.name","typeLabel":"string"},"message":{"type":"string","description":"Optional initial text message. Mutually exclusive with initial_input.","uniqueKey":"oneOf.2.message","typeLabel":"string"},"tools":{"type":"object","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"deferred":{"type":"boolean","uniqueKey":"oneOf.2.tools.additionalProperties.deferred","typeLabel":"boolean"},"description":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.tools.additionalProperties.description","typeLabel":"string"},"enabled":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.2.tools.additionalProperties.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.2.tools.additionalProperties.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.tools.additionalProperties.enabled","typeLabel":"boolean | null"},"input_schema":{"description":"A JSON Schema for the tool's input. Keywords beyond those listed, such as additionalProperties or description, are allowed.","type":"object","additionalProperties":true,"required":["type"],"properties":{"type":{"const":"object","isRequired":true,"uniqueKey":"oneOf.2.tools.additionalProperties.input_schema.type","typeLabel":"any"},"properties":{"type":"object","additionalProperties":{"type":"object","uniqueKey":"oneOf.2.tools.additionalProperties.input_schema.properties.additionalProperties","typeLabel":"object"},"uniqueKey":"oneOf.2.tools.additionalProperties.input_schema.properties","typeLabel":"object"},"required":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"oneOf.2.tools.additionalProperties.input_schema.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.2.tools.additionalProperties.input_schema.required","typeLabel":"string[]"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.tools.additionalProperties.input_schema","typeLabel":"object"},"permission":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","minLength":1,"pattern":"\\S","isRequired":true,"uniqueKey":"oneOf.2.tools.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"oneOf.2.tools.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"json.RawMessage","uniqueKey":"oneOf.2.tools.additionalProperties.permission","typeLabel":"object"},"type":{"enum":["built_in","custom"],"type":"string","uniqueKey":"oneOf.2.tools.additionalProperties.type","typeLabel":"enum\u003cstring>"}},"if":{"type":"object","required":["type"],"properties":{"type":{"const":"custom"}}},"then":{"required":["description","input_schema"]},"else":{"not":{"anyOf":[{"type":"object","required":["description"]},{"type":"object","required":["input_schema"]}]}},"x-go-type":"agentconfig.AgentConfigToolSource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.2.tools.additionalProperties","typeLabel":"object"},"description":"Additional integration tool entries (int__\u003cintegration-name>__\u003coperation>) and optional list_interaction_handlers or set_interaction_handler tools for this agent. Other tool names are not accepted here. Existing config entries win unchanged. Requires project management permission. The derived config is created atomically with the agent and initial input; the profile is unchanged.","uniqueKey":"oneOf.2.tools","typeLabel":"object"},"subscriptions":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["integration_id","conversation"],"properties":{"integration_id":{"type":"string","pattern":"^itg_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"oneOf.2.subscriptions.items.[INDEX].integration_id","typeLabel":"string"},"conversation":{"type":"object","additionalProperties":true,"x-go-type":"json.RawMessage","x-go-type-skip-optional-pointer":true,"description":"One concrete provider address, validated by the integration's capabilities.subscription.conversation_schema. Slack uses channel_id and optional thread_ts; Discord uses channel_id for a channel or thread_id for a thread; GitHub uses repository_id and pull_request. Discord accepts optional parent channel_id and guild_id alongside thread_id and validates their ID format, but subscription creation does not verify them against Discord or retain them as routing restrictions. Only thread_id is retained in a canonical thread address and returned by create/list responses. No credentials or runtime state.","isRequired":true,"uniqueKey":"oneOf.2.subscriptions.items.[INDEX].conversation","typeLabel":"object"}},"uniqueKey":"oneOf.2.subscriptions.items.[INDEX]","typeLabel":"object"},"description":"Integration-owned conversation subscriptions attached atomically with launch and initial input. Requires project management permission. Subscriptions alone preserve the pinned config. Launch replay never adds or restores subscriptions.","uniqueKey":"oneOf.2.subscriptions","typeLabel":"object[]"},"interaction_handlers":{"type":"object","additionalProperties":{"description":"Enables an integration's interaction handler. Takes no settings.","type":"object","additionalProperties":false,"x-go-type":"agentconfig.AgentConfigIntegrationCapabilitySource","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/agentconfig"},"uniqueKey":"oneOf.2.interaction_handlers.additionalProperties","typeLabel":"object"},"description":"Additional integration interaction handlers, keyed by immutable integration name with empty object values. Slack and Discord handlers require an assigned conversation and accept empty runtime args. Adding a handler does not assign a conversation. Existing entries win unchanged. Requires project management permission.","uniqueKey":"oneOf.2.interaction_handlers","typeLabel":"object"},"initial_input":{"type":"object","additionalProperties":false,"required":["content_blocks"],"description":"Initial queued text input, committed atomically with the agent and any derived config. Mutually exclusive with message. Initial inline media is not supported; upload it through the agent input endpoint after launch.","properties":{"content_blocks":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"oneOf.2.initial_input.content_blocks.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.initial_input.content_blocks.items.[INDEX].text","typeLabel":"string"},"metadata":{"type":"object","description":"Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 characters, values must be strings of up to 512 characters. Keys beginning with `bma_` are reserved for BMA and may affect product behavior; use them only when intentionally invoking BMA-defined behavior.","x-go-type":"resourcemeta.Metadata","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/resourcemeta"},"x-go-type-skip-optional-pointer":true,"maxProperties":16,"propertyNames":{"minLength":1,"maxLength":64},"additionalProperties":{"type":"string","maxLength":512,"uniqueKey":"oneOf.2.initial_input.content_blocks.items.[INDEX].metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.2.initial_input.content_blocks.items.[INDEX].metadata","typeLabel":"object"}},"uniqueKey":"oneOf.2.initial_input.content_blocks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.2.initial_input.content_blocks","typeLabel":"object[]"},"actor":{"type":"object","description":"Optional external actor for API key authentication. User-authenticated requests must omit this field. Without it, the authenticated user or API key is the actor.","additionalProperties":false,"required":["provider_user_id"],"properties":{"provider_user_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"oneOf.2.initial_input.actor.provider_user_id","typeLabel":"string"},"provider_tenant_id":{"type":"string","minLength":1,"maxLength":128,"uniqueKey":"oneOf.2.initial_input.actor.provider_tenant_id","typeLabel":"string"},"display_name":{"type":"string","maxLength":256,"uniqueKey":"oneOf.2.initial_input.actor.display_name","typeLabel":"string"},"metadata":{"type":"object","description":"Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 characters, values must be strings of up to 512 characters.","x-go-type":"resourcemeta.Metadata","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/resourcemeta"},"x-go-type-skip-optional-pointer":true,"maxProperties":16,"propertyNames":{"minLength":1,"maxLength":64},"additionalProperties":{"type":"string","maxLength":512,"uniqueKey":"oneOf.2.initial_input.actor.metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"oneOf.2.initial_input.actor.metadata","typeLabel":"object"}},"uniqueKey":"oneOf.2.initial_input.actor","typeLabel":"object"}},"uniqueKey":"oneOf.2.initial_input","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"profile":"\u003cstring>","config":"\u003cstring>","name":"\u003cstring>","message":"\u003cstring>","tools":{},"subscriptions":[{"integration_id":"\u003cstring>","conversation":{}}],"interaction_handlers":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"69302ff6-bb34-45b0-8acc-5a81c0397970":{"description":"Current state of the previously created agent.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["agent"],"properties":{"agent":{"type":"object","additionalProperties":false,"required":["id","org_id","project_id","state","name","created_at","updated_at"],"properties":{"id":{"type":"string","pattern":"^agt_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent.id","typeLabel":"string"},"org_id":{"type":"string","pattern":"^org_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent.org_id","typeLabel":"string"},"project_id":{"description":"Project ID (proj_...).","type":"string","pattern":"^proj_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent.project_id","typeLabel":"string"},"state":{"type":"string","enum":["active","archived"],"isRequired":true,"uniqueKey":"agent.state","typeLabel":"enum\u003cstring>"},"name":{"type":"string","maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Agent name. Empty means the agent is unnamed; non-empty values use the ResourceName policy.","isRequired":true,"uniqueKey":"agent.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"agent.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"agent.updated_at","typeLabel":"string\u003cdate-time>"},"agent_profile_id":{"type":"string","pattern":"^aprf_[a-z2-7]{26}$","uniqueKey":"agent.agent_profile_id","typeLabel":"string"},"integration_target":{"type":"object","additionalProperties":false,"required":["provider","conversation","display_name"],"properties":{"provider":{"type":"string","isRequired":true,"uniqueKey":"agent.integration_target.provider","typeLabel":"string"},"conversation":{"type":"object","additionalProperties":true,"x-go-type":"json.RawMessage","x-go-type-skip-optional-pointer":true,"description":"One concrete provider address, validated by the integration's capabilities.subscription.conversation_schema. Slack uses channel_id and optional thread_ts; Discord uses channel_id for a channel or thread_id for a thread; GitHub uses repository_id and pull_request. Discord accepts optional parent channel_id and guild_id alongside thread_id and validates their ID format, but subscription creation does not verify them against Discord or retain them as routing restrictions. Only thread_id is retained in a canonical thread address and returned by create/list responses. No credentials or runtime state.","isRequired":true,"uniqueKey":"agent.integration_target.conversation","typeLabel":"object"},"display_name":{"type":"string","isRequired":true,"uniqueKey":"agent.integration_target.display_name","typeLabel":"string"},"provider_uri":{"type":"string","format":"uri","uniqueKey":"agent.integration_target.provider_uri","typeLabel":"string\u003curi>"}},"description":"Selected question/approval destination. Automatic mode updates it when content inputs are admitted. Prompts use it only while the integration and handler remain eligible. It is not launch provenance or permission to post.","uniqueKey":"agent.integration_target","typeLabel":"object"},"current_config_id":{"description":"Agent config ID (acfg_...).","type":"string","pattern":"^acfg_[a-z2-7]{26}$","uniqueKey":"agent.current_config_id","typeLabel":"string"},"model":{"type":"object","additionalProperties":false,"required":["provider_config","name"],"properties":{"provider_config":{"type":"string","minLength":1,"maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Human-readable name. Spaces and punctuation are allowed; leading or trailing whitespace and invisible or control characters are not.","isRequired":true,"uniqueKey":"agent.model.provider_config","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Human-readable name. Spaces and punctuation are allowed; leading or trailing whitespace and invisible or control characters are not.","isRequired":true,"uniqueKey":"agent.model.name","typeLabel":"string"}},"uniqueKey":"agent.model","typeLabel":"object"},"parent_agent_id":{"type":"string","pattern":"^agt_[a-z2-7]{26}$","description":"Set when this agent is a subagent spawned by another agent.","uniqueKey":"agent.parent_agent_id","typeLabel":"string"},"subagent_key":{"description":"The `subagents` key this agent was spawned from.","type":"string","uniqueKey":"agent.subagent_key","typeLabel":"string"},"activity":{"type":"object","additionalProperties":false,"required":["state","last_activity_at"],"properties":{"state":{"description":"running while the agent has work in progress, which includes a custom tool call awaiting its result; waiting_on_interaction while it has an open question or permission request; idle otherwise; and archived once the agent is archived.","type":"string","enum":["running","idle","waiting_on_interaction","archived"],"isRequired":true,"uniqueKey":"agent.activity.state","typeLabel":"enum\u003cstring>"},"last_activity_at":{"type":"string","format":"date-time","description":"When the agent's latest event was recorded, or its creation time before any event.","isRequired":true,"uniqueKey":"agent.activity.last_activity_at","typeLabel":"string\u003cdate-time>"}},"description":"Current activity, present on list and get responses.","uniqueKey":"agent.activity","typeLabel":"object"},"usage":{"type":"object","additionalProperties":false,"required":["model_calls","tokens","cost"],"properties":{"model_calls":{"type":"integer","format":"int64","minimum":0,"description":"Model calls that recorded token usage or a provider-reported cost.","isRequired":true,"uniqueKey":"agent.usage.model_calls","typeLabel":"integer\u003cint64>"},"tokens":{"type":"object","additionalProperties":false,"description":"Summed token counts across the tallied model calls. Input totals are the sum of uncached, cache-read, and cache-write tokens; output totals include reasoning tokens.","required":["input_tokens_total","uncached_input_tokens","cache_read_input_tokens","cache_write_input_tokens","output_tokens_total","reasoning_output_tokens"],"properties":{"input_tokens_total":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.input_tokens_total","typeLabel":"integer\u003cint64>"},"uncached_input_tokens":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.uncached_input_tokens","typeLabel":"integer\u003cint64>"},"cache_read_input_tokens":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.cache_read_input_tokens","typeLabel":"integer\u003cint64>"},"cache_write_input_tokens":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.cache_write_input_tokens","typeLabel":"integer\u003cint64>"},"output_tokens_total":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.output_tokens_total","typeLabel":"integer\u003cint64>"},"reasoning_output_tokens":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.reasoning_output_tokens","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"agent.usage.tokens","typeLabel":"object"},"cost":{"type":"object","additionalProperties":false,"required":["provider_reported_usd","model_calls_with_reported_cost"],"properties":{"provider_reported_usd":{"type":"string","description":"Exact decimal sum in USD of the costs the provider reported for the tallied model calls. Calls whose provider reported no cost contribute nothing; compare model_calls_with_reported_cost against model_calls to see how complete the figure is.","pattern":"^(0|[1-9][0-9]*)(\\.[0-9]+)?$","isRequired":true,"uniqueKey":"agent.usage.cost.provider_reported_usd","typeLabel":"string"},"model_calls_with_reported_cost":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.cost.model_calls_with_reported_cost","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"agent.usage.cost","typeLabel":"object"}},"description":"All-time model usage by the agent and its subagents. Present when the list was requested with `include_usage`.","uniqueKey":"agent.usage","typeLabel":"object"},"archived_at":{"type":"string","format":"date-time","uniqueKey":"agent.archived_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"agent","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agent":{"id":"\u003cstring>","org_id":"\u003cstring>","project_id":"\u003cstring>","state":"active","name":"\u003cstring>","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","agent_profile_id":"\u003cstring>","integration_target":{"provider":"\u003cstring>","conversation":{},"display_name":"\u003cstring>","provider_uri":"\u003cstring>"},"current_config_id":"\u003cstring>","model":{"provider_config":"\u003cstring>","name":"\u003cstring>"},"parent_agent_id":"\u003cstring>","subagent_key":"\u003cstring>","activity":{"state":"running","last_activity_at":"2023-11-07T05:31:56Z"},"usage":{"model_calls":1,"tokens":{"input_tokens_total":1,"uncached_input_tokens":1,"cache_read_input_tokens":1,"cache_write_input_tokens":1,"output_tokens_total":1,"reasoning_output_tokens":1},"cost":{"provider_reported_usd":"\u003cstring>","model_calls_with_reported_cost":1}},"archived_at":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"6a5acb3c-d948-47b6-b9fe-cc52d363c173":{"description":"Agent launched.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["agent","agent_config","machine_bindings"],"properties":{"agent":{"type":"object","additionalProperties":false,"required":["id","org_id","project_id","state","name","created_at","updated_at"],"properties":{"id":{"type":"string","pattern":"^agt_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent.id","typeLabel":"string"},"org_id":{"type":"string","pattern":"^org_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent.org_id","typeLabel":"string"},"project_id":{"description":"Project ID (proj_...).","type":"string","pattern":"^proj_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent.project_id","typeLabel":"string"},"state":{"type":"string","enum":["active","archived"],"isRequired":true,"uniqueKey":"agent.state","typeLabel":"enum\u003cstring>"},"name":{"type":"string","maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Agent name. Empty means the agent is unnamed; non-empty values use the ResourceName policy.","isRequired":true,"uniqueKey":"agent.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"agent.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"agent.updated_at","typeLabel":"string\u003cdate-time>"},"agent_profile_id":{"type":"string","pattern":"^aprf_[a-z2-7]{26}$","uniqueKey":"agent.agent_profile_id","typeLabel":"string"},"integration_target":{"type":"object","additionalProperties":false,"required":["provider","conversation","display_name"],"properties":{"provider":{"type":"string","isRequired":true,"uniqueKey":"agent.integration_target.provider","typeLabel":"string"},"conversation":{"type":"object","additionalProperties":true,"x-go-type":"json.RawMessage","x-go-type-skip-optional-pointer":true,"description":"One concrete provider address, validated by the integration's capabilities.subscription.conversation_schema. Slack uses channel_id and optional thread_ts; Discord uses channel_id for a channel or thread_id for a thread; GitHub uses repository_id and pull_request. Discord accepts optional parent channel_id and guild_id alongside thread_id and validates their ID format, but subscription creation does not verify them against Discord or retain them as routing restrictions. Only thread_id is retained in a canonical thread address and returned by create/list responses. No credentials or runtime state.","isRequired":true,"uniqueKey":"agent.integration_target.conversation","typeLabel":"object"},"display_name":{"type":"string","isRequired":true,"uniqueKey":"agent.integration_target.display_name","typeLabel":"string"},"provider_uri":{"type":"string","format":"uri","uniqueKey":"agent.integration_target.provider_uri","typeLabel":"string\u003curi>"}},"description":"Selected question/approval destination. Automatic mode updates it when content inputs are admitted. Prompts use it only while the integration and handler remain eligible. It is not launch provenance or permission to post.","uniqueKey":"agent.integration_target","typeLabel":"object"},"current_config_id":{"description":"Agent config ID (acfg_...).","type":"string","pattern":"^acfg_[a-z2-7]{26}$","uniqueKey":"agent.current_config_id","typeLabel":"string"},"model":{"type":"object","additionalProperties":false,"required":["provider_config","name"],"properties":{"provider_config":{"type":"string","minLength":1,"maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Human-readable name. Spaces and punctuation are allowed; leading or trailing whitespace and invisible or control characters are not.","isRequired":true,"uniqueKey":"agent.model.provider_config","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Human-readable name. Spaces and punctuation are allowed; leading or trailing whitespace and invisible or control characters are not.","isRequired":true,"uniqueKey":"agent.model.name","typeLabel":"string"}},"uniqueKey":"agent.model","typeLabel":"object"},"parent_agent_id":{"type":"string","pattern":"^agt_[a-z2-7]{26}$","description":"Set when this agent is a subagent spawned by another agent.","uniqueKey":"agent.parent_agent_id","typeLabel":"string"},"subagent_key":{"description":"The `subagents` key this agent was spawned from.","type":"string","uniqueKey":"agent.subagent_key","typeLabel":"string"},"activity":{"type":"object","additionalProperties":false,"required":["state","last_activity_at"],"properties":{"state":{"description":"running while the agent has work in progress, which includes a custom tool call awaiting its result; waiting_on_interaction while it has an open question or permission request; idle otherwise; and archived once the agent is archived.","type":"string","enum":["running","idle","waiting_on_interaction","archived"],"isRequired":true,"uniqueKey":"agent.activity.state","typeLabel":"enum\u003cstring>"},"last_activity_at":{"type":"string","format":"date-time","description":"When the agent's latest event was recorded, or its creation time before any event.","isRequired":true,"uniqueKey":"agent.activity.last_activity_at","typeLabel":"string\u003cdate-time>"}},"description":"Current activity, present on list and get responses.","uniqueKey":"agent.activity","typeLabel":"object"},"usage":{"type":"object","additionalProperties":false,"required":["model_calls","tokens","cost"],"properties":{"model_calls":{"type":"integer","format":"int64","minimum":0,"description":"Model calls that recorded token usage or a provider-reported cost.","isRequired":true,"uniqueKey":"agent.usage.model_calls","typeLabel":"integer\u003cint64>"},"tokens":{"type":"object","additionalProperties":false,"description":"Summed token counts across the tallied model calls. Input totals are the sum of uncached, cache-read, and cache-write tokens; output totals include reasoning tokens.","required":["input_tokens_total","uncached_input_tokens","cache_read_input_tokens","cache_write_input_tokens","output_tokens_total","reasoning_output_tokens"],"properties":{"input_tokens_total":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.input_tokens_total","typeLabel":"integer\u003cint64>"},"uncached_input_tokens":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.uncached_input_tokens","typeLabel":"integer\u003cint64>"},"cache_read_input_tokens":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.cache_read_input_tokens","typeLabel":"integer\u003cint64>"},"cache_write_input_tokens":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.cache_write_input_tokens","typeLabel":"integer\u003cint64>"},"output_tokens_total":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.output_tokens_total","typeLabel":"integer\u003cint64>"},"reasoning_output_tokens":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.tokens.reasoning_output_tokens","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"agent.usage.tokens","typeLabel":"object"},"cost":{"type":"object","additionalProperties":false,"required":["provider_reported_usd","model_calls_with_reported_cost"],"properties":{"provider_reported_usd":{"type":"string","description":"Exact decimal sum in USD of the costs the provider reported for the tallied model calls. Calls whose provider reported no cost contribute nothing; compare model_calls_with_reported_cost against model_calls to see how complete the figure is.","pattern":"^(0|[1-9][0-9]*)(\\.[0-9]+)?$","isRequired":true,"uniqueKey":"agent.usage.cost.provider_reported_usd","typeLabel":"string"},"model_calls_with_reported_cost":{"type":"integer","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"agent.usage.cost.model_calls_with_reported_cost","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"agent.usage.cost","typeLabel":"object"}},"description":"All-time model usage by the agent and its subagents. Present when the list was requested with `include_usage`.","uniqueKey":"agent.usage","typeLabel":"object"},"archived_at":{"type":"string","format":"date-time","uniqueKey":"agent.archived_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"agent","typeLabel":"object"},"agent_config":{"type":"object","additionalProperties":false,"required":["id","org_id","project_id","effective_definition_hash","model","created_at","compiled_definition"],"properties":{"id":{"description":"Agent config ID (acfg_...).","type":"string","pattern":"^acfg_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent_config.id","typeLabel":"string"},"org_id":{"type":"string","pattern":"^org_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent_config.org_id","typeLabel":"string"},"project_id":{"description":"Project ID (proj_...).","type":"string","pattern":"^proj_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent_config.project_id","typeLabel":"string"},"effective_definition_hash":{"type":"string","isRequired":true,"uniqueKey":"agent_config.effective_definition_hash","typeLabel":"string"},"model":{"type":"object","additionalProperties":false,"required":["provider_config","name","provider_model_slug","configured_model_id","current_revision_id","api_format","api_variant","context_window_tokens","max_output_tokens","default_cache_retention","supports_tools","supports_reasoning","default_reasoning_effort","supported_reasoning_efforts","input_modalities","output_modalities"],"properties":{"provider_config":{"type":"string","minLength":1,"maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Human-readable name. Spaces and punctuation are allowed; leading or trailing whitespace and invisible or control characters are not.","isRequired":true,"uniqueKey":"agent_config.model.provider_config","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":64,"x-bma-unicode-normalization":"NFC","description":"Configured model name selected by this agent config, rendered from the current configured model record.","isRequired":true,"uniqueKey":"agent_config.model.name","typeLabel":"string"},"provider_model_slug":{"type":"string","description":"Exact provider model slug on the configured model's current revision at response time.","isRequired":true,"uniqueKey":"agent_config.model.provider_model_slug","typeLabel":"string"},"configured_model_id":{"type":"string","pattern":"^mdl_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent_config.model.configured_model_id","typeLabel":"string"},"current_revision_id":{"type":"string","pattern":"^mrev_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent_config.model.current_revision_id","typeLabel":"string"},"api_format":{"description":"Wire protocol the model endpoint speaks: openai-responses, openai-chat-completions, or anthropic-messages.","type":"string","enum":["openai-responses","openai-chat-completions","anthropic-messages"],"x-enum-varnames":["ModelAPIFormatOpenaiResponses","ModelAPIFormatOpenaiChatCompletions","ModelAPIFormatAnthropicMessages"],"isRequired":true,"uniqueKey":"agent_config.model.api_format","typeLabel":"enum\u003cstring>"},"api_variant":{"type":"string","x-extensible-enum":["default","openrouter","bedrock"],"isRequired":true,"uniqueKey":"agent_config.model.api_variant","typeLabel":"string"},"context_window_tokens":{"type":"integer","description":"Effective context budget for input and output tokens after model, project, and agent settings are applied. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit.","isRequired":true,"uniqueKey":"agent_config.model.context_window_tokens","typeLabel":"integer"},"max_output_tokens":{"oneOf":[{"type":"integer","description":"Effective known output-token ceiling after model and project settings, or null when unknown.","isRequired":true,"uniqueKey":"agent_config.model.max_output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Effective known output-token ceiling after model and project settings, or null when unknown.","isRequired":true,"uniqueKey":"agent_config.model.max_output_tokens.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agent_config.model.max_output_tokens","typeLabel":"integer | null"},"default_cache_retention":{"type":"string","description":"Prompt-cache preference for model requests; `short` when omitted. `short` applies the route's default caching (explicit cache breakpoints where the provider requires them) and, where the route accepts one, a stable conversation key for cache-aware routing. `long` prefers the route's extended cache lifetime where one exists (currently Anthropic's one-hour cache, which on Bedrock requires Claude 4.5 or newer) and behaves like `short` elsewhere. `none` sends no BMA-managed cache controls or conversation key; providers may still cache prefixes on their own.","enum":["none","short","long"],"isRequired":true,"uniqueKey":"agent_config.model.default_cache_retention","typeLabel":"enum\u003cstring>"},"supports_tools":{"type":"boolean","isRequired":true,"uniqueKey":"agent_config.model.supports_tools","typeLabel":"boolean"},"supports_reasoning":{"type":"boolean","isRequired":true,"uniqueKey":"agent_config.model.supports_reasoning","typeLabel":"boolean"},"default_reasoning_effort":{"type":"string","isRequired":true,"uniqueKey":"agent_config.model.default_reasoning_effort","typeLabel":"string"},"supported_reasoning_efforts":{"type":"array","items":{"type":"string","uniqueKey":"agent_config.model.supported_reasoning_efforts.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"agent_config.model.supported_reasoning_efforts","typeLabel":"string[]"},"input_modalities":{"type":"array","items":{"type":"string","uniqueKey":"agent_config.model.input_modalities.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"agent_config.model.input_modalities","typeLabel":"string[]"},"output_modalities":{"type":"array","items":{"type":"string","uniqueKey":"agent_config.model.output_modalities.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"agent_config.model.output_modalities","typeLabel":"string[]"},"default_max_output_tokens":{"oneOf":[{"type":"integer","description":"Effective per-request output-token cap sent to the provider.","uniqueKey":"agent_config.model.default_max_output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Effective per-request output-token cap sent to the provider.","uniqueKey":"agent_config.model.default_max_output_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_config.model.default_max_output_tokens","typeLabel":"integer | null"}},"isRequired":true,"uniqueKey":"agent_config.model","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"agent_config.created_at","typeLabel":"string\u003cdate-time>"},"compiled_definition":{"type":"object","additionalProperties":false,"description":"Read-only saved compiled configuration, including default tools and derived subagent overrides.","required":["instruction","model"],"properties":{"instruction":{"type":"string","isRequired":true,"uniqueKey":"agent_config.compiled_definition.instruction","typeLabel":"string"},"model":{"type":"object","additionalProperties":false,"required":["configured_model_id"],"properties":{"configured_model_id":{"type":"string","pattern":"^mdl_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"x-go-type-skip-optional-pointer":true,"isRequired":true,"uniqueKey":"agent_config.compiled_definition.model.configured_model_id","typeLabel":"string"},"context_window_tokens":{"type":"integer","uniqueKey":"agent_config.compiled_definition.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","uniqueKey":"agent_config.compiled_definition.model.default_max_output_tokens","typeLabel":"integer"},"cache_retention":{"type":"string","description":"Prompt-cache preference for model requests; `short` when omitted. `short` applies the route's default caching (explicit cache breakpoints where the provider requires them) and, where the route accepts one, a stable conversation key for cache-aware routing. `long` prefers the route's extended cache lifetime where one exists (currently Anthropic's one-hour cache, which on Bedrock requires Claude 4.5 or newer) and behaves like `short` elsewhere. `none` sends no BMA-managed cache controls or conversation key; providers may still cache prefixes on their own.","enum":["none","short","long"],"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.model.cache_retention","typeLabel":"enum\u003cstring>"},"reasoning":{"type":"object","additionalProperties":false,"required":["effort"],"properties":{"effort":{"type":"string","isRequired":true,"uniqueKey":"agent_config.compiled_definition.model.reasoning.effort","typeLabel":"string"}},"uniqueKey":"agent_config.compiled_definition.model.reasoning","typeLabel":"object"}},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.model","typeLabel":"object"},"version":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.version","typeLabel":"string"},"machine_sources":{"type":"array","x-go-type-skip-optional-pointer":true,"items":{"type":"object","additionalProperties":false,"properties":{"machine_id":{"description":"Machine ID (mch_...).","type":"string","pattern":"^mch_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].machine_id","typeLabel":"string"},"machine_pool_id":{"description":"Machine pool ID (mpo_...).","type":"string","pattern":"^mpo_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].machine_pool_id","typeLabel":"string"},"max_machines":{"type":"integer","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].max_machines","typeLabel":"integer"},"initial_num_machines":{"type":"integer","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].initial_num_machines","typeLabel":"integer"},"delete_after_idle_minutes":{"type":"integer","uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].delete_after_idle_minutes","typeLabel":"integer"},"cwd":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].cwd","typeLabel":"string"},"machine_cpu":{"type":"integer","uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].machine_cpu","typeLabel":"integer"},"machine_memory_mb":{"type":"integer","uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].machine_memory_mb","typeLabel":"integer"},"env_overlay":{"type":"object","x-go-type":"map[string]*string","x-go-type-skip-optional-pointer":true,"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].env_overlay.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].env_overlay.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].env_overlay.additionalProperties","typeLabel":"string | null"},"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].env_overlay","typeLabel":"object"},"secret_env_overlay":{"type":"object","x-go-type":"map[string]*publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"x-go-type-skip-optional-pointer":true,"additionalProperties":{"oneOf":[{"type":"string","description":"Secret ID (sec_...).","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].secret_env_overlay.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].secret_env_overlay.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].secret_env_overlay.additionalProperties","typeLabel":"string | null"},"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].secret_env_overlay","typeLabel":"object"},"machine_provider_options_overlay":{"type":"object","x-go-type":"map[string]json.RawMessage","x-go-type-skip-optional-pointer":true,"additionalProperties":true,"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].machine_provider_options_overlay","typeLabel":"object"},"description":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"agent_config.compiled_definition.machine_sources.items.[INDEX]","typeLabel":"object"},"uniqueKey":"agent_config.compiled_definition.machine_sources","typeLabel":"object[]"},"tools":{"type":"object","x-go-type-skip-optional-pointer":true,"additionalProperties":{"type":"object","additionalProperties":false,"required":["enabled","permission"],"properties":{"enabled":{"type":"boolean","isRequired":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.enabled","typeLabel":"boolean"},"permission":{"type":"object","additionalProperties":false,"required":["mode","parameters"],"properties":{"mode":{"type":"string","isRequired":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"toolpermission.Selection","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/toolpermission"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.permission","typeLabel":"object"},"integration_id":{"type":"string","pattern":"^itg_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.integration_id","typeLabel":"string"},"type":{"type":"string","enum":["built_in","custom"],"x-enum-varnames":["CompiledToolTypeBuiltIn","CompiledToolTypeCustom"],"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.type","typeLabel":"enum\u003cstring>"},"deferred":{"type":"boolean","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.deferred","typeLabel":"boolean"},"description":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.description","typeLabel":"string"},"input_schema":{"type":"object","additionalProperties":true,"x-go-type":"json.RawMessage","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties.input_schema","typeLabel":"object"}},"uniqueKey":"agent_config.compiled_definition.tools.additionalProperties","typeLabel":"object"},"uniqueKey":"agent_config.compiled_definition.tools","typeLabel":"object"},"mcp":{"type":"object","x-go-type-skip-optional-pointer":true,"additionalProperties":{"type":"object","additionalProperties":false,"required":["default_enabled","permission"],"properties":{"default_enabled":{"type":"boolean","isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.default_enabled","typeLabel":"boolean"},"permission":{"type":"object","additionalProperties":false,"required":["mode","parameters"],"properties":{"mode":{"type":"string","isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"toolpermission.Selection","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/toolpermission"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.permission","typeLabel":"object"},"url":{"type":"string","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.url","typeLabel":"string"},"connection_origin":{"description":"Who connects an MCP server. `environment` means the executor starts or connects it in its own credential scope; `service` means the harness connects it and keeps its credentials.","type":"string","enum":["service","environment"],"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.connection_origin","typeLabel":"enum\u003cstring>"},"transport":{"description":"Transport of an environment-origin MCP server.","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"description":"Transport of an MCP server.","type":"string","enum":["stdio","http"],"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.type","typeLabel":"enum\u003cstring>"},"command":{"type":"string","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.command","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.args.items.[INDEX]","typeLabel":"string"},"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.args","typeLabel":"string[]"},"cwd":{"type":"string","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.cwd","typeLabel":"string"},"env":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.env.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.env","typeLabel":"object"},"timeout_ms":{"type":"integer","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.timeout_ms","typeLabel":"integer"},"command_sha256":{"type":"string","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.command_sha256","typeLabel":"string"},"url":{"type":"string","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport.url","typeLabel":"string"}},"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.transport","typeLabel":"object"},"auth":{"oneOf":[{"type":"object","required":["type","secret_id"],"properties":{"type":{"type":"string","enum":["bearer"],"x-enum-varnames":["CompiledMCPAuthBearerTypeBearer"],"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.0.type","typeLabel":"enum\u003cstring>"},"secret_id":{"description":"Secret ID (sec_...).","type":"string","pattern":"^sec_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.0.secret_id","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.0","typeLabel":"object"},{"type":"object","required":["type","secret_id"],"properties":{"type":{"type":"string","enum":["oauth"],"x-enum-varnames":["CompiledMCPAuthOAuthTypeOAuth"],"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.1.type","typeLabel":"enum\u003cstring>"},"secret_id":{"description":"Secret ID (sec_...).","type":"string","pattern":"^sec_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.1.secret_id","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.1","typeLabel":"object"},{"type":"object","required":["type","secret_id","service","region"],"properties":{"type":{"type":"string","enum":["sigv4"],"x-enum-varnames":["CompiledMCPAuthSigV4TypeSigV4"],"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.2.type","typeLabel":"enum\u003cstring>"},"secret_id":{"description":"Secret ID (sec_...).","type":"string","pattern":"^sec_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.2.secret_id","typeLabel":"string"},"service":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.2.service","typeLabel":"string"},"region":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.2.region","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth.oneOf.2","typeLabel":"object"}],"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.auth","typeLabel":"object"},"deferred":{"type":"boolean","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.deferred","typeLabel":"boolean"},"tools":{"type":"object","x-go-type-skip-optional-pointer":true,"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.tools.additionalProperties.enabled","typeLabel":"boolean"},"permission":{"type":"object","additionalProperties":false,"required":["mode","parameters"],"properties":{"mode":{"type":"string","isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.tools.additionalProperties.permission.mode","typeLabel":"string"},"parameters":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.tools.additionalProperties.permission.parameters","typeLabel":"object"}},"x-go-type":"toolpermission.Selection","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/toolpermission"},"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.tools.additionalProperties.permission","typeLabel":"object"},"deferred":{"type":"boolean","uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.tools.additionalProperties.deferred","typeLabel":"boolean"}},"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.tools.additionalProperties","typeLabel":"object"},"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties.tools","typeLabel":"object"}},"uniqueKey":"agent_config.compiled_definition.mcp.additionalProperties","typeLabel":"object"},"uniqueKey":"agent_config.compiled_definition.mcp","typeLabel":"object"},"interaction_handlers":{"type":"object","x-go-type-skip-optional-pointer":true,"additionalProperties":{"type":"object","additionalProperties":false,"required":["integration_id"],"properties":{"integration_id":{"type":"string","pattern":"^itg_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.interaction_handlers.additionalProperties.integration_id","typeLabel":"string"}},"uniqueKey":"agent_config.compiled_definition.interaction_handlers.additionalProperties","typeLabel":"object"},"uniqueKey":"agent_config.compiled_definition.interaction_handlers","typeLabel":"object"},"git_credentials":{"type":"object","additionalProperties":false,"description":"Pinned GitHub integration supplying machine Git credentials, optionally limited to repositories and read-only access.","required":["integration","integration_id"],"properties":{"integration":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9-]{0,31}$","description":"Immutable, project-unique integration name used in config keys and qualified tool names.","isRequired":true,"uniqueKey":"agent_config.compiled_definition.git_credentials.integration","typeLabel":"string"},"integration_id":{"type":"string","pattern":"^itg_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.git_credentials.integration_id","typeLabel":"string"},"repository_ids":{"type":"array","x-go-type-skip-optional-pointer":true,"items":{"type":"integer","format":"int64","uniqueKey":"agent_config.compiled_definition.git_credentials.repository_ids.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"agent_config.compiled_definition.git_credentials.repository_ids","typeLabel":"integer\u003cint64>[]"},"read_only":{"type":"boolean","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.git_credentials.read_only","typeLabel":"boolean"}},"uniqueKey":"agent_config.compiled_definition.git_credentials","typeLabel":"object"},"skills":{"type":"array","x-go-type-skip-optional-pointer":true,"items":{"type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","pattern":"^skl_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.skills.items.[INDEX].id","typeLabel":"string"}},"uniqueKey":"agent_config.compiled_definition.skills.items.[INDEX]","typeLabel":"object"},"uniqueKey":"agent_config.compiled_definition.skills","typeLabel":"object[]"},"memory_stores":{"type":"array","x-go-type-skip-optional-pointer":true,"items":{"type":"object","additionalProperties":false,"required":["id","access"],"properties":{"id":{"type":"string","pattern":"^mst_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.memory_stores.items.[INDEX].id","typeLabel":"string"},"access":{"type":"string","enum":["read","read_write"],"isRequired":true,"uniqueKey":"agent_config.compiled_definition.memory_stores.items.[INDEX].access","typeLabel":"enum\u003cstring>"}},"uniqueKey":"agent_config.compiled_definition.memory_stores.items.[INDEX]","typeLabel":"object"},"uniqueKey":"agent_config.compiled_definition.memory_stores","typeLabel":"object[]"},"subagents":{"type":"object","x-go-type-skip-optional-pointer":true,"additionalProperties":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["self"],"x-enum-varnames":["CompiledSelfSubagentTypeSelf"],"isRequired":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.description","typeLabel":"string"},"model":{"type":"object","additionalProperties":false,"properties":{"configured_model_id":{"type":"string","pattern":"^mdl_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.model.configured_model_id","typeLabel":"string"},"context_window_tokens":{"type":"integer","uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.model.default_max_output_tokens","typeLabel":"integer"},"cache_retention":{"type":"string","description":"Prompt-cache preference for model requests; `short` when omitted. `short` applies the route's default caching (explicit cache breakpoints where the provider requires them) and, where the route accepts one, a stable conversation key for cache-aware routing. `long` prefers the route's extended cache lifetime where one exists (currently Anthropic's one-hour cache, which on Bedrock requires Claude 4.5 or newer) and behaves like `short` elsewhere. `none` sends no BMA-managed cache controls or conversation key; providers may still cache prefixes on their own.","enum":["none","short","long"],"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.model.cache_retention","typeLabel":"enum\u003cstring>"},"reasoning":{"type":"object","additionalProperties":false,"required":["effort"],"properties":{"effort":{"type":"string","isRequired":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.model.reasoning.effort","typeLabel":"string"}},"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.model.reasoning","typeLabel":"object"}},"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.model","typeLabel":"object"},"instruction_append":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.instruction_append","typeLabel":"string"},"max_instances":{"type":"integer","uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.max_instances","typeLabel":"integer"},"archive_after_idle_minutes":{"type":"integer","uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0.archive_after_idle_minutes","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","required":["type","profile_id"],"properties":{"type":{"type":"string","enum":["profile"],"x-enum-varnames":["CompiledProfileSubagentTypeProfile"],"isRequired":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"profile_id":{"type":"string","pattern":"^aprf_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"isRequired":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.profile_id","typeLabel":"string"},"description":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.description","typeLabel":"string"},"model":{"type":"object","additionalProperties":false,"properties":{"configured_model_id":{"type":"string","pattern":"^mdl_[a-z2-7]{26}$","x-go-type":"publicid.ID","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/publicid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.model.configured_model_id","typeLabel":"string"},"context_window_tokens":{"type":"integer","uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.model.context_window_tokens","typeLabel":"integer"},"default_max_output_tokens":{"type":"integer","uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.model.default_max_output_tokens","typeLabel":"integer"},"cache_retention":{"type":"string","description":"Prompt-cache preference for model requests; `short` when omitted. `short` applies the route's default caching (explicit cache breakpoints where the provider requires them) and, where the route accepts one, a stable conversation key for cache-aware routing. `long` prefers the route's extended cache lifetime where one exists (currently Anthropic's one-hour cache, which on Bedrock requires Claude 4.5 or newer) and behaves like `short` elsewhere. `none` sends no BMA-managed cache controls or conversation key; providers may still cache prefixes on their own.","enum":["none","short","long"],"x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.model.cache_retention","typeLabel":"enum\u003cstring>"},"reasoning":{"type":"object","additionalProperties":false,"required":["effort"],"properties":{"effort":{"type":"string","isRequired":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.model.reasoning.effort","typeLabel":"string"}},"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.model.reasoning","typeLabel":"object"}},"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.model","typeLabel":"object"},"instruction_append":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.instruction_append","typeLabel":"string"},"max_instances":{"type":"integer","uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.max_instances","typeLabel":"integer"},"archive_after_idle_minutes":{"type":"integer","uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1.archive_after_idle_minutes","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties.oneOf.1","typeLabel":"object"}],"uniqueKey":"agent_config.compiled_definition.subagents.additionalProperties","typeLabel":"object"},"uniqueKey":"agent_config.compiled_definition.subagents","typeLabel":"object"},"max_subagents":{"type":"integer","uniqueKey":"agent_config.compiled_definition.max_subagents","typeLabel":"integer"},"max_depth":{"type":"integer","uniqueKey":"agent_config.compiled_definition.max_depth","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"agent_config.compiled_definition","typeLabel":"object"},"source":{"type":"string","description":"Saved source text. YAML sources keep their original text; JSON sources are stored canonicalized.","uniqueKey":"agent_config.source","typeLabel":"string"},"source_format":{"type":"string","enum":["yaml","json"],"uniqueKey":"agent_config.source_format","typeLabel":"enum\u003cstring>"},"instruction_hash":{"type":"string","uniqueKey":"agent_config.instruction_hash","typeLabel":"string"}},"isRequired":true,"uniqueKey":"agent_config","typeLabel":"object"},"machine_bindings":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","project_id","agent_id","machine_id","binding_kind","state","description","cwd","env_overlay","secret_env_overlay","created_at","updated_at"],"properties":{"id":{"type":"string","pattern":"^amb_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].id","typeLabel":"string"},"project_id":{"description":"Project ID (proj_...).","type":"string","pattern":"^proj_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].project_id","typeLabel":"string"},"agent_id":{"type":"string","pattern":"^agt_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].agent_id","typeLabel":"string"},"machine_id":{"description":"Machine ID (mch_...).","type":"string","pattern":"^mch_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].machine_id","typeLabel":"string"},"binding_kind":{"type":"string","enum":["explicit","pool"],"x-enum-varnames":["AgentMachineBindingKindExplicit","AgentMachineBindingKindPool"],"isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].binding_kind","typeLabel":"enum\u003cstring>"},"state":{"type":"string","enum":["attached","released"],"x-enum-varnames":["AgentMachineBindingStateAttached","AgentMachineBindingStateReleased"],"isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].state","typeLabel":"enum\u003cstring>"},"description":{"type":"string","isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].description","typeLabel":"string"},"cwd":{"type":"string","isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].cwd","typeLabel":"string"},"env_overlay":{"description":"Env overlay applied to processes launched through this binding. For pool bindings it is also applied to the machine environment when the pool machine is provisioned, so the provider_options startup_script and the daemon run with it; connected machines keep their own environment. A null entry removes the key.","type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"machine_bindings.items.[INDEX].env_overlay.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"machine_bindings.items.[INDEX].env_overlay.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"machine_bindings.items.[INDEX].env_overlay.additionalProperties","typeLabel":"string | null"},"isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].env_overlay","typeLabel":"object"},"secret_env_overlay":{"description":"Secret env overlay applied to processes launched through this binding. For pool bindings it is also applied to the machine environment when the pool machine is provisioned, so the provider_options startup_script and the daemon run with it; connected machines keep their own environment. A null entry removes the key.","type":"object","additionalProperties":{"oneOf":[{"type":"string","description":"Secret ID (sec_...).","pattern":"^sec_[a-z2-7]{26}$","uniqueKey":"machine_bindings.items.[INDEX].secret_env_overlay.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"machine_bindings.items.[INDEX].secret_env_overlay.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"machine_bindings.items.[INDEX].secret_env_overlay.additionalProperties","typeLabel":"string | null"},"isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].secret_env_overlay","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"machine_bindings.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"machine_bindings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"machine_bindings","typeLabel":"object[]"},"agent_input":{"type":"object","additionalProperties":false,"required":["id","agent_id","state","delivery_mode","input_kind","queued_at"],"properties":{"id":{"type":"string","pattern":"^ain_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent_input.id","typeLabel":"string"},"agent_id":{"type":"string","pattern":"^agt_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent_input.agent_id","typeLabel":"string"},"state":{"type":"string","isRequired":true,"uniqueKey":"agent_input.state","typeLabel":"string"},"delivery_mode":{"type":"string","enum":["queued","steering","immediate"],"isRequired":true,"uniqueKey":"agent_input.delivery_mode","typeLabel":"enum\u003cstring>"},"input_kind":{"type":"string","enum":["content","control","interaction_response","config_change"],"x-enum-varnames":["AgentInputKindContent","AgentInputKindControl","AgentInputKindInteractionResponse","AgentInputKindConfigChange"],"isRequired":true,"uniqueKey":"agent_input.input_kind","typeLabel":"enum\u003cstring>"},"queued_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"agent_input.queued_at","typeLabel":"string\u003cdate-time>"},"actor_id":{"type":"string","pattern":"^actr_[a-z2-7]{26}$","description":"Actor this input is attributed to. Absent when the input has no actor attribution.","uniqueKey":"agent_input.actor_id","typeLabel":"string"},"input_idempotency_key":{"type":"string","description":"Idempotency key supplied when this content input was created. Absent for other input kinds.","uniqueKey":"agent_input.input_idempotency_key","typeLabel":"string"},"content_blocks":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","isRequired":true,"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.0.text","typeLabel":"string"},"metadata":{"type":"object","description":"Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 characters, values must be strings of up to 512 characters. Keys beginning with `bma_` are reserved for BMA and may affect product behavior; use them only when intentionally invoking BMA-defined behavior.","x-go-type":"resourcemeta.Metadata","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/resourcemeta"},"x-go-type-skip-optional-pointer":true,"maxProperties":16,"propertyNames":{"minLength":1,"maxLength":64},"additionalProperties":{"type":"string","maxLength":512,"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.0.metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.0.metadata","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","artifact_id"],"properties":{"type":{"type":"string","enum":["media_ref"],"isRequired":true,"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"artifact_id":{"type":"string","pattern":"^art_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.1.artifact_id","typeLabel":"string"},"exclude_from_model_context":{"type":"boolean","description":"Whether the referenced artifact is excluded from later model context.","uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.1.exclude_from_model_context","typeLabel":"boolean"},"metadata":{"type":"object","description":"Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 characters, values must be strings of up to 512 characters. Keys beginning with `bma_` are reserved for BMA and may affect product behavior; use them only when intentionally invoking BMA-defined behavior.","x-go-type":"resourcemeta.Metadata","x-go-type-import":{"path":"github.com/beeos-ai/beeos-managed-agents/backend/internal/resourcemeta"},"x-go-type-skip-optional-pointer":true,"maxProperties":16,"propertyNames":{"minLength":1,"maxLength":64},"additionalProperties":{"type":"string","maxLength":512,"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.1.metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.1.metadata","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"agent_input.content_blocks.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"agent_input.content_blocks.items.[INDEX]","typeLabel":"object"},"uniqueKey":"agent_input.content_blocks","typeLabel":"object[]"}},"uniqueKey":"agent_input","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agent":{"id":"\u003cstring>","org_id":"\u003cstring>","project_id":"\u003cstring>","state":"active","name":"\u003cstring>","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","agent_profile_id":"\u003cstring>","integration_target":{"provider":"\u003cstring>","conversation":{},"display_name":"\u003cstring>","provider_uri":"\u003cstring>"},"current_config_id":"\u003cstring>","model":{"provider_config":"\u003cstring>","name":"\u003cstring>"},"parent_agent_id":"\u003cstring>","subagent_key":"\u003cstring>","activity":{"state":"running","last_activity_at":"2023-11-07T05:31:56Z"},"usage":{"model_calls":1,"tokens":{"input_tokens_total":1,"uncached_input_tokens":1,"cache_read_input_tokens":1,"cache_write_input_tokens":1,"output_tokens_total":1,"reasoning_output_tokens":1},"cost":{"provider_reported_usd":"\u003cstring>","model_calls_with_reported_cost":1}},"archived_at":"2023-11-07T05:31:56Z"},"agent_config":{"id":"\u003cstring>","org_id":"\u003cstring>","project_id":"\u003cstring>","effective_definition_hash":"\u003cstring>","model":{"provider_config":"\u003cstring>","name":"\u003cstring>","provider_model_slug":"\u003cstring>","configured_model_id":"\u003cstring>","current_revision_id":"\u003cstring>","api_format":"openai-responses","api_variant":"\u003cstring>","context_window_tokens":123,"max_output_tokens":123,"default_cache_retention":"none","supports_tools":true,"supports_reasoning":true,"default_reasoning_effort":"\u003cstring>","supported_reasoning_efforts":["\u003cstring>"],"input_modalities":["\u003cstring>"],"output_modalities":["\u003cstring>"],"default_max_output_tokens":123},"created_at":"2023-11-07T05:31:56Z","compiled_definition":{"instruction":"\u003cstring>","model":{"configured_model_id":"\u003cstring>","context_window_tokens":123,"default_max_output_tokens":123,"cache_retention":"none","reasoning":{"effort":"\u003cstring>"}},"version":"\u003cstring>","machine_sources":[{"machine_id":"\u003cstring>","machine_pool_id":"\u003cstring>","max_machines":123,"initial_num_machines":123,"delete_after_idle_minutes":123,"cwd":"\u003cstring>","machine_cpu":123,"machine_memory_mb":123,"env_overlay":{},"secret_env_overlay":{},"machine_provider_options_overlay":{},"description":"\u003cstring>"}],"tools":{},"mcp":{},"interaction_handlers":{},"git_credentials":{"integration":"\u003cstring>","integration_id":"\u003cstring>","repository_ids":[123],"read_only":true},"skills":[{"id":"\u003cstring>"}],"memory_stores":[{"id":"\u003cstring>","access":"read"}],"subagents":{},"max_subagents":123,"max_depth":123},"source":"\u003cstring>","source_format":"yaml","instruction_hash":"\u003cstring>"},"machine_bindings":[{"id":"\u003cstring>","project_id":"\u003cstring>","agent_id":"\u003cstring>","machine_id":"\u003cstring>","binding_kind":"explicit","state":"attached","description":"\u003cstring>","cwd":"\u003cstring>","env_overlay":{},"secret_env_overlay":{},"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}],"agent_input":{"id":"\u003cstring>","agent_id":"\u003cstring>","state":"\u003cstring>","delivery_mode":"queued","input_kind":"content","queued_at":"2023-11-07T05:31:56Z","actor_id":"\u003cstring>","input_idempotency_key":"\u003cstring>","content_blocks":[{"type":"text","text":"\u003cstring>","metadata":{}}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"f827eaef-5eec-460b-82ce-968dbec4b2d9":{"description":"The request was invalid.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"79d04bc5-0156-4c35-b57b-533c8d3403be":{"description":"Authentication is required or invalid.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"0daa0db8-aaf2-435f-906f-adc1cc785af7":{"description":"The authenticated principal is not authorized.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"70110bbb-98a4-43e0-97b0-4229175ae80f":{"description":"The requested resource was not found or is not visible.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"70a136b1-ef22-43d2-88ea-187e7ffd4f35":{"description":"The launch conflicts with current resource state for a reason other than a changed retry body.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"8fe115b6-1569-4e1d-a925-edf73141e982":{"description":"The service dependency required to satisfy the request is unavailable.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"80595884-c821-46f6-9ca6-c64f041f2462":{"description":"Any other client error. The body carries the shared Error envelope restricted to client error codes; statuses with a dedicated response above are documented precisely.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code carried by 4XX statuses. Subset of the Error code enum whose statuses are client errors.","x-extensible-enum":["invalid_request","validation_failed","unauthorized","forbidden","csrf_check_failed","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","pending_work","not_wake_capable","gone","daemon_runtime_unregistered","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"0d3e82fe-8f2b-4f1c-a9d6-81eb3f5ef972":{"description":"Any other server error. The body carries the shared Error envelope restricted to server error codes.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code carried by 5XX statuses. Subset of the Error code enum whose statuses are server errors.","x-extensible-enum":["internal_error","service_unavailable","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"73c647f1-0ab5-40cf-be60-9ad4d13b7220":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"BMA personal or organization access token","description":"An opaque BMA personal or organization bearer token.","scopes":[],"schemeName":"bearerAuth"}},"caf32a3b-74e1-4344-ad32-076b5c9533ce":{"browserSessionCookie":{"type":"apiKey","in":"cookie","name":"__Host-bma_session","description":"Browser session cookie. HTTPS deployments use __Host-bma_session; local HTTP development uses bma_session.","scopes":[],"schemeName":"browserSessionCookie"},"csrfHeader":{"type":"apiKey","in":"header","name":"X-BMA-Csrf","description":"CSRF token header required for browser-session mutations. The value must match the session's CSRF cookie.","scopes":[],"schemeName":"csrfHeader"}}},"servers":{"0bf5897a-c269-4b65-9499-ed03df44e358":{"url":"https://api.staging.bma.beeos.ai/api/v1","description":"Hosted BMA"},"949c42bc-5dd5-4a3b-abdf-7e9c2463228e":{"url":"/api/v1","description":"Self-hosted BMA, relative to the deployment origin"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"BMA personal or organization access token","description":"An opaque BMA personal or organization bearer token.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An opaque BMA personal or organization bearer token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"cookie","name":"__Host-bma_session","description":"Browser session cookie. HTTPS deployments use __Host-bma_session; local HTTP development uses bma_session.","scopes":[],"schemeName":"browserSessionCookie"},"schema":{"title":"__Host-bma_session","type":"string","description":"Browser session cookie. HTTPS deployments use __Host-bma_session; local HTTP development uses bma_session.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"browserSessionCookie","name":"__Host-bma_session"},{"scheme":{"type":"apiKey","in":"header","name":"X-BMA-Csrf","description":"CSRF token header required for browser-session mutations. The value must match the session's CSRF cookie.","scopes":[],"schemeName":"csrfHeader"},"schema":{"title":"X-BMA-Csrf","type":"string","description":"CSRF token header required for browser-session mutations. The value must match the session's CSRF cookie.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"csrfHeader","name":"X-BMA-Csrf"}],"title":"browserSessionCookie \u0026 csrfHeader"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"localhost","siteName":"BMA Developer Docs","title":"Create agent - BMA Developer Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/native/agents/create-agent","matchLevel":0},"zh":{"href":"/zh/api-reference/native/agents/create-agent","matchLevel":1}}},"originalFileLocation":"api-reference/native/agents/create-agent.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Launch from a pinned config, optionally adding agent-local integration tools, subscriptions and interaction handlers and admitting an attributed initial text input in the same transaction. Adding integration capabilities requires project management permission; launching an existing config requires agent operate permission. Reusing an idempotency key returns the current agent even if the retry body differs. The retry body is not applied and integration references are not resolved again.\">\u003cmeta data-mint-head name=\"application-name\" content=\"BMA Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/favicons/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicons/favicon-32x32.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicons/favicon-16x16.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicons/favicon.ico\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create agent - BMA Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Launch from a pinned config, optionally adding agent-local integration tools, subscriptions and interaction handlers and admitting an attributed initial text input in the same transaction. Adding integration capabilities requires project management permission; launching an existing config requires agent operate permission. Reusing an idempotency key returns the current agent even if the retry body differs. The retry body is not applied and integration references are not resolved again.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"BMA Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://local./api-reference/native/agents/create-agent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create agent - BMA Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Launch from a pinned config, optionally adding agent-local integration tools, subscriptions and interaction handlers and admitting an attributed initial text input in the same transaction. Adding integration capabilities requires project management permission; launching an existing config requires agent operate permission. Reusing an idempotency key returns the current agent even if the retry body differs. The retry body is not applied and integration references are not resolved again.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/favicons/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"BMA Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F97316\">\u003clink data-mint-head rel=\"canonical\" href=\"https://local./api-reference/native/agents/create-agent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/native/agents/create-agent.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://local./api-reference/native/agents/create-agent\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://local./zh/api-reference/native/agents/create-agent\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://local./api-reference/native/agents/create-agent\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"BMA Developer Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"BMA Developer Docs","nav":{"languages":[{"language":"en","default":true,"banner":{"content":"BMA is in **early access**. Pages mark each capability as Available, Preview, or Roadmap.","dismissible":true},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API reference","groups":[{"group":"API reference","pages":[{"title":"API reference","icon":"book","href":"/api-reference/introduction"}]},{"group":"Native REST API","pages":[{"group":"Events","pages":[{"title":"List event webhooks for one scope","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/event-webhooks","href":"/api-reference/native/events/list-event-webhooks-for-one-scope"},{"title":"Create an event webhook","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/event-webhooks","href":"/api-reference/native/events/create-an-event-webhook"},{"title":"Delete an event webhook","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/event-webhooks/{webhookID}","href":"/api-reference/native/events/delete-an-event-webhook"},{"title":"Update event webhook settings","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/event-webhooks/{webhookID}","href":"/api-reference/native/events/update-event-webhook-settings"},{"title":"List turns","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/turns","href":"/api-reference/native/events/list-turns"},{"title":"List turn events","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/turns/{turnID}/events","href":"/api-reference/native/events/list-turn-events"},{"title":"List events","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/events","href":"/api-reference/native/events/list-events"},{"title":"Stream events","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/events/stream","href":"/api-reference/native/events/stream-events"},{"title":"List session artifacts","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/artifacts","href":"/api-reference/native/events/list-session-artifacts"},{"title":"Upload a session artifact","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/artifacts","href":"/api-reference/native/events/upload-a-session-artifact"},{"title":"Get session artifact content","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/artifacts/{artifactID}/content","href":"/api-reference/native/events/get-session-artifact-content"},{"title":"Get artifact","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/artifacts/{artifactID}","href":"/api-reference/native/events/get-artifact"},{"title":"Get artifact content","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/artifacts/{artifactID}/content","href":"/api-reference/native/events/get-artifact-content"}]},{"group":"Users and API Keys","pages":[{"title":"List the authenticated user's personal access tokens","openapi":"/api-reference/openapi.yaml get /personal-access-tokens","href":"/api-reference/native/users-and-api-keys/list-the-authenticated-users-personal-access-tokens"},{"title":"Create personal access token","openapi":"/api-reference/openapi.yaml post /personal-access-tokens","href":"/api-reference/native/users-and-api-keys/create-personal-access-token"},{"title":"Revoke a personal access token","openapi":"/api-reference/openapi.yaml post /personal-access-tokens/{tokenID}/revoke","href":"/api-reference/native/users-and-api-keys/revoke-a-personal-access-token"},{"title":"Get the authenticated user and their organizations","openapi":"/api-reference/openapi.yaml get /me","href":"/api-reference/native/users-and-api-keys/get-the-authenticated-user-and-their-organizations"},{"title":"Delete the authenticated user's account","openapi":"/api-reference/openapi.yaml delete /me","href":"/api-reference/native/users-and-api-keys/delete-the-authenticated-users-account"},{"title":"List pending invitations","openapi":"/api-reference/openapi.yaml get /invitations","href":"/api-reference/native/users-and-api-keys/list-pending-invitations"},{"title":"Accept invitation","openapi":"/api-reference/openapi.yaml post /invitations/{invitationID}/accept","href":"/api-reference/native/users-and-api-keys/accept-invitation"},{"title":"Decline invitation","openapi":"/api-reference/openapi.yaml post /invitations/{invitationID}/decline","href":"/api-reference/native/users-and-api-keys/decline-invitation"},{"title":"List org API keys","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/api-keys","href":"/api-reference/native/users-and-api-keys/list-org-api-keys"},{"title":"Create org API key","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/api-keys","href":"/api-reference/native/users-and-api-keys/create-org-api-key"},{"title":"Get an org API key","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/api-keys/{keyID}","href":"/api-reference/native/users-and-api-keys/get-an-org-api-key"},{"title":"Update an org API key","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/api-keys/{keyID}","href":"/api-reference/native/users-and-api-keys/update-an-org-api-key"},{"title":"Revoke an org API key","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/api-keys/{keyID}/revoke","href":"/api-reference/native/users-and-api-keys/revoke-an-org-api-key"},{"title":"List an org API key's explicit project role grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/api-keys/{keyID}/projects","href":"/api-reference/native/users-and-api-keys/list-an-org-api-keys-explicit-project-role-grants"},{"title":"Set an org API key's role on a project","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/api-keys/{keyID}/projects/{projectID}","href":"/api-reference/native/users-and-api-keys/set-an-org-api-keys-role-on-a-project"},{"title":"Remove an org API key's project role grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/api-keys/{keyID}/projects/{projectID}","href":"/api-reference/native/users-and-api-keys/remove-an-org-api-keys-project-role-grant"}]},{"group":"Machine Daemon","pages":[]},{"group":"Organizations and Projects","pages":[{"title":"List the authenticated principal's organizations","openapi":"/api-reference/openapi.yaml get /orgs","href":"/api-reference/native/organizations-and-projects/list-the-authenticated-principals-organizations"},{"title":"Create organization","openapi":"/api-reference/openapi.yaml post /orgs","href":"/api-reference/native/organizations-and-projects/create-organization"},{"title":"Delete organization","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}","href":"/api-reference/native/organizations-and-projects/delete-organization"},{"title":"Get org usage","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/usage","href":"/api-reference/native/organizations-and-projects/get-org-usage"},{"title":"Get usage timeseries","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/usage/timeseries","href":"/api-reference/native/organizations-and-projects/get-usage-timeseries"},{"title":"List visible projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects","href":"/api-reference/native/organizations-and-projects/list-visible-projects"},{"title":"Create project","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects","href":"/api-reference/native/organizations-and-projects/create-project"},{"title":"Delete project","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}","href":"/api-reference/native/organizations-and-projects/delete-project"},{"title":"Get project usage","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/usage","href":"/api-reference/native/organizations-and-projects/get-project-usage"},{"title":"List organization members","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/members","href":"/api-reference/native/organizations-and-projects/list-organization-members"},{"title":"Remove org member","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/members/{userID}","href":"/api-reference/native/organizations-and-projects/remove-org-member"},{"title":"Update org member role","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/members/{userID}","href":"/api-reference/native/organizations-and-projects/update-org-member-role"},{"title":"List a member's explicit project role grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/members/{userID}/projects","href":"/api-reference/native/organizations-and-projects/list-a-members-explicit-project-role-grants"},{"title":"Set a member's role on a project","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/members/{userID}/projects/{projectID}","href":"/api-reference/native/organizations-and-projects/set-a-members-role-on-a-project"},{"title":"Remove a member's project role grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/members/{userID}/projects/{projectID}","href":"/api-reference/native/organizations-and-projects/remove-a-members-project-role-grant"},{"title":"List org invitations","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/invitations","href":"/api-reference/native/organizations-and-projects/list-org-invitations"},{"title":"Create org invitation","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/invitations","href":"/api-reference/native/organizations-and-projects/create-org-invitation"},{"title":"Delete org invitation","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/invitations/{invitationID}","href":"/api-reference/native/organizations-and-projects/delete-org-invitation"}]},{"group":"Agents","pages":[{"title":"List agents across projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/agents","href":"/api-reference/native/agents/list-agents-across-projects"},{"title":"List agents","description":"Lists the project's agents with their current activity, newest first by default. Archived agents and subagents are excluded unless requested.","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents","href":"/api-reference/native/agents/list-agents"},{"title":"Create agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents","href":"/api-reference/native/agents/create-agent"},{"title":"Get agent","description":"Returns one agent's state, model, profile, current config ID, activity (running, waiting_on_interaction, idle, or archived), attached machines, and MCP connection states. The conversation isn't included.","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}","href":"/api-reference/native/agents/get-agent"},{"title":"Get agent usage","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/usage","href":"/api-reference/native/agents/get-agent-usage"},{"title":"Archive agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/archive","href":"/api-reference/native/agents/archive-agent"},{"title":"Update agent config","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/config","href":"/api-reference/native/agents/update-agent-config"},{"title":"Read the session model override metadata","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/model-override","href":"/api-reference/native/agents/read-the-session-model-override-metadata"},{"title":"Create or replace the session model override","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/agents/{agentID}/model-override","href":"/api-reference/native/agents/create-or-replace-the-session-model-override"},{"title":"Revoke the session model override","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agents/{agentID}/model-override","href":"/api-reference/native/agents/revoke-the-session-model-override"},{"title":"Modify the session model override","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/agents/{agentID}/model-override","href":"/api-reference/native/agents/modify-the-session-model-override"},{"title":"Read the agent executor binding","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/executor-binding","href":"/api-reference/native/agents/read-the-agent-executor-binding"},{"title":"Run the agent on an agent executor","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/agents/{agentID}/executor-binding","href":"/api-reference/native/agents/run-the-agent-on-an-agent-executor"},{"title":"Read a session model override metadata","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/model-override","href":"/api-reference/native/agents/read-a-session-model-override-metadata"},{"title":"Create or replace a session model override","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/model-override","href":"/api-reference/native/agents/create-or-replace-a-session-model-override"},{"title":"Revoke a session model override","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/model-override","href":"/api-reference/native/agents/revoke-a-session-model-override"},{"title":"Modify a session model override","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/model-override","href":"/api-reference/native/agents/modify-a-session-model-override"},{"title":"Create agent input","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs","href":"/api-reference/native/agents/create-agent-input"},{"title":"List agent sessions","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions","href":"/api-reference/native/agents/list-agent-sessions"},{"title":"Create agent session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions","href":"/api-reference/native/agents/create-agent-session"},{"title":"Get agent session","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}","href":"/api-reference/native/agents/get-agent-session"},{"title":"Update agent session","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}","href":"/api-reference/native/agents/update-agent-session"},{"title":"Archive agent session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/archive","href":"/api-reference/native/agents/archive-agent-session"},{"title":"Cancel agent session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/cancel","href":"/api-reference/native/agents/cancel-agent-session"},{"title":"Get an agent session by id","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-sessions/{sessionID}","href":"/api-reference/native/agents/get-an-agent-session-by-id"},{"title":"List tool calls","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/tool-calls","href":"/api-reference/native/agents/list-tool-calls"},{"title":"Submit a result for a ready custom tool call","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/tool-calls/{toolCallID}/result","href":"/api-reference/native/agents/submit-a-result-for-a-ready-custom-tool-call"},{"title":"Cancel agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/cancel","href":"/api-reference/native/agents/cancel-agent"},{"title":"List waiting backlog inputs","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/backlog","href":"/api-reference/native/agents/list-waiting-backlog-inputs"},{"title":"Cancel queued backlog input","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/{inputID}/cancel","href":"/api-reference/native/agents/cancel-queued-backlog-input"},{"title":"Move queued backlog input","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/{inputID}/move","href":"/api-reference/native/agents/move-queued-backlog-input"},{"title":"Promote queued input to steering","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/{inputID}/promote_to_steering","href":"/api-reference/native/agents/promote-queued-input-to-steering"},{"title":"Demote steering input to queued","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/{inputID}/demote_to_queued","href":"/api-reference/native/agents/demote-steering-input-to-queued"}]},{"group":"Configs and Profiles","pages":[{"title":"List agent profiles across projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/agent-profiles","href":"/api-reference/native/configs-and-profiles/list-agent-profiles-across-projects"},{"title":"Resolve agent config tools","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agent-configs/tools","href":"/api-reference/native/configs-and-profiles/resolve-agent-config-tools"},{"title":"Create agent config","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agent-configs","href":"/api-reference/native/configs-and-profiles/create-agent-config"},{"title":"Get tool catalog","openapi":"/api-reference/openapi.yaml get /tool-catalog","href":"/api-reference/native/configs-and-profiles/get-tool-catalog"},{"title":"Search the MCP server registry","openapi":"/api-reference/openapi.yaml get /mcp-servers","href":"/api-reference/native/configs-and-profiles/search-the-mcp-server-registry"},{"title":"List an MCP server's tools","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/mcp-servers/tools","href":"/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools"},{"title":"Get agent config","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-configs/{agentConfigID}","href":"/api-reference/native/configs-and-profiles/get-agent-config"},{"title":"Get generated agent config source","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-configs/{agentConfigID}/generated-source","href":"/api-reference/native/configs-and-profiles/get-generated-agent-config-source"},{"title":"List agent profiles","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-profiles","href":"/api-reference/native/configs-and-profiles/list-agent-profiles"},{"title":"Create agent profile","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agent-profiles","href":"/api-reference/native/configs-and-profiles/create-agent-profile"},{"title":"Get agent profile","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}","href":"/api-reference/native/configs-and-profiles/get-agent-profile"},{"title":"Delete agent profile","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}","href":"/api-reference/native/configs-and-profiles/delete-agent-profile"},{"title":"Rename agent profile","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}","href":"/api-reference/native/configs-and-profiles/rename-agent-profile"},{"title":"Get agent profile usage","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}/usage","href":"/api-reference/native/configs-and-profiles/get-agent-profile-usage"},{"title":"Update agent profile","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}/config","href":"/api-reference/native/configs-and-profiles/update-agent-profile"},{"title":"List cron triggers","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/cron-triggers","href":"/api-reference/native/configs-and-profiles/list-cron-triggers"},{"title":"Create cron trigger","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/cron-triggers","href":"/api-reference/native/configs-and-profiles/create-cron-trigger"},{"title":"Get cron trigger","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/cron-triggers/{cronTriggerID}","href":"/api-reference/native/configs-and-profiles/get-cron-trigger"},{"title":"Delete cron trigger","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/cron-triggers/{cronTriggerID}","href":"/api-reference/native/configs-and-profiles/delete-cron-trigger"},{"title":"Update cron trigger","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/cron-triggers/{cronTriggerID}","href":"/api-reference/native/configs-and-profiles/update-cron-trigger"}]},{"group":"Skills","pages":[{"title":"List skills visible through ownership authority","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/skills","href":"/api-reference/native/skills/list-skills-visible-through-ownership-authority"},{"title":"Create skill","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/skills","href":"/api-reference/native/skills/create-skill"},{"title":"Get skill through ownership authority","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/skills/{skillID}","href":"/api-reference/native/skills/get-skill-through-ownership-authority"},{"title":"Update skill by uploading a new revision","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/skills/{skillID}","href":"/api-reference/native/skills/update-skill-by-uploading-a-new-revision"},{"title":"Delete skill","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/skills/{skillID}","href":"/api-reference/native/skills/delete-skill"},{"title":"List skill grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/skills/{skillID}/grants","href":"/api-reference/native/skills/list-skill-grants"},{"title":"Create skill grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/skills/{skillID}/grants","href":"/api-reference/native/skills/create-skill-grant"},{"title":"Delete skill grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/skills/{skillID}/grants/{grantID}","href":"/api-reference/native/skills/delete-skill-grant"},{"title":"List skills available to project","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/skills","href":"/api-reference/native/skills/list-skills-available-to-project"}]},{"group":"Memory Stores","pages":[{"title":"List memory stores across projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/memory-stores","href":"/api-reference/native/memory-stores/list-memory-stores-across-projects"},{"title":"List memory stores","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/memory-stores","href":"/api-reference/native/memory-stores/list-memory-stores"},{"title":"Create memory store","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/memory-stores","href":"/api-reference/native/memory-stores/create-memory-store"},{"title":"Get memory store","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}","href":"/api-reference/native/memory-stores/get-memory-store"},{"title":"Delete memory store","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}","href":"/api-reference/native/memory-stores/delete-memory-store"},{"title":"Update memory store","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}","href":"/api-reference/native/memory-stores/update-memory-store"},{"title":"List memory files","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}/files","href":"/api-reference/native/memory-stores/list-memory-files"},{"title":"Download memory file","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}/file","href":"/api-reference/native/memory-stores/download-memory-file"},{"title":"Write memory file","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}/file","href":"/api-reference/native/memory-stores/write-memory-file"},{"title":"Delete memory file","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}/file","href":"/api-reference/native/memory-stores/delete-memory-file"}]},{"group":"Secrets","pages":[{"title":"List secrets visible through ownership authority","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/secrets","href":"/api-reference/native/secrets/list-secrets-visible-through-ownership-authority"},{"title":"Create secret","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/secrets","href":"/api-reference/native/secrets/create-secret"},{"title":"Start MCP OAuth for a new secret","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/secrets/mcp-oauth","href":"/api-reference/native/secrets/start-mcp-oauth-for-a-new-secret"},{"title":"Get secret through ownership authority","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/secrets/{secretID}","href":"/api-reference/native/secrets/get-secret-through-ownership-authority"},{"title":"Delete secret","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/secrets/{secretID}","href":"/api-reference/native/secrets/delete-secret"},{"title":"Update secret metadata","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/secrets/{secretID}","href":"/api-reference/native/secrets/update-secret-metadata"},{"title":"Create secret version","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/secrets/{secretID}/versions","href":"/api-reference/native/secrets/create-secret-version"},{"title":"List secret grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/secrets/{secretID}/grants","href":"/api-reference/native/secrets/list-secret-grants"},{"title":"Create secret grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/secrets/{secretID}/grants","href":"/api-reference/native/secrets/create-secret-grant"},{"title":"Delete secret grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/secrets/{secretID}/grants/{grantID}","href":"/api-reference/native/secrets/delete-secret-grant"},{"title":"List secrets available to project","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/secrets","href":"/api-reference/native/secrets/list-secrets-available-to-project"},{"title":"Get secret available to project","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/secrets/{secretID}","href":"/api-reference/native/secrets/get-secret-available-to-project"}]},{"group":"Integrations","pages":[{"title":"Connect an integration through OAuth","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/oauth/setup","href":"/api-reference/native/integrations/connect-an-integration-through-oauth"},{"title":"Create a Slack provider app and connect it to an BMA integration","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/slack-setup","href":"/api-reference/native/integrations/create-a-slack-provider-app-and-connect-it-to-an-bma-integration"},{"title":"Start registration of a customer-owned GitHub App","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/github-setup","href":"/api-reference/native/integrations/start-registration-of-a-customer-owned-github-app"},{"title":"Inspect installations of a customer-owned GitHub App","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/github-setup/installations","href":"/api-reference/native/integrations/inspect-installations-of-a-customer-owned-github-app"},{"title":"List integrations across projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/integrations","href":"/api-reference/native/integrations/list-integrations-across-projects"},{"title":"List project integrations","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integrations","href":"/api-reference/native/integrations/list-project-integrations"},{"title":"Create an integration and optional launcher","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations","href":"/api-reference/native/integrations/create-an-integration-and-optional-launcher"},{"title":"Get project integration","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}","href":"/api-reference/native/integrations/get-project-integration"},{"title":"Update integration settings","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}","href":"/api-reference/native/integrations/update-integration-settings"},{"title":"Delete integration setup and revoke its capabilities","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}","href":"/api-reference/native/integrations/delete-integration-setup-and-revoke-its-capabilities"},{"title":"List integration conversation subscriptions","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/subscriptions","href":"/api-reference/native/integrations/list-integration-conversation-subscriptions"},{"title":"Attach an agent to an integration conversation","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/subscriptions","href":"/api-reference/native/integrations/attach-an-agent-to-an-integration-conversation"},{"title":"Stop forwarding an integration conversation to an agent","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/subscriptions/{subscriptionID}","href":"/api-reference/native/integrations/stop-forwarding-an-integration-conversation-to-an-agent"},{"title":"Verify and configure integration credentials","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/setup","href":"/api-reference/native/integrations/verify-and-configure-integration-credentials"},{"title":"Disconnect this integration without deleting its configuration","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/disconnect","href":"/api-reference/native/integrations/disconnect-this-integration-without-deleting-its-configuration"},{"title":"List repositories a GitHub integration can access","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/github-repositories","href":"/api-reference/native/integrations/list-repositories-a-github-integration-can-access"},{"title":"List installed integration implementations and their capabilities","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integration-definitions","href":"/api-reference/native/integrations/list-installed-integration-implementations-and-their-capabilities"}]},{"group":"Machines","pages":[{"title":"List an agent's pooled machines","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/machines","href":"/api-reference/native/machines/list-an-agents-pooled-machines"},{"title":"Create a persistent machine for an agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/machines","href":"/api-reference/native/machines/create-a-persistent-machine-for-an-agent"},{"title":"Delete an agent's persistent machine","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agents/{agentID}/machines/{machineID}","href":"/api-reference/native/machines/delete-an-agents-persistent-machine"},{"title":"List visible project machines","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines","href":"/api-reference/native/machines/list-visible-project-machines"},{"title":"Get machine interaction capabilities","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/capabilities","href":"/api-reference/native/machines/get-machine-interaction-capabilities"},{"title":"Resume a paused or archived machine","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/resume","href":"/api-reference/native/machines/resume-a-paused-or-archived-machine"},{"title":"List a machine's workspace backups","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/backups","href":"/api-reference/native/machines/list-a-machines-workspace-backups"},{"title":"Back up a machine's workspace now","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/backups","href":"/api-reference/native/machines/back-up-a-machines-workspace-now"},{"title":"Recreate a machine from a workspace backup","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/restore","href":"/api-reference/native/machines/recreate-a-machine-from-a-workspace-backup"},{"title":"List project machine grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machine-grants","href":"/api-reference/native/machines/list-project-machine-grants"},{"title":"Create project machine grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machine-grants","href":"/api-reference/native/machines/create-project-machine-grant"},{"title":"Delete project machine grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/machine-grants/{grantID}","href":"/api-reference/native/machines/delete-project-machine-grant"},{"title":"List visible machines","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machines","href":"/api-reference/native/machines/list-visible-machines"},{"title":"Create machine","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machines","href":"/api-reference/native/machines/create-machine"},{"title":"Connect a BYO machine","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machines/connect","href":"/api-reference/native/machines/connect-a-byo-machine"},{"title":"Get machine","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machines/{machineID}","href":"/api-reference/native/machines/get-machine"},{"title":"Delete machine","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/machines/{machineID}","href":"/api-reference/native/machines/delete-machine"},{"title":"Update machine execution defaults","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/machines/{machineID}","href":"/api-reference/native/machines/update-machine-execution-defaults"},{"title":"List byo machine daemon tokens","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machines/{machineID}/daemon-tokens","href":"/api-reference/native/machines/list-byo-machine-daemon-tokens"},{"title":"Create byo machine daemon token","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machines/{machineID}/daemon-tokens","href":"/api-reference/native/machines/create-byo-machine-daemon-token"},{"title":"Revoke machine daemon token","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machines/{machineID}/daemon-tokens/{tokenID}/revoke","href":"/api-reference/native/machines/revoke-machine-daemon-token"}]},{"group":"Interactions","pages":[{"title":"List agent interactions","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/interactions","href":"/api-reference/native/interactions/list-agent-interactions"},{"title":"Resolve agent interaction","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/interactions/{interactionID}/resolve","href":"/api-reference/native/interactions/resolve-agent-interaction"}]},{"group":"Files","pages":[{"title":"List files","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/files","href":"/api-reference/native/files/list-files"},{"title":"Upload a file","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/files","href":"/api-reference/native/files/upload-a-file"},{"title":"Get file metadata","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/files/{fileID}","href":"/api-reference/native/files/get-file-metadata"},{"title":"Delete a file","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/files/{fileID}","href":"/api-reference/native/files/delete-a-file"},{"title":"Download a file","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/files/{fileID}/content","href":"/api-reference/native/files/download-a-file"},{"title":"List session file resources","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/resources","href":"/api-reference/native/files/list-session-file-resources"},{"title":"Mount a file into a session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/resources","href":"/api-reference/native/files/mount-a-file-into-a-session"},{"title":"Unmount a file from a session","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/resources/{resourceID}","href":"/api-reference/native/files/unmount-a-file-from-a-session"},{"title":"Promote a session artifact to a file","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/artifacts/{artifactID}/promote","href":"/api-reference/native/files/promote-a-session-artifact-to-a-file"}]},{"group":"Desktops","pages":[{"title":"Create a desktop session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions","href":"/api-reference/native/desktops/create-a-desktop-session"},{"title":"Get a desktop session","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}","href":"/api-reference/native/desktops/get-a-desktop-session"},{"title":"Close a desktop session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/close","href":"/api-reference/native/desktops/close-a-desktop-session"},{"title":"Get desktop control status","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control","href":"/api-reference/native/desktops/get-desktop-control-status"},{"title":"Acquire desktop control","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control/acquire","href":"/api-reference/native/desktops/acquire-desktop-control"},{"title":"Renew desktop control","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control/renew","href":"/api-reference/native/desktops/renew-desktop-control"},{"title":"Release desktop control","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control/release","href":"/api-reference/native/desktops/release-desktop-control"},{"title":"Hand control back","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control/handback","href":"/api-reference/native/desktops/hand-control-back"},{"title":"Capture the desktop","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/screenshot","href":"/api-reference/native/desktops/capture-the-desktop"},{"title":"Send desktop input","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/actions","href":"/api-reference/native/desktops/send-desktop-input"},{"title":"Observe the desktop as the agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/agent/observe","href":"/api-reference/native/desktops/observe-the-desktop-as-the-agent"},{"title":"Resume the agent after a takeover","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/agent/resume","href":"/api-reference/native/desktops/resume-the-agent-after-a-takeover"},{"title":"Submit an agent desktop action","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/agent/actions","href":"/api-reference/native/desktops/submit-an-agent-desktop-action"},{"title":"Confirm a pending agent action","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/agent/actions/{pendingID}/confirm","href":"/api-reference/native/desktops/confirm-a-pending-agent-action"}]},{"group":"Terminals","pages":[{"title":"List terminal sessions","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions","href":"/api-reference/native/terminals/list-terminal-sessions"},{"title":"Create a terminal session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions","href":"/api-reference/native/terminals/create-a-terminal-session"},{"title":"Get a terminal session","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions/{terminalSessionID}","href":"/api-reference/native/terminals/get-a-terminal-session"},{"title":"Close a terminal session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions/{terminalSessionID}/close","href":"/api-reference/native/terminals/close-a-terminal-session"},{"title":"Mint a terminal connection ticket","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions/{terminalSessionID}/connection-ticket","href":"/api-reference/native/terminals/mint-a-terminal-connection-ticket"}]},{"group":"Actors","pages":[{"title":"List project actors","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/actors","href":"/api-reference/native/actors/list-project-actors"},{"title":"Upsert an external actor","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/actors","href":"/api-reference/native/actors/upsert-an-external-actor"},{"title":"Get a project actor","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/actors/{actorID}","href":"/api-reference/native/actors/get-a-project-actor"}]},{"group":"Models","pages":[{"title":"List model provider configs","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/model-provider-configs","href":"/api-reference/native/models/list-model-provider-configs"},{"title":"Create model provider config","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/model-provider-configs","href":"/api-reference/native/models/create-model-provider-config"},{"title":"Get model provider config","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}","href":"/api-reference/native/models/get-model-provider-config"},{"title":"Update model provider config","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}","href":"/api-reference/native/models/update-model-provider-config"},{"title":"Delete model provider config","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}","href":"/api-reference/native/models/delete-model-provider-config"},{"title":"Get model catalog","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/model-catalog","href":"/api-reference/native/models/get-model-catalog"},{"title":"List configured models","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/models","href":"/api-reference/native/models/list-configured-models"},{"title":"Create configured model","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/models","href":"/api-reference/native/models/create-configured-model"},{"title":"Update configured model","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/models/{configuredModelID}","href":"/api-reference/native/models/update-configured-model"},{"title":"Delete configured model","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/models/{configuredModelID}","href":"/api-reference/native/models/delete-configured-model"},{"title":"List project model grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/model-grants","href":"/api-reference/native/models/list-project-model-grants"},{"title":"Create project model grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/model-grants","href":"/api-reference/native/models/create-project-model-grant"},{"title":"Delete project model grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/model-grants/{modelGrantID}","href":"/api-reference/native/models/delete-project-model-grant"},{"title":"Update project model grant","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/model-grants/{modelGrantID}","href":"/api-reference/native/models/update-project-model-grant"}]},{"group":"Machine Pools","pages":[{"title":"List machine pools","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machine-pools","href":"/api-reference/native/machine-pools/list-machine-pools"},{"title":"Create machine pool","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machine-pools","href":"/api-reference/native/machine-pools/create-machine-pool"},{"title":"Check machine pool connection","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machine-pools/check-connection","href":"/api-reference/native/machine-pools/check-machine-pool-connection"},{"title":"Get machine pool","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machine-pools/{poolID}","href":"/api-reference/native/machine-pools/get-machine-pool"},{"title":"Update machine pool","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/machine-pools/{poolID}","href":"/api-reference/native/machine-pools/update-machine-pool"},{"title":"Delete machine pool","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/machine-pools/{poolID}","href":"/api-reference/native/machine-pools/delete-machine-pool"},{"title":"List project machine pool grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machine-pool-grants","href":"/api-reference/native/machine-pools/list-project-machine-pool-grants"},{"title":"Create project machine pool grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machine-pool-grants","href":"/api-reference/native/machine-pools/create-project-machine-pool-grant"},{"title":"Get project machine pool grant","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machine-pool-grants/{poolGrantID}","href":"/api-reference/native/machine-pools/get-project-machine-pool-grant"},{"title":"Delete project machine pool grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/machine-pool-grants/{poolGrantID}","href":"/api-reference/native/machine-pools/delete-project-machine-pool-grant"},{"title":"Update project machine pool grant","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/machine-pool-grants/{poolGrantID}","href":"/api-reference/native/machine-pools/update-project-machine-pool-grant"}]}]},{"group":"Managed Agents extensions","pages":[{"group":"API Reference","pages":[{"title":"Mint a desktop watch ticket for a session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml get /v1/sessions/{session_id}/desktop/stream","href":"/api-reference/extensions/mint-a-desktop-watch-ticket-for-a-session-bma-extension"},{"title":"List files uploaded into the session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml get /v1/sessions/{session_id}/files","href":"/api-reference/extensions/list-files-uploaded-into-the-session-bma-extension"},{"title":"Upload one file into the session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml post /v1/sessions/{session_id}/files","href":"/api-reference/extensions/upload-one-file-into-the-session-bma-extension"},{"title":"Download one session file (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml get /v1/sessions/{session_id}/files/{file_id}/content","href":"/api-reference/extensions/download-one-session-file-bma-extension"},{"title":"List the session's mounted file resources (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml get /v1/sessions/{session_id}/resources","href":"/api-reference/extensions/list-the-sessions-mounted-file-resources-bma-extension"},{"title":"Mount one project file into the session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml post /v1/sessions/{session_id}/resources","href":"/api-reference/extensions/mount-one-project-file-into-the-session-bma-extension"},{"title":"Unmount one file resource from the session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml delete /v1/sessions/{session_id}/resources/{resource_id}","href":"/api-reference/extensions/unmount-one-file-resource-from-the-session-bma-extension"}]}]}]},{"tab":"Self-hosting","pages":[{"title":"Self-hosting","href":"/self-hosting/overview"}]},{"tab":"Changelog \u0026 roadmap","pages":[{"title":"Changelog \u0026 roadmap","href":"/changelog"}]}]},{"language":"zh","banner":{"content":"BMA 处于**抢先体验**阶段。各页面会把每项能力标注为 Available、Preview 或 Roadmap。","dismissible":true},"pages":[{"title":"zh","href":"/zh/api-reference/native/agents/create-agent"}]}]},"basePath":"","title":"Create agent - BMA Developer Docs","buildId":"223f4d0f93b3","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-CCxzie0y.js","dist-C8phz87P.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-DfU2JnNK.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DLP13Bsa.js","utils-LK_Rx0Zu.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BSq7eEfK.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bchcwpn2.js","snippetPresets-B-BsDEmk.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CNoZnlAG.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DqKAmR6F.js","shallow-Dq5-SwG1.js","getApiPlaygroundDisplay-B6YMrfFr.js","CodeSnippet-DvvqqrVi.js","CodeSnippets-D6Vj56PD.js","Page-03hAnTHd.js","getPastedJson-BKlc8wx2.js","icon-HMNWawTa.js","MethodPill-Dd_Z_kqi.js","DuplicateIcon-DK5o2DOi.js","createIcon-BhUMOhLi.js","DynamicMarkdown-CoGC92CO.js","SectionHeading-K9MvhMbX.js","axios-vUo_bRtp.js","Markdown-DqqHYs0x.js","AssistantPageLink-BVRLOPpC.js"]}