hyperclaw 5.0.1 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/LICENSE +2 -1
  2. package/README.md +247 -32
  3. package/dist/a2ui-protocol-Gzm29Gaw.js +75 -0
  4. package/dist/agents-routing-Biy5ew4a.js +4 -0
  5. package/dist/agents-routing-CL3HQNoM.js +327 -0
  6. package/dist/api-keys-guide-ChbThbPj.js +149 -0
  7. package/dist/audit-NPIMmOSq.js +441 -0
  8. package/dist/bounty-tools-BUqUKjt0.js +211 -0
  9. package/dist/browser-tools-CxJY6pAn.js +5 -0
  10. package/dist/browser-tools-JZ9ji6AW.js +179 -0
  11. package/dist/chat-qVuqhlPu.js +258 -0
  12. package/dist/claw-tasks-B-8RRMdq.js +80 -0
  13. package/dist/connector-1x1rCBHz.js +162 -0
  14. package/dist/connector-B4jeCULG.js +305 -0
  15. package/dist/connector-B7qngfkT.js +286 -0
  16. package/dist/connector-B8BK0GBo.js +531 -0
  17. package/dist/connector-BE9eJs8-.js +182 -0
  18. package/dist/connector-BEe-DTGQ.js +189 -0
  19. package/dist/connector-BU7p5ZgB.js +167 -0
  20. package/dist/connector-BUzzq7Ij.js +568 -0
  21. package/dist/connector-BpDqLgnW.js +419 -0
  22. package/dist/connector-BpW88ut2.js +189 -0
  23. package/dist/connector-Bxv-gy8U.js +167 -0
  24. package/dist/connector-Bz14zcJv.js +213 -0
  25. package/dist/connector-C1zP5-5q.js +85 -0
  26. package/dist/connector-CAcpcovF.js +498 -0
  27. package/dist/connector-CJgVjS58.js +181 -0
  28. package/dist/connector-Cf53D6qV.js +425 -0
  29. package/dist/connector-CyHmlbNz.js +508 -0
  30. package/dist/connector-D22mJGVu.js +340 -0
  31. package/dist/connector-D6RtMmlL.js +225 -0
  32. package/dist/connector-D9EnT8A4.js +280 -0
  33. package/dist/connector-DNDwIh37.js +239 -0
  34. package/dist/connector-Di27MeO4.js +350 -0
  35. package/dist/connector-Do0BPiHt.js +194 -0
  36. package/dist/connector-DvLwOfJy.js +192 -0
  37. package/dist/connector-DvU83NSq.js +181 -0
  38. package/dist/connector-DxskpDc_.js +173 -0
  39. package/dist/connector-byy3eISx.js +552 -0
  40. package/dist/connector-vV89hsyd.js +218 -0
  41. package/dist/cost-tracker-fnaj_6M9.js +103 -0
  42. package/dist/credentials-store-BxijEirw.js +77 -0
  43. package/dist/credentials-store-CPkVO6-z.js +4 -0
  44. package/dist/cron-tasks-L0mz1yyU.js +82 -0
  45. package/dist/daemon-CNyunwkR.js +5 -0
  46. package/dist/daemon-CindY8OK.js +318 -0
  47. package/dist/delivery-DgiZcJBp.js +4 -0
  48. package/dist/delivery-otAU4alM.js +95 -0
  49. package/dist/destructive-gate-CA0DtA5K.js +101 -0
  50. package/dist/developer-keys-Cnd1kswV.js +127 -0
  51. package/dist/developer-keys-DENo3ZA6.js +8 -0
  52. package/dist/doctor-Dgjoc3DG.js +230 -0
  53. package/dist/doctor-RwsOhtAl.js +6 -0
  54. package/dist/engine-D_VeoZHw.js +305 -0
  55. package/dist/engine-JjRnhlsE.js +7 -0
  56. package/dist/env-resolve-BFJXWl94.js +115 -0
  57. package/dist/env-resolve-bDYssfih.js +10 -0
  58. package/dist/extraction-tools-DbxnxIco.js +5 -0
  59. package/dist/extraction-tools-Dg7AHS35.js +91 -0
  60. package/dist/form_data-CGAy4HE0.js +8657 -0
  61. package/dist/gmail-watch-setup-C3uSWznp.js +40 -0
  62. package/dist/health-DUjluWHQ.js +6 -0
  63. package/dist/health-DVfkpUQW.js +152 -0
  64. package/dist/heartbeat-engine-CrgL4mrP.js +83 -0
  65. package/dist/hub-BO6bj8Yj.js +515 -0
  66. package/dist/hub-Bu52YZqW.js +6 -0
  67. package/dist/hyperclawbot-BrcoYLOp.js +505 -0
  68. package/dist/inference-DHR82Gh7.js +6 -0
  69. package/dist/inference-DhA8jpfH.js +2692 -0
  70. package/dist/knowledge-graph-BrYpSgxW.js +131 -0
  71. package/dist/loader-9JqY6Nlq.js +4 -0
  72. package/dist/loader-Cjdd1kw4.js +400 -0
  73. package/dist/logger-DCT2l9GV.js +83 -0
  74. package/dist/manager-3cq3DydI.js +4 -0
  75. package/dist/manager-BUrFrPuq.js +117 -0
  76. package/dist/manager-Bi9UYyVR.js +105 -0
  77. package/dist/manager-Biz9ixWJ.js +40 -0
  78. package/dist/manager-CBUHJiY7.js +6 -0
  79. package/dist/manager-CVLLaKmq.js +218 -0
  80. package/dist/mcp-CUoTCMw-.js +139 -0
  81. package/dist/mcp-loader-BIz-450x.js +94 -0
  82. package/dist/memory-OL77OMOr.js +270 -0
  83. package/dist/memory-auto-D-L2q21G.js +306 -0
  84. package/dist/memory-auto-DTcy5VBy.js +5 -0
  85. package/dist/memory-gUi4VaIf.js +4 -0
  86. package/dist/memory-integration-B8RSN4pr.js +91 -0
  87. package/dist/moltbook-B-40gQOL.js +81 -0
  88. package/dist/node-TWxRm84k.js +222 -0
  89. package/dist/nodes-registry-DKRtsbNg.js +52 -0
  90. package/dist/oauth-flow-JCfporKq.js +150 -0
  91. package/dist/oauth-provider-4R0EJlsT.js +110 -0
  92. package/dist/observability-CDZmeHfa.js +89 -0
  93. package/dist/onboard-BVOtKQdh.js +3641 -0
  94. package/dist/onboard-CGNIw27w.js +11 -0
  95. package/dist/orchestrator-CcKx1Ovk.js +189 -0
  96. package/dist/orchestrator-DcFfDLTX.js +6 -0
  97. package/dist/osint-B6BZKQAD.js +277 -0
  98. package/dist/pairing-B6RArWhD.js +196 -0
  99. package/dist/pairing-BsQ08DLq.js +4 -0
  100. package/dist/pc-access-B0KocJNe.js +819 -0
  101. package/dist/pc-access-DkzmugZ7.js +8 -0
  102. package/dist/pending-approval-C_HkX1QL.js +22 -0
  103. package/dist/providers-DxiamZSL.js +5 -0
  104. package/dist/providers-Dy15rDb7.js +657 -0
  105. package/dist/reminders-store-CzUY0zYx.js +58 -0
  106. package/dist/renderer-ANNfXsHn.js +225 -0
  107. package/dist/rules-BSQwwAYC.js +103 -0
  108. package/dist/run-main.js +112 -117
  109. package/dist/runner-BHRSOPEU.js +1271 -0
  110. package/dist/security--oQObeJO.js +4 -0
  111. package/dist/security-wBOg0TA8.js +73 -0
  112. package/dist/server-CbTTpB5m.js +1255 -0
  113. package/dist/server-DP_bPzvI.js +4 -0
  114. package/dist/session-store-B09r5HgB.js +5 -0
  115. package/dist/session-store-DCTQIVur.js +113 -0
  116. package/dist/sessions-tools-BdlN6Pb6.js +95 -0
  117. package/dist/sessions-tools-JVLDKSJ_.js +5 -0
  118. package/dist/skill-loader-B5oeliGu.js +7 -0
  119. package/dist/skill-loader-Wf3brNOj.js +160 -0
  120. package/dist/skill-runtime-BGlvly2s.js +102 -0
  121. package/dist/skill-runtime-DhL2T76p.js +5 -0
  122. package/dist/src-BbPa6Q8p.js +63 -0
  123. package/dist/src-BeXtfkK2.js +458 -0
  124. package/dist/src-CGQjRI4N.js +20 -0
  125. package/dist/sub-agent-tools-CmE345s_.js +39 -0
  126. package/dist/theme-D0smfC_l.js +8 -0
  127. package/dist/theme-DajRRZbA.js +180 -0
  128. package/dist/tool-policy-DgNqFWYn.js +189 -0
  129. package/dist/tts-elevenlabs-JeFaGNJU.js +61 -0
  130. package/dist/update-check-BVEqHhFY.js +83 -0
  131. package/dist/vision-fky3elEo.js +121 -0
  132. package/dist/vision-tools-C8B3776g.js +5 -0
  133. package/dist/vision-tools-dwn9p4el.js +51 -0
  134. package/dist/voice-transcription-B6RtplmN.js +138 -0
  135. package/dist/website-watch-tools-B-jRAeTe.js +139 -0
  136. package/dist/website-watch-tools-BC9xAL67.js +5 -0
  137. package/package.json +1 -1
package/LICENSE CHANGED
@@ -1,6 +1,7 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 HyperClaw Team
3
+ Copyright (c) 2025 Peter Steinberger
4
+ Copyright (c) 2026 HyperClaw Team
4
5
 
5
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <div align="center">
1
+ <div align="center">
2
2
  <img src="assets/icon.png" width="140" alt="HyperClaw">
3
3
  <h1>🦅 HyperClaw</h1>
4
4
  <p><strong>Your personal AI assistant — running on your hardware, talking on your channels.</strong></p>
@@ -88,7 +88,10 @@ The wizard walks you through: AI provider → model → channels → skills. Don
88
88
  # After setup, start your assistant
89
89
  hyperclaw daemon start
90
90
 
91
- # Send a test message
91
+ # Interactive terminal chat (multi-turn, streams responses)
92
+ hyperclaw chat
93
+
94
+ # Send a single message (non-interactive)
92
95
  hyperclaw agent --message "What can you do?"
93
96
 
94
97
  # Health check
@@ -126,7 +129,7 @@ HyperClaw connects to the channels you already use (28+ channels):
126
129
  | ✈️ Telegram | ✅ Recommended | Bot API via @BotFather |
127
130
  | 🎮 Discord | ✅ Recommended | discord.js — full bot |
128
131
  | 🌐 WebChat | ✅ Built-in | Gateway WebSocket, no setup |
129
- | 🖥️ CLI / Terminal | ✅ Built-in | `hyperclaw agent` |
132
+ | 🖥️ CLI / Terminal | ✅ Built-in | `hyperclaw chat` (interactive) · `hyperclaw agent -m "..."` (single) |
130
133
  | 📲 WhatsApp (Baileys) | ✅ Available | No Meta API — scan QR |
131
134
  | 📱 WhatsApp (Cloud API) | ✅ Available | Meta Business API |
132
135
  | 💼 Slack | ✅ Available | Bolt — Events API |
@@ -186,18 +189,30 @@ Google Chat / Matrix / IRC / Mattermost / Teams / Nostr / WebChat
186
189
 
187
190
  ---
188
191
 
189
- ## Providers
190
-
191
- HyperClaw supports any OpenAI-compatible API and Anthropic natively:
192
-
193
- | Provider | IDs |
194
- |----------|-----|
195
- | **Anthropic** | `anthropic` Claude 4 Opus/Sonnet/Haiku |
196
- | **OpenRouter** | `openrouter` 200+ models |
197
- | **OpenAI** | `openai` — GPT-4o, GPT-4.1 |
198
- | **xAI** | `xai` Grok |
199
- | **Groq** | `groq` Llama, Mixtral (fast) |
200
- | **Custom** | `custom` any OpenAI-compatible endpoint |
192
+ ## AI Models
193
+
194
+ HyperClaw supports 20+ providers. Pick one in the wizard or set `provider.providerId` in config:
195
+
196
+ | Provider | ID | Notes |
197
+ |----------|-----|-------|
198
+ | **Anthropic** | `anthropic` | Claude Opus/Sonnet/Haiku — native streaming |
199
+ | **Anthropic OAuth** | `anthropic-oauth` | Claude Code / Max subscription |
200
+ | **OpenRouter** | `openrouter` | 200+ models one key |
201
+ | **OpenAI** | `openai` | GPT-4o, o3, o4-mini |
202
+ | **Google** | `google` | Gemini 2.5 Pro, 2.0 Flash |
203
+ | **xAI** | `xai` | Grok 3, Grok 3 Mini |
204
+ | **Groq** | `groq` | Llama 3.3, Mixtral — fast inference |
205
+ | **Mistral** | `mistral` | Mistral Large, Codestral |
206
+ | **DeepSeek** | `deepseek` | DeepSeek V3, R1 reasoning |
207
+ | **Perplexity** | `perplexity` | Sonar — search-augmented AI |
208
+ | **Hugging Face** | `huggingface` | Open-source models |
209
+ | **MiniMax** | `minimax` | MiniMax Text-01 |
210
+ | **Qwen** | `qwen` | Alibaba Qwen 3, Qwen Max |
211
+ | **Z.AI** | `zai` | GLM-4 models |
212
+ | **Vercel AI Gateway** | `vercel-ai` | Multi-model proxy |
213
+ | **Ollama** | `ollama` | Local models — `ollama serve` |
214
+ | **LM Studio** | `lmstudio` | Local models — enable local server |
215
+ | **Custom** | `custom` | Any OpenAI-compatible `/chat/completions` |
201
216
 
202
217
  ---
203
218
 
@@ -313,6 +328,7 @@ Full guide: [docs/security.md](docs/security.md)
313
328
  - **Auto-memory** — extracts facts from conversations automatically
314
329
  - **Skills** — bundled and workspace skills (reminders, translator, web search, etc.)
315
330
  - **Daemon mode** — launchd/systemd user service, auto-restart, `🩸` icon
331
+ - **Update notifications** — notifies when a newer version is available on npm (non-blocking check at startup)
316
332
  - **MCP support** — Model Context Protocol server and client
317
333
  - **Docker** — sandboxed agent execution, browser tools with Puppeteer
318
334
  - **Tailscale** — Serve/Funnel for remote access without port forwarding
@@ -344,6 +360,134 @@ The Gateway alone delivers a great experience. Apps add extra features:
344
360
 
345
361
  ---
346
362
 
363
+ ## Development channels
364
+
365
+ Three release channels, switch any time:
366
+
367
+ ```bash
368
+ hyperclaw update --channel stable # tagged releases (default)
369
+ hyperclaw update --channel beta # prereleases
370
+ hyperclaw update --channel dev # moving head of main
371
+ ```
372
+
373
+ | Channel | npm dist-tag | Notes |
374
+ |---------|-------------|-------|
375
+ | `stable` | `latest` | Tagged releases — recommended |
376
+ | `beta` | `beta` | Prerelease — new features, may have rough edges |
377
+ | `dev` | `dev` | Latest main branch (when published) |
378
+
379
+ ---
380
+
381
+ ## Integrations (Skills & Tools)
382
+
383
+ The agent has built-in tools for common integrations — no extra packages needed. Full reference: [docs/integrations.md](docs/integrations.md)
384
+
385
+ ### Core Tools
386
+
387
+ | Tool | How to enable |
388
+ |------|---------------|
389
+ | **Weather** | Free — no key needed (Open-Meteo) |
390
+ | **Image generation** | Set `OPENAI_API_KEY` (DALL-E 3) or `STABILITY_API_KEY` |
391
+ | **GIF search** | Set `GIPHY_API_KEY` or `TENOR_API_KEY` |
392
+ | **Spotify** | Set `SPOTIFY_CLIENT_ID` + `SPOTIFY_CLIENT_SECRET` + `SPOTIFY_REFRESH_TOKEN` |
393
+ | **Home Assistant** | Set `HA_URL` + `HA_TOKEN` (long-lived access token) |
394
+ | **GitHub** | Set `GITHUB_TOKEN` |
395
+ | **Canvas** | Built-in — view at `http://localhost:18789/canvas` |
396
+ | **Browser** | Built-in — enable `browser.enabled: true` |
397
+ | **Gmail** | Set `GOOGLE_CREDENTIALS_PATH` + configure Pub/Sub |
398
+
399
+ ### Productivity
400
+
401
+ | Tool | How to enable |
402
+ |------|---------------|
403
+ | **Apple Notes** | macOS only — built-in (requires Accessibility permissions) |
404
+ | **Apple Reminders** | macOS only — built-in (requires Accessibility permissions) |
405
+ | **Things 3** | macOS only — install Things 3, no extra config |
406
+ | **Obsidian** | Install Local REST API plugin, set `OBSIDIAN_API_KEY` (and optionally `OBSIDIAN_PORT`, default 27123) |
407
+ | **Bear Notes** | macOS only — install Bear, no extra config |
408
+ | **Trello** | Set `TRELLO_API_KEY` + `TRELLO_TOKEN` (from trello.com/app-key) |
409
+
410
+ ### Music
411
+
412
+ | Tool | How to enable |
413
+ |------|---------------|
414
+ | **Sonos** | Set `SONOS_IP` to your speaker's local IP address |
415
+ | **Music search** | Free — no key needed (iTunes Search API) |
416
+
417
+ ### Smart Home
418
+
419
+ | Tool | How to enable |
420
+ |------|---------------|
421
+ | **Philips Hue** | Set `HUE_BRIDGE_IP` + `HUE_USERNAME` (from bridge discovery) |
422
+ | **8Sleep** | Set `EIGHTSLEEP_EMAIL` + `EIGHTSLEEP_PASSWORD` |
423
+
424
+ ### Security & Messaging
425
+
426
+ | Tool | How to enable |
427
+ |------|---------------|
428
+ | **1Password** | Install `op` CLI, set `OP_SERVICE_ACCOUNT_TOKEN` |
429
+ | **iMessage** | macOS only — built-in (requires Full Disk Access + Accessibility) |
430
+
431
+ Example — ask the agent:
432
+ ```
433
+ "What's the weather in Athens for the next 3 days?"
434
+ "Generate an image of a space lobster"
435
+ "Play some Daft Punk on Spotify"
436
+ "Turn on the living room lights" # Home Assistant or Philips Hue
437
+ "List my open GitHub issues"
438
+ "Add 'Buy milk' to my Reminders"
439
+ "Create a note in Obsidian: Meeting notes..."
440
+ "Add a card to my Trello board"
441
+ "Set my 8Sleep to temperature 20 on the left side"
442
+ "Get my GitHub password from 1Password"
443
+ "Send an iMessage to +1234567890: I'll be late"
444
+ "What's playing on my Sonos?"
445
+ ```
446
+
447
+ ---
448
+
449
+ ## Agent-to-Agent (sessions tools)
450
+
451
+ When the gateway is running, the agent can communicate with other connected sessions:
452
+
453
+ | Tool | Description |
454
+ |------|-------------|
455
+ | `sessions_list` | List all active sessions connected to the gateway |
456
+ | `sessions_send` | Send a message to another session by session ID |
457
+ | `sessions_history` | Get the chat transcript of a session (`"self"` for current) |
458
+
459
+ Example — ask the agent:
460
+ ```
461
+ "List all connected sessions and send a briefing to the first one"
462
+ ```
463
+
464
+ ---
465
+
466
+ ## Terminal chat (`hyperclaw chat`)
467
+
468
+ Interactive multi-turn chat with the agent directly from your terminal:
469
+
470
+ ```bash
471
+ hyperclaw chat # start a session
472
+ hyperclaw chat --thinking high # enable extended thinking
473
+ hyperclaw chat --session my-session # named session
474
+ hyperclaw chat --model claude-opus-4-6 # override model
475
+ ```
476
+
477
+ | Input | Action |
478
+ |-------|--------|
479
+ | Any text + Enter | Send message to agent |
480
+ | `exit` / `quit` / `bye` | Quit the chat |
481
+ | `/exit` / `/quit` / `/bye` | Quit the chat |
482
+ | `Ctrl+C` | Quit the chat |
483
+ | `/clear` | Clear conversation history |
484
+ | `/model` | Show current model |
485
+ | `/help` | Show available commands |
486
+
487
+ Responses stream token-by-token as they are generated. The full conversation history is kept for the entire session (true multi-turn context).
488
+
489
+ ---
490
+
347
491
  ## Chat commands
348
492
 
349
493
  Send these in any connected channel (Telegram, Discord, Slack, etc.):
@@ -356,6 +500,91 @@ Send these in any connected channel (Telegram, Discord, Slack, etc.):
356
500
  | `/think <level>` | `off` · `low` · `medium` · `high` · `xhigh` |
357
501
  | `/verbose on\|off` | Verbose mode |
358
502
  | `/usage off\|tokens\|full` | Per-response usage footer |
503
+ | `/restart` | Restart the gateway (owner-only in groups) |
504
+ | `/activation mention\|always` | Group activation toggle |
505
+
506
+ ## SkillHub
507
+
508
+ SkillHub is HyperClaw's skill registry. Full guide: [docs/skillhub.md](docs/skillhub.md)
509
+
510
+ The agent can install skills on demand or you can install them via the wizard:
511
+
512
+ ```bash
513
+ # Install a skill
514
+ hyperclaw skills install web-search
515
+
516
+ # List installed skills
517
+ hyperclaw skills list
518
+ ```
519
+
520
+ Featured skills: `web-search` · `file-manager` · `code-runner` · `github-tools` · `calendar-tools` · `summarizer`
521
+
522
+ ### Installing skills — 3 ways
523
+
524
+ **Option 1 — tell the agent (easiest):**
525
+
526
+ ```
527
+ You › Install the web-search skill
528
+ You › Install this: https://clawhub.ai/user/skill-name
529
+ ```
530
+
531
+ The agent automatically calls `install_skill_from_hub` — no commands needed.
532
+
533
+ **Option 2 — `/skills` inside `hyperclaw chat`:**
534
+
535
+ ```
536
+ You › /skills
537
+ ```
538
+
539
+ Shows installed skills and how to add more:
540
+
541
+ ```
542
+ Installed skills:
543
+ • Web Search (web-search)
544
+ • File Manager (file-manager)
545
+
546
+ How to add a skill:
547
+ 1. Tell the agent: "Install the web-search skill"
548
+ 2. Paste a link: "Install this: https://clawhub.ai/user/skill-name"
549
+ 3. CLI: hyperclaw skill install <name>
550
+ 4. Re-run wizard: hyperclaw onboard
551
+ ```
552
+
553
+ `/skills` also appears in `/help` and in the chat header when you open `hyperclaw chat`.
554
+
555
+ **Option 3 — CLI:**
556
+
557
+ ```bash
558
+ hyperclaw skill install web-search
559
+ hyperclaw skills list
560
+ ```
561
+
562
+ ### Install from URL
563
+
564
+ Give the agent a clawhub.ai link and it installs automatically:
565
+
566
+ ```
567
+ "Install this skill: https://clawhub.ai/b0tresch/stealth-browser"
568
+ ```
569
+
570
+ The agent calls `install_skill_from_hub` — fetches SKILL.md + extra files, writes them to `~/.hyperclaw/workspace/skills/`, and runs `npm install` if needed.
571
+
572
+ ### Self-writing skills
573
+
574
+ The agent can create fully custom skills on demand:
575
+
576
+ ```
577
+ "Create a skill that summarizes my daily Telegram messages"
578
+ ```
579
+
580
+ `create_skill` supports:
581
+ - **`content`** — SKILL.md instructions
582
+ - **`files`** — JSON map of extra files (e.g. `{"scripts/run.js": "..."}`)
583
+ - **`npmInstall: "true"`** — auto-runs `npm install` after writing files
584
+
585
+ Skills are saved to `~/.hyperclaw/workspace/skills/{id}/` and loaded on the next message.
586
+
587
+ ---
359
588
 
360
589
  ## HyperClaw Bot commands
361
590
 
@@ -378,23 +607,6 @@ Control the gateway remotely via your Telegram or Discord bot (`hyperclaw bot st
378
607
  | `/security` | Security audit summary |
379
608
  | `/help` | List all commands |
380
609
 
381
- ## Agent-to-Agent (session tools)
382
-
383
- When the gateway is running, the agent has access to session tools for agent-to-agent communication:
384
-
385
- | Tool | Description |
386
- |------|-------------|
387
- | `sessions_list` | List all active WebSocket sessions connected to the gateway |
388
- | `sessions_send` | Send a message to another session (by session ID) |
389
- | `sessions_history` | Get the chat transcript of a session (`"self"` for current) |
390
-
391
- Example — ask the agent to ping another session:
392
- ```
393
- "List all connected sessions and send a hello to the first one"
394
- ```
395
-
396
- ---
397
-
398
610
  ## From source
399
611
 
400
612
  ```bash
@@ -493,6 +705,9 @@ hyperclaw/
493
705
  | Environment variables | [docs/environment.md](docs/environment.md) |
494
706
  | API keys guide | [docs/API-KEYS-README.md](docs/API-KEYS-README.md) |
495
707
  | OAuth providers | [docs/oauth-providers.md](docs/oauth-providers.md) |
708
+ | **Integrations (all tools)** | [docs/integrations.md](docs/integrations.md) |
709
+ | **SkillHub & custom skills** | [docs/skillhub.md](docs/skillhub.md) |
710
+ | **Update notifications** | [docs/update-notifications.md](docs/update-notifications.md) |
496
711
  | **Security** | [docs/security.md](docs/security.md) · [SECURITY.md](SECURITY.md) |
497
712
  | Deployment / Docker | [docs/deployment.md](docs/deployment.md) |
498
713
  | Tailscale remote access | [docs/tailscale.md](docs/tailscale.md) |
@@ -0,0 +1,75 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+
3
+ //#region src/canvas/a2ui-protocol.ts
4
+ /** Map HyperClaw component type to A2UI-compatible type. */
5
+ function toA2UIType(t) {
6
+ const map = {
7
+ chart: "chart",
8
+ table: "table",
9
+ form: "form",
10
+ markdown: "markdown",
11
+ image: "image",
12
+ custom: "custom",
13
+ script: "script"
14
+ };
15
+ return map[t] || "custom";
16
+ }
17
+ /** Convert a CanvasComponent to A2UI surface. */
18
+ function componentToSurface(c) {
19
+ return {
20
+ id: c.id,
21
+ type: toA2UIType(c.type),
22
+ props: {
23
+ title: c.title,
24
+ width: c.width || "half"
25
+ },
26
+ data: c.data
27
+ };
28
+ }
29
+ /** Generate beginRendering from canvas state (full sync). */
30
+ function toBeginRendering(canvas) {
31
+ const surfaces = canvas.components.map(componentToSurface);
32
+ const dataModel = {};
33
+ for (const c of canvas.components) if (c.data != null) dataModel[c.id] = c.data;
34
+ return {
35
+ type: "beginRendering",
36
+ surfaceId: canvas.id,
37
+ surfaces,
38
+ dataModel: Object.keys(dataModel).length ? dataModel : void 0
39
+ };
40
+ }
41
+ /** Generate surfaceUpdate for newly added component. */
42
+ function toSurfaceUpdate(canvasId, component) {
43
+ return {
44
+ type: "surfaceUpdate",
45
+ surfaceId: canvasId,
46
+ surfaces: [componentToSurface(component)]
47
+ };
48
+ }
49
+ /** Generate dataModelUpdate when component data changes. */
50
+ function toDataModelUpdate(canvasId, componentId, data) {
51
+ return {
52
+ type: "dataModelUpdate",
53
+ surfaceId: canvasId,
54
+ updates: { [componentId]: data }
55
+ };
56
+ }
57
+ /** Generate deleteSurface for removed components. */
58
+ function toDeleteSurface(canvasId, componentIds) {
59
+ return {
60
+ type: "deleteSurface",
61
+ surfaceId: canvasId,
62
+ surfaceIds: componentIds
63
+ };
64
+ }
65
+ /** Serialize A2UI messages to JSONL (one message per line). */
66
+ function toJSONL(messages) {
67
+ return messages.map((m) => JSON.stringify(m)).join("\n");
68
+ }
69
+
70
+ //#endregion
71
+ exports.toBeginRendering = toBeginRendering;
72
+ exports.toDataModelUpdate = toDataModelUpdate;
73
+ exports.toDeleteSurface = toDeleteSurface;
74
+ exports.toJSONL = toJSONL;
75
+ exports.toSurfaceUpdate = toSurfaceUpdate;
@@ -0,0 +1,4 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const require_agents_routing = require('./agents-routing-CL3HQNoM.js');
3
+
4
+ exports.AgentRouter = require_agents_routing.AgentRouter;