[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/accelerator.json","definitions":{"AcceleratorOption":{"type":"object","properties":{"choices":{"title":"choices","description":"A list of predefined choices","type":"array","items":{"type":"object","properties":{"text":{"type":"string","title":"text","description":"The displayed text"},"value":{"title":"value","description":"The value that the form returns for this choice"}},"title":"choices"}},"dataType":{"anyOf":[{"const":"string"},{"const":"number"},{"const":"boolean"},{"type":"string","pattern":"^$|^[A-Z][a-z0-9A-Z]*$"},{"type":"array","minItems":1,"maxItems":1,"items":{"const":"string"}},{"type":"array","minItems":1,"maxItems":1,"items":{"const":"number"}},{"type":"array","minItems":1,"maxItems":1,"items":{"const":"boolean"}},{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","pattern":"^$|^[A-Z][a-z0-9A-Z]*$"}},{"type":"null"}],"title":"dataType","description":"The option data type"},"defaultValue":{"title":"defaultValue","description":"The value used to pre-populate the option"},"dependsOn":{"allOf":[{"$ref":"#/definitions/DependsOn"},{"title":"dependsOn","description":"The dependency that controls this options visibility"}]},"description":{"type":"string","title":"description","description":"A tooltip to accompany the input"},"inputType":{"type":"string","enum":["text","textarea","checkbox","select","radio"],"title":"inputType","description":"The HTML input type used to display the option"},"label":{"type":"string","title":"label","description":"A human-readable version of the name identifying the option"},"name":{"type":"string","title":"name","description":"A unique, camelCase name","minLength":1,"pattern":"^$|^[a-z][a-z0-9A-Z]*$"},"required":{"type":"boolean","title":"required","description":"Whether the user is required to enter a value in the UI"},"validationRegex":{"allOf":[{"$ref":"#/definitions/Pattern"},{"title":"validationRegex","description":"A regex that validates the string representation of the option value when set"}]}},"anyOf":[{"properties":{"dataType":{"const":"string"},"defaultValue":{"type":"string"}}},{"properties":{"dataType":{"type":"array","items":{"const":"string"}},"defaultValue":{"type":"array","items":{"type":"string"}}}},{"properties":{"dataType":{"const":"number"},"defaultValue":{"type":"number"}}},{"properties":{"dataType":{"type":"array","items":{"const":"number"}},"defaultValue":{"type":"array","items":{"type":"number"}}}},{"properties":{"dataType":{"const":"boolean"},"defaultValue":{"type":"boolean"}}},{"properties":{"dataType":{"type":"array","items":{"const":"boolean"}},"defaultValue":{"type":"array","items":{"type":"boolean"}}}},{"properties":{"dataType":{"type":"string","pattern":"^$|^[A-Z][a-z0-9A-Z]*$"},"defaultValue":{"type":"object"}}},{"properties":{"dataType":{"type":"array","items":{"type":"string","pattern":"^$|^[A-Z][a-z0-9A-Z]*$"}},"defaultValue":{"type":"array","items":{"type":"object"}}}}]},"Chain-1":{"type":"object","properties":{"applyTo":{"title":"applyTo","description":"The path patterns used to filter which files to apply the Transforms to","minItems":1,"type":"array","items":{"type":"string","title":"applyTo","minLength":1,"pattern":"^$|^[^/].*$"}},"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"name":{"type":"string","title":"name","description":"The transform name"},"transformations":{"title":"transformations","description":"A list of child Transforms to apply sequentially","type":"array","items":{"anyOf":[{"$ref":"#/definitions/Loop-2"},{"$ref":"#/definitions/Chain-2"},{"$ref":"#/definitions/Provenance-2"},{"$ref":"#/definitions/Exclude-2"},{"$ref":"#/definitions/Include-2"},{"$ref":"#/definitions/Combo-2"},{"$ref":"#/definitions/ReplaceText-2"},{"$ref":"#/definitions/InvokeFragment-2"},{"$ref":"#/definitions/Merge-2"},{"$ref":"#/definitions/OpenRewriteRecipe-2"},{"$ref":"#/definitions/RewritePath-2"},{"$ref":"#/definitions/UniquePath-2"},{"$ref":"#/definitions/YTT-2"},{"$ref":"#/definitions/Let-2"},{"$ref":"#/definitions/UseEncoding-2"},{"$ref":"#/definitions/InvokeFragment-2"}]}}}},"Chain-2":{"allOf":[{"$ref":"#/definitions/Chain-1"},{"type":"object","properties":{"type":{"const":"Chain"}},"required":["type"]}]},"Combo-1":{"type":"object","properties":{"applyTo":{"title":"applyTo","description":"The path patterns used to filter which files to apply the Transforms to","minItems":1,"type":"array","items":{"type":"string","title":"applyTo","minLength":1,"pattern":"^$|^[^/].*$"}},"chain":{"title":"chain","description":"A list of child Transforms to apply sequentially","type":"array","items":{"anyOf":[{"$ref":"#/definitions/Loop-2"},{"$ref":"#/definitions/Chain-2"},{"$ref":"#/definitions/Provenance-2"},{"$ref":"#/definitions/Exclude-2"},{"$ref":"#/definitions/Include-2"},{"$ref":"#/definitions/Combo-2"},{"$ref":"#/definitions/ReplaceText-2"},{"$ref":"#/definitions/InvokeFragment-2"},{"$ref":"#/definitions/Merge-2"},{"$ref":"#/definitions/OpenRewriteRecipe-2"},{"$ref":"#/definitions/RewritePath-2"},{"$ref":"#/definitions/UniquePath-2"},{"$ref":"#/definitions/YTT-2"},{"$ref":"#/definitions/Let-2"},{"$ref":"#/definitions/UseEncoding-2"},{"$ref":"#/definitions/InvokeFragment-2"}]}},"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"exclude":{"title":"exclude","description":"The path patterns used to filter which files to exclude","type":"array","items":{"type":"string","title":"exclude","minLength":1,"pattern":"^$|^[^/].*$"}},"include":{"title":"include","description":"The path patterns used to filter which files to include","type":"array","items":{"type":"string","title":"include","minLength":1,"pattern":"^$|^[^/].*$"}},"let":{"title":"let","description":"A list of additional variables and their values","type":"array","items":{"allOf":[{"$ref":"#/definitions/DerivedSymbol"},{"title":"let"}]}},"merge":{"title":"merge","description":"A list of child Transforms to be executed in parallel","type":"array","items":{"anyOf":[{"$ref":"#/definitions/Loop-2"},{"$ref":"#/definitions/Chain-2"},{"$ref":"#/definitions/Provenance-2"},{"$ref":"#/definitions/Exclude-2"},{"$ref":"#/definitions/Include-2"},{"$ref":"#/definitions/Combo-2"},{"$ref":"#/definitions/ReplaceText-2"},{"$ref":"#/definitions/InvokeFragment-2"},{"$ref":"#/definitions/Merge-2"},{"$ref":"#/definitions/OpenRewriteRecipe-2"},{"$ref":"#/definitions/RewritePath-2"},{"$ref":"#/definitions/UniquePath-2"},{"$ref":"#/definitions/YTT-2"},{"$ref":"#/definitions/Let-2"},{"$ref":"#/definitions/UseEncoding-2"},{"$ref":"#/definitions/InvokeFragment-2"}]}},"name":{"type":"string","title":"name","description":"The transform name"},"onConflict":{"allOf":[{"$ref":"#/definitions/ConflictResolution"},{"title":"onConflict","description":"How conflict is handled when an operation produces multiple files at the same path"}]}}},"Combo-2":{"allOf":[{"$ref":"#/definitions/Combo-1"},{"type":"object","properties":{"type":{"const":"Combo"}}}]},"ConflictResolution":{"type":"string","enum":["Fail","UseFirst","UseLast","Append","FavorOwn","FavorForeign","NWayDiff"]},"DependsOn":{"type":"object","properties":{"name":{"type":"string","title":"name","description":"The options name","minLength":1,"pattern":"^$|^[a-z][a-z0-9A-Z]*$"},"value":{"title":"value","description":"The desired options value to compare against"}}},"DerivedSymbol":{"type":"object","properties":{"expression":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"expression","description":"The SpEL expression to evaluate to compute the symbol value"}]},"name":{"type":"string","title":"name","description":"The name under which the new symbol will be added","minLength":1,"pattern":"^$|^[a-z][a-z0-9A-Z]*$"}}},"Exclude-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"name":{"type":"string","title":"name","description":"The transform name"},"patterns":{"title":"patterns","description":"The path patterns used to filter which files to exclude","type":"array","items":{"type":"string","title":"patterns","minLength":1,"pattern":"^$|^[^/].*$"}}}},"Exclude-2":{"allOf":[{"$ref":"#/definitions/Exclude-1"},{"type":"object","properties":{"type":{"const":"Exclude"}},"required":["type"]}]},"Expression":{"type":"string"},"Include-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"name":{"type":"string","title":"name","description":"The transform name"},"patterns":{"title":"patterns","description":"The path patterns used to filter which files to include","type":"array","items":{"type":"string","title":"patterns","minLength":1,"pattern":"^$|^[^/].*$"}}}},"Include-2":{"allOf":[{"$ref":"#/definitions/Include-1"},{"type":"object","properties":{"type":{"const":"Include"}},"required":["type"]}]},"InvokeFragment-1":{"type":"object","properties":{"anchor":{"type":"string","title":"anchor","pattern":"^$|^[^/]$|^[^/](.+)[^/]$"},"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"let":{"title":"let","type":"array","items":{"allOf":[{"$ref":"#/definitions/DerivedSymbol"},{"title":"let"}]}},"name":{"type":"string","title":"name","description":"The transform name"},"reference":{"type":"string","title":"reference","minLength":1,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"}}},"InvokeFragment-2":{"allOf":[{"$ref":"#/definitions/InvokeFragment-1"},{"type":"object","properties":{"type":{"const":"InvokeFragment"}},"required":["type"]}]},"Let-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"in":{"anyOf":[{"$ref":"#/definitions/Loop-2"},{"$ref":"#/definitions/Chain-2"},{"$ref":"#/definitions/Provenance-2"},{"$ref":"#/definitions/Exclude-2"},{"$ref":"#/definitions/Include-2"},{"$ref":"#/definitions/Combo-2"},{"$ref":"#/definitions/ReplaceText-2"},{"$ref":"#/definitions/InvokeFragment-2"},{"$ref":"#/definitions/Merge-2"},{"$ref":"#/definitions/OpenRewriteRecipe-2"},{"$ref":"#/definitions/RewritePath-2"},{"$ref":"#/definitions/UniquePath-2"},{"$ref":"#/definitions/YTT-2"},{"$ref":"#/definitions/Let-2"},{"$ref":"#/definitions/UseEncoding-2"},{"$ref":"#/definitions/InvokeFragment-2"}]},"name":{"type":"string","title":"name","description":"The transform name"},"noShadow":{"type":"boolean","title":"noShadow","description":"Whether shadowing should be turned off"},"symbols":{"title":"symbols","description":"A list of additional variables and their values","type":"array","items":{"allOf":[{"$ref":"#/definitions/DerivedSymbol"},{"title":"symbols"}]}}}},"Let-2":{"allOf":[{"$ref":"#/definitions/Let-1"},{"type":"object","properties":{"type":{"const":"Let"}},"required":["type"]}]},"Loop-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"doAsChain":{"anyOf":[{"$ref":"#/definitions/Loop-2"},{"$ref":"#/definitions/Chain-2"},{"$ref":"#/definitions/Provenance-2"},{"$ref":"#/definitions/Exclude-2"},{"$ref":"#/definitions/Include-2"},{"$ref":"#/definitions/Combo-2"},{"$ref":"#/definitions/ReplaceText-2"},{"$ref":"#/definitions/InvokeFragment-2"},{"$ref":"#/definitions/Merge-2"},{"$ref":"#/definitions/OpenRewriteRecipe-2"},{"$ref":"#/definitions/RewritePath-2"},{"$ref":"#/definitions/UniquePath-2"},{"$ref":"#/definitions/YTT-2"},{"$ref":"#/definitions/Let-2"},{"$ref":"#/definitions/UseEncoding-2"},{"$ref":"#/definitions/InvokeFragment-2"}]},"doAsMerge":{"anyOf":[{"$ref":"#/definitions/Loop-2"},{"$ref":"#/definitions/Chain-2"},{"$ref":"#/definitions/Provenance-2"},{"$ref":"#/definitions/Exclude-2"},{"$ref":"#/definitions/Include-2"},{"$ref":"#/definitions/Combo-2"},{"$ref":"#/definitions/ReplaceText-2"},{"$ref":"#/definitions/InvokeFragment-2"},{"$ref":"#/definitions/Merge-2"},{"$ref":"#/definitions/OpenRewriteRecipe-2"},{"$ref":"#/definitions/RewritePath-2"},{"$ref":"#/definitions/UniquePath-2"},{"$ref":"#/definitions/YTT-2"},{"$ref":"#/definitions/Let-2"},{"$ref":"#/definitions/UseEncoding-2"},{"$ref":"#/definitions/InvokeFragment-2"}]},"index":{"type":"string","title":"index","description":"The variable's name to be assigned to the index of the current element on each iteration","pattern":"^$|^[a-z][a-z0-9A-Z]*$"},"name":{"type":"string","title":"name","description":"The transform name"},"on":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"on","description":"A SpEL expression that evaluates a list that contains the elements to be iterated over"}]},"var":{"type":"string","title":"var","description":"The name of the variable to be assigned to the current element on each iteration","pattern":"^$|^[a-z][a-z0-9A-Z]*$"}}},"Loop-2":{"allOf":[{"$ref":"#/definitions/Loop-1"},{"type":"object","properties":{"type":{"const":"Loop"}},"required":["type"]}]},"Merge-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"name":{"type":"string","title":"name","description":"The transform name"},"sources":{"title":"sources","description":"A list of child Transforms to be executed in parallel","type":"array","items":{"anyOf":[{"$ref":"#/definitions/Loop-2"},{"$ref":"#/definitions/Chain-2"},{"$ref":"#/definitions/Provenance-2"},{"$ref":"#/definitions/Exclude-2"},{"$ref":"#/definitions/Include-2"},{"$ref":"#/definitions/Combo-2"},{"$ref":"#/definitions/ReplaceText-2"},{"$ref":"#/definitions/InvokeFragment-2"},{"$ref":"#/definitions/Merge-2"},{"$ref":"#/definitions/OpenRewriteRecipe-2"},{"$ref":"#/definitions/RewritePath-2"},{"$ref":"#/definitions/UniquePath-2"},{"$ref":"#/definitions/YTT-2"},{"$ref":"#/definitions/Let-2"},{"$ref":"#/definitions/UseEncoding-2"},{"$ref":"#/definitions/InvokeFragment-2"}]}}}},"Merge-2":{"allOf":[{"$ref":"#/definitions/Merge-1"},{"type":"object","properties":{"type":{"const":"Merge"}},"required":["type"]}]},"OpenRewriteRecipe-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"name":{"type":"string","title":"name","description":"The transform name"},"options":{"type":"object","title":"options","description":"Keys and values that depend on the class of the recipe"},"parseOrFail":{"type":"boolean","title":"parseOrFail"},"recipe":{"type":"string","pattern":"^[a-zA-Z_$][a-zA-Z\\d_$]*(?:\\.[a-zA-Z_$][a-zA-Z\\d_$]*)*$","title":"recipe","description":"Full qualified classname of the recipe"}}},"OpenRewriteRecipe-2":{"allOf":[{"$ref":"#/definitions/OpenRewriteRecipe-1"},{"type":"object","properties":{"type":{"const":"OpenRewriteRecipe"}},"required":["type"]}]},"Pattern":{"type":"string","format":"regex"},"Provenance-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"name":{"type":"string","title":"name","description":"The transform name"}}},"Provenance-2":{"allOf":[{"$ref":"#/definitions/Provenance-1"},{"type":"object","properties":{"type":{"const":"Provenance"}},"required":["type"]}]},"ReplaceText-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"name":{"type":"string","title":"name","description":"The transform name"},"regex":{"type":"object","properties":{"pattern":{"allOf":[{"$ref":"#/definitions/Pattern"},{"title":"pattern","description":"The regular expression that determines text that will be replaced"}]},"with":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"with","description":"The SpEL expression that evaluates to the text that will replace the previous string"}]}},"title":"regex","description":"The replacement rule using a single regular expression"},"substitutions":{"title":"substitutions","description":"The replacement rules using literal text tokens","type":"array","items":{"type":"object","properties":{"text":{"type":"string","title":"text","description":"The text that will be replaced","minLength":1},"with":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"with","description":"The SpEL expression that evaluates to the text that will replace the previous string"}]}},"title":"substitutions"}}}},"ReplaceText-2":{"allOf":[{"$ref":"#/definitions/ReplaceText-1"},{"type":"object","properties":{"type":{"const":"ReplaceText"}},"required":["type"]}]},"RewritePath-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"matchOrFail":{"type":"boolean","title":"matchOrFail","description":"Whether an error should occur if the regex doesn't match"},"name":{"type":"string","title":"name","description":"The transform name"},"regex":{"allOf":[{"$ref":"#/definitions/Pattern"},{"title":"regex","description":"The regular expression used to match each input files path"}]},"rewriteTo":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"rewriteTo","description":"The SpEL expression of the location that the file will be rewritten to"}]}}},"RewritePath-2":{"allOf":[{"$ref":"#/definitions/RewritePath-1"},{"type":"object","properties":{"type":{"const":"RewritePath"}},"required":["type"]}]},"UniquePath-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"name":{"type":"string","title":"name","description":"The transform name"},"strategy":{"allOf":[{"$ref":"#/definitions/ConflictResolution"},{"title":"strategy","description":"How conflict is handled when an operation produces multiple files at the same path"}]}}},"UniquePath-2":{"allOf":[{"$ref":"#/definitions/UniquePath-1"},{"type":"object","properties":{"type":{"const":"UniquePath"}},"required":["type"]}]},"UseEncoding-1":{"type":"object","properties":{"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"encoding":{"type":"object","title":"encoding","description":"The encuding to use, as recognized by the java java.nio.charset.Charset class"},"name":{"type":"string","title":"name","description":"The transform name"}}},"UseEncoding-2":{"allOf":[{"$ref":"#/definitions/UseEncoding-1"},{"type":"object","properties":{"type":{"const":"UseEncoding"}},"required":["type"]}]},"YTT-1":{"type":"object","properties":{"allowList":{"title":"allowList","description":"A list of variable names that are allowed to be passed to YTT","type":"array","items":{"allOf":[{"$ref":"#/definitions/Pattern"},{"title":"allowList"}]}},"condition":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"condition","description":"The SpEL expression that determines if this Transform should execute"}]},"denyList":{"title":"denyList","description":"A list of variable names that are denied from being passed to YTT","type":"array","items":{"allOf":[{"$ref":"#/definitions/Pattern"},{"title":"denyList"}]}},"extraArgs":{"title":"extraArgs","description":"A list of SpEL expressions whose results are additional command line arguments","type":"array","items":{"allOf":[{"$ref":"#/definitions/Expression"},{"title":"extraArgs"}]}},"name":{"type":"string","title":"name","description":"The transform name"}}},"YTT-2":{"allOf":[{"$ref":"#/definitions/YTT-1"},{"type":"object","properties":{"type":{"const":"YTT"}},"required":["type"]}]}},"properties":{"accelerator":{"type":"object","properties":{"description":{"type":"string","title":"description","description":"A more detailed description"},"displayName":{"type":"string","title":"displayName","description":"A human-readable name"},"iconUrl":{"type":"string","title":"iconUrl","description":"A URL pointing to an icon image"},"imports":{"title":"imports","description":"The list of fragment to import","type":"array","items":{"type":"object","properties":{"expose":{"title":"expose","description":"The list of fragment options to make available as accelerator options","type":"array","items":{"type":"object","properties":{"as":{"type":"string","title":"as","description":"The alias to use as the name of the option","minLength":1,"pattern":"^$|^[a-z][a-z0-9A-Z]*$"},"dependsOn":{"allOf":[{"$ref":"#/definitions/DependsOn"},{"title":"dependsOn","description":"The dependency that controls this options visibility"}]},"name":{"type":"string","title":"name","description":"The original name of the option","minLength":1,"pattern":"^\\*$|^$|^[a-z][a-z0-9A-Z]*$"}},"title":"expose"}},"exposeTypes":{"title":"exposeTypes","description":"The list of fragment types to make available as accelerator types","type":"array","items":{"type":"object","properties":{"as":{"type":"string","title":"as","description":"The alias to use as the name of the type","minLength":1,"pattern":"^$|^[A-Z][a-z0-9A-Z]*$"},"name":{"type":"string","title":"name","description":"The original name of the type","minLength":1,"pattern":"^\\*$|^$|^[A-Z][a-z0-9A-Z]*$"}},"title":"exposeTypes"}},"name":{"type":"string","title":"name","description":"The name of the fragment to import","minLength":1}},"title":"imports"}},"options":{"title":"options","description":"The list of options passed to the UI to create input text boxes","type":"array","items":{"allOf":[{"$ref":"#/definitions/AcceleratorOption"},{"title":"options"}]}},"tags":{"title":"tags","description":"A list of tags used to filter accelerators","type":"array","items":{"type":"string","title":"tags"}},"types":{"title":"types","description":"The definitions of custom types","type":"array","items":{"type":"object","properties":{"name":{"type":"string","title":"name","description":"The capitalized name of this custom type","minLength":1,"pattern":"^$|^[A-Z][a-z0-9A-Z]*$"},"struct":{"title":"struct","description":"A sequence of option definitions","minItems":1,"type":"array","items":{"allOf":[{"$ref":"#/definitions/AcceleratorOption"},{"title":"struct"}]}}},"title":"types"}}},"title":"accelerator","description":"The metadata (non-behavioral) part of an App Accelerator's accelerator.yaml file"},"engine":{"anyOf":[{"$ref":"#/definitions/Loop-2"},{"$ref":"#/definitions/Chain-2"},{"$ref":"#/definitions/Provenance-2"},{"$ref":"#/definitions/Exclude-2"},{"$ref":"#/definitions/Include-2"},{"$ref":"#/definitions/Combo-2"},{"$ref":"#/definitions/ReplaceText-2"},{"$ref":"#/definitions/InvokeFragment-2"},{"$ref":"#/definitions/Merge-2"},{"$ref":"#/definitions/OpenRewriteRecipe-2"},{"$ref":"#/definitions/RewritePath-2"},{"$ref":"#/definitions/UniquePath-2"},{"$ref":"#/definitions/YTT-2"},{"$ref":"#/definitions/Let-2"},{"$ref":"#/definitions/UseEncoding-2"},{"$ref":"#/definitions/InvokeFragment-2"}]}},"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "accelerator". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

choices

A list of predefined choices

text

The displayed text

value

The value that the form returns for this choice

choices

dataType

The option data type

defaultValue

The value used to pre-populate the option

dependsOn

The dependency that controls this options visibility

description

A tooltip to accompany the input

inputType

The HTML input type used to display the option

label

A human-readable version of the name identifying the option

name

A unique, camelCase name

required

Whether the user is required to enter a value in the UI

validationRegex

A regex that validates the string representation of the option value when set

applyTo

The path patterns used to filter which files to apply the Transforms to

applyTo

condition

The SpEL expression that determines if this Transform should execute

name

The transform name

transformations

A list of child Transforms to apply sequentially

applyTo

applyTo

chain

condition

exclude

The path patterns used to filter which files to exclude

exclude

include

The path patterns used to filter which files to include

include

let

A list of additional variables and their values

let

merge

A list of child Transforms to be executed in parallel

name

The transform name

onConflict

How conflict is handled when an operation produces multiple files at the same path

Fail UseFirst UseLast Append FavorOwn FavorForeign NWayDiff

name

The options name

value

The desired options value to compare against

expression

The SpEL expression to evaluate to compute the symbol value

name

The name under which the new symbol will be added

condition

name

The transform name

patterns

patterns

condition

name

The transform name

patterns

patterns

anchor

condition

let

let

name

The transform name

reference

condition

name

The transform name

noShadow

Whether shadowing should be turned off

symbols

symbols

condition

index

The variable's name to be assigned to the index of the current element on each iteration

name

The transform name

on

A SpEL expression that evaluates a list that contains the elements to be iterated over

var

The name of the variable to be assigned to the current element on each iteration

condition

name

The transform name

sources

condition

name

The transform name

options

Keys and values that depend on the class of the recipe

parseOrFail

recipe

Full qualified classname of the recipe

condition

name

The transform name

condition

name

The transform name

pattern

The regular expression that determines text that will be replaced

with

The SpEL expression that evaluates to the text that will replace the previous string

regex

The replacement rule using a single regular expression

substitutions

The replacement rules using literal text tokens

text

The text that will be replaced

with

substitutions

condition

matchOrFail

Whether an error should occur if the regex doesn't match

name

The transform name

regex

The regular expression used to match each input files path

rewriteTo

The SpEL expression of the location that the file will be rewritten to

condition

name

The transform name

strategy

condition

encoding

The encuding to use, as recognized by the java java.nio.charset.Charset class

name

The transform name

allowList

A list of variable names that are allowed to be passed to YTT

allowList

condition

denyList

A list of variable names that are denied from being passed to YTT

denyList

extraArgs

A list of SpEL expressions whose results are additional command line arguments

extraArgs

name

The transform name

description

A more detailed description

displayName

A human-readable name

iconUrl

A URL pointing to an icon image

imports

The list of fragment to import

expose

The list of fragment options to make available as accelerator options

as

The alias to use as the name of the option

dependsOn

name

The original name of the option

expose

exposeTypes

The list of fragment types to make available as accelerator types

as

The alias to use as the name of the type

name

The original name of the type

exposeTypes

name

The name of the fragment to import

imports

options

The list of options passed to the UI to create input text boxes

options

tags

A list of tags used to filter accelerators

tags

types

The definitions of custom types

name

The capitalized name of this custom type

struct

A sequence of option definitions

struct

types

accelerator

The metadata (non-behavioral) part of an App Accelerator's accelerator.yaml file

Provide a JSON object that satisfies the schema "accelerator". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$ref":"#/definitions/IAccountsConfig","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"AwsAccountId":{"description":"AWS Account ID","maxLength":12,"minLength":12,"type":"string"},"EmailAddress":{"description":"An email address","maxLength":64,"minLength":6,"pattern":"['^\\S+@\\S+\\.\\S+$', '^\\w+$']","type":"string"},"IAccountConfig":{"additionalProperties":false,"description":"Account configuration","properties":{"accountAlias":{"$ref":"#/definitions/NonEmptyNoSpaceString","description":"Account alias used for sign-in page URL in place of 12-digit number. This must be unique within the AWS partition and be only digits, lowercase letters, and hyphens. It will be validated againt the Regular Expression ^[a-z0-9]([a-z0-9]|-(?!-)){1,61}[a-z0-9]$"},"description":{"$ref":"#/definitions/NonEmptyString","description":"The description is to used to provide more information about the account. This value is not used when creating accounts."},"email":{"$ref":"#/definitions/EmailAddress","description":"The email address of the owner to assign to the account. The email address must not already be associated with another AWS account. You must use a valid email address. The address must be a minimum of 6 and a maximum of 64 characters long. All characters must be 7-bit ASCII characters There must be one and only one @ symbol, which separates the local name from the domain name. The local name can\u2019t contain any of the following characters: whitespace, \u201d \u2018 ( ) < > [ ] : ; , | % & The local name can\u2019t begin with a dot (.) The domain name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) The domain name can\u2019t begin or end with a hyphen (-) or dot (.) The domain name must contain at least one dot"},"name":{"$ref":"#/definitions/NonEmptyNoSpaceString","description":"The friendly name that is assigned to the account for reference within the Accelerator. The name will be used to reference this account in other configuration files and not to lookup the account in AWS.\n\nFor pre-existing accounts this does not need to match the AWS account name.\n\nWhen creating new accounts with the Accelerator, this name will be used as the AWS account name.\n\nThe name should not contain any spaces as this isn't supported by the Accelerator."},"organizationalUnit":{"$ref":"#/definitions/NonEmptyString","description":"The friendly name for the Organizational Unit that this account is a member of. This Organizational Unit must exist in the organization-config.yaml file."},"warm":{"description":"'Warm' the account by creating an EC2 instance that runs for 15 minutes Use for new accounts that will need to have ec2 instance provisioned as part of the solution The 'warming' will take place in the operations stack This property may be removed after the account has been provisioned","type":"boolean"}},"required":["email","name"],"type":"object"},"IAccountIdConfig":{"additionalProperties":false,"properties":{"accountId":{"$ref":"#/definitions/AwsAccountId"},"email":{"$ref":"#/definitions/EmailAddress"}},"required":["email","accountId"],"type":"object"},"IAccountsConfig":{"additionalProperties":false,"properties":{"accountIds":{"items":{"$ref":"#/definitions/IAccountIdConfig"},"type":"array"},"mandatoryAccounts":{"anyOf":[{"items":{"$ref":"#/definitions/IAccountConfig"},"type":"array"},{"items":{"$ref":"#/definitions/IGovCloudAccountConfig"},"type":"array"}]},"workloadAccounts":{"anyOf":[{"items":{"$ref":"#/definitions/IAccountConfig"},"type":"array"},{"items":{"$ref":"#/definitions/IGovCloudAccountConfig"},"type":"array"}]}},"required":["mandatoryAccounts","workloadAccounts"],"type":"object"},"IGovCloudAccountConfig":{"additionalProperties":false,"description":"GovCloud Account configuration\nUsed instead of the account configuration in the commercial\npartition when creating GovCloud partition linked accounts.","properties":{"accountAlias":{"$ref":"#/definitions/NonEmptyNoSpaceString","description":"Account alias used for sign-in page URL in place of 12-digit number. This must be unique within the AWS partition and be only digits, lowercase letters, and hyphens. It will be validated againt the Regular Expression ^[a-z0-9]([a-z0-9]|-(?!-)){1,61}[a-z0-9]$"},"description":{"$ref":"#/definitions/NonEmptyString","description":"The description is to used to provide more information about the account. This value is not used when creating accounts."},"email":{"$ref":"#/definitions/EmailAddress","description":"The email address of the owner to assign to the account. The email address must not already be associated with another AWS account. You must use a valid email address. The address must be a minimum of 6 and a maximum of 64 characters long. All characters must be 7-bit ASCII characters There must be one and only one @ symbol, which separates the local name from the domain name. The local name can\u2019t contain any of the following characters: whitespace, \u201d \u2018 ( ) < > [ ] : ; , | % & The local name can\u2019t begin with a dot (.) The domain name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) The domain name can\u2019t begin or end with a hyphen (-) or dot (.) The domain name must contain at least one dot"},"enableGovCloud":{"description":"Indicates whether or not a GovCloud partition account should be created.","type":"boolean"},"name":{"$ref":"#/definitions/NonEmptyNoSpaceString","description":"The friendly name that is assigned to the account for reference within the Accelerator. The name will be used to reference this account in other configuration files and not to lookup the account in AWS.\n\nFor pre-existing accounts this does not need to match the AWS account name.\n\nWhen creating new accounts with the Accelerator, this name will be used as the AWS account name.\n\nThe name should not contain any spaces as this isn't supported by the Accelerator."},"organizationalUnit":{"$ref":"#/definitions/NonEmptyString","description":"The friendly name for the Organizational Unit that this account is a member of. This Organizational Unit must exist in the organization-config.yaml file."}},"required":["email","name"],"type":"object"},"NonEmptyNoSpaceString":{"description":"A string that contains no spaces","minLength":1,"pattern":"^[^\\s]*$","type":"string"},"NonEmptyString":{"description":"A string that has at least 1 character","minLength":1,"type":"string"}}}
</schema>

[User] Provide a JSON object that satisfies the schema "accounts-config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

AWS Account ID

An email address

Account configuration

Account alias used for sign-in page URL in place of 12-digit number. This must be unique within the AWS partition and be only digits, lowercase letters, and hyphens. It will be validated againt the Regular Expression ^[a-z0-9]([a-z0-9]|-(?!-)){1,61}[a-z0-9]$

The description is to used to provide more information about the account. This value is not used when creating accounts.

The email address of the owner to assign to the account. The email address must not already be associated with another AWS account. You must use a valid email address. The address must be a minimum of 6 and a maximum of 64 characters long. All characters must be 7-bit ASCII characters There must be one and only one @ symbol, which separates the local name from the domain name. The local name can’t contain any of the following characters: whitespace, ” ‘ ( ) < > [ ] : ; , | % & The local name can’t begin with a dot (.) The domain name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) The domain name can’t begin or end with a hyphen (-) or dot (.) The domain name must contain at least one dot

The friendly name that is assigned to the account for reference within the Accelerator. The name will be used to reference this account in other configuration files and not to lookup the account in AWS.

For pre-existing accounts this does not need to match the AWS account name.

When creating new accounts with the Accelerator, this name will be used as the AWS account name.

The name should not contain any spaces as this isn't supported by the Accelerator.

The friendly name for the Organizational Unit that this account is a member of. This Organizational Unit must exist in the organization-config.yaml file.

'Warm' the account by creating an EC2 instance that runs for 15 minutes Use for new accounts that will need to have ec2 instance provisioned as part of the solution The 'warming' will take place in the operations stack This property may be removed after the account has been provisioned

GovCloud Account configuration
Used instead of the account configuration in the commercial
partition when creating GovCloud partition linked accounts.

Indicates whether or not a GovCloud partition account should be created.

A string that contains no spaces

A string that has at least 1 character

Provide a JSON object that satisfies the schema "accounts-config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"typescript":{"description":"Is project written in Typescript or not","type":"boolean"},"exceptionHandlerNamespace":{"description":"Http server exception handler namespace","type":"string"},"assetsDriver":{"description":"The driver to use for assets bundling","type":"string","enum":["encore","vite","fake"]},"preloads":{"type":"array","uniqueItems":true,"items":{"oneOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string"},"environment":{"type":"array","items":{"type":"string","enum":["web","console","test","repl"]}},"optional":{"type":"boolean"}},"required":["file"],"additionalProperties":false}]}},"metaFiles":{"type":"array","items":{"uniqueItems":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"pattern":{"type":"string"},"reloadServer":{"type":"boolean"}},"required":["pattern"]}]}},"commands":{"type":"array","items":{"type":"string"}},"providers":{"type":"array","items":{"type":"string"},"uniqueItems":true},"aceProviders":{"type":"array","items":{"type":"string"},"uniqueItems":true},"testProviders":{"type":"array","items":{"type":"string"},"uniqueItems":true},"directories":{"type":"object","properties":{"config":{"type":"string"},"public":{"type":"string"},"contracts":{"type":"string"},"providers":{"type":"string"},"database":{"type":"string"},"migrations":{"type":"string"},"seeds":{"type":"string"},"resources":{"type":"string"},"views":{"type":"string"},"start":{"type":"string"},"tmp":{"type":"string"},"tests":{"type":"string"}},"additionalProperties":{"type":"string"}},"commandsAliases":{"type":"object","patternProperties":{"^.*$":{"type":"string"}}},"aliases":{"type":"object","patternProperties":{"^.*$":{"type":"string"}}},"namespaces":{"type":"object","properties":{"models":{"type":"string"},"exceptions":{"type":"string"},"middleware":{"type":"string"},"httpControllers":{"type":"string"},"eventListeners":{"type":"string"},"redisListeners":{"type":"string"},"validators":{"type":"string"}},"additionalProperties":{"type":"string"}},"tests":{"type":"object","properties":{"suites":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"files":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"timeout":{"type":"number"}},"required":["name","files"]}},"timeout":{"type":"number"},"forceExit":{"type":"boolean"}},"required":["suites"]}},"required":["typescript","providers"]}
</schema>

[User] Provide a JSON object that satisfies the schema "adonisrc.schema". Here are the required top‑level fields: typescript, providers. Return only the valid JSON object.

Is project written in Typescript or not

Http server exception handler namespace

The driver to use for assets bundling

Provide a JSON object that satisfies the schema "adonisrc.schema". Here are the required top‑level fields: typescript, providers. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","title":"aerleon.yml","description":"Configure Aerleon's aclgen, aclcheck, and pol2yaml command line tools","type":"object","properties":{"base_directory":{"type":"string","description":"aclgen and pol2yaml will search this directory recursively for policy files to process, except if the flag `--policy_file` is used to give a specific input file (aclgen only).\n\nRelative paths that appear in 'include' directives will be resolved against base_directory.\n\nThe default value is './policies'.","minLength":1},"definitions_directory":{"type":"string","description":"All network and service definition files in this directory will be loaded and used to resolve symbolic network and service names. \n\nUnlike base_directory, definitions_directory is not searched recursively for input files.\n\nThe default value is './def'.","minLength":1},"output_directory":{"type":"string","description":"aclgen will place all generated ACLs in this directory. For `aclgen` the default value is the current directory.\n\npol2yaml will place each converted file adjacent to its input file by default. If output_directory is given, pol2yaml will mirror the directory structure of the input files in the output_directory, potentially creating directories in the process.","minLength":1},"optimize":{"type":"boolean","description":"Causes aclgen to produce a more compact address book by collapsing adjacent or overlapping CIDR expressions within the same network.\n\nOn some platforms (Juniper SRX and platforms configured with the 'object-group' option) address book compression is restricted to only collapse addresses that share the same network token (name).\n\nThis flag is not enabled by default, although a secondary address book compression pass is always performed for Juniper SRX and Palo Alto Networks firewalls regardless of this setting."},"recursive":{"type":"boolean","description":"UNUSED. This field is not used."},"debug":{"type":"boolean","description":"Causes aclgen to display very detailed log messages if true. The default value is false."},"verbose":{"type":"boolean","description":"UNUSED. This field is not used. To get detailed log messages, use 'debug'."},"max_renderers":{"type":"integer","description":"Controls the number of parallel processes used by aclgen to render ACLs. The aclgen program uses Python's OS process-based multiprocessing, so setting max_renderers to '2' would cause aclgen to spawn two OS processes that will generate ACLs.\n\nSetting max_renderers to '1' will disable multiprocessing.\n\nBy default, max_renderers is set to '10'. Users may wish to set this to the number of available CPUs on the current system."},"shade_check":{"type":"boolean","description":"Causes aclgen to produce a warning if any unreachable term is encountered if true. The default value is false."},"exp_info":{"type":"integer","description":"aclgen will produce a warning if it encounters a term set to expire in the near future. Expired terms are ignored. Setting exp_info controls the number of weeks ahead that aclgen will check for soon-to-expire terms.\n\nThe default value is '2' (two weeks)."}},"additionalProperties":false}
</schema>

[User] Provide a JSON object that satisfies the schema "aerleon.yml". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

aerleon.yml

Configure Aerleon's aclgen, aclcheck, and pol2yaml command line tools

aclgen and pol2yaml will search this directory recursively for policy files to process, except if the flag `--policy_file` is used to give a specific input file (aclgen only).

Relative paths that appear in 'include' directives will be resolved against base_directory.

The default value is './policies'.

All network and service definition files in this directory will be loaded and used to resolve symbolic network and service names.

Unlike base_directory, definitions_directory is not searched recursively for input files.

The default value is './def'.

aclgen will place all generated ACLs in this directory. For `aclgen` the default value is the current directory.

pol2yaml will place each converted file adjacent to its input file by default. If output_directory is given, pol2yaml will mirror the directory structure of the input files in the output_directory, potentially creating directories in the process.

Causes aclgen to produce a more compact address book by collapsing adjacent or overlapping CIDR expressions within the same network.

On some platforms (Juniper SRX and platforms configured with the 'object-group' option) address book compression is restricted to only collapse addresses that share the same network token (name).

This flag is not enabled by default, although a secondary address book compression pass is always performed for Juniper SRX and Palo Alto Networks firewalls regardless of this setting.

UNUSED. This field is not used.

Causes aclgen to display very detailed log messages if true. The default value is false.

UNUSED. This field is not used. To get detailed log messages, use 'debug'.

Controls the number of parallel processes used by aclgen to render ACLs. The aclgen program uses Python's OS process-based multiprocessing, so setting max_renderers to '2' would cause aclgen to spawn two OS processes that will generate ACLs.

Setting max_renderers to '1' will disable multiprocessing.

By default, max_renderers is set to '10'. Users may wish to set this to the number of available CPUs on the current system.

Causes aclgen to produce a warning if any unreachable term is encountered if true. The default value is false.

aclgen will produce a warning if it encounters a term set to expire in the near future. Expired terms are ignored. Setting exp_info controls the number of weeks ahead that aclgen will check for soon-to-expire terms.

The default value is '2' (two weeks).

Provide a JSON object that satisfies the schema "aerleon.yml". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"urn:aerleon:schemas:aerleon-definitions:1.0.0","$schema":"http://json-schema.org/draft-07/schema#","$comment":"https://aerleon.readthedocs.io/en/latest/reference/naming/","title":"Aerleon Network & Service Definitions","type":"object","additionalProperties":false,"properties":{"networks":{"title":"Network Definition Section","description":"Policy files can reference the networks in this section by name. A network is a list of IP addresses or CIDR IP address ranges and may contain other networks.","type":"object","additionalProperties":{"$ref":"#/$defs/networkDefinition"},"propertyNames":{"$ref":"#/$defs/token"}},"services":{"title":"Service Definition Section","description":"Policy files can reference the services in this section by name. A service is a list of port/protocol pairs (e.g. port: 80, protocol: tcp) and can include port ranges. A service can include other services.","type":"object","additionalProperties":{"$ref":"#/$defs/serviceDefinition"},"propertyNames":{"$ref":"#/$defs/token"}}},"$defs":{"token":{"type":"string","pattern":"^[-_a-zA-Z0-9]+$"},"comment":{"description":"Attach a comment directly to a value. This comment may be included in generated output on platforms that support it.","type":"string"},"address":{"description":"Specifies an IP address or CIDR IP address range expression.","type":"string"},"fqdn":{"description":"Specifies a fully qualified domain name with two or more labels.","type":"string","pattern":"^(?!.*://)(?=.{1,255}$)((.{1,63}\\.){1,127}(?![0-9]*$)[a-z0-9-]+\\.?)$"},"port":{"description":"Specifies a port or port range.","oneOf":[{"type":"string","pattern":"^\\d+-\\d+|^\\d+$"},{"type":"integer"}]},"protocol":{"description":"Specifies a protocol by name or number.","oneOf":[{"type":"integer"},{"type":"string"}]},"networkDefinition":{"type":"object","title":"Network Definition","description":"Defines a named network, composed of IP addresses, IP address ranges, and references to other networks.\nAn object with the \"address\" property adds that address or address range to the network.\nAn object with the \"name\" property includes the contents of that network into this one.\nA single string also includes the content of that network into this one.","additionalProperties":false,"required":["values"],"properties":{"values":{"description":"Defines a named network, composed of IP addresses, IP address ranges, and references to other networks.\nAn object with the \"address\" property adds that address or address range to the network.\nAn object with the \"name\" property includes the contents of that network into this one.\nA single string also includes the content of that network into this one.","type":"array","items":{"oneOf":[{"type":"string","title":"Network Reference","description":"Include another network by name.","$ref":"#/$defs/token"},{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/$defs/address"},"comment":{"$ref":"#/$defs/comment"}},"additionalProperties":false},{"type":"object","required":["fqdn"],"properties":{"fqdn":{"$ref":"#/$defs/fqdn"},"comment":{"$ref":"#/$defs/comment"}},"additionalProperties":false},{"type":"object","title":"Network Reference","required":["name"],"properties":{"name":{"description":"Include another network by name.","$ref":"#/$defs/token"},"comment":{"$ref":"#/$defs/comment"}},"additionalProperties":false}]}}}},"serviceDefinition":{"type":"array","title":"Service Definition","description":"Defines a named service, composed of portocol, port pairs and/or references to other services.","items":{"oneOf":[{"type":"object","required":["port","protocol"],"properties":{"port":{"$ref":"#/$defs/port"},"protocol":{"$ref":"#/$defs/protocol"},"comment":{"$ref":"#/$defs/comment"}},"additionalProperties":false},{"type":"object","title":"Service Reference","description":"Include another service by name.","required":["name"],"properties":{"name":{"description":"Include another service by name.","$ref":"#/$defs/token"},"comment":{"$ref":"#/$defs/comment"}},"additionalProperties":false}]}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Aerleon Network & Service Definitions". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Aerleon Network & Service Definitions

Network Definition Section

Policy files can reference the networks in this section by name. A network is a list of IP addresses or CIDR IP address ranges and may contain other networks.

Service Definition Section

Policy files can reference the services in this section by name. A service is a list of port/protocol pairs (e.g. port: 80, protocol: tcp) and can include port ranges. A service can include other services.

Attach a comment directly to a value. This comment may be included in generated output on platforms that support it.

Specifies an IP address or CIDR IP address range expression.

Specifies a fully qualified domain name with two or more labels.

Specifies a port or port range.

Specifies a protocol by name or number.

Network Definition

Defines a named network, composed of IP addresses, IP address ranges, and references to other networks.
An object with the "address" property adds that address or address range to the network.
An object with the "name" property includes the contents of that network into this one.
A single string also includes the content of that network into this one.

Network Reference

Include another network by name.

Network Reference

Include another network by name.

Service Definition

Defines a named service, composed of portocol, port pairs and/or references to other services.

Service Reference

Include another service by name.

Include another service by name.

Provide a JSON object that satisfies the schema "Aerleon Network & Service Definitions". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"urn:aerleon:schemas:aerleon-policy-yaml:1.0.0","$schema":"http://json-schema.org/draft-07/schema#","$comment":"https://aerleon.readthedocs.io/en/latest/reference/yaml_reference/","title":"Aerleon Policy File","oneOf":[{"$ref":"#/$defs/policyTermIncludeFile"},{"$ref":"#/$defs/policyFilterIncludeFile"},{"$ref":"#/$defs/policyFile"}],"$defs":{"policyFile":{"type":"object","title":"Policy File","required":["filters"],"properties":{"filters":{"description":"A policy file contains one or more filters. Each filter has a header that lists the generator target platforms and their options. The filter ACL rules appear in the terms section.","type":"array","items":{"$ref":"#/$defs/filter"}}}},"policyFilterIncludeFile":{"type":"object","title":"Policy File","required":["filters_include_only"],"properties":{"filters_include_only":{"description":"A policy file contains one or more filters. Each filter has a header that lists the generator target platforms and their options. The filter ACL rules appear in the terms section.\n\nfilters_include_only defines a list of filters that will not be directly converted into an ACL, but can be included by other files.","type":"array","items":{"$ref":"#/$defs/filter"}}}},"policyTermIncludeFile":{"type":"object","title":"Policy Include File","required":["terms"],"properties":{"terms":{"description":"A policy include file contains a single list of terms. Other policy files can insert this list using the include directive. This file can include other files, but be careful not to exceed the include depth limit of 5.\n\nEach entry in this list is a term and must have a 'name' property defined.\n\nCommon lists of terms shared between policy files can be placed in an include file. Create an item in the list with a single property, 'include', that references the path to the include file.","type":"array","items":{"$ref":"#/$defs/term"}}}},"filter":{"oneOf":[{"type":"object","required":["header","terms"],"properties":{"header":{"type":"object","title":"Filter Header","description":"The filter header lists the generator target platforms and their options. Other filter-level settings can be defined in the header.","required":["targets"],"properties":{"targets":{"title":"Filter Targets","description":"aclgen will generate an ACL for each target platforms identified here.","type":"object"}}},"terms":{"title":"Term List","description":"The ACL rules for this filter. Each entry in this list is a term and must have a 'name' property defined.\n\nCommon lists of terms shared between policy files can be placed in an include file. Create an item in the list with a single property, 'include', that references the path to the include file.","type":"array","items":{"$ref":"#/$defs/term"}}},"additionalProperties":true},{"type":"object","required":["include"],"properties":{"include":{"type":"string","title":"Filter List Include","description":"Common filters shared between policy files can be placed in an include file. Create an item in the list with a single property, 'include', that references the path to the include file. The path will be resolved relative to the --base_directory given to aclgen, which is './policies/' by default."}},"additionalProperties":false}]},"term":{"oneOf":[{"title":"Term","type":"object","required":["name"],"properties":{"name":{"type":"string"}},"additionalProperties":true},{"title":"Include Term List","type":"object","required":["include"],"properties":{"include":{"description":"Common lists of terms shared between policy files can be placed in an include file. Create an item in the list with a single property, 'include', that references the path to the include file. The path will be resolved relative to the --base_directory given to aclgen, which is './policies/' by default.","type":"string"}},"additionalProperties":false}]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Aerleon Policy File". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Aerleon Policy File

Policy File

Policy File

A policy file contains one or more filters. Each filter has a header that lists the generator target platforms and their options. The filter ACL rules appear in the terms section.

filters_include_only defines a list of filters that will not be directly converted into an ACL, but can be included by other files.

Policy Include File

A policy include file contains a single list of terms. Other policy files can insert this list using the include directive. This file can include other files, but be careful not to exceed the include depth limit of 5.

Each entry in this list is a term and must have a 'name' property defined.

Common lists of terms shared between policy files can be placed in an include file. Create an item in the list with a single property, 'include', that references the path to the include file.

Filter Header

The filter header lists the generator target platforms and their options. Other filter-level settings can be defined in the header.

Filter Targets

aclgen will generate an ACL for each target platforms identified here.

Term List

The ACL rules for this filter. Each entry in this list is a term and must have a 'name' property defined.

Common lists of terms shared between policy files can be placed in an include file. Create an item in the list with a single property, 'include', that references the path to the include file.

Filter List Include

Common filters shared between policy files can be placed in an include file. Create an item in the list with a single property, 'include', that references the path to the include file. The path will be resolved relative to the --base_directory given to aclgen, which is './policies/' by default.

Term

Include Term List

Common lists of terms shared between policy files can be placed in an include file. Create an item in the list with a single property, 'include', that references the path to the include file. The path will be resolved relative to the --base_directory given to aclgen, which is './policies/' by default.

Provide a JSON object that satisfies the schema "Aerleon Policy File". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":false,"id":"https://json.schemastore.org/agripparc-1.4.json","properties":{"$schema":{"description":"Link to https://www.schemastore.org/agripparc-1.4.json","type":"string","enum":["https://www.schemastore.org/agripparc-1.4.json"]},"props":{"description":"Which prop declaration method to use","type":"string","enum":["ts","jsdoc","prop-types","none"]},"children":{"description":"Whether the component is meant to have children (FC) or not (VFC)","type":"boolean"},"typescript":{"description":"Whether to use Typescript","type":"boolean"},"flat":{"description":"Whether to create a new, dedicated dir for the component (false) or not (true)","type":"boolean"},"styling":{"description":"Which styling solution to use","type":"string","enum":["css","scss","jss","mui","react-native","styled-components","none"]},"stylingModule":{"description":"Relevant for `css` or `scss` styling. If true, generates a scoped `module` stylesheet","type":"boolean"},"importReact":{"description":"Whether to import React","type":"boolean"},"overwrite":{"description":"Whether to overwrite existing files, if any are found","type":"boolean"},"postCommand":{"description":"A command to run after a component was successfully generated","type":"string"},"baseDir":{"description":"Path to a base directory which components should be genenrated in or relative to","type":"string"},"destination":{"description":"The path in which the component folder/files should be generated, relative to baseDir","type":"string"},"allowOutsideBase":{"description":"If true, allows components to be generated outside the resolved baseDir","type":"boolean"},"exportType":{"description":"Whether to use a named export or a default export for the component","type":"string","enum":["named","default"]},"declaration":{"description":"Whether to declare the component as a const with an arrow function or a function declaration","type":"string","enum":["const","function"]},"tsPropsDeclaration":{"description":"For TS components, whether to declare props as an interface or a type","type":"string","enum":["interface","type"]},"memo":{"description":"Whether to generate a memo() component. Overrides the declaration option","type":"boolean"},"separateIndex":{"description":"Whether to use a dedicated index file (recommended)","type":"boolean"},"reactNative":{"description":"Whether to generate React Native components"},"debug":{"description":"Whether to log additional debug information","type":"boolean"}},"title":"JSON schema for the Agrippa config file","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for the Agrippa config file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Link to https://www.schemastore.org/agripparc-1.4.json

Which prop declaration method to use

Whether the component is meant to have children (FC) or not (VFC)

Whether to use Typescript

Whether to create a new, dedicated dir for the component (false) or not (true)

Which styling solution to use

css scss jss mui react-native styled-components none

Relevant for `css` or `scss` styling. If true, generates a scoped `module` stylesheet

Whether to import React

Whether to overwrite existing files, if any are found

A command to run after a component was successfully generated

Path to a base directory which components should be genenrated in or relative to

The path in which the component folder/files should be generated, relative to baseDir

If true, allows components to be generated outside the resolved baseDir

Whether to use a named export or a default export for the component

Whether to declare the component as a const with an arrow function or a function declaration

For TS components, whether to declare props as an interface or a type

Whether to generate a memo() component. Overrides the declaration option

Whether to use a dedicated index file (recommended)

Whether to generate React Native components

Whether to log additional debug information

JSON schema for the Agrippa config file

Provide a JSON object that satisfies the schema "JSON schema for the Agrippa config file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","title":"ProActions AI-Kit Configuration Schema","description":"Schema for ProActions AI-Kit configuration files","type":"object","required":["AI_KIT"],"properties":{"AI_KIT":{"type":"object","description":"Root configuration object for AI-Kit","properties":{"SERVICES":{"oneOf":[{"$ref":"https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-services.schema.json"},{"type":"string","description":"Path to an external services file using !include directive"}]},"TEXT_MENU":{"oneOf":[{"$ref":"https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-floatingMenu.schema.json"},{"type":"string","description":"Path to an external text menu file using !include directive"}]},"ONECLICK_MENU":{"oneOf":[{"$ref":"https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-floatingMenu.schema.json"},{"type":"string","description":"Path to an external oneclick menu file using !include directive"}]},"SLASH_MENU":{"oneOf":[{"$ref":"https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-floatingMenu.schema.json"},{"type":"string","description":"Path to an external slash menu file using !include directive"}]},"TEMPLATES":{"oneOf":[{"$ref":"https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-templates.schema.json"},{"type":"string","description":"Path to an external file using !include directive"}]},"SECTIONS":{"type":"array","description":"Sections defining the grouping of actions in the UI","items":{"oneOf":[{"$ref":"https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-section.schema.json"},{"type":"string","description":"Path to an external file using !include directive"}]}}},"additionalProperties":false}}}
</schema>

[User] Provide a JSON object that satisfies the schema "ProActions AI-Kit Configuration Schema". Here are the required top‑level fields: AI_KIT. Return only the valid JSON object.

ProActions AI-Kit Configuration Schema

Schema for ProActions AI-Kit configuration files

Root configuration object for AI-Kit

Path to an external services file using !include directive

Path to an external text menu file using !include directive

Path to an external oneclick menu file using !include directive

Path to an external slash menu file using !include directive

Path to an external file using !include directive

Sections defining the grouping of actions in the UI

Provide a JSON object that satisfies the schema "ProActions AI-Kit Configuration Schema". Here are the required top‑level fields: AI_KIT. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/aiconfig-1.0.json","additionalProperties":{},"type":"object","properties":{"name":{"description":"Friendly name descriptor for the AIConfig. Could default to the filename if not specified.","type":"string"},"description":{"description":"Description of the AIConfig.\nIf you have a collection of different AIConfigs, this may be used for dynamic prompt routing.","type":"string"},"schema_version":{"$ref":"#/definitions/SchemaVersion","description":"The version of the AIConfig schema."},"metadata":{"description":"Root-level metadata that applies to the entire AIConfig.","type":"object","additionalProperties":{},"properties":{"parameters":{"description":"Parameter definitions that are accessible to all prompts in this AIConfig.\nThese parameters can be referenced in the prompts using {{param_name}} handlebars syntax.\nFor more information, see https://handlebarsjs.com/guide/#basic-usage.","type":"object","additionalProperties":{}},"models":{"description":"Globally defined model settings. Any prompts that use these models will have these settings applied by default,\nunless they override them with their own model settings.","type":"object","additionalProperties":{"type":"object","additionalProperties":{}}},"default_model":{"description":"Default model to use for prompts that do not specify a model.","type":"string"},"model_parsers":{"description":"Model ID to ModelParser ID mapping.\nThis is useful if you want to use a custom ModelParser for a model, or if a single ModelParser can handle multiple models.","type":"object","additionalProperties":{"type":"string"}}}},"prompts":{"description":"Array of prompts that make up the AIConfig.","type":"array","items":{"type":"object","properties":{"name":{"description":"A unique identifier for the prompt. This is used to reference the prompt in other parts of the AIConfig (such as other prompts)","type":"string"},"input":{"$ref":"#/definitions/PromptInput","description":"The prompt string, or a more complex prompt object."},"metadata":{"type":"object","additionalProperties":{},"properties":{"parameters":{"description":"Parameter definitions that are accessible to this prompt.\nThese parameters can be referenced in the prompt using {{param_name}} handlebars syntax.\nFor more information, see https://handlebarsjs.com/guide/#basic-usage.","type":"object","additionalProperties":{}},"model":{"description":"Model name/settings that apply to this prompt.\nThese settings override any global model settings that may have been defined in the AIConfig metadata.\nIf this is a string, it is assumed to be the model name.\nIf this is undefined, the default model specified in the default_model property will be used for this Prompt.","anyOf":[{"type":"object","properties":{"name":{"description":"The ID of the model to use.","type":"string"},"settings":{"description":"Model inference settings that apply to this prompt.","type":"object","additionalProperties":{}}},"required":["name"]},{"type":"string"}]},"tags":{"description":"Tags for this prompt. Tags must be unique, and must not contain commas.","type":"array","items":{"type":"string"}}}},"outputs":{"description":"Execution, display, or stream outputs.","type":"array","items":{"$ref":"#/definitions/Output"}}},"required":["input","name"]}}},"required":["metadata","name","prompts","schema_version"],"definitions":{"SchemaVersion":{"anyOf":[{"type":"object","properties":{"major":{"type":"number"},"minor":{"type":"number"}},"required":["major","minor"]},{"enum":["latest","v1"],"type":"string"}]},"PromptInput":{"anyOf":[{"type":"object","additionalProperties":{},"properties":{"data":{"description":"Input to the model. This can represent a single input, or multiple inputs.\nThe structure of the data object is up to the ModelParser. Attachments field should be leveraged for non-text inputs (e.g. image, audio)."},"attachments":{"description":"Used to include non-text inputs (e.g. image, audio) of specified MIME types in the prompt","type":"array","items":{"$ref":"#/definitions/Attachment"}}}},{"type":"string"}]},"Attachment":{"description":"Data of specified MIME type to attach to a prompt","type":"object","required":["data"],"properties":{"mime_type":{"description":"MIME type of the attachment. If not specified, the MIME type will be assumed to be text/plain.","type":"string"},"data":{"description":"Data representing the attachment"},"metadata":{"description":"Attachment metadata.","type":"object","additionalProperties":{}}}},"Output":{"description":"Model inference result.","anyOf":[{"description":"Result of executing a prompt.","type":"object","properties":{"output_type":{"description":"Type of output.","type":"string","const":"execute_result"},"execution_count":{"description":"A result's prompt number.","type":"number"},"data":{"description":"The result of executing the prompt."},"mime_type":{"description":"The MIME type of the result. If not specified, the MIME type will be assumed to be plain text.","type":"string"},"metadata":{"description":"Output metadata.","type":"object","additionalProperties":{}}},"required":["data","output_type"]},{"description":"Output of an error that occurred during inference.","type":"object","properties":{"output_type":{"description":"Type of output.","type":"string","const":"error"},"ename":{"description":"The name of the error.","type":"string"},"evalue":{"description":"The value, or message, of the error.","type":"string"},"traceback":{"description":"The error's traceback, represented as an array of strings.","type":"array","items":{"type":"string"}}},"required":["ename","evalue","output_type","traceback"]}]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "aiconfig-1.0". Here are the required top‑level fields: metadata, name, prompts, schema_version. Return only the valid JSON object.

Friendly name descriptor for the AIConfig. Could default to the filename if not specified.

Description of the AIConfig.
If you have a collection of different AIConfigs, this may be used for dynamic prompt routing.

The version of the AIConfig schema.

Root-level metadata that applies to the entire AIConfig.

Parameter definitions that are accessible to all prompts in this AIConfig.
These parameters can be referenced in the prompts using {{param_name}} handlebars syntax.
For more information, see https://handlebarsjs.com/guide/#basic-usage.

Globally defined model settings. Any prompts that use these models will have these settings applied by default,
unless they override them with their own model settings.

Default model to use for prompts that do not specify a model.

Model ID to ModelParser ID mapping.
This is useful if you want to use a custom ModelParser for a model, or if a single ModelParser can handle multiple models.

Array of prompts that make up the AIConfig.

A unique identifier for the prompt. This is used to reference the prompt in other parts of the AIConfig (such as other prompts)

The prompt string, or a more complex prompt object.

Parameter definitions that are accessible to this prompt.
These parameters can be referenced in the prompt using {{param_name}} handlebars syntax.
For more information, see https://handlebarsjs.com/guide/#basic-usage.

Model name/settings that apply to this prompt.
These settings override any global model settings that may have been defined in the AIConfig metadata.
If this is a string, it is assumed to be the model name.
If this is undefined, the default model specified in the default_model property will be used for this Prompt.

The ID of the model to use.

Model inference settings that apply to this prompt.

Tags for this prompt. Tags must be unique, and must not contain commas.

Execution, display, or stream outputs.

Input to the model. This can represent a single input, or multiple inputs.
The structure of the data object is up to the ModelParser. Attachments field should be leveraged for non-text inputs (e.g. image, audio).

Used to include non-text inputs (e.g. image, audio) of specified MIME types in the prompt

Data of specified MIME type to attach to a prompt

MIME type of the attachment. If not specified, the MIME type will be assumed to be text/plain.

Data representing the attachment

Attachment metadata.

Model inference result.

Result of executing a prompt.

Type of output.

A result's prompt number.

The result of executing the prompt.

The MIME type of the result. If not specified, the MIME type will be assumed to be plain text.

Output metadata.

Output of an error that occurred during inference.

Type of output.

The name of the error.

The value, or message, of the error.

The error's traceback, represented as an array of strings.

Provide a JSON object that satisfies the schema "aiconfig-1.0". Here are the required top‑level fields: metadata, name, prompts, schema_version. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/aider-0.82.json","title":"Aider CLI Options Schema","type":"object","properties":{"model":{"type":"string","description":"Specify the model to use for the main chat. Default: None"},"openai-api-key":{"type":"string","description":"Specify the OpenAI API key. Default: None"},"anthropic-api-key":{"type":"string","description":"Specify the Anthropic API key. Default: None"},"openai-api-base":{"type":"string","description":"Specify the api base url. Default: None"},"openai-api-type":{"type":"string","description":"Specify the OpenAI API type. Default: None"},"openai-api-version":{"type":"string","description":"Specify the OpenAI API version. Default: None"},"openai-api-deployment-id":{"type":"string","description":"Specify the OpenAI API deployment ID. Default: None"},"openai-organization-id":{"type":"string","description":"Specify the OpenAI organization ID. Default: None"},"set-env":{"type":"array","items":{"type":"string"},"description":"Set environment variables. Default: []"},"api-key":{"type":"array","items":{"type":"string"},"description":"Set an API key for a provider. Default: []"},"list-models":{"type":"string","description":"List known models which match the (partial) MODEL name. Default: None"},"model-settings-file":{"type":"string","description":"Specify a file with aider model settings for unknown models. Default: .aider.model.settings.yml","default":".aider.model.settings.yml"},"model-metadata-file":{"type":"string","description":"Specify a file with context window and costs for unknown models. Default: .aider.model.metadata.json","default":".aider.model.metadata.json"},"alias":{"type":"array","items":{"type":"string"},"description":"Add a model alias. Default: []"},"reasoning-effort":{"type":"string","description":"Set the reasoning_effort API parameter. Default: None"},"thinking-tokens":{"type":"string","description":"Set the thinking token budget for models that support it. Default: None"},"verify-ssl":{"type":"boolean","description":"Verify the SSL cert when connecting to models. Default: true","default":true},"timeout":{"type":"string","description":"Timeout in seconds for API calls. Default: None"},"edit-format":{"type":"string","description":"Specify what edit format the LLM should use. Default: None"},"architect":{"type":"boolean","description":"Use architect edit format for the main chat. Default: None"},"auto-accept-architect":{"type":"boolean","description":"Enable/disable automatic acceptance of architect changes. Default: true","default":true},"weak-model":{"type":"string","description":"Specify the model to use for commit messages and chat history summarization. Default: None"},"editor-model":{"type":"string","description":"Specify the model to use for editor tasks. Default: None"},"editor-edit-format":{"type":"string","description":"Specify the edit format for the editor model. Default: None"},"show-model-warnings":{"type":"boolean","description":"Only work with models that have meta-data available. Default: true","default":true},"check-model-accepts-settings":{"type":"boolean","description":"Check if model accepts settings like reasoning_effort/thinking_tokens. Default: true","default":true},"max-chat-history-tokens":{"type":"string","description":"Soft limit on tokens for chat history, after which summarization begins. Default: None"},"cache-prompts":{"type":"boolean","description":"Enable caching of prompts. Default: false","default":false},"cache-keepalive-pings":{"type":"string","description":"Number of times to ping at 5min intervals to keep prompt cache warm. Default: 0","default":"0"},"map-tokens":{"type":"string","description":"Suggested number of tokens to use for repo map. Default: None"},"map-refresh":{"type":"string","description":"Control how often the repo map is refreshed. Default: auto","default":"auto"},"map-multiplier-no-files":{"type":"string","description":"Multiplier for map tokens when no files are specified. Default: 2","default":"2"},"input-history-file":{"type":"string","description":"Specify the chat input history file. Default: .aider.input.history","default":".aider.input.history"},"chat-history-file":{"type":"string","description":"Specify the chat history file. Default: .aider.chat.history.md","default":".aider.chat.history.md"},"restore-chat-history":{"type":"boolean","description":"Restore the previous chat history messages. Default: false","default":false},"llm-history-file":{"type":"string","description":"Log the conversation with the LLM to this file. Default: None"},"dark-mode":{"type":"boolean","description":"Use colors suitable for a dark terminal background. Default: false","default":false},"light-mode":{"type":"boolean","description":"Use colors suitable for a light terminal background. Default: false","default":false},"pretty":{"type":"boolean","description":"Enable/disable pretty, colorized output. Default: true","default":true},"stream":{"type":"boolean","description":"Enable/disable streaming responses. Default: true","default":true},"user-input-color":{"type":"string","description":"Set the color for user input. Default: #00cc00","default":"#00cc00"},"tool-output-color":{"type":"string","description":"Set the color for tool output. Default: None"},"tool-error-color":{"type":"string","description":"Set the color for tool error messages. Default: #FF2222","default":"#FF2222"},"tool-warning-color":{"type":"string","description":"Set the color for tool warning messages. Default: #FFA500","default":"#FFA500"},"assistant-output-color":{"type":"string","description":"Set the color for assistant output. Default: #0088ff","default":"#0088ff"},"completion-menu-color":{"type":"string","description":"Set the color for the completion menu. Default: None"},"completion-menu-bg-color":{"type":"string","description":"Set the background color for the completion menu. Default: None"},"completion-menu-current-color":{"type":"string","description":"Set the color for the current item in the completion menu. Default: None"},"completion-menu-current-bg-color":{"type":"string","description":"Set the background color for the current item in the completion menu. Default: None"},"code-theme":{"type":"string","description":"Set the markdown code theme. Default: default","default":"default"},"show-diffs":{"type":"boolean","description":"Show diffs when committing changes. Default: false","default":false},"git":{"type":"boolean","description":"Enable/disable looking for a git repo. Default: true","default":true},"gitignore":{"type":"boolean","description":"Enable/disable adding .aider* to .gitignore. Default: true","default":true},"aiderignore":{"type":"string","description":"Specify the aider ignore file. Default: .aiderignore","default":".aiderignore"},"subtree-only":{"type":"boolean","description":"Only consider files in the current subtree of the git repository. Default: false","default":false},"auto-commits":{"type":"boolean","description":"Enable/disable auto commit of LLM changes. Default: true","default":true},"dirty-commits":{"type":"boolean","description":"Enable/disable commits when repo is found dirty. Default: true","default":true},"attribute-author":{"type":"boolean","description":"Attribute aider code changes in the git author name. Default: None"},"attribute-committer":{"type":"boolean","description":"Attribute aider commits in the git committer name. Default: None"},"attribute-commit-message-author":{"type":"boolean","description":"Prefix commit messages with \u2018aider: \u2018 if aider authored the changes. Default: false","default":false},"attribute-commit-message-committer":{"type":"boolean","description":"Prefix all commit messages with \u2018aider: \u2018. Default: false","default":false},"attribute-co-authored-by":{"type":"boolean","description":"Attribute aider edits using the Co-authored-by trailer in the commit message. Default: false","default":false},"git-commit-verify":{"type":"boolean","description":"Enable/disable git pre-commit hooks with \u2013no-verify. Default: false","default":false},"commit":{"type":"boolean","description":"Commit all pending changes with a suitable commit message, then exit. Default: false","default":false},"commit-prompt":{"type":"string","description":"Specify a custom prompt for generating commit messages. Default: None"},"dry-run":{"type":"boolean","description":"Perform a dry run without modifying files. Default: false","default":false},"skip-sanity-check-repo":{"type":"boolean","description":"Skip the sanity check for the git repository. Default: false","default":false},"watch-files":{"type":"boolean","description":"Enable/disable watching files for ai coding comments. Default: false","default":false},"lint":{"type":"boolean","description":"Lint and fix provided files, or dirty files if none provided. Default: false","default":false},"lint-cmd":{"type":"array","items":{"type":"string"},"description":"Specify lint commands to run for different languages. Default: []"},"auto-lint":{"type":"boolean","description":"Enable/disable automatic linting after changes. Default: true","default":true},"test-cmd":{"type":"array","items":{"type":"string"},"description":"Specify command to run tests. Default: []"},"auto-test":{"type":"boolean","description":"Enable/disable automatic testing after changes. Default: false","default":false},"test":{"type":"boolean","description":"Run tests, fix problems found and then exit. Default: false","default":false},"analytics":{"type":"boolean","description":"Enable/disable analytics for current session. Default: None"},"analytics-log":{"type":"string","description":"Specify a file to log analytics events. Default: None"},"analytics-disable":{"type":"boolean","description":"Permanently disable analytics. Default: false","default":false},"just-check-update":{"type":"boolean","description":"Check for updates and return status in the exit code. Default: false","default":false},"check-update":{"type":"boolean","description":"Check for new aider versions on launch. Default: true","default":true},"show-release-notes":{"type":"boolean","description":"Show release notes on first run of new version. Default: None"},"install-main-branch":{"type":"boolean","description":"Install the latest version from the main branch. Default: false","default":false},"upgrade":{"type":"boolean","description":"Upgrade aider to the latest version from PyPI. Default: false","default":false},"version":{"type":"boolean","description":"Show the version number and exit. Default: None"},"message":{"type":"string","description":"Specify a single message to send the LLM, process reply then exit. Default: None"},"message-file":{"type":"string","description":"Specify a file containing the message to send the LLM, process reply, then exit. Default: None"},"gui":{"type":"boolean","description":"Run aider in your browser. Default: false","default":false},"copy-paste":{"type":"boolean","description":"Enable automatic copy/paste of chat between aider and web UI. Default: false","default":false},"apply":{"type":"string","description":"Apply the changes from the given file instead of running the chat. Default: None"},"apply-clipboard-edits":{"type":"boolean","description":"Apply clipboard contents as edits using the main model\u2019s editor format. Default: false","default":false},"exit":{"type":"boolean","description":"Do all startup activities then exit before accepting user input. Default: false","default":false},"show-repo-map":{"type":"boolean","description":"Print the repo map and exit. Default: false","default":false},"show-prompts":{"type":"boolean","description":"Print the system prompts and exit. Default: false","default":false},"voice-format":{"type":"string","description":"Audio format for voice recording. Default: wav","default":"wav"},"voice-language":{"type":"string","description":"Specify the language for voice using ISO 639-1 code. Default: en","default":"en"},"voice-input-device":{"type":"string","description":"Specify the input device name for voice recording. Default: None"},"disable-playwright":{"type":"boolean","description":"Never prompt for or attempt to install Playwright for web scraping. Default: false","default":false},"file":{"type":"array","items":{"type":"string"},"description":"Specify a file to edit. Default: []"},"read":{"type":"array","items":{"type":"string"},"description":"Specify a read-only file. Default: []"},"vim":{"type":"boolean","description":"Use VI editing mode in the terminal. Default: false","default":false},"chat-language":{"type":"string","description":"Specify the language to use in the chat. Default: None"},"yes-always":{"type":"boolean","description":"Always say yes to every confirmation. Default: None"},"verbose":{"type":"boolean","description":"Enable verbose output. Default: false","default":false},"load":{"type":"string","description":"Load and execute /commands from a file on launch. Default: None"},"encoding":{"type":"string","description":"Specify the encoding for input and output. Default: utf-8","default":"utf-8"},"line-endings":{"type":"string","description":"Line endings to use when writing files. Default: platform","default":"platform"},"config":{"type":"string","description":"Specify the config file. Default: None"},"env-file":{"type":"string","description":"Specify the .env file to load. Default: .env","default":".env"},"suggest-shell-commands":{"type":"boolean","description":"Enable/disable suggesting shell commands. Default: true","default":true},"fancy-input":{"type":"boolean","description":"Enable/disable fancy input with history and completion. Default: true","default":true},"multiline":{"type":"boolean","description":"Enable/disable multi-line input mode with Meta-Enter to submit. Default: false","default":false},"notifications":{"type":"boolean","description":"Enable/disable terminal bell notifications when LLM responses are ready. Default: false","default":false},"notifications-command":{"type":"string","description":"Specify a command to run for notifications instead of the terminal bell. Default: None"},"detect-urls":{"type":"boolean","description":"Enable/disable detection and offering to add URLs to chat. Default: true","default":true},"editor":{"type":"string","description":"Specify which editor to use for the /editor command. Default: None"},"opus":{"type":"boolean","description":"Use claude-3-opus-20240229 model for the main chat. Default: false","default":false},"sonnet":{"type":"boolean","description":"Use anthropic/claude-3-7-sonnet-20250219 model for the main chat. Default: false","default":false},"haiku":{"type":"boolean","description":"Use claude-3-5-haiku-20241022 model for the main chat. Default: false","default":false},"mini":{"type":"boolean","description":"Use gpt-4o-mini model for the main chat. Default: false","default":false},"deepseek":{"type":"boolean","description":"Use deepseek/deepseek-chat model for the main chat. Default: false","default":false},"o1-mini":{"type":"boolean","description":"Use o1-mini model for the main chat. Default: false","default":false},"o1-preview":{"type":"boolean","description":"Use o1-preview model for the main chat. Default: false","default":false},"4":{"type":"boolean","description":"Use gpt-4-0613 model for the main chat. Default: false","default":false},"4o":{"type":"boolean","description":"Use gpt-4o model for the main chat. Default: false","default":false},"4-turbo":{"type":"boolean","description":"Use gpt-4-1106-preview model for the main chat. Default: false","default":false},"35turbo":{"type":"boolean","description":"Use gpt-3.5-turbo model for the main chat. Default: false","default":false}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Aider CLI Options Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Aider CLI Options Schema

Specify the model to use for the main chat. Default: None

Specify the OpenAI API key. Default: None

Specify the Anthropic API key. Default: None

Specify the api base url. Default: None

Specify the OpenAI API type. Default: None

Specify the OpenAI API version. Default: None

Specify the OpenAI API deployment ID. Default: None

Specify the OpenAI organization ID. Default: None

Set environment variables. Default: []

Set an API key for a provider. Default: []

List known models which match the (partial) MODEL name. Default: None

Specify a file with aider model settings for unknown models. Default: .aider.model.settings.yml

Specify a file with context window and costs for unknown models. Default: .aider.model.metadata.json

Add a model alias. Default: []

Set the reasoning_effort API parameter. Default: None

Set the thinking token budget for models that support it. Default: None

Verify the SSL cert when connecting to models. Default: true

Timeout in seconds for API calls. Default: None

Specify what edit format the LLM should use. Default: None

Use architect edit format for the main chat. Default: None

Enable/disable automatic acceptance of architect changes. Default: true

Specify the model to use for commit messages and chat history summarization. Default: None

Specify the model to use for editor tasks. Default: None

Specify the edit format for the editor model. Default: None

Only work with models that have meta-data available. Default: true

Check if model accepts settings like reasoning_effort/thinking_tokens. Default: true

Soft limit on tokens for chat history, after which summarization begins. Default: None

Enable caching of prompts. Default: false

Number of times to ping at 5min intervals to keep prompt cache warm. Default: 0

Suggested number of tokens to use for repo map. Default: None

Control how often the repo map is refreshed. Default: auto

Multiplier for map tokens when no files are specified. Default: 2

Specify the chat input history file. Default: .aider.input.history

Specify the chat history file. Default: .aider.chat.history.md

Restore the previous chat history messages. Default: false

Log the conversation with the LLM to this file. Default: None

Use colors suitable for a dark terminal background. Default: false

Use colors suitable for a light terminal background. Default: false

Enable/disable pretty, colorized output. Default: true

Enable/disable streaming responses. Default: true

Set the color for user input. Default: #00cc00

Set the color for tool output. Default: None

Set the color for tool error messages. Default: #FF2222

Set the color for tool warning messages. Default: #FFA500

Set the color for assistant output. Default: #0088ff

Set the color for the completion menu. Default: None

Set the background color for the completion menu. Default: None

Set the color for the current item in the completion menu. Default: None

Set the background color for the current item in the completion menu. Default: None

Set the markdown code theme. Default: default

Show diffs when committing changes. Default: false

Enable/disable looking for a git repo. Default: true

Enable/disable adding .aider* to .gitignore. Default: true

Specify the aider ignore file. Default: .aiderignore

Only consider files in the current subtree of the git repository. Default: false

Enable/disable auto commit of LLM changes. Default: true

Enable/disable commits when repo is found dirty. Default: true

Attribute aider code changes in the git author name. Default: None

Attribute aider commits in the git committer name. Default: None

Prefix commit messages with ‘aider: ‘ if aider authored the changes. Default: false

Prefix all commit messages with ‘aider: ‘. Default: false

Attribute aider edits using the Co-authored-by trailer in the commit message. Default: false

Enable/disable git pre-commit hooks with –no-verify. Default: false

Commit all pending changes with a suitable commit message, then exit. Default: false

Specify a custom prompt for generating commit messages. Default: None

Perform a dry run without modifying files. Default: false

Skip the sanity check for the git repository. Default: false

Enable/disable watching files for ai coding comments. Default: false

Lint and fix provided files, or dirty files if none provided. Default: false

Specify lint commands to run for different languages. Default: []

Enable/disable automatic linting after changes. Default: true

Specify command to run tests. Default: []

Enable/disable automatic testing after changes. Default: false

Run tests, fix problems found and then exit. Default: false

Enable/disable analytics for current session. Default: None

Specify a file to log analytics events. Default: None

Permanently disable analytics. Default: false

Check for updates and return status in the exit code. Default: false

Check for new aider versions on launch. Default: true

Show release notes on first run of new version. Default: None

Install the latest version from the main branch. Default: false

Upgrade aider to the latest version from PyPI. Default: false

Show the version number and exit. Default: None

Specify a single message to send the LLM, process reply then exit. Default: None

Specify a file containing the message to send the LLM, process reply, then exit. Default: None

Run aider in your browser. Default: false

Enable automatic copy/paste of chat between aider and web UI. Default: false

Apply the changes from the given file instead of running the chat. Default: None

Apply clipboard contents as edits using the main model’s editor format. Default: false

Do all startup activities then exit before accepting user input. Default: false

Print the repo map and exit. Default: false

Print the system prompts and exit. Default: false

Audio format for voice recording. Default: wav

Specify the language for voice using ISO 639-1 code. Default: en

Specify the input device name for voice recording. Default: None

Never prompt for or attempt to install Playwright for web scraping. Default: false

Specify a file to edit. Default: []

Specify a read-only file. Default: []

Use VI editing mode in the terminal. Default: false

Specify the language to use in the chat. Default: None

Always say yes to every confirmation. Default: None

Enable verbose output. Default: false

Load and execute /commands from a file on launch. Default: None

Specify the encoding for input and output. Default: utf-8

Line endings to use when writing files. Default: platform

Specify the config file. Default: None

Specify the .env file to load. Default: .env

Enable/disable suggesting shell commands. Default: true

Enable/disable fancy input with history and completion. Default: true

Enable/disable multi-line input mode with Meta-Enter to submit. Default: false

Enable/disable terminal bell notifications when LLM responses are ready. Default: false

Specify a command to run for notifications instead of the terminal bell. Default: None

Enable/disable detection and offering to add URLs to chat. Default: true

Specify which editor to use for the /editor command. Default: None

Use claude-3-opus-20240229 model for the main chat. Default: false

Use anthropic/claude-3-7-sonnet-20250219 model for the main chat. Default: false

Use claude-3-5-haiku-20241022 model for the main chat. Default: false

Use gpt-4o-mini model for the main chat. Default: false

Use deepseek/deepseek-chat model for the main chat. Default: false

Use o1-mini model for the main chat. Default: false

Use o1-preview model for the main chat. Default: false

Use gpt-4-0613 model for the main chat. Default: false

Use gpt-4o model for the main chat. Default: false

Use gpt-4-1106-preview model for the main chat. Default: false

Use gpt-3.5-turbo model for the main chat. Default: false

Provide a JSON object that satisfies the schema "Aider CLI Options Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.