diff --git a/.gitignore b/.gitignore index b5570b7..30d48f0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ pi/.pi/agent/sessions pi/.pi/agent/auth.json pi/.pi/agent/settings.json pi/.pi/agent/usage-cache.json +pi/.pi/agent/mcp-cache.json +pi/.pi/agent/auth.json.current +pi/.pi/agent/run-history.jsonl diff --git a/pi/.pi/agent/auth.json.current b/pi/.pi/agent/auth.json.current deleted file mode 100644 index a340c10..0000000 --- a/pi/.pi/agent/auth.json.current +++ /dev/null @@ -1 +0,0 @@ -work \ No newline at end of file diff --git a/pi/.pi/agent/mcp-cache.json b/pi/.pi/agent/mcp-cache.json deleted file mode 100644 index 9b3a692..0000000 --- a/pi/.pi/agent/mcp-cache.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "version": 1, - "servers": { - "qmd": { - "configHash": "fd16eaf87d17a4ce5efee10dc65237dbbe1403353bbbfc4a7de196abe21ab5f9", - "tools": [ - { - "name": "query", - "description": "Search the knowledge base using a query document — one or more typed sub-queries combined for best recall.\n\n## Query Types\n\n**lex** — BM25 keyword search. Fast, exact, no LLM needed.\nFull lex syntax:\n- `term` — prefix match (\"perf\" matches \"performance\")\n- `\"exact phrase\"` — phrase must appear verbatim\n- `-term` or `-\"phrase\"` — exclude documents containing this\n\nGood lex examples:\n- `\"connection pool\" timeout -redis`\n- `\"machine learning\" -sports -athlete`\n- `handleError async typescript`\n\n**vec** — Semantic vector search. Write a natural language question. Finds documents by meaning, not exact words.\n- `how does the rate limiter handle burst traffic?`\n- `what is the tradeoff between consistency and availability?`\n\n**hyde** — Hypothetical document. Write 50-100 words that look like the answer. Often the most powerful for nuanced topics.\n- `The rate limiter uses a token bucket algorithm. When a client exceeds 100 req/min, subsequent requests return 429 until the window resets.`\n\n## Strategy\n\nCombine types for best results. First sub-query gets 2× weight — put your strongest signal first.\n\n| Goal | Approach |\n|------|----------|\n| Know exact term/name | `lex` only |\n| Concept search | `vec` only |\n| Best recall | `lex` + `vec` |\n| Complex/nuanced | `lex` + `vec` + `hyde` |\n| Unknown vocabulary | Use a standalone natural-language query (no typed lines) so the server can auto-expand it |\n\n## Examples\n\nSimple lookup:\n```json\n[{ \"type\": \"lex\", \"query\": \"CAP theorem\" }]\n```\n\nBest recall on a technical topic:\n```json\n[\n { \"type\": \"lex\", \"query\": \"\\\"connection pool\\\" timeout -redis\" },\n { \"type\": \"vec\", \"query\": \"why do database connections time out under load\" },\n { \"type\": \"hyde\", \"query\": \"Connection pool exhaustion occurs when all connections are in use and new requests must wait. This typically happens under high concurrency when queries run longer than expected.\" }\n]\n```\n\nIntent-aware lex (C++ performance, not sports):\n```json\n[\n { \"type\": \"lex\", \"query\": \"\\\"C++ performance\\\" optimization -sports -athlete\" },\n { \"type\": \"vec\", \"query\": \"how to optimize C++ program performance\" }\n]\n```", - "inputSchema": { - "type": "object", - "properties": { - "searches": { - "minItems": 1, - "maxItems": 10, - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "lex", - "vec", - "hyde" - ], - "description": "lex = BM25 keywords (supports \"phrase\" and -negation); vec = semantic question; hyde = hypothetical answer passage" - }, - "query": { - "type": "string", - "description": "The query text. For lex: use keywords, \"quoted phrases\", and -negation. For vec: natural language question. For hyde: 50-100 word answer passage." - } - }, - "required": [ - "type", - "query" - ] - }, - "description": "Typed sub-queries to execute (lex/vec/hyde). First gets 2x weight." - }, - "limit": { - "default": 10, - "description": "Max results (default: 10)", - "type": "number" - }, - "minScore": { - "default": 0, - "description": "Min relevance 0-1 (default: 0)", - "type": "number" - }, - "collections": { - "description": "Filter to collections (OR match)", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "searches" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - } - }, - { - "name": "get", - "description": "Retrieve the full content of a document by its file path or docid. Use paths or docids (#abc123) from search results. Suggests similar files if not found.", - "inputSchema": { - "type": "object", - "properties": { - "file": { - "type": "string", - "description": "File path or docid from search results (e.g., 'pages/meeting.md', '#abc123', or 'pages/meeting.md:100' to start at line 100)" - }, - "fromLine": { - "description": "Start from this line number (1-indexed)", - "type": "number" - }, - "maxLines": { - "description": "Maximum number of lines to return", - "type": "number" - }, - "lineNumbers": { - "default": false, - "description": "Add line numbers to output (format: 'N: content')", - "type": "boolean" - } - }, - "required": [ - "file" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - } - }, - { - "name": "multi_get", - "description": "Retrieve multiple documents by glob pattern (e.g., 'journals/2025-05*.md') or comma-separated list. Skips files larger than maxBytes.", - "inputSchema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "description": "Glob pattern or comma-separated list of file paths" - }, - "maxLines": { - "description": "Maximum lines per file", - "type": "number" - }, - "maxBytes": { - "default": 10240, - "description": "Skip files larger than this (default: 10240 = 10KB)", - "type": "number" - }, - "lineNumbers": { - "default": false, - "description": "Add line numbers to output (format: 'N: content')", - "type": "boolean" - } - }, - "required": [ - "pattern" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - } - }, - { - "name": "status", - "description": "Show the status of the QMD index: collections, document counts, and health information.", - "inputSchema": { - "type": "object", - "properties": {}, - "$schema": "http://json-schema.org/draft-07/schema#" - } - } - ], - "resources": [], - "cachedAt": 1772656106222 - } - } -} \ No newline at end of file diff --git a/pi/.pi/agent/run-history.jsonl b/pi/.pi/agent/run-history.jsonl deleted file mode 100644 index 5cfe288..0000000 --- a/pi/.pi/agent/run-history.jsonl +++ /dev/null @@ -1,8 +0,0 @@ -{"agent":"scout","task":"I need to understand the editor and rendering architecture for implementing entity picking. Please find and summarize:\n\n1. How editor mode is toggled (look for key 'I' handling, editor mode state)\n2. ","ts":1772639557,"status":"ok","duration":90399} -{"agent":"scout","task":"I need to understand the editor and rendering architecture for implementing entity picking. Please find and summarize:\n\n1. How editor mode is toggled (look for key 'I' handling, editor mode flag)\n2. T","ts":1772654920,"status":"ok","duration":1217167} -{"agent":"scout","task":"I need to understand the codebase to plan entity picking in the editor. Find and summarize:\n\n1. How the editor mode works (toggled with 'I' key) - find the editor module/system, what it currently does","ts":1772655378,"status":"ok","duration":282743} -{"agent":"scout","task":"I need to understand the codebase to plan entity picking in the editor. Find and summarize:\n\n1. How editor mode works - look for editor-related code, the \"I\" key toggle, inspector UI\n2. How entities a","ts":1772655580,"status":"ok","duration":174603} -{"agent":"scout","task":"Explore the codebase structure. Find: 1) the main game loop and input handling, 2) the ECS system and component definitions, 3) any existing UI/rendering systems, 4) entity types (player, trees, etc),","ts":1772656483,"status":"ok","duration":451373} -{"agent":"scout","task":"I need to understand the rendering pipeline, scene loading, and transform usage for implementing entity picking with a visual selection indicator. Find and read:\n\n1. `src/render/mod.rs` - the full ren","ts":1772656502,"status":"ok","duration":82458} -{"agent":"scout","task":"Explore the codebase at /home/jonas/projects/snow_trail_sdl and give me a detailed summary of:\n1. src/loaders/mesh.rs - full content, especially the Mesh struct and all constructor functions\n2. src/pi","ts":1772658265,"status":"ok","duration":330549} -{"agent":"scout","task":"Find and summarize: 1) how the camera follow/update logic works, 2) how editor mode is tracked/detected. Look for camera systems, editor state, and any existing checks for editor mode in camera code.","ts":1772659168,"status":"ok","duration":5992}