{"agents":[{"name":"claude","description":"Claude — code editor and project-mode programming partner. Runs on claude-agent-sdk with Bash, Read, Edit, Grep, and the HAL in-process MCP tool surface. Honors project_id for per-project cwd pivot and SPEC.md context injection (see halai-claude-project-mode).","url":"/a2a/task?agent=claude","version":"1.0.0","capabilities":{"streaming":true,"pushNotifications":false,"stateTransitionHistory":false},"authentication":{"schemes":["X-A2A-Token","Bearer"],"credentials":"header","tokenEndpoint":"/a2a/oauth/token","grantTypes":["client_credentials"]},"defaultInputModes":["text"],"defaultOutputModes":["text"],"skills":[{"id":"code_editing","name":"Code editing","description":"Read, edit, and write files in a managed project; run git and shell commands; reason about multi-file changes.","inputModes":["text"],"outputModes":["text"],"tags":["code","project"],"examples":["Read plans/SPEC.md in OZLR and summarize the open TODOs.","Refactor halai/app/core/conversation.py to use context managers."],"parameters":{"project_id":{"type":"string","description":"Optional project name from the managed registry (OZLR / KOFC1 / KOFC2 / WHISKEY / VINO / SECURITY / MEDIA) OR the sentinels 'claude-default' / '*'. When set to a registered project, Claude's cwd pivots to that repo and plans/SPEC.md seeds his system prompt.","required":false}}},{"id":"repo_analysis","name":"Repository analysis","description":"Read-only exploration of a codebase; explain structure, dependencies, and patterns.","inputModes":["text"],"outputModes":["text"],"tags":["code","read"]}]},{"name":"jazzy","description":"Jazzy — HAL's creative, grounded, and production-design persona. Runs on Gemini with native grounding (Google Search, Maps, url_context, Python sandbox). Four sub-modes activated via the `mode` flag: default (realtime info + creative), designer (CAD/docs/QR/Mermaid/STL/vector), canvas (image + video generation), writers (long-form prose authoring), music_studio (AI track generation).","url":"/a2a/task?agent=jazzy","version":"1.0.0","capabilities":{"streaming":true,"pushNotifications":false,"stateTransitionHistory":false},"authentication":{"schemes":["X-A2A-Token","Bearer"],"credentials":"header","tokenEndpoint":"/a2a/oauth/token","grantTypes":["client_credentials"]},"defaultInputModes":["text"],"defaultOutputModes":["text"],"skills":[{"id":"grounded_search","name":"Grounded web search","description":"Answer questions needing current-world data with Gemini's native Google Search grounding. Cites sources inline.","inputModes":["text"],"outputModes":["text"],"tags":["search","realtime","grounding"],"examples":["What's the current price of NVDA?","Who won the Chiefs game last night?"]},{"id":"maps","name":"Maps and directions","description":"Travel times, nearby places, hours, ratings, geocoding via Gemini Maps grounding.","inputModes":["text"],"outputModes":["text"],"tags":["maps","local"],"examples":["How long to drive from Topeka to Kansas City right now?","Find Italian restaurants near me open after 9pm."]},{"id":"url_reading","name":"Read and synthesize a URL","description":"Fetch and summarize a given URL using Gemini url_context grounding.","inputModes":["text"],"outputModes":["text"],"tags":["web","synthesis"]},{"id":"creative_synthesis","name":"Creative writing and synthesis","description":"Blog posts, social copy, voice-consistent creative prose in Jazzy's style.","inputModes":["text"],"outputModes":["text"],"tags":["creative","writing"]},{"id":"compute","name":"Python computation","description":"Execute real Python in Gemini's code_execution sandbox. Use for math, data transforms, stats, and chart generation where hallucinated arithmetic is unacceptable.","inputModes":["text"],"outputModes":["text"],"tags":["compute","python","math"],"examples":["What's the compound return on $10k at 7% over 30 years?","Parse this CSV and give me the top 5 by revenue."]},{"id":"designer","name":"Designer Mode — production design suite","description":"Activate with designer_mode=true. Temperature drops to near-zero for deterministic technical output. Full tool suite: create_document (PDF/DOCX/XLSX/PPTX/CSV), generate_image (Imagen 4), generate_video (Veo), generate_omni_video (Omni Flash), analyze_cad_file (DXF/SVG/GLB/SCAD/STEP/STL/OBJ/IGES), render_cad_file, generate_scad (OpenSCAD), generate_svg, generate_dxf, generate_qr_code (SVG/PNG), svg_to_png (DPI-aware rasterizer), generate_mermaid (kroki.io, all Mermaid diagram types), generate_stl (SCAD→STL for 3D printing), convert_vector (svg/dxf → png/pdf/svg), analyze_gerber (Gerber RS-274X + Excellon NC Drill PCB files), render_gerber (Gerber → PNG via pygerber), compile_gltf (native GLB compilation from mesh specs or STL/OBJ), octoprint_* (3D printer control — status/upload/print/pause/cancel/gcode/temps). Full pipeline: generate_scad → generate_stl → octoprint_upload → octoprint_print.","inputModes":["text"],"outputModes":["text","file"],"tags":["designer","cad","documents","vector","qr","mermaid","stl","3d","gerber","pcb","iges","gltf","glb","3dprint","octoprint"],"examples":["Generate a Mermaid sequence diagram of the halai A2A flow.","Create a QR code for https://example.com as print-ready SVG.","Compile this OpenSCAD bracket to STL.","Convert the flange.dxf to a 300 DPI PNG.","Analyze this board.gtl Gerber copper layer.","Repackage the part.stl as a GLB for Three.js.","What entity types are in this assembly.iges file?"]},{"id":"canvas","name":"Canvas Mode — image and video generation","description":"Activate with canvas_mode=true. Focused on visual content creation: generate_image (Imagen 4), generate_video (Veo), generate_omni_video (Omni Flash iterative video).","inputModes":["text"],"outputModes":["text","file"],"tags":["canvas","image","video","imagen","veo"],"examples":["Generate a cinematic aerial shot of a futuristic city at dusk.","Create a short video of a campfire in the rain."]},{"id":"writers","name":"Writers Mode — long-form prose","description":"Activate with writers_mode=true. Project-based long-form authoring: writers_create_project, writers_open_project, writers_write_page, writers_revise, writers_continue, writers_get_chapter, writers_generate_illustration, writers_generate_soundtrack, writers_generate_narration, writers_publish_to_blog, writers_generate_reel, and social publish tools.","inputModes":["text"],"outputModes":["text","file"],"tags":["writers","prose","authoring","blog"]},{"id":"music_studio","name":"Music Studio Mode — AI track generation","description":"Activate with music_studio_mode=true. generate_track (Lyria via Vertex), list_tracks.","inputModes":["text"],"outputModes":["text","file"],"tags":["music","audio","lyria","studio"]}]},{"name":"hal-analyst","description":"hal-analyst — HAL's deep financial research sub-agent. Runs on Perplexity sonar-deep-research (native grounded web access, no external tools). Returns structured analyst reports: Thesis / Key Facts / Risks / Catalysts / Conclusion / Sources. Slow (60-180s typical) and expensive (~$0.20-0.50/call) — use for real research questions, not conversational Q&A.","url":"/a2a/task?agent=hal-analyst","version":"1.0.0","capabilities":{"streaming":true,"pushNotifications":false,"stateTransitionHistory":false},"authentication":{"schemes":["X-A2A-Token","Bearer"],"credentials":"header","tokenEndpoint":"/a2a/oauth/token","grantTypes":["client_credentials"]},"defaultInputModes":["text"],"defaultOutputModes":["text"],"skills":[{"id":"deep_research","name":"Deep financial research","description":"Single-shot grounded research on equities, earnings, filings, macro/regime context, and political signals. Returns a structured report with citations.","inputModes":["text"],"outputModes":["text"],"tags":["research","analyst","perplexity","structured"],"examples":["Deep dive on NVDA fundamentals and catalysts for next two quarters.","Full thesis on the regional banking sector after the latest Fed minutes.","Summarize TSM's most recent 10-Q with margin trend analysis."]}]},{"name":"shot","description":"SHOT — HAL's edge compute node (Raspberry Pi). Handles hardware-adjacent tasks that need to run physically on the home network: BLE device control (OKIN bed, IoT sensors via bleak), RF/SDR ops (chirp, direwolf/APRS), security scanning, and general edge-compute tasks. Runs its own opencode instance at 192.168.1.248:4097.","url":"/a2a/task?agent=shot","version":"1.0.0","capabilities":{"streaming":true,"pushNotifications":false,"stateTransitionHistory":false},"authentication":{"schemes":["X-A2A-Token","Bearer"],"credentials":"header","tokenEndpoint":"/a2a/oauth/token","grantTypes":["client_credentials"]},"defaultInputModes":["text"],"defaultOutputModes":["text"],"skills":[{"id":"ble_control","name":"BLE device control","description":"Connect to and command Bluetooth LE devices via bleak. Primary use: OKIN-189686 adjustable bed (head up/down, foot up/down, flat, zero-g, presets). Also handles other BLE IoT sensors.","inputModes":["text"],"outputModes":["text"],"tags":["bluetooth","ble","iot","bed"],"examples":["Move the bed to zero-g position.","Raise the head of the bed 50%.","Flat position on the bed."]},{"id":"rf_sdr","name":"RF and SDR operations","description":"Ham radio programming (chirp), APRS/packet radio (direwolf), SDR frequency scanning.","inputModes":["text"],"outputModes":["text"],"tags":["rf","sdr","ham","radio","aprs"]},{"id":"security_scanning","name":"Network and security scanning","description":"Run nmap scans, recon, and security assessments from the edge node on the local network.","inputModes":["text"],"outputModes":["text"],"tags":["security","scanning","nmap","recon"]},{"id":"edge_compute","name":"Edge shell execution","description":"Run arbitrary shell commands on SHOT for hardware access, local-model inference, or tasks needing physical proximity.","inputModes":["text"],"outputModes":["text"],"tags":["shell","edge","pi"]}]}]}