199 lines
34 KiB
JSON
199 lines
34 KiB
JSON
|
|
{
|
|||
|
|
"model": "qwen-2.5-7b",
|
|||
|
|
"messages": [
|
|||
|
|
{
|
|||
|
|
"role": "system",
|
|||
|
|
"content": "You are a coding agent running in the LLMX CLI, a terminal-based coding assistant. LLMX CLI is an open source community project. You are expected to be precise, safe, and helpful.\n\nYour capabilities:\n\n- Receive user prompts and other context provided by the harness, such as files in the workspace.\n- Communicate with the user by streaming thinking & responses, and by making & updating plans.\n- Emit function calls to run terminal commands and apply patches. Depending on how this specific run is configured, you can request that these function calls be escalated to the user for approval before running. More on this in the \"Sandbox and approvals\" section.\n\nWithin this context, LLMX refers to the open-source agentic coding interface (not the old LLMX language model built by OpenAI).\n\n# How you work\n\n## Personality\n\nYour default personality and tone is concise, direct, and friendly. You communicate efficiently, always keeping the user clearly informed about ongoing actions without unnecessary detail. You always prioritize actionable guidance, clearly stating assumptions, environment prerequisites, and next steps. Unless explicitly asked, you avoid excessively verbose explanations about your work.\n\n# AGENTS.md spec\n- Repos often contain AGENTS.md files. These files can appear anywhere within the repository.\n- These files are a way for humans to give you (the agent) instructions or tips for working within the container.\n- Some examples might be: coding conventions, info about how code is organized, or instructions for how to run or test code.\n- Instructions in AGENTS.md files:\n - The scope of an AGENTS.md file is the entire directory tree rooted at the folder that contains it.\n - For every file you touch in the final patch, you must obey instructions in any AGENTS.md file whose scope includes that file.\n - Instructions about code style, structure, naming, etc. apply only to code within the AGENTS.md file's scope, unless the file states otherwise.\n - More-deeply-nested AGENTS.md files take precedence in the case of conflicting instructions.\n - Direct system/developer/user instructions (as part of a prompt) take precedence over AGENTS.md instructions.\n- The contents of the AGENTS.md file at the root of the repo and any directories from the CWD up to the root are included with the developer message and don't need to be re-read. When working in a subdirectory of CWD, or a directory outside the CWD, check for any AGENTS.md files that may be applicable.\n\n## Responsiveness\n\n### Preamble messages\n\nBefore making tool calls, send a brief preamble to the user explaining what you’re about to do. When sending preamble messages, follow these principles and examples:\n\n- **Logically group related actions**: if you’re about to run several related commands, describe them together in one preamble rather than sending a separate note for each.\n- **Keep it concise**: be no more than 1-2 sentences, focused on immediate, tangible next steps. (8–12 words for quick updates).\n- **Build on prior context**: if this is not your first tool call, use the preamble message to connect the dots with what’s been done so far and create a sense of momentum and clarity for the user to understand your next actions.\n- **Keep your tone light, friendly and curious**: add small touches of personality in preambles feel collaborative and engaging.\n- **Exception**: Avoid adding a preamble for every trivial read (e.g., `cat` a single file) unless it’s part of a larger grouped action.\n\n**Examples:**\n\n- “I’ve explored the repo; now checking the API route definitions.”\n- “Next, I’ll patch the config and update the related tests.”\n- “I’m about to scaffold the CLI commands and helper functions.”\n- “Ok cool, so I’ve wrapped my head around the repo. Now digging into the API routes.”\n- “Config’s looking tidy. Next up is patching helpers to keep things in sync.”\n- “Finished poking at the DB gateway. I will now chase down error handling.”\n- “Alright, build pip
|
|||
|
|
"cache_control": {
|
|||
|
|
"type": "ephemeral"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"role": "user",
|
|||
|
|
"content": "# AGENTS.md instructions for /home/valknar\n\n<INSTRUCTIONS>\n# Repository Guidelines\n\nThis repository contains Valknar's personal home directory configuration, including dotfiles, utility scripts, and development environment setup.\n\n## Project Structure & Module Organization\n\nThe repository is organized with a selective `.gitignore` approach:\n\n- **Configuration files**: Shell configs (`.zshrc`, `.p10k.zsh`), editor configs (`.editorconfig`, `.config/zed/`)\n- **Scripts**: Custom utilities in `bin/` directory with comprehensive documentation\n- **Dependencies**: Managed via `arty.yml` configuration file\n- **Dotfiles**: Selected configuration files from home directory\n- **Version control**: Git configuration (`.gitconfig`, `.gitignore`)\n\n## Build, Test, and Development Commands\n\nUse the `arty.sh` script for repository management:\n\n```bash\n# Install dependencies from arty.yml\narty deps\n\n# List installed libraries\narty list\n\n# Execute specific installation scripts\narty debian/install # Install Debian packages\narty node/install # Install Node.js via nvm\narty rust/install # Install Rust toolchain\n```\n\nFor individual script testing:\n```bash\n# Make scripts executable\nchmod +x bin/*.sh\n\n# Test utility scripts\nbin/arty.sh --help\nbin/jinja_template_render.sh --help\n```\n\n## Coding Style & Naming Conventions\n\nFollows `.editorconfig` standards:\n\n- **Indentation**: 2 spaces (default), 4 spaces for Python, tabs for Makefiles\n- **Line endings**: Unix-style (LF)\n- **Encoding**: UTF-8 for JS/Python files\n- **Shell scripts**: Follow bash best practices with comprehensive `--help` output\n- **File naming**: Snake_case for scripts, kebab-case for config files\n\n## Testing Guidelines\n\n- **Scripts**: Include `--help` and `--dry-run` options where applicable\n- **Validation**: Use shellcheck for bash scripts (integrated via git hooks)\n- **Dependencies**: Test installations in clean environments before committing\n- **Examples**: Provide usage examples in script documentation\n\nInstall git hooks for validation:\n```bash\narty hooks install\n```\n\n## Commit & Pull Request Guidelines\n\nBased on git history, follow conventional commit format:\n\n- `feat:` - New features or functionality\n- `fix:` - Bug fixes\n- `docs:` - Documentation updates\n- `chore:` - Maintenance tasks\n\nExample commit messages:\n```\nfeat: add ASCII art email signature and update documentation\nfix: zed settings\ndocs: document HiDrive mount and symbolic links\nchore: clean up home configuration\n```\n\n## Release Management\n\nUse `arty.sh` for version management:\n\n```bash\n# Bump version and create release\narty release [major|minor|patch]\n\n# Generate changelog from git history\narty changelog\n\n# Create git tag\narty tag <version>\n```\n\n## Security & Configuration Tips\n\n- Sensitive files are excluded via `.gitignore`\n- Use environment variables for credentials (see `.env` template)\n- Keep private keys in `.ssh/` (ignored by git)\n- Store cloud configurations separately (HiDrive mounts via symbolic links)\n\n## Dependencies\n\nCore dependencies managed via `arty.yml`:\n- Shell: zsh with oh-my-zsh and powerlevel10k theme\n- Version managers: nvm, rbenv, pyenv, gvm\n- Tools: yq, jq, fzf, imagemagick, ffmpeg\n- Editors: Zed, VS Code configurations\n\nInstall all dependencies:\n```bash\narty deps\n```\n\n\n</INSTRUCTIONS>",
|
|||
|
|
"cache_control": {
|
|||
|
|
"type": "ephemeral"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"role": "user",
|
|||
|
|
"content": "<environment_context>\n <cwd>/home/valknar</cwd>\n <approval_policy>on-request</approval_policy>\n <sandbox_mode>workspace-write</sandbox_mode>\n <network_access>restricted</network_access>\n <shell>zsh</shell>\n</environment_context>"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"role": "user",
|
|||
|
|
"content": "Tell me a random fun fact about the Roman Empire"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"role": "user",
|
|||
|
|
"content": "Tell me a random fun fact about the Roman Empire"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"stream": true,
|
|||
|
|
"tools": [
|
|||
|
|
{
|
|||
|
|
"type": "function",
|
|||
|
|
"function": {
|
|||
|
|
"parameters": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"command": {
|
|||
|
|
"type": "array",
|
|||
|
|
"items": {
|
|||
|
|
"type": "string"
|
|||
|
|
},
|
|||
|
|
"description": "The command to execute"
|
|||
|
|
},
|
|||
|
|
"justification": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "Only set if with_escalated_permissions is true. 1-sentence explanation of why we want to run this command."
|
|||
|
|
},
|
|||
|
|
"timeout_ms": {
|
|||
|
|
"type": "number",
|
|||
|
|
"description": "The timeout for the command in milliseconds"
|
|||
|
|
},
|
|||
|
|
"with_escalated_permissions": {
|
|||
|
|
"type": "boolean",
|
|||
|
|
"description": "Whether to request escalated permissions. Set to true if command needs to be run without sandbox restrictions"
|
|||
|
|
},
|
|||
|
|
"workdir": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "The working directory to execute the command in"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"required": ["command"],
|
|||
|
|
"additionalProperties": false
|
|||
|
|
},
|
|||
|
|
"name": "shell",
|
|||
|
|
"description": "Runs a shell command and returns its output.",
|
|||
|
|
"strict": false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "function",
|
|||
|
|
"function": {
|
|||
|
|
"parameters": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"cursor": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "Opaque cursor returned by a previous list_mcp_resources call for the same server."
|
|||
|
|
},
|
|||
|
|
"server": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "Optional MCP server name. When omitted, lists resources from every configured server."
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"additionalProperties": false
|
|||
|
|
},
|
|||
|
|
"name": "list_mcp_resources",
|
|||
|
|
"description": "Lists resources provided by MCP servers. Resources allow servers to share data that provides context to language models, such as files, database schemas, or application-specific information. Prefer resources over web search when possible.",
|
|||
|
|
"strict": false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "function",
|
|||
|
|
"function": {
|
|||
|
|
"parameters": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"cursor": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "Opaque cursor returned by a previous list_mcp_resource_templates call for the same server."
|
|||
|
|
},
|
|||
|
|
"server": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "Optional MCP server name. When omitted, lists resource templates from all configured servers."
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"additionalProperties": false
|
|||
|
|
},
|
|||
|
|
"name": "list_mcp_resource_templates",
|
|||
|
|
"description": "Lists resource templates provided by MCP servers. Parameterized resource templates allow servers to share data that takes parameters and provides context to language models, such as files, database schemas, or application-specific information. Prefer resource templates over web search when possible.",
|
|||
|
|
"strict": false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "function",
|
|||
|
|
"function": {
|
|||
|
|
"parameters": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"server": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "MCP server name exactly as configured. Must match the 'server' field returned by list_mcp_resources."
|
|||
|
|
},
|
|||
|
|
"uri": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "Resource URI to read. Must be one of the URIs returned by list_mcp_resources."
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"required": ["server", "uri"],
|
|||
|
|
"additionalProperties": false
|
|||
|
|
},
|
|||
|
|
"name": "read_mcp_resource",
|
|||
|
|
"description": "Read a specific resource from an MCP server given the server name and resource URI.",
|
|||
|
|
"strict": false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "function",
|
|||
|
|
"function": {
|
|||
|
|
"parameters": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"explanation": {
|
|||
|
|
"type": "string"
|
|||
|
|
},
|
|||
|
|
"plan": {
|
|||
|
|
"type": "array",
|
|||
|
|
"items": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"status": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "One of: pending, in_progress, completed"
|
|||
|
|
},
|
|||
|
|
"step": {
|
|||
|
|
"type": "string"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"required": ["step", "status"],
|
|||
|
|
"additionalProperties": false
|
|||
|
|
},
|
|||
|
|
"description": "The list of steps"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"required": ["plan"],
|
|||
|
|
"additionalProperties": false
|
|||
|
|
},
|
|||
|
|
"name": "update_plan",
|
|||
|
|
"description": "Updates the task plan.\nProvide an optional explanation and a list of plan items, each with a step and status.\nAt most one step can be in_progress at a time.\n",
|
|||
|
|
"strict": false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "function",
|
|||
|
|
"function": {
|
|||
|
|
"parameters": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"path": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "Local filesystem path to an image file"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"required": ["path"],
|
|||
|
|
"additionalProperties": false
|
|||
|
|
},
|
|||
|
|
"name": "view_image",
|
|||
|
|
"description": "Attach a local image (by filesystem path) to the conversation context for this turn.",
|
|||
|
|
"strict": false
|
|||
|
|
},
|
|||
|
|
"cache_control": {
|
|||
|
|
"type": "ephemeral"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"max_tokens": 20480
|
|||
|
|
}
|