{ "$schema": "https://opencode.ai/config.json", "plugin": [ "opencode-antigravity-auth@1.6.5-beta.0", "opencode-antigravity-image@latest", "opencode-openrouter-auth", "opencode-qwen-auth", "/Users/jeremy/dev/upgraded-opencode-stack/local-plugins/oh-my-opencode-sin", "/Users/jeremy/.config/opencode/plugins/omoc-swarm.ts" ], "model": "nvidia/minimaxai/minimax-m2.7", "provider": { "google": { "options": { "timeout": false, "chunkTimeout": 999999999, "soft_quota_threshold_percent": 100 }, "models": { "antigravity-claude-sonnet-4-6": { "name": "Claude Sonnet 4.6 (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "context": 256000 }, "antigravity-claude-opus-4-6-thinking": { "name": "Claude Opus 4.6 Thinking (Antigravity)", "limit": { "context": 200000, "output": 32000 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "variants": { "low": { "thinkingConfig": { "thinkingBudget": 8192 } }, "max": { "thinkingConfig": { "thinkingBudget": 32768 } } }, "context": 256000 }, "antigravity-claude-opus-4-7-thinking": { "id": "claude-opus-4-7-thinking", "name": "Claude Opus 4.7 Thinking (Antigravity)", "limit": { "context": 1000000, "output": 128000 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "variants": { "low": { "thinkingConfig": { "thinkingBudget": 16384 } }, "max": { "thinkingConfig": { "thinkingBudget": 64000 } } }, "context": 1000000 }, "antigravity-veo-3-1": { "id": "nano-banana-video", "name": "Google Veo 3.1 (Antigravity Video)", "modalities": { "input": [ "text", "image" ], "output": [ "text", "video" ] } }, "antigravity-gemini-3.1-pro": { "name": "Gemini 3.1 Pro (Antigravity)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "variants": { "low": { "thinkingLevel": "low" }, "high": { "thinkingLevel": "high" } } }, "antigravity-gemini-3-flash": { "name": "Gemini 3 Flash (Antigravity)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text", "video" ] } }, "meta/llama-3.2-11b-vision-instruct": { "name": "Llama 3.2 11B Vision Instruct (NVIDIA NIM)", "limit": { "context": 131072, "output": 32768 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] }, "variants": { "minimal": { "thinkingLevel": "minimal" }, "low": { "thinkingLevel": "low" }, "medium": { "thinkingLevel": "medium" }, "high": { "thinkingLevel": "high" } } } } }, "nvidia-nim": { "npm": "@ai-sdk/openai", "name": "NVIDIA NIM", "options": { "baseURL": "https://integrate.api.nvidia.com/v1", "apiKey": "{env:NVIDIA_API_KEY}" }, "models": { "qwen-3.5-122b": { "name": "Qwen 3.5 122B (NVIDIA NIM)", "id": "qwen/qwen3.5-122b-a10b", "limit": { "context": 262144, "output": 32768 } }, "qwen-3.5-397b": { "name": "Qwen 3.5 397B (NVIDIA NIM)", "id": "qwen/qwen3.5-397b-a17b", "limit": { "context": 262144, "output": 32768 } }, "stepfun-ai/step-3.5-flash": { "name": "Step 3.5 Flash (NVIDIA NIM)", "id": "stepfun-ai/step-3.5-flash", "limit": { "context": 262144, "output": 32768 } }, "minimax-m2.7": { "name": "Minimax M2.7 (NVIDIA NIM)", "id": "minimaxai/minimax-m2.7", "limit": { "context": 204800, "output": 8192 } }, "llama-3.2-11b-vision-instruct": { "name": "Llama 3.2 11B Vision Instruct (NVIDIA NIM)", "id": "meta/llama-3.2-11b-vision-instruct", "limit": { "context": 131072, "output": 32768 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] } } } }, "openai": { "npm": "@ai-sdk/openai", "models": { "gpt-5.4": { "name": "GPT-5.4", "limit": { "context": 1000000, "output": 32768 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] } } }, "options": { "baseURL": "http://92.5.60.87:4100/v1", "apiKey": "sk-sin-fleet-master" } }, "openrouter": { "npm": "@openrouter/ai-sdk-provider", "options": { "apiKey": "{env:OPENROUTER_API_KEY}", "baseURL": "https://openrouter.ai/api/v1" }, "models": { "x-ai/grok-code-fast-1": { "name": "xAI Grok Code Fast 1", "limit": { "context": 262144, "output": 65536 } }, "qwen/qwen3.6-plus:free": { "name": "Qwen 3.6 Plus (Free)", "limit": { "context": 1000000, "output": 65536 } }, "qwen/qwen3-coder": { "name": "Qwen 3 Coder (Free)", "limit": { "context": 262144, "output": 65536 } }, "qwen/qwen3.5-coder": { "name": "Qwen 3.5 Coder (Free)", "limit": { "context": 262144, "output": 65536 } }, "deepseek/deepseek-chat-v3-0324:free": { "name": "DeepSeek V3 0324 (Free)", "limit": { "context": 163840, "output": 16384 } }, "deepseek/deepseek-r1:free": { "name": "DeepSeek R1 (Free)", "limit": { "context": 64000, "output": 16000 } }, "meta-llama/llama-4-maverick:free": { "name": "Llama 4 Maverick (Free)", "limit": { "context": 1048576, "output": 16384 } }, "microsoft/phi-4:free": { "name": "Phi-4 (Free)", "limit": { "context": 16384, "output": 16384 } } } }, "qwen": { "npm": "@ai-sdk/openai-compatible", "name": "Qwen Code", "options": { "baseURL": "https://portal.qwen.ai/v1" }, "models": { "coder-model": { "name": "Qwen 3.6 Plus", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": [ "text" ], "output": [ "text" ] } }, "vision-model": { "name": "Qwen 3.6 Vision Plus", "limit": { "context": 131072, "output": 32768 }, "attachment": true, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] } } } }, "modal": { "npm": "@ai-sdk/openai-compatible", "options": { "baseURL": "https://api.us-west-2.modal.direct/v1", "apiKey": "modalresearch_kCkiHCa0GiY8byjM59lG6myK0KS9ACaKVsnHPSErm5Y" }, "models": { "glm-5.1-fp8": { "id": "zai-org/GLM-5.1-FP8", "name": "GLM 5.1 FP8 (Modal Direct)", "limit": { "context": 204800, "output": 131072 } } } } }, "mcp": { "opencode-bypass-v2": { "type": "local", "command": [ "node", "/Users/jeremy/.config/opencode/local-plugins/opencode-bypass-v2/index.js" ], "enabled": true }, "sin-document-forge": { "type": "local", "command": [ "python3", "/Users/jeremy/dev/sin-telegrambot-cli/mcp/mcp_sin_document_forge.py" ], "enabled": true }, "sin-telegrambot": { "type": "local", "command": [ "python3", "/Users/jeremy/dev/sin-telegrambot-cli/mcp/mcp_sin_telegrambot.py" ], "enabled": true }, "tavily": { "type": "local", "command": [ "npx", "-y", "@tavily/claude-mcp" ], "environment": { "TAVILY_API_KEY": "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" }, "enabled": false }, "canva": { "type": "local", "command": [ "npx", "-y", "@canva/claude-mcp" ], "enabled": false }, "context7": { "type": "local", "command": [ "npx", "-y", "@anthropics/context7-mcp" ], "enabled": false }, "chrome-devtools": { "type": "local", "command": [ "npx", "-y", "@anthropics/chrome-devtools-mcp" ], "enabled": false }, "linear": { "type": "remote", "url": "https://mcp.linear.app/sse", "enabled": false }, "singularity": { "type": "local", "command": [ "node", "/Users/jeremy/.singularity/CLI/bin/singularity.js", "mcp" ], "enabled": false }, "sin-google-apps": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-google-apps-mcp" ], "environment": { "SIN_GOOGLE_APPS_HOST": "127.0.0.1", "SIN_GOOGLE_APPS_PORT": "45872", "SIN_GOOGLE_APPS_PUBLIC_BASE_URL": "https://a2a-sin-google-apps.delqhi.com" }, "enabled": true }, "sin-server": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-server", "serve-mcp" ], "enabled": true }, "sin-cloudflare": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-cloudflare", "serve-mcp" ], "enabled": true }, "sin-passwordmanager": { "type": "local", "command": [ "node", "/Users/jeremy/dev/OpenSIN-backend/a2a/team-infratructur/A2A-SIN-Passwordmanager/dist/src/cli.js", "serve-mcp" ], "environment": { "SIN_PASSWORDMANAGER_HOST": "127.0.0.1", "SIN_PASSWORDMANAGER_PORT": "4646" }, "enabled": true }, "sin-research": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-research", "serve-mcp" ], "enabled": true }, "sin-team-worker": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-team-worker", "serve-mcp" ], "enabled": true }, "sin-tiktok": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-tiktok", "serve-mcp" ], "enabled": true }, "sin-tiktok-shop": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-tiktok-shop", "serve-mcp" ], "enabled": true }, "sin-terminal": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-terminal", "serve-mcp" ], "enabled": true }, "webauto-nodriver": { "type": "local", "command": [ "python3", "/Users/jeremy/dev/webauto-nodriver-mcp/webauto_nodriver_mcp.py" ], "environment": { "WEBAUTO_CDP_PORT": "9335", "WEBAUTO_PROFILE_DIR": "/Users/jeremy/Library/Application Support/Google/Chrome/Default", "WEBAUTO_PROFILE_DIRECTORY": "Default", "WEBAUTO_DESKTOPGRAB_ENABLED": "true", "WEBAUTO_DESKTOPGRAB_FPS": "10", "WEBAUTO_ATTACH_FRAMES_PER_ACTION": "1", "WEBAUTO_ATTACH_DESKTOP_FRAMES_PER_ACTION": "1", "WEBAUTO_EXPORT_DIR": "/Users/jeremy/Desktop/webauto_exports" }, "enabled": true }, "sin-authenticator": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-authenticator", "serve-mcp" ], "environment": { "AUTHD_HOST": "127.0.0.1", "AUTHD_PORT": "44711", "SIN_AUTH_HOST": "127.0.0.1", "SIN_AUTH_PORT": "45871", "SIN_AUTH_PUBLIC_BASE_URL": "https://delqhi-sin-authenticator.hf.space" }, "enabled": true }, "sin-github-issues": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-github-issues", "serve-mcp" ], "enabled": true }, "sin-oraclecloud-mcp": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-oraclecloud-mcp", "serve-mcp" ], "enabled": true }, "n8n-workflow-builder": { "type": "local", "command": [ "npx", "-y", "mcp-n8n-builder" ], "environment": { "N8N_HOST": "http://92.5.60.87:5678/api/v1", "N8N_API_KEY": "n8n_api_69175bcabef4b10d619b43598cd557a92ee38aac5ae4b1ca", "OUTPUT_VERBOSITY": "concise" }, "enabled": true }, "sin-google-docs": { "type": "local", "command": [ "python3", "/Users/jeremy/dev/sin-telegrambot-cli/mcp/mcp_sin_google_docs.py" ], "enabled": true }, "sin-summary": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-summary", "serve-mcp" ], "enabled": true }, "sin-paragraph": { "type": "local", "command": [ "/Users/jeremy/dev/OpenSIN-backend/bin/sin-paragraph", "serve-mcp" ], "enabled": true }, "simone-mcp": { "type": "local", "command": [ "node", "/Users/jeremy/dev/Simone-MCP/dist/src/cli.js", "serve-mcp" ], "enabled": true }, "firecrawl": { "type": "local", "command": [ "npx", "-y", "@mendable/firecrawl-mcp" ], "environment": { "FIRECRAWL_API_URL": "" }, "enabled": false }, "sin-brain": { "type": "local", "command": [ "node", "/Users/jeremy/dev/global-brain/src/mcp/sin-brain-server.mjs" ], "enabled": true }, "sin-preview": { "type": "local", "command": [ "node", "/Users/jeremy/dev/global-brain/src/mcp/preview-server.mjs" ], "enabled": true }, "sin-neural-bus": { "type": "local", "command": [ "node", "/Users/jeremy/.local/bin/opensin-neural-bus-mcp" ], "enabled": false } }, "agent": { "Atlas (Plan Executor)": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "Hephaestus (Deep Agent)": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "Metis (Plan Consultant)": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "Momus (Plan Critic)": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "Prometheus (Plan Builder)": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "Sisyphus (Ultraworker)": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "Sisyphus-Junior (Fast-Ultraworker)": { "model": "qwen/coder-model", "options": { "reasoningEffort": "medium", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "artistry": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "build": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "compaction": { "options": { "reasoningEffort": "low", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "openai/gpt-5.4" }, "explore": { "model": "qwen/coder-model", "options": { "reasoningEffort": "low", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "general": { "model": "qwen/coder-model", "options": { "reasoningEffort": "medium", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "librarian": { "model": "openai/gpt-5.4", "options": { "reasoningEffort": "low", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "openai/gpt-5.4" }, "multimodal-looker": { "model": "nvidia-nim/llama-3.2-11b-vision-instruct", "options": { "reasoningEffort": "low", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "description": "Zero-Shot Object Detection & Vision Understanding via NVIDIA NIM", "fallback": "openai/gpt-5.4" }, "oracle": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "plan": { "model": "qwen/coder-model", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "qwen/coder-model" }, "summary": { "options": { "reasoningEffort": "low", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "openai/gpt-5.4" }, "title": { "options": { "reasoningEffort": "low", "autoAccept": true, "confirm": false, "allowAll": true }, "steps": 999999, "fallback": "openai/gpt-5.4" }, "omoc": { "mode": "primary", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "description": "OMOC Swarm Orchestrator (auto swarm_discover/create + swarm_jam; uses swarm_max on request)", "prompt": "You are OMOC, a multi-agent orchestrator running inside OpenCode.\n\nDo NOT start a swarm for greetings, acknowledgements, pleasantries, or tiny one-shot chat turns (for example: 'hi', 'hello', 'hey', 'thanks', 'ok', 'yo'). Reply directly in one concise sentence.\n\nDo NOT start a swarm for simple read-only questions that can be answered directly by inspecting one or two files or by using normal built-in tools. Answer those directly.\n\nStart a swarm only for real multi-step work such as implementation, debugging, coordinated edits, broad investigation, planning with parallel roles, or when the user explicitly asks for OMOC/swarm/parallel/best-of-n behavior.\n\nWhen you do start a swarm, use exactly one canonical swarm per request:\n1) First call swarm_discover({id:'sin-solver'}).\n2) If that does not find a swarm, call swarm_create({id:'sin-solver', title:'SIN-Solver OMOC', members:[{name:'hephaestus', agent:'hephaestus'}, {name:'oracle', agent:'oracle'}, {name:'momus', agent:'momus'}]}).\n3) Immediately call exactly one swarm_jam({id:'sin-solver', prompt:}).\n4) After swarm_jam returns, produce one concise integrated answer plus next concrete steps.\n\nNever invent extra swarm ids such as 'root', 'ctx', 'ContextGathering', or similar. Never create multiple swarms for one user message. Never call swarm_create twice in a row for the same message.\n\nIf the user explicitly asks for MAX / best-of-n / multiple independent implementations, run swarm_max({id:'sin-solver', prompt:, tries: 3, apply: true}) instead of swarm_jam.\n\nDo not use tmux. Keep all work inside the current project directory.\n\nWhen the user asks to use SIN-Terminal, visible terminal control, parallel OpenCode terminals/tabs, or to delegate work into multiple local OpenCode sessions, prefer the `sin-terminal` MCP tools over swarm tools. Use `sin_terminal_orchestrator_start` to open multiple visible OpenCode sessions in the same project, `sin_terminal_orchestrator_delegate` to steer them, `sin_terminal_orchestrator_status` to inspect them, and `sin_terminal_orchestrator_stop` to clean them up. Use regular `sin_terminal_interactive_*` tools for non-OpenCode terminal control.", "steps": 999999, "fallback": "openai/gpt-5.4" }, "SIN-Zeus": { "mode": "primary", "model": "openai/gpt-5.4", "options": { "reasoningEffort": "high", "autoAccept": true, "confirm": false, "allowAll": true }, "description": "SIN-Zeus: Supreme fleet commander. Plans locally, creates GitHub Issues/branches, and AUTO-DISPATCHES the entire Team Coder HF VM fleet. Never idle — every open issue gets dispatched immediately. Never codes locally.", "prompt": "You are SIN-Zeus, the local control-plane orchestrator for the SIN Code cloud workforce. You never execute feature work locally and you never directly edit product code locally. Your job is: inspect local repo state, research with explore/librarian/oracle, synthesize an ultra-plan, create an explicit git baseline when safely attributable, create GitHub Projects/issues/linked branches, and generate Hermes dispatch payloads for cloud executors.\n\nHard rules:\n- Never implement the requested feature locally.\n- Never resolve feature code conflicts locally.\n- GitHub is the source of truth for work intent and result state.\n- Hermes is a dispatcher only, not a planner.\n- HF VM executors do the real coding.\n- Before dispatch, inspect git status/diff and only create a local snapshot commit when the state is scoped and attributable.\n- If local dirty state is ambiguous, do planning only and do not mutate the repo.\n- Use explore for codebase analysis, librarian for official docs/examples, and oracle for architecture.\n- Prefer machine-readable artifacts over prose-only planning.\n\nExecution pattern:\n1) Run parallel research.\n2) Produce an ultra-plan.\n3) Ensure local base branch and SHA are explicit.\n4) Use Zeus bootstrap tooling to create GitHub Project/issues/linked branches.\n5) Use Hermes dispatch tooling to package cloud jobs.\n6) Report exact artifacts, SHAs, project numbers, issue URLs, and dispatch outputs.\n\nYou are a pure control-plane brain, never a local coder.\n\n# 🚨 AUTO-DISPATCH MANDATE FOR TEAM CODER FLEET (HIGHEST PRIORITY) 🚨\n\n**DU BIST SIN-ZEUS — DER OBERBEFEHLSHABER DER GESAMTEN TEAM CODER FLOTTE.**\nDeine Hauptaufgabe ist NICHT nur zu planen — du MUSST die Arbeit SOFORT an die HF VM Coder dispatchen.\n\n## GOLDENE REGELN:\n\n### 1. NEVER IDLE FLEET\n- Sobald GitHub Issues existieren (OPEN Status), MUESSEN sie SOFORT an die Team Coder Flotte dispatched werden.\n- Kein Warten auf User-Freigabe fuer Dispatch. Issues = Arbeitsauftraege = SOFORT dispatchen.\n- Pruefe IMMER: Gibt es OPEN Issues ohne aktive Dispatcher? -> SOFORT dispatchen.\n\n### 2. DISPATCH WORKFLOW (IMMER AUSFUEHREN)\nWenn du einen Build-Plan hast:\n1. **GitHub Issues erstellen** mit klaren Spezifikationen (wenn noch nicht vorhanden)\n2. **Branches erstellen** pro Issue (feat/issue-XXX-description)\n3. **call_omo_agent dispatchen** mit subagent_type='explore' ODER 'librarian' ODER 'oracle' — JEDE Komponente an einen eigenen Agenten\n4. **Dispatch Payload muss enthalten:**\n - Issue URL und Nummer\n - Branch Name\n - Vollstaendige Spezifikation (was gebaut werden muss)\n - Referenz-Architektur (was als Blaupause dient)\n - Repo Pfad und Working Directory\n - Akzeptanzkriterien (wann ist es fertig)\n5. **Parallel dispatch** — so viele Agenten gleichzeitig wie moeglich\n\n### 3. FLEET STATUS MONITORING\n- Pruefe regelmaessig den Status aller dispatched Agenten (background_output)\n- Bei Absturz: SOFORT neu dispatchen\n- Bei Erfolg: PR erstellen lassen, Issue closen, naechstes Issue dispatchen\n\n### 4. KEIN LOKALER CODE\n- Du codierst NIEMALS selbst Features.\n- Du loest NIEMALS Code-Konflikte lokal.\n- Deine Waffen sind: GitHub Issues, Branches, call_omo_agent Dispatches.\n\n### 5. DISPATCH TEMPLATE\nJeder dispatch Agent bekommt diesen Prompt:\n\nYou are a SIN Team Coder on HF VM. Your task:\n- Repo: OpenSIN-AI/OpenSIN-Code\n- Branch: feat/\n- Issue: # ()\n- Task: \n- Reference: \n- Rules: Never mention Claude/Anthropic. Brand everything as OpenSIN/sincode. Use opencode CLI for LLM calls. Test before claiming done.\n- Deliver: Working code on the branch, PR ready for review\n\n\n# 🚨 AUTO-DISPATCH MANDATE FOR TEAM CODER FLEET (HIGHEST PRIORITY) 🚨\n\n**DU BIST SIN-ZEUS — DER OBERBEFEHLSHABER DER GESAMTEN TEAM CODER FLOTTE.**\nDeine Hauptaufgabe ist NICHT nur zu planen — du MUSST die Arbeit SOFORT an die HF VM Coder dispatchen.\n\n## GOLDENE REGELN:\n\n### 1. NEVER IDLE FLEET\n- Sobald GitHub Issues existieren (OPEN Status), MUESSEN sie SOFORT an die Team Coder Flotte dispatched werden.\n- Kein Warten auf User-Freigabe fuer Dispatch. Issues = Arbeitsauftraege = SOFORT dispatchen.\n- Pruefe IMMER: Gibt es OPEN Issues ohne aktive Dispatcher? -> SOFORT dispatchen.\n\n### 2. DISPATCH WORKFLOW (IMMER AUSFUEHREN)\nWenn du einen Build-Plan hast:\n1. **GitHub Issues erstellen** mit klaren Spezifikationen (wenn noch nicht vorhanden)\n2. **Branches erstellen** pro Issue (feat/issue-XXX-description)\n3. **call_omo_agent dispatchen** mit subagent_type='explore' ODER 'librarian' ODER 'oracle' — JEDE Komponente an einen eigenen Agenten\n4. **Dispatch Payload muss enthalten:**\n - Issue URL und Nummer\n - Branch Name\n - Vollstaendige Spezifikation (was gebaut werden muss)\n - Referenz-Architektur (was als Blaupause dient)\n - Repo Pfad und Working Directory\n - Akzeptanzkriterien (wann ist es fertig)\n5. **Parallel dispatch** — so viele Agenten gleichzeitig wie moeglich\n\n### 3. FLEET STATUS MONITORING\n- Pruefe regelmaessig den Status aller dispatched Agenten (background_output)\n- Bei Absturz: SOFORT neu dispatchen\n- Bei Erfolg: PR erstellen lassen, Issue closen, naechstes Issue dispatchen\n\n### 4. KEIN LOKALER CODE\n- Du codierst NIEMALS selbst Features.\n- Du loest NIEMALS Code-Konflikte lokal.\n- Deine Waffen sind: GitHub Issues, Branches, call_omo_agent Dispatches.\n\n### 5. DISPATCH TEMPLATE\nJeder dispatch Agent bekommt diesen Prompt:\n\nYou are a SIN Team Coder on HF VM. Your task:\n- Repo: OpenSIN-AI/OpenSIN-Code\n- Branch: feat/\n- Issue: # ()\n- Task: \n- Reference: \n- Rules: Never mention Claude/Anthropic. Brand everything as OpenSIN/sincode. Use opencode CLI for LLM calls. Test before claiming done.\n- Deliver: Working code on the branch, PR ready for review\n", "steps": 999999, "fallback": "openai/gpt-5.4" }, "sin-executor-solo": { "mode": "primary", "model": "qwen/coder-model", "options": { "reasoningEffort": "medium", "autoAccept": true, "confirm": false, "allowAll": true }, "description": "Single-agent coding executor for deterministic task processing without swarm orchestration.", "prompt": "You are a direct single-agent coding executor. Work alone in the provided directory. Do not create or join swarms. Do not delegate. Do not edit governance/docs files unless the task explicitly requests docs/policy work. Prefer minimal concrete code changes, then report files changed and validations attempted.", "steps": 999999, "fallback": "nvidia/minimaxai/minimax-m2.7" } }, "default_agent": "SIN-Zeus", "command": { "omoc-swarm-create": { "description": "Create/register a swarm for this session", "template": "Nutze das Tool `swarm_create` um eine OMOC Swarm Session zu erstellen. Wenn $ARGUMENTS nicht leer ist, nutze es als id, sonst auto-id. Danach gib `swarm_status()` aus." }, "omoc-swarm-discover": { "description": "Discover swarm from session titles", "template": "Nutze `swarm_discover` (optional mit id=$ARGUMENTS falls gegeben) und gib danach `swarm_status()` aus." }, "omoc-jam": { "description": "Collaborative swarm_jam", "template": "Nutze `swarm_jam({ prompt: \"$ARGUMENTS\" })`. Wenn noch kein Swarm gebunden ist: erst `swarm_discover()` (oder `swarm_create()`), dann erneut `swarm_jam`." }, "omoc-max": { "description": "OMOC MAX best-of-n", "template": "Nutze `swarm_max({ prompt: \"$ARGUMENTS\", tries: 3, apply: true })`. Wenn noch kein Swarm gebunden ist: erst `swarm_discover()` (oder `swarm_create()`), dann erneut `swarm_max`." }, "omoc-status": { "description": "Show swarm members and sessions", "template": "Gib `swarm_status()` aus. Wenn kein Swarm gebunden ist, versuche `swarm_discover()`." }, "omoc-autostart": { "description": "Auto-bind swarm + start JAM guidance", "template": "OMOC Autostart (keine Erklaerungen):\n\n1) ⚙ swarm_discover({ id: \"$ARGUMENTS\" })\n2) ⚙ swarm_jam({ id: \"$ARGUMENTS\", prompt: \"OMOC JAM Autostart: Koordiniert euch als Swarm (planner/researcher/coder/reviewer). Arbeitet kollaborativ im selben Worktree. Wenn der User nach maximaler Qualitaet/Best-of-N fragt, nutzt swarm_max automatisch. Warte ansonsten auf die naechste konkrete Aufgabe.\" })\n\nDanach: schreibe exakt: OMOC ready" }, "sin-terminal-orchestrate": { "description": "Use SIN-Terminal to open and steer parallel visible OpenCode sessions", "template": "Nutze das MCP-Tool `sin_terminal_orchestrator_start` mit `cwd` auf das aktuelle Projekt, `sessionCount: 3`, sinnvollen `roles` und `confirm: true`. Nutze den User-Wunsch als `prompt`. Gib danach die `orchestrationId`, Rollen und naechste Steuerungsoptionen aus." }, "sin-terminal-orchestrate-status": { "description": "Show SIN-Terminal orchestration status", "template": "Wenn $ARGUMENTS leer ist, erklaere kurz, dass eine orchestrationId gebraucht wird. Sonst nutze `sin_terminal_orchestrator_status` mit `orchestrationId: \"$ARGUMENTS\"` und gib den Status kompakt aus." }, "sin-terminal-orchestrate-delegate": { "description": "Delegate a follow-up prompt into a SIN-Terminal orchestration", "template": "Wenn $ARGUMENTS leer ist, erklaere das JSON-Format `{ \"orchestrationId\": \"...\", \"prompt\": \"...\", \"role\": \"optional\" }`. Sonst parse $ARGUMENTS als JSON und nutze `sin_terminal_orchestrator_delegate` mit `confirm: true`." }, "sin-terminal-orchestrate-stop": { "description": "Stop all sessions in a SIN-Terminal orchestration", "template": "Wenn $ARGUMENTS leer ist, erklaere kurz, dass eine orchestrationId gebraucht wird. Sonst nutze `sin_terminal_orchestrator_stop` mit `orchestrationId: \"$ARGUMENTS\"` und `confirm: true`." }, "SIN-Zeus-bootstrap": { "description": "Create GitHub Project and issue pool from a Zeus ultra-plan JSON", "template": "Wenn $ARGUMENTS leer ist, erklaere das JSON-Format `{ \"owner\": \"...\", \"repo\": \"owner/repo\", \"title\": \"...\", \"planFile\": \"scripts/zeus/ultra-plan.example.json\", \"base\": \"main\", \"dryRun\": true }`. Sonst parse $ARGUMENTS als JSON und nutze `bash` um `node /Users/jeremy/dev/OpenSIN-backend/scripts/zeus/bootstrap-github-project.mjs --owner --repo --title --plan-file <planFile> --base <base>` auszufuehren; wenn `dryRun` true ist, haenge `--dry-run` an." }, "SIN-Zeus-hermes": { "description": "Generate Hermes dispatch payloads for Zeus-created issues", "template": "Wenn $ARGUMENTS leer ist, erklaere das JSON-Format `{ \"repo\": \"owner/repo\", \"repoPath\": \"/abs/path\", \"bootstrap\": \"Docs/operations/SIN-Zeus-bootstrap.json\" }`. Sonst parse $ARGUMENTS als JSON und nutze `bash` um `node /Users/jeremy/dev/OpenSIN-backend/scripts/zeus/hermes-dispatch.mjs --repo <repo> --repo-path <repoPath> --bootstrap <bootstrap>` auszufuehren." }, "SIN-Zeus-status": { "description": "Summarize current Zeus control-plane artifacts", "template": "Nutze `bash` um, falls vorhanden, diese Dateien zu lesen: `/Users/jeremy/dev/OpenSIN-backend/Docs/operations/SIN-Zeus-bootstrap.json`, `/Users/jeremy/dev/OpenSIN-backend/Docs/operations/sin-hermes-dispatch.json`, `/Users/jeremy/dev/OpenSIN-backend/Docs/operations/alpha-acceptance-gates.json`. Fasse das Ergebnis kompakt zusammen." }, "browser-goto": { "description": "Navigate to URL in browser using webauto-nodriver-mcp", "template": "Nutze `webauto-nodriver_goto` mit url: \"$ARGUMENTS\". NACH dem goto: SOFORT `webauto-nodriver_screenshot_to_file` machen und das Ergebnis dem Vision-Modell zur Pruefung vorlegen (PROCEED/STOP/RETRY)." }, "browser-click-coords": { "description": "Click at X,Y coordinates using webauto-nodriver-mcp", "template": "Nutze `webauto-nodriver_click` mit x: $1 und y: $2. NACH dem Klick: SOFORT `webauto-nodriver_screenshot_to_file` machen und das Ergebnis dem Vision-Modell zur Pruefung vorlegen." }, "browser-type-text": { "description": "Type text into the current page", "template": "Nutze `webauto-nodriver_type_text` mit text: \"$ARGUMENTS\". NACH dem Tippen: SOFORT `webauto-nodriver_screenshot_to_file` machen und das Ergebnis dem Vision-Modell zur Pruefung vorlegen." }, "browser-press-key": { "description": "Press a keyboard key", "template": "Nutze `webauto-nodriver_press_key` mit key: \"$ARGUMENTS\". NACH dem Keypress: SOFORT Screenshot machen und dem Vision-Modell vorlegen." }, "browser-screenshot": { "description": "Take a screenshot of the current browser state", "template": "Nutze `webauto-nodriver_screenshot_to_file` mit path: \"$ARGUMENTS\" (oder auto-generiere Pfad wie /tmp/screenshot_$(date +%Y%m%d_%H%M%S).png). Gib den Dateipfad zurueck." }, "browser-click-selector": { "description": "Click an element by CSS selector", "template": "Nutze `webauto-nodriver_click_by_selector` mit selector: \"$ARGUMENTS\". WENN der Selector nicht gefunden: weiche auf `webauto-nodriver_click` mit den angegebenen Koordinaten aus. NACH dem Klick: SOFORT Screenshot und Vision-Check." }, "browser-wait-element": { "description": "Wait for element to appear by CSS selector", "template": "Nutze `webauto-nodriver_wait_for_element_by_selector` mit selector: \"$ARGUMENTS\" und timeout: 15. Gib Status zurueck: gefunden/nicht gefunden." }, "browser-wait-url": { "description": "Wait for URL to match a pattern", "template": "Nutze `webauto-nodriver_wait_for_url_pattern` mit pattern: \"$ARGUMENTS\" und timeout: 30. Gib zurueck ob URL matcht oder Timeout." }, "vision-gate-check": { "description": "MANDATORY Vision-Gate after every browser action - take screenshot and verify with vision model", "template": "FUEHRE FOLGENDES AUS: 1) `webauto-nodriver_screenshot_to_file` mit auto-Path. 2) ANALYSIERE den Screenshot mit dem Vision-Modell (meta/llama-3.2-11b-vision-instruct) mit folgendem Prompt-Template: \"Du siehst einen Screenshot nach der Aktion: $ARGUMENTS. Erwartetes Ergebnis: [beschreibe was haette passieren sollen]. Pruefe: 1) Ist das erwartete Ergebnis eingetreten? 2) Gibt es Fehler/Captchas/Popups? 3) Ist die Seite vollstaendig geladen? Antworte mit PROCEED wenn alles OK, STOP wenn etwas falsch, RETRY wenn wiederholen.\" NUR bei PROCEED darf die naechste Aktion erfolgen!" }, "observe-screen-check": { "description": "Use observe_screen with DOM analysis for detailed page state", "template": "Nutze `webauto-nodriver_observe_screen` mit include_dom: \"true\". Gib eine strukturierte Analyse zurueck: sichtbare Elemente, Interaktionsmoeglichkeiten, potenzielle Probleme." }, "click-element-safe": { "description": "Safe element click with selector + coordinates fallback + Vision-Gate", "template": "VERSUCHE ZUERST: `webauto-nodriver_click_by_selector` mit selector: \"$ARGUMENTS\". FALLS DAS FEHSCHLAEGT: extrahiere Koordinaten und nutze `webauto-nodriver_click` mit x und y. DANACH: `webauto-nodriver_screenshot_to_file` + Vision-Gate Pruefung." }, "smart-form-fill": { "description": "Intelligently fill a form using smart_form_fill", "template": "Nutze `webauto-nodriver_smart_form_fill` mit form_data: $ARGUMENTS (als JSON Objekt). Die Funktion matched automatisch Field-Labels mit den Daten. NACH dem Fill: Screenshot + Vision-Gate." }, "extract-page-content": { "description": "Extract comprehensive page content with optional DOM", "template": "Nutze `webauto-nodriver_extract_page_content` mit include_dom: \"$ARGUMENTS\" (true/false). Gib strukturierte Inhalte zurueck: Text, Links, Bilder, Metadata." }, "list-browser-tabs": { "description": "List all open browser tabs", "template": "Nutze `webauto-nodriver_list_tabs` um alle offenen Tabs aufzulisten. Gib Tab-Index, Titel und URL fuer jeden Tab aus." }, "switch-browser-tab": { "description": "Switch to a specific browser tab by index", "template": "Nutze `webauto-nodriver_switch_tab` mit index: $ARGUMENTS (als Integer). Danach Screenshot machen und Vision-Gate Pruefung." }, "bypass-cloudflare": { "description": "Advanced Cloudflare challenge bypass", "template": "Nutze `webauto-nodriver_bypass_cloudflare` fuer fortgeschrittene Cloudflare Challenge Umgehung mit menschlichen Verhaltensmustern. Gib Bypass-Status zurueck." }, "human-like-scroll": { "description": "Simulate human-like scrolling behavior", "template": "Nutze `webauto-nodriver_human_like_behavior` mit duration: $ARGUMENTS (Sekunden, default 5). Simuliere menschliches Scrollen fuer Anti-Bot-Umgehung." }, "whatsapp-send": { "description": "Send WhatsApp message to phone number", "template": "Nutze `webauto-nodriver_whatsapp_send` mit number: \"$1\" und message: \"$ARGUMENTS\". Gib Sendestatus zurueck." }, "send-sms": { "description": "Send SMS/iMessage to phone number", "template": "Nutze `webauto-nodriver_send_sms` mit number: \"$1\" und message: \"$ARGUMENTS\". Gib Sendestatus zurueck." }, "mac-calendar-create": { "description": "Create a calendar event on macOS", "template": "Parse $ARGUMENTS als JSON mit {calendar, title, start_time, end_time, notes}. Nutze `webauto-nodriver_mac_calendar_create` zum Erstellen des Termins. Gib Bestätigung zurueck." }, "mac-notes-create": { "description": "Create an Apple Note", "template": "Parse $ARGUMENTS als JSON mit {folder, title, body}. Nutze `webauto-nodriver_mac_notes_create` zum Erstellen der Notiz. Gib Bestätigung zurueck." }, "run-shell-cmd": { "description": "Run a shell command with output", "template": "Nutze `webauto-nodriver_run_shell` mit cmd: \"$ARGUMENTS\" und timeout_seconds: 30. Gib stdout und stderr zurueck." }, "execute-javascript": { "description": "Execute JavaScript in the current browser page", "template": "Nutze `webauto-nodriver_execute_javascript` mit script: \"$ARGUMENTS\". Gib das Ergebnis der JS-Ausfuehrung zurueck. NACH Execution: Screenshot + Vision-Gate." }, "make-phone-call": { "description": "Make a phone call via macOS", "template": "Nutze `webauto-nodriver_make_phone_call` mit number: \"$ARGUMENTS\". Starte den Anruf und gib Status zurueck." }, "facetime-call": { "description": "Make a FaceTime call", "template": "Nutze `webauto-nodriver_facetime_call` mit target: \"$ARGUMENTS\" und video: false (standard Audio-Call). Gib Anruf-Status zurueck." } }, "skills": { "paths": [ "/Users/jeremy/.config/opencode/skills" ] }, "permission": "allow" }