{"karjan.yaml":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":100},"default_provider":{"default":"openrouter","type":"string","enum":["openrouter","anthropic","openai"]},"default_model":{"default":"anthropic/claude-haiku-5.5","type":"string","minLength":1},"limits":{"default":{"daily_spend_usd":10,"max_concurrent_turns":10,"max_concurrent_sandboxes":10,"max_hops":20,"max_turns_per_chain":100},"type":"object","properties":{"daily_spend_usd":{"default":10,"type":"number","exclusiveMinimum":0,"maximum":10000},"max_concurrent_turns":{"default":10,"type":"integer","exclusiveMinimum":0,"maximum":500},"max_concurrent_sandboxes":{"default":10,"type":"integer","exclusiveMinimum":0,"maximum":500},"max_hops":{"default":20,"type":"integer","exclusiveMinimum":0,"maximum":1000},"max_turns_per_chain":{"default":100,"type":"integer","exclusiveMinimum":0,"maximum":10000}},"additionalProperties":false},"run_retention_days":{"type":"integer","exclusiveMinimum":0,"maximum":3650}},"additionalProperties":false},"agents/*.yaml":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"description":{"type":"string","maxLength":2000},"persistent":{"default":false,"type":"boolean"},"provider":{"type":"string","enum":["openrouter","anthropic","openai"]},"model":{"type":"string","minLength":1},"instructions":{"type":"string","minLength":1,"maxLength":200000},"permissions":{"default":[],"type":"array","items":{"type":"string","pattern":"^(tools|sandboxes)(\\.([a-zA-Z0-9_-]+|\\*))+$"}},"limits":{"default":{"max_steps":50,"max_cost_usd":2,"per_turn":{}},"type":"object","properties":{"max_steps":{"default":50,"type":"integer","exclusiveMinimum":0,"maximum":1000},"max_cost_usd":{"default":2,"type":"number","exclusiveMinimum":0,"maximum":1000},"max_output_tokens":{"type":"integer","exclusiveMinimum":0,"maximum":200000},"per_turn":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"integer","minimum":0,"maximum":9007199254740991}}},"additionalProperties":false},"output":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"compaction":{"default":{"threshold":0.75},"type":"object","properties":{"threshold":{"default":0.75,"type":"number","minimum":0.2,"maximum":0.95}},"additionalProperties":false},"temperature":{"type":"number","minimum":0,"maximum":2}},"required":["instructions"],"additionalProperties":false},"sandboxes.yaml":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","propertyNames":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"additionalProperties":{"type":"object","properties":{"description":{"type":"string","maxLength":2000},"per_instance":{"default":false,"type":"boolean"},"image":{"default":"universal","type":"string","enum":["universal","node","python","ubuntu"]},"setup":{"type":"string","maxLength":20000},"persist":{"default":"drive","type":"string","enum":["none","drive","full"]},"mount":{"default":"/workspace","type":"string","pattern":"^\\/[a-zA-Z0-9._/-]*$"},"fork_from":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"drives":{"default":{},"type":"object","propertyNames":{"type":"string","pattern":"^\\/[a-zA-Z0-9._/-]*$"},"additionalProperties":{"anyOf":[{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},{"type":"object","properties":{"drive":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"mode":{"default":"read-only","type":"string","enum":["read-write","read-only"]}},"required":["drive"],"additionalProperties":false}]}},"vcpus":{"default":1,"type":"integer","minimum":1,"maximum":8},"idle_minutes":{"default":5,"type":"integer","minimum":1,"maximum":60},"network":{"default":"open","anyOf":[{"type":"string","enum":["open","none"]},{"type":"object","properties":{"allow":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}}},"required":["allow"],"additionalProperties":false}]},"credentials":{"default":[],"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","minLength":1},"header":{"default":"Authorization","type":"string","minLength":1},"value":{"type":"string","minLength":1}},"required":["domain","value"],"additionalProperties":false}},"env":{"default":[],"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"triggers.yaml":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schedules":{"default":[],"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"cron":{"type":"string","minLength":1},"timezone":{"default":"UTC","type":"string"},"agent":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"automation":{"type":"string"},"message":{"type":"string","maxLength":100000},"input":{},"delivery":{"default":"queue","type":"string","enum":["launch","queue","interrupt","inject","skip_if_busy"]},"enabled":{"default":true,"type":"boolean"}},"required":["name","cron"],"additionalProperties":false}},"webhooks":{"default":[],"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"agent":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"automation":{"type":"string"},"delivery":{"default":"queue","type":"string","enum":["launch","queue","interrupt","inject","skip_if_busy"]},"secret_env":{"type":"string"},"enabled":{"default":true,"type":"boolean"}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false},"builtinTools":[{"permission":"tools.sandbox.exec","description":"Run a shell command (bash) in your sandbox and return exit code, stdout and stderr. Output is truncated to the last 20,000 characters. Use for running scripts, installing packages and inspecting files."},{"permission":"tools.sandbox.read_file","description":"Read a text file from your sandbox. Large files are truncated to 100,000 characters."},{"permission":"tools.sandbox.write_file","description":"Write a text file in your sandbox, creating parent directories as needed."},{"permission":"tools.sandbox.list_files","description":"List files under a directory in your sandbox (recursive, up to 500 entries)."},{"permission":"tools.sandbox.keep_awake","description":"Keep your sandbox running for the given number of minutes even when no command is active, e.g. for a background server or long job."},{"permission":"tools.web.search","description":"Search the web. Returns titles, URLs and snippets."},{"permission":"tools.web.fetch","description":"Fetch a public web page and return its readable text (truncated to 50,000 characters)."},{"permission":"tools.messages.send","description":"Send a message to another agent in this project. The receiver processes it in its own turn. You may only message agents you are permitted to."},{"permission":"tools.notes.read","description":"Read your persistent notes. Notes survive history compaction and configuration changes."},{"permission":"tools.notes.write","description":"Replace your persistent notes with new content. Keep them concise; they are shown to you every turn."}]}