Nano Banana Pro
Agent skill for nano-banana-pro
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Multi Agent Chat is a VS Code extension that provides a collaborative AI team interface with specialized agents (Architect, Coder, Executor, Reviewer, Documenter, Coordinator, and Team) for software development tasks.
Current Version: 1.16.1 (Model Awareness & Safe Initialization)
npm run compile - Compile TypeScript to JavaScriptnpm run watch - Watch mode for TypeScript compilationnpm run lint - Run ESLint on src directorynpm test - Run tests (compiles and lints first)F5 in VS Code to launch extension in new Extension Development Host windownpx vsce package --no-dependencies - Create .vsix extension package for distributionCtrl+Shift+P → "Open Multi Agent Chat" - Main interfaceCtrl+Shift+P → "Clear All Conversation History" - Reset conversationsCtrl+Shift+P → "Initialize Multi Agent Chat Project" - Create .machat folderCtrl+Shift+P → "Migrate Conversations to Project" - Move to local storageCtrl+Shift+P → "Manage API Keys" - NEW v1.15.1 - Secure API key managementCtrl+Shift+P → "Open Models Configuration" - Edit project model listCtrl+Shift+P → "Open Agents Configuration" - Edit project agent definitionsCtrl+Shift+P → "Reset Models to Defaults" - Restore bundled model listCtrl+Shift+P → "Reset Agents to Defaults" - Restore bundled agent definitionsCtrl+Shift+P → "Update from Defaults" - NEW v1.16.1 - Smart sync of models/agents from defaultsCtrl+Shift+P → "Reload Model Configurations" - Refresh configs without restartConfiguration Registry (
src/config/ConfigurationRegistry.ts) NEW in v1.15.0
defaults/models.json - Bundled model definitions (28+ models across 6 providers)defaults/agents.json - Bundled agent definitions (7 agents).machat/models.json - Project-specific model list (optional).machat/agents.json - Project-specific agent customization (optional)API Key Manager (
src/settings/ApiKeyManager.ts) NEW in v1.15.1
Ctrl+Shift+P → "Manage API Keys"Agent System (
src/agents.ts)
Model Configuration (
src/config/models.ts)
Provider System (
src/providers/) NEW in v1.16.0
Settings Management (
src/settings/SettingsManager.ts)
.machat/config.jsonConversation Storage (
src/conversations/ConversationManager.ts)
.machat/conversations/Project Context (
src/context/ProjectContextManager.ts)
Communication Hub (
src/agentCommunication.ts)
Performance Optimization (
src/performanceOptimizer.ts)
UI Components (
resources/webview/)
multi-agent-chat-extension/ ├── src/ │ ├── settings/ # Settings management │ ├── conversations/ # Conversation storage │ ├── context/ # Project context │ ├── commands/ # Migration commands │ ├── config/ # Model configurations │ ├── ui/ # Settings UI panel │ ├── providers/ # NEW v1.16.0 - Provider implementations │ │ ├── ProviderRegistry.ts # Provider selection logic │ │ ├── VSCodeLMProvider.ts # VS Code Language Model API │ │ ├── HttpProvider.ts # Base HTTP provider │ │ ├── OpenAIHttpProvider.ts # OpenAI & xAI │ │ └── GoogleHttpProvider.ts # Google Gemini │ ├── agents.ts # Agent definitions │ ├── providers.ts # AI providers (legacy + manager) │ ├── extension.ts # Main extension controller │ ├── agentCommunication.ts # Inter-agent messaging hub │ ├── agentMessageParser.ts # @mention parser │ ├── performanceOptimizer.ts # Caching & optimization │ └── requestManager.ts # Request queue management ├── defaults/ # NEW v1.15.0 - External configs │ ├── models.json # Model definitions │ ├── agents.json # Agent definitions │ └── providers.json # NEW v1.16.0 - Provider configs ├── resources/ │ └── webview/ # External UI resources │ ├── index.html # HTML template │ ├── script.js # UI logic (~6000 lines) │ └── styles.css # Styling (~2500 lines) ├── docs/ # Documentation │ ├── USER_GUIDE_PROVIDERS.md # NEW v1.16.0 - Provider setup │ └── ADDING_PROVIDERS.md # NEW v1.16.0 - Developer guide ├── .machat/ # Project-local storage (in user projects) │ ├── config.json # Project settings │ ├── models.json # Project-specific models (optional) │ ├── agents.json # Project-specific agent config (optional) │ ├── agents/ │ │ └── agent-prompts/ # Custom agent prompts (Markdown) │ ├── conversations/ # Local conversations │ └── context/ # Agent memory & knowledge base ├── out/ # Compiled JavaScript (generated) └── package.json # Extension manifest
The extension uses
multiAgentChat.* settings (unified in v1.11.0):
NEW: API keys are now stored in VS Code SecretStorage (encrypted, secure)
Multi Agent Chat: Manage API Keys to configuremultiAgentChat.apiKeys.*) are DEPRECATED but auto-migratedmultiAgentChat.defaultModel - Default AI modelmultiAgentChat.defaultProvider - Default providermultiAgentChat.providerPreference - NEW v1.16.0 - Provider selection strategy:
claude-cli: Prefer Claude CLI (for Claude Max subscribers)auto: Auto-detect (VS Code LM → HTTP → CLI)vscode-lm: Only VS Code Language Model APIdirect-api: Only direct HTTP APIsmultiAgentChat.permissions.yoloMode - Auto-approve actionsmultiAgentChat.permissions.defaultPolicy - Permission policymultiAgentChat.agents.defaultAgent - Default agent to usemultiAgentChat.agents.enableInterCommunication - Agent collaborationmultiAgentChat.agents.showInterCommunication - Display agent chatterFor project-specific agent behavior, you can add custom prompts as Markdown files instead of editing JSON:
Location:
.machat/agents/agent-prompts/<agent-id>.md
How it Works:
agents.json): Defines core agent role and behavior.md file): Adds project-specific instructionsExample: .machat/agents/agent-prompts/coder.md
# Project Coding Standards ## TypeScript Requirements - Always use strict mode - Prefer `interface` over `type` for object shapes - Use explicit return types on public functions ## Testing - Write Jest tests for all new functions - Aim for 80%+ code coverage - Use `describe` blocks to organize tests by feature ## Style Guide - Follow the project's ESLint config - Max line length: 100 characters - Use meaningful variable names (no single letters except loop indices)
Benefits:
Available Agents:
architect.md - Architecture and design standardscoder.md - Coding standards and patternsexecutor.md - Execution and deployment proceduresreviewer.md - Review criteria and quality standardsdocumenter.md - Documentation style and requirementscoordinator.md - Project workflow and delegation rulesteam.md - Team collaboration guidelinesNote: These files are optional. If not present, agents use only their default system prompts.
multiAgentChat.project.useLocalStorage - Use .machat foldermultiAgentChat.project.autoInitialize - Auto-create .machatmultiAgentChat.project.shareSettings - Use project configmultiAgentChat.performance.enableStreaming - Response streamingmultiAgentChat.performance.enableCache - Response cachingmultiAgentChat.performance.quickTeamMode - Use 3 agentsmultiAgentChat.performance.agentTimeout - Timeout per agentEnhanced Model Awareness:
Smart Initialization System:
initializeProject and auto-initialization now copy models.json and agents.jsonKey Files Modified:
src/extension.ts - AgentManager loads from registry, enhanced auto-initsrc/providers.ts - Enhanced model awareness in agent promptssrc/agents.ts - Fixed fallback agents to use proper model IDssrc/commands/MigrationCommands.ts - Enhanced initialization with models/agentspackage.json - Added "Update from Defaults" commandBenefits:
3-Tier Provider Architecture:
Provider Preference Setting:
claude-cli (default): Prefer Claude CLI for Max subscribersauto: Community-friendly (tries VS Code models first)vscode-lm: Only VS Code Language Model APIdirect-api: Only direct HTTP APIs with user keysNew Components:
defaults/providers.json - Provider API configurationssrc/providers/ProviderRegistry.ts - Provider selection logicsrc/providers/VSCodeLMProvider.ts - VS Code LM integrationsrc/providers/HttpProvider.ts - Base for HTTP providerssrc/providers/OpenAIHttpProvider.ts - OpenAI & xAI (compatible)src/providers/GoogleHttpProvider.ts - Google Geminidocs/USER_GUIDE_PROVIDERS.md - User setup guidedocs/ADDING_PROVIDERS.md - Developer guideKey Features:
True Multi-Agent Collaboration Working:
isInterAgentResponse flag that blocked response parsingCritical Bug Fixes:
Bug #1: Wrong Agent Display in Main Chat
onPartialResponse callback from original requesteronPartialResponse from inter-agent message context (agentCommunication.ts:473)Bug #2: Emergency Stop Ineffective
isStopped flag to block all new inter-agent messages after emergency stopEnhanced Emergency Stop:
Unicode Support:
btoa() encoding error with Unicode characters (arrows, em-dashes) in inter-agent messagesencodeURIComponent() wrapper for proper Unicode handling in message truncationKey Insights from Testing:
Files Modified:
src/agentCommunication.ts - Emergency stop flag, onPartialResponse removal, message blockingsrc/extension.ts - Reset stop flag on new messages, inject visible stop messagessrc/providers.ts - Always parse responses for @mentions, emergency stop trainingresources/webview/script.js - Unicode encoding fix for message truncationExternal Model Configuration:
defaults/models.json).machat/models.json)External Agent Configuration:
defaults/agents.json).machat/agents.json)Benefits:
External Resources Refactor:
resources/webview/ external filesInter-Agent Communication Polish:
Documentation Cleanup:
MCP Infrastructure Removed:
Per-Project Settings:
.machat/ folder structureStatus: In Planning Focus Areas:
Status: Designed, Ready for Implementation Reference Documents:
docs/proposals/VSCODE_PERMISSION_INTEGRATION_PROPOSAL.md (detailed design)docs/proposals/AGENT_PERMISSIONS_PROPOSAL.md (precursor)Key Concepts:
Implementation Phases:
Why Important:
Status: v1.16.0 shipped, needs real-world testing Test Priorities:
out/extension.js (compiled from src/extension.ts)onStartupFinished)multiAgentChat.openChat (Ctrl+Shift+C)Ctrl+Shift+P → "Clear All Conversation History"When adding new features:
docs/internal/CONSOLIDATION_PLAN.md)See
docs/ for comprehensive documentation: