Implement the core autonomy layer — AgentLoop streams LLM responses, parses tool calls, executes them with permission checks, feeds results back, and repeats until the task completes or finish is called. - Add FinishTool for explicit loop termination - Add tools parameter to LLMClient.stream_chat() for function calling - Add compact tool result display (status line, not full output) - Refactor REPL to delegate to AgentLoop.run_turn() - Fix Ollama null content rejection (always send content as string) - Add finish to auto_approve permissions - 9 unit tests for agent loop (34 total, zero regressions) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
63 lines
992 B
YAML
63 lines
992 B
YAML
# SneakyCode Configuration
|
|
|
|
llm:
|
|
model: "qwen3.5:latest"
|
|
endpoint: "http://localhost:11434"
|
|
api_path: "/v1/chat/completions"
|
|
temperature: 0.1
|
|
max_tokens: 4096
|
|
timeout: 120
|
|
|
|
agent:
|
|
max_iterations: 25
|
|
max_conversation_tokens: 32000
|
|
workspace_root: "."
|
|
|
|
permissions:
|
|
auto_approve:
|
|
- read_file
|
|
- list_dir
|
|
- grep_files
|
|
- find_files
|
|
- finish
|
|
prompt_user:
|
|
- write_file
|
|
- delete_file
|
|
- run_command
|
|
- str_replace
|
|
- patch_apply
|
|
- make_dir
|
|
deny: []
|
|
|
|
tools:
|
|
shell:
|
|
allowed_commands:
|
|
- git
|
|
- python
|
|
- pip
|
|
- pytest
|
|
- ruff
|
|
- ls
|
|
- cat
|
|
- head
|
|
- tail
|
|
- wc
|
|
- diff
|
|
- grep
|
|
- find
|
|
- echo
|
|
denied_commands:
|
|
- rm -rf /
|
|
- sudo
|
|
- curl
|
|
- wget
|
|
max_output_bytes: 65536
|
|
filesystem:
|
|
max_file_size_bytes: 1048576 # 1 MB
|
|
binary_detection: true
|
|
|
|
display:
|
|
show_tool_calls: true
|
|
show_token_usage: true
|
|
stream_output: true
|