{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "agentscript",
"word": "identifier",
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "config_block"
},
{
"type": "SYMBOL",
"name": "variables_block"
},
{
"type": "SYMBOL",
"name": "system_block"
},
{
"type": "SYMBOL",
"name": "start_agent_block"
},
{
"type": "SYMBOL",
"name": "topic_block"
},
{
"type": "SYMBOL",
"name": "connection_block"
},
{
"type": "SYMBOL",
"name": "language_block"
},
{
"type": "SYMBOL",
"name": "knowledge_block"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
"config_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "config"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "config_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"config_entry": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "agent_name"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "agent_label"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "description"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "agent_type"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "default_agent_user"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
]
},
"variables_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "variables"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_def"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"variable_def": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "variable_modifier"
},
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"variable_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "mutable"
},
{
"type": "STRING",
"value": "linked"
}
]
},
"variable_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "description_entry"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "source"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "reference"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "label"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
]
},
"system_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "system"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "system_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"system_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "instructions_block"
},
{
"type": "SYMBOL",
"name": "messages_block"
}
]
},
"messages_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "messages"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "message_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"message_entry": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "welcome"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "error"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
]
},
"start_agent_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "start_agent"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "start_agent_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"start_agent_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "description_entry"
},
{
"type": "SYMBOL",
"name": "system_block"
},
{
"type": "SYMBOL",
"name": "actions_block"
},
{
"type": "SYMBOL",
"name": "reasoning_block"
},
{
"type": "SYMBOL",
"name": "before_reasoning_block"
},
{
"type": "SYMBOL",
"name": "after_reasoning_block"
}
]
},
"topic_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "topic"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "topic_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"topic_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "description_entry"
},
{
"type": "SYMBOL",
"name": "system_block"
},
{
"type": "SYMBOL",
"name": "reasoning_block"
},
{
"type": "SYMBOL",
"name": "before_reasoning_block"
},
{
"type": "SYMBOL",
"name": "after_reasoning_block"
},
{
"type": "SYMBOL",
"name": "actions_block"
}
]
},
"connection_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "connection"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "connection_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"connection_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "description_entry"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "target"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "escalation_message"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "outbound_route_type"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "outbound_route_name"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
]
},
"language_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "language"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "language_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"language_entry": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "locale"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "default_locale"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "additional_locales"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
]
},
"knowledge_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "knowledge"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "knowledge_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"knowledge_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "description_entry"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "source"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
]
},
"actions_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "actions"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "action_def"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"action_def": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "action_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"action_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "description_entry"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "label"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "target"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "require_user_confirmation"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "boolean"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "include_in_progress_indicator"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "boolean"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "progress_indicator_message"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SYMBOL",
"name": "inputs_block"
},
{
"type": "SYMBOL",
"name": "outputs_block"
}
]
},
"inputs_block": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "inputs"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "param_def"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
}
},
"outputs_block": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "outputs"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "param_def"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
}
},
"param_def": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "param_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"param_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "description_entry"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "label"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "is_required"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "boolean"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "is_displayable"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "boolean"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "is_used_by_planner"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "boolean"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "filter_from_agent"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "boolean"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "complex_data_type_name"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
]
},
"reasoning_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "reasoning"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "reasoning_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"reasoning_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "instructions_block"
},
{
"type": "SYMBOL",
"name": "reasoning_actions_block"
}
]
},
"before_reasoning_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "before_reasoning"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "directive_statement"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"after_reasoning_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "after_reasoning"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "directive_statement"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"instructions_block": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "instructions"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "instructions"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "plain_instruction_line"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "instructions"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dynamic_instruction"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "instructions"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "instruction_line"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
}
]
},
"plain_instruction_line": {
"type": "SYMBOL",
"name": "instruction_text"
},
"instruction_line": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "instruction_text"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "instruction_text"
}
]
}
]
},
"dynamic_instruction_line": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "instruction_text_with_interpolation"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "instruction_continuation"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "instruction_text_with_interpolation"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "instruction_continuation"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"instruction_continuation": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "instruction_continuation_line"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"instruction_continuation_line": {
"type": "SYMBOL",
"name": "instruction_text_with_interpolation"
},
"dynamic_instruction": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dynamic_instruction_line"
},
{
"type": "SYMBOL",
"name": "if_instruction"
},
{
"type": "SYMBOL",
"name": "run_statement"
},
{
"type": "SYMBOL",
"name": "set_statement"
},
{
"type": "SYMBOL",
"name": "transition_instruction"
}
]
},
"transition_instruction": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "utils_transition"
},
{
"type": "STRING",
"value": "to"
},
{
"type": "SYMBOL",
"name": "reference"
}
]
},
"if_instruction": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dynamic_instruction"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "else_instruction"
},
{
"type": "BLANK"
}
]
}
]
},
"else_instruction": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dynamic_instruction"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"instruction_text": {
"type": "PATTERN",
"value": "[^\\n]+"
},
"interpolation": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "interpolation_start"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "}"
}
]
},
"instruction_text_with_interpolation": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "interpolation"
},
{
"type": "SYMBOL",
"name": "instruction_text_segment"
}
]
}
},
"reasoning_actions_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "actions"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "reasoning_action"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"reasoning_action": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "target",
"content": {
"type": "SYMBOL",
"name": "reasoning_target"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "reasoning_action_entry"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"reasoning_target": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "utils_transition"
},
{
"type": "STRING",
"value": "to"
},
{
"type": "SYMBOL",
"name": "reference"
}
]
},
{
"type": "SYMBOL",
"name": "utils_escalate"
},
{
"type": "SYMBOL",
"name": "utils_set_variables"
},
{
"type": "SYMBOL",
"name": "topic_reference"
},
{
"type": "SYMBOL",
"name": "reference"
}
]
},
"utils_transition": {
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "@utils.transition"
}
},
"utils_escalate": {
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "@utils.escalate"
}
},
"utils_set_variables": {
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "@utils.setVariables"
}
},
"topic_reference": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@topic."
},
{
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*"
}
]
}
},
"reasoning_action_entry": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "description_entry"
},
{
"type": "SYMBOL",
"name": "with_clause"
},
{
"type": "SYMBOL",
"name": "set_clause"
},
{
"type": "SYMBOL",
"name": "run_clause"
},
{
"type": "SYMBOL",
"name": "available_when_clause"
},
{
"type": "SYMBOL",
"name": "if_clause"
},
{
"type": "SYMBOL",
"name": "transition_clause"
}
]
},
"with_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "with"
},
{
"type": "FIELD",
"name": "param",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"set_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "set"
},
{
"type": "FIELD",
"name": "target",
"content": {
"type": "SYMBOL",
"name": "reference"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"run_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "run"
},
{
"type": "FIELD",
"name": "action",
"content": {
"type": "SYMBOL",
"name": "reference"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "with_clause"
},
{
"type": "SYMBOL",
"name": "set_clause"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"available_when_clause": {
"type": "PREC_RIGHT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "available"
},
{
"type": "STRING",
"value": "when"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
"if_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "transition_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"transition_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "transition"
},
{
"type": "STRING",
"value": "to"
},
{
"type": "SYMBOL",
"name": "reference"
}
]
},
"directive_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "run_statement"
},
{
"type": "SYMBOL",
"name": "set_statement"
},
{
"type": "SYMBOL",
"name": "if_statement"
}
]
},
"set_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "set"
},
{
"type": "FIELD",
"name": "target",
"content": {
"type": "SYMBOL",
"name": "reference"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"run_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "run"
},
{
"type": "SYMBOL",
"name": "reference"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "with_clause"
},
{
"type": "SYMBOL",
"name": "set_clause"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"if_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "directive_statement"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "else_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"else_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "directive_statement"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"description_entry": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "description"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"type": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "string"
},
{
"type": "STRING",
"value": "number"
},
{
"type": "STRING",
"value": "boolean"
},
{
"type": "STRING",
"value": "object"
},
{
"type": "STRING",
"value": "integer"
},
{
"type": "STRING",
"value": "long"
},
{
"type": "STRING",
"value": "date"
},
{
"type": "STRING",
"value": "datetime"
},
{
"type": "STRING",
"value": "time"
},
{
"type": "STRING",
"value": "timestamp"
},
{
"type": "STRING",
"value": "currency"
},
{
"type": "STRING",
"value": "id"
},
{
"type": "SYMBOL",
"name": "list_type"
}
]
},
"list_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "list"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "STRING",
"value": "]"
}
]
},
"expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "primary_expression"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "ternary_expression"
}
]
},
"primary_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "SYMBOL",
"name": "none"
},
{
"type": "SYMBOL",
"name": "reference"
},
{
"type": "SYMBOL",
"name": "list"
},
{
"type": "SYMBOL",
"name": "parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "property_access"
},
{
"type": "SYMBOL",
"name": "index_access"
}
]
},
"parenthesized_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"unary_expression": {
"type": "PREC_LEFT",
"value": "unary",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "not"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
]
}
},
"binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "or"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "and"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "identity_operator"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "comparison_operator"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
"identity_operator": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "is"
},
{
"type": "STRING",
"value": "not"
}
]
}
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "STRING",
"value": "is"
}
}
]
},
"comparison_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
}
]
},
"ternary_expression": {
"type": "PREC_RIGHT",
"value": "ternary",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "then",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "else"
},
{
"type": "FIELD",
"name": "else",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"property_access": {
"type": "PREC_LEFT",
"value": "postfix",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
"index_access": {
"type": "PREC_LEFT",
"value": "postfix",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"reference": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*"
}
]
}
}
]
}
},
"string": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_double_quoted_string"
},
{
"type": "SYMBOL",
"name": "_single_quoted_string"
},
{
"type": "SYMBOL",
"name": "_triple_quoted_string"
}
]
},
"_double_quoted_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"\\\\]+"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"_single_quoted_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^'\\\\]+"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
"_triple_quoted_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\"\"\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"]+"
},
{
"type": "PATTERN",
"value": "\"[^\"]"
},
{
"type": "PATTERN",
"value": "\"\"[^\"]"
}
]
}
},
{
"type": "STRING",
"value": "\"\"\""
}
]
},
"escape_sequence": {
"type": "PATTERN",
"value": "\\\\[\\\\'\"nrt]"
},
"number": {
"type": "PATTERN",
"value": "\\d+(\\.\\d+)?"
},
"boolean": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "True"
},
{
"type": "STRING",
"value": "False"
}
]
},
"none": {
"type": "STRING",
"value": "None"
},
"identifier": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*"
},
"comment": {
"type": "PATTERN",
"value": "#[^\\n]*"
}
},
"extras": [
{
"type": "PATTERN",
"value": "[ \\t]"
},
{
"type": "SYMBOL",
"name": "comment"
}
],
"conflicts": [
[
"reference",
"expression"
],
[
"with_clause",
"ternary_expression"
],
[
"available_when_clause",
"ternary_expression"
],
[
"set_clause",
"ternary_expression"
],
[
"set_statement",
"ternary_expression"
],
[
"set_statement",
"binary_expression"
],
[
"instruction_text_with_interpolation"
]
],
"precedences": [
[
{
"type": "STRING",
"value": "ternary"
},
{
"type": "STRING",
"value": "or"
},
{
"type": "STRING",
"value": "and"
},
{
"type": "STRING",
"value": "identity"
},
{
"type": "STRING",
"value": "comparison"
},
{
"type": "STRING",
"value": "additive"
},
{
"type": "STRING",
"value": "unary"
},
{
"type": "STRING",
"value": "postfix"
},
{
"type": "STRING",
"value": "primary"
}
]
],
"externals": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "SYMBOL",
"name": "_dedent"
},
{
"type": "SYMBOL",
"name": "interpolation_start"
},
{
"type": "SYMBOL",
"name": "instruction_text_segment"
}
],
"inline": [],
"supertypes": [],
"reserved": {}
}