a2acalling 0.6.75 → 0.6.76

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 (1025) hide show
  1. package/.a2a-manifest.json +2 -2
  2. package/.claude/worktrees/agent-a0a8dd02/.a2a-manifest.json +70 -0
  3. package/.claude/worktrees/agent-a0a8dd02/.c8rc.json +16 -0
  4. package/.claude/worktrees/agent-a0a8dd02/.claude/a2a-skill-reference.md +462 -0
  5. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-app.md +42 -0
  6. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-call.md +26 -0
  7. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-contacts.md +31 -0
  8. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-conversations.md +47 -0
  9. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-gui.md +30 -0
  10. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-invite.md +63 -0
  11. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-setup.md +30 -0
  12. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-skills.md +27 -0
  13. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-status.md +46 -0
  14. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-uninstall.md +36 -0
  15. package/.claude/worktrees/agent-a0a8dd02/.claude/commands/a2a-update.md +41 -0
  16. package/.claude/worktrees/agent-a0a8dd02/.node-version +1 -0
  17. package/.claude/worktrees/agent-a0a8dd02/ARCHITECTURE.md +135 -0
  18. package/.claude/worktrees/agent-a0a8dd02/CLAUDE-INSTALL.md +156 -0
  19. package/.claude/worktrees/agent-a0a8dd02/CONVENTIONS.md +179 -0
  20. package/.claude/worktrees/agent-a0a8dd02/README.md +470 -0
  21. package/.claude/worktrees/agent-a0a8dd02/SKILL.md +462 -0
  22. package/.claude/worktrees/agent-a0a8dd02/bin/cli.js +3184 -0
  23. package/.claude/worktrees/agent-a0a8dd02/biome.json +27 -0
  24. package/.claude/worktrees/agent-a0a8dd02/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  25. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  26. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  27. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-02-16-auto-updater.md +1284 -0
  28. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  29. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  30. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  31. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  32. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  33. package/.claude/worktrees/agent-a0a8dd02/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  34. package/.claude/worktrees/agent-a0a8dd02/docs/prompts/e2e-test-agent.md +368 -0
  35. package/.claude/worktrees/agent-a0a8dd02/docs/protocol.md +440 -0
  36. package/.claude/worktrees/agent-a0a8dd02/docs/signing-setup.md +49 -0
  37. package/.claude/worktrees/agent-a0a8dd02/eslint.config.js +16 -0
  38. package/.claude/worktrees/agent-a0a8dd02/knip.json +17 -0
  39. package/.claude/worktrees/agent-a0a8dd02/native/macos/index.html +179 -0
  40. package/.claude/worktrees/agent-a0a8dd02/native/macos/package.json +8 -0
  41. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/Cargo.lock +5875 -0
  42. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/Cargo.toml +25 -0
  43. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/binaries/.gitkeep +0 -0
  44. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/build.rs +3 -0
  45. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/capabilities/default.json +26 -0
  46. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/entitlements.plist +14 -0
  47. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/icons/128x128.png +0 -0
  48. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  49. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/icons/32x32.png +0 -0
  50. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/icons/icon.icns +0 -0
  51. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/icons/tray-connected.png +0 -0
  52. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  53. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/src/discovery.rs +184 -0
  54. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/src/health.rs +67 -0
  55. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/src/lib.rs +256 -0
  56. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/src/main.rs +6 -0
  57. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/src/notifications.rs +180 -0
  58. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/src/server.rs +306 -0
  59. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/src/updater.rs +124 -0
  60. package/.claude/worktrees/agent-a0a8dd02/native/macos/src-tauri/tauri.conf.json +58 -0
  61. package/.claude/worktrees/agent-a0a8dd02/package.json +54 -0
  62. package/.claude/worktrees/agent-a0a8dd02/pkg.config.json +14 -0
  63. package/.claude/worktrees/agent-a0a8dd02/scripts/build-standalone.sh +106 -0
  64. package/.claude/worktrees/agent-a0a8dd02/scripts/cleanup.js +251 -0
  65. package/.claude/worktrees/agent-a0a8dd02/scripts/generate-update-manifest.sh +42 -0
  66. package/.claude/worktrees/agent-a0a8dd02/scripts/install-openclaw.js +986 -0
  67. package/.claude/worktrees/agent-a0a8dd02/scripts/install-skills.js +234 -0
  68. package/.claude/worktrees/agent-a0a8dd02/scripts/postinstall.js +224 -0
  69. package/.claude/worktrees/agent-a0a8dd02/scripts/preuninstall.js +68 -0
  70. package/.claude/worktrees/agent-a0a8dd02/scripts/run-e2e.sh +44 -0
  71. package/.claude/worktrees/agent-a0a8dd02/scripts/smoke-test-standalone.sh +101 -0
  72. package/.claude/worktrees/agent-a0a8dd02/scripts/sync-version.sh +28 -0
  73. package/.claude/worktrees/agent-a0a8dd02/scripts/verify-app-bundle.sh +34 -0
  74. package/.claude/worktrees/agent-a0a8dd02/src/dashboard/public/app.js +2683 -0
  75. package/.claude/worktrees/agent-a0a8dd02/src/dashboard/public/index.html +393 -0
  76. package/.claude/worktrees/agent-a0a8dd02/src/dashboard/public/style.css +1294 -0
  77. package/.claude/worktrees/agent-a0a8dd02/src/index.js +76 -0
  78. package/.claude/worktrees/agent-a0a8dd02/src/lib/agent-card.js +111 -0
  79. package/.claude/worktrees/agent-a0a8dd02/src/lib/call-monitor.js +205 -0
  80. package/.claude/worktrees/agent-a0a8dd02/src/lib/callbook.js +366 -0
  81. package/.claude/worktrees/agent-a0a8dd02/src/lib/claude-subagent.js +696 -0
  82. package/.claude/worktrees/agent-a0a8dd02/src/lib/client.js +683 -0
  83. package/.claude/worktrees/agent-a0a8dd02/src/lib/config.js +480 -0
  84. package/.claude/worktrees/agent-a0a8dd02/src/lib/conversation-driver.js +608 -0
  85. package/.claude/worktrees/agent-a0a8dd02/src/lib/conversations.js +830 -0
  86. package/.claude/worktrees/agent-a0a8dd02/src/lib/crypto.js +113 -0
  87. package/.claude/worktrees/agent-a0a8dd02/src/lib/dashboard-events.js +213 -0
  88. package/.claude/worktrees/agent-a0a8dd02/src/lib/disclosure.js +792 -0
  89. package/.claude/worktrees/agent-a0a8dd02/src/lib/external-ip.js +211 -0
  90. package/.claude/worktrees/agent-a0a8dd02/src/lib/invite-host.js +223 -0
  91. package/.claude/worktrees/agent-a0a8dd02/src/lib/local-request.js +69 -0
  92. package/.claude/worktrees/agent-a0a8dd02/src/lib/logger.js +677 -0
  93. package/.claude/worktrees/agent-a0a8dd02/src/lib/openclaw-integration.js +339 -0
  94. package/.claude/worktrees/agent-a0a8dd02/src/lib/pid-file.js +103 -0
  95. package/.claude/worktrees/agent-a0a8dd02/src/lib/port-scanner.js +83 -0
  96. package/.claude/worktrees/agent-a0a8dd02/src/lib/prompt-template.js +355 -0
  97. package/.claude/worktrees/agent-a0a8dd02/src/lib/runtime-adapter.js +701 -0
  98. package/.claude/worktrees/agent-a0a8dd02/src/lib/summarizer.js +156 -0
  99. package/.claude/worktrees/agent-a0a8dd02/src/lib/summary-formatter.js +168 -0
  100. package/.claude/worktrees/agent-a0a8dd02/src/lib/summary-prompt.js +203 -0
  101. package/.claude/worktrees/agent-a0a8dd02/src/lib/tokens.js +868 -0
  102. package/.claude/worktrees/agent-a0a8dd02/src/lib/turn-timeout.js +52 -0
  103. package/.claude/worktrees/agent-a0a8dd02/src/lib/update-checker.js +93 -0
  104. package/.claude/worktrees/agent-a0a8dd02/src/lib/update-manager.js +313 -0
  105. package/.claude/worktrees/agent-a0a8dd02/src/routes/a2a.js +1213 -0
  106. package/.claude/worktrees/agent-a0a8dd02/src/routes/callbook.js +142 -0
  107. package/.claude/worktrees/agent-a0a8dd02/src/routes/dashboard.js +1578 -0
  108. package/.claude/worktrees/agent-a0a8dd02/src/server.js +1179 -0
  109. package/.claude/worktrees/agent-a3c12538/.a2a-manifest.json +70 -0
  110. package/.claude/worktrees/agent-a3c12538/.c8rc.json +16 -0
  111. package/.claude/worktrees/agent-a3c12538/.claude/a2a-skill-reference.md +462 -0
  112. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-app.md +42 -0
  113. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-call.md +26 -0
  114. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-contacts.md +31 -0
  115. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-conversations.md +47 -0
  116. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-gui.md +30 -0
  117. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-invite.md +63 -0
  118. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-setup.md +30 -0
  119. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-skills.md +27 -0
  120. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-status.md +46 -0
  121. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-uninstall.md +36 -0
  122. package/.claude/worktrees/agent-a3c12538/.claude/commands/a2a-update.md +41 -0
  123. package/.claude/worktrees/agent-a3c12538/.node-version +1 -0
  124. package/.claude/worktrees/agent-a3c12538/ARCHITECTURE.md +135 -0
  125. package/.claude/worktrees/agent-a3c12538/CLAUDE-INSTALL.md +156 -0
  126. package/.claude/worktrees/agent-a3c12538/CONVENTIONS.md +169 -0
  127. package/.claude/worktrees/agent-a3c12538/README.md +470 -0
  128. package/.claude/worktrees/agent-a3c12538/SKILL.md +462 -0
  129. package/.claude/worktrees/agent-a3c12538/bin/cli.js +3184 -0
  130. package/.claude/worktrees/agent-a3c12538/biome.json +27 -0
  131. package/.claude/worktrees/agent-a3c12538/docs/app.js +30 -0
  132. package/.claude/worktrees/agent-a3c12538/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  133. package/.claude/worktrees/agent-a3c12538/docs/assets/icon-32.png +0 -0
  134. package/.claude/worktrees/agent-a3c12538/docs/assets/icon-64.png +0 -0
  135. package/.claude/worktrees/agent-a3c12538/docs/index.html +117 -0
  136. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  137. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  138. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-02-16-auto-updater.md +1284 -0
  139. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  140. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  141. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  142. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  143. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  144. package/.claude/worktrees/agent-a3c12538/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  145. package/.claude/worktrees/agent-a3c12538/docs/prompts/e2e-test-agent.md +368 -0
  146. package/.claude/worktrees/agent-a3c12538/docs/protocol.md +440 -0
  147. package/.claude/worktrees/agent-a3c12538/docs/signing-setup.md +49 -0
  148. package/.claude/worktrees/agent-a3c12538/docs/style.css +209 -0
  149. package/.claude/worktrees/agent-a3c12538/eslint.config.js +16 -0
  150. package/.claude/worktrees/agent-a3c12538/knip.json +17 -0
  151. package/.claude/worktrees/agent-a3c12538/native/macos/index.html +179 -0
  152. package/.claude/worktrees/agent-a3c12538/native/macos/package.json +8 -0
  153. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/Cargo.lock +5875 -0
  154. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/Cargo.toml +24 -0
  155. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/binaries/.gitkeep +0 -0
  156. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/build.rs +3 -0
  157. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/capabilities/default.json +26 -0
  158. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/entitlements.plist +14 -0
  159. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/icons/128x128.png +0 -0
  160. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  161. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/icons/32x32.png +0 -0
  162. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/icons/icon.icns +0 -0
  163. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/icons/tray-connected.png +0 -0
  164. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  165. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/src/discovery.rs +184 -0
  166. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/src/health.rs +67 -0
  167. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/src/lib.rs +226 -0
  168. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/src/main.rs +6 -0
  169. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/src/notifications.rs +180 -0
  170. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/src/server.rs +306 -0
  171. package/.claude/worktrees/agent-a3c12538/native/macos/src-tauri/tauri.conf.json +50 -0
  172. package/.claude/worktrees/agent-a3c12538/package.json +54 -0
  173. package/.claude/worktrees/agent-a3c12538/pkg.config.json +14 -0
  174. package/.claude/worktrees/agent-a3c12538/scripts/build-standalone.sh +106 -0
  175. package/.claude/worktrees/agent-a3c12538/scripts/cleanup.js +251 -0
  176. package/.claude/worktrees/agent-a3c12538/scripts/install-openclaw.js +986 -0
  177. package/.claude/worktrees/agent-a3c12538/scripts/install-skills.js +234 -0
  178. package/.claude/worktrees/agent-a3c12538/scripts/postinstall.js +224 -0
  179. package/.claude/worktrees/agent-a3c12538/scripts/preuninstall.js +68 -0
  180. package/.claude/worktrees/agent-a3c12538/scripts/run-e2e.sh +44 -0
  181. package/.claude/worktrees/agent-a3c12538/scripts/smoke-test-standalone.sh +101 -0
  182. package/.claude/worktrees/agent-a3c12538/scripts/sync-version.sh +28 -0
  183. package/.claude/worktrees/agent-a3c12538/scripts/verify-app-bundle.sh +34 -0
  184. package/.claude/worktrees/agent-a3c12538/src/dashboard/public/app.js +2649 -0
  185. package/.claude/worktrees/agent-a3c12538/src/dashboard/public/index.html +386 -0
  186. package/.claude/worktrees/agent-a3c12538/src/dashboard/public/style.css +1274 -0
  187. package/.claude/worktrees/agent-a3c12538/src/index.js +76 -0
  188. package/.claude/worktrees/agent-a3c12538/src/lib/agent-card.js +111 -0
  189. package/.claude/worktrees/agent-a3c12538/src/lib/call-monitor.js +205 -0
  190. package/.claude/worktrees/agent-a3c12538/src/lib/callbook.js +366 -0
  191. package/.claude/worktrees/agent-a3c12538/src/lib/claude-subagent.js +696 -0
  192. package/.claude/worktrees/agent-a3c12538/src/lib/client.js +683 -0
  193. package/.claude/worktrees/agent-a3c12538/src/lib/config.js +480 -0
  194. package/.claude/worktrees/agent-a3c12538/src/lib/conversation-driver.js +608 -0
  195. package/.claude/worktrees/agent-a3c12538/src/lib/conversations.js +830 -0
  196. package/.claude/worktrees/agent-a3c12538/src/lib/crypto.js +113 -0
  197. package/.claude/worktrees/agent-a3c12538/src/lib/dashboard-events.js +213 -0
  198. package/.claude/worktrees/agent-a3c12538/src/lib/disclosure.js +792 -0
  199. package/.claude/worktrees/agent-a3c12538/src/lib/external-ip.js +211 -0
  200. package/.claude/worktrees/agent-a3c12538/src/lib/invite-host.js +223 -0
  201. package/.claude/worktrees/agent-a3c12538/src/lib/local-request.js +69 -0
  202. package/.claude/worktrees/agent-a3c12538/src/lib/logger.js +677 -0
  203. package/.claude/worktrees/agent-a3c12538/src/lib/openclaw-integration.js +339 -0
  204. package/.claude/worktrees/agent-a3c12538/src/lib/pid-file.js +103 -0
  205. package/.claude/worktrees/agent-a3c12538/src/lib/port-scanner.js +83 -0
  206. package/.claude/worktrees/agent-a3c12538/src/lib/prompt-template.js +355 -0
  207. package/.claude/worktrees/agent-a3c12538/src/lib/runtime-adapter.js +701 -0
  208. package/.claude/worktrees/agent-a3c12538/src/lib/summarizer.js +156 -0
  209. package/.claude/worktrees/agent-a3c12538/src/lib/summary-formatter.js +168 -0
  210. package/.claude/worktrees/agent-a3c12538/src/lib/summary-prompt.js +203 -0
  211. package/.claude/worktrees/agent-a3c12538/src/lib/tokens.js +868 -0
  212. package/.claude/worktrees/agent-a3c12538/src/lib/turn-timeout.js +52 -0
  213. package/.claude/worktrees/agent-a3c12538/src/lib/update-checker.js +93 -0
  214. package/.claude/worktrees/agent-a3c12538/src/lib/update-manager.js +313 -0
  215. package/.claude/worktrees/agent-a3c12538/src/routes/a2a.js +1213 -0
  216. package/.claude/worktrees/agent-a3c12538/src/routes/callbook.js +142 -0
  217. package/.claude/worktrees/agent-a3c12538/src/routes/dashboard.js +1578 -0
  218. package/.claude/worktrees/agent-a3c12538/src/server.js +1179 -0
  219. package/.claude/worktrees/agent-a5b87d75/.a2a-manifest.json +70 -0
  220. package/.claude/worktrees/agent-a5b87d75/.c8rc.json +16 -0
  221. package/.claude/worktrees/agent-a5b87d75/.claude/a2a-skill-reference.md +462 -0
  222. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-app.md +42 -0
  223. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-call.md +26 -0
  224. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-contacts.md +31 -0
  225. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-conversations.md +47 -0
  226. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-gui.md +30 -0
  227. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-invite.md +63 -0
  228. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-setup.md +30 -0
  229. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-skills.md +27 -0
  230. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-status.md +46 -0
  231. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-uninstall.md +36 -0
  232. package/.claude/worktrees/agent-a5b87d75/.claude/commands/a2a-update.md +41 -0
  233. package/.claude/worktrees/agent-a5b87d75/.node-version +1 -0
  234. package/.claude/worktrees/agent-a5b87d75/ARCHITECTURE.md +135 -0
  235. package/.claude/worktrees/agent-a5b87d75/CLAUDE-INSTALL.md +156 -0
  236. package/.claude/worktrees/agent-a5b87d75/CONVENTIONS.md +208 -0
  237. package/.claude/worktrees/agent-a5b87d75/README.md +470 -0
  238. package/.claude/worktrees/agent-a5b87d75/SKILL.md +462 -0
  239. package/.claude/worktrees/agent-a5b87d75/bin/cli.js +3184 -0
  240. package/.claude/worktrees/agent-a5b87d75/biome.json +27 -0
  241. package/.claude/worktrees/agent-a5b87d75/docs/app.js +30 -0
  242. package/.claude/worktrees/agent-a5b87d75/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  243. package/.claude/worktrees/agent-a5b87d75/docs/assets/icon-32.png +0 -0
  244. package/.claude/worktrees/agent-a5b87d75/docs/assets/icon-64.png +0 -0
  245. package/.claude/worktrees/agent-a5b87d75/docs/index.html +117 -0
  246. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  247. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  248. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-02-16-auto-updater.md +1284 -0
  249. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  250. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  251. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  252. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  253. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  254. package/.claude/worktrees/agent-a5b87d75/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  255. package/.claude/worktrees/agent-a5b87d75/docs/prompts/e2e-test-agent.md +368 -0
  256. package/.claude/worktrees/agent-a5b87d75/docs/protocol.md +440 -0
  257. package/.claude/worktrees/agent-a5b87d75/docs/signing-setup.md +49 -0
  258. package/.claude/worktrees/agent-a5b87d75/docs/style.css +209 -0
  259. package/.claude/worktrees/agent-a5b87d75/eslint.config.js +16 -0
  260. package/.claude/worktrees/agent-a5b87d75/knip.json +17 -0
  261. package/.claude/worktrees/agent-a5b87d75/native/macos/index.html +182 -0
  262. package/.claude/worktrees/agent-a5b87d75/native/macos/package.json +8 -0
  263. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/Cargo.lock +5875 -0
  264. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/Cargo.toml +25 -0
  265. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/binaries/.gitkeep +0 -0
  266. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/build.rs +3 -0
  267. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/capabilities/default.json +26 -0
  268. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/dmg-background.png +0 -0
  269. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/dmg-background@2x.png +0 -0
  270. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/entitlements.plist +14 -0
  271. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/128x128.png +0 -0
  272. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  273. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/256x256.png +0 -0
  274. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/32x32.png +0 -0
  275. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/512x512.png +0 -0
  276. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/512x512@2x.png +0 -0
  277. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/icon.icns +0 -0
  278. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/tray-connected.png +0 -0
  279. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  280. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/src/discovery.rs +221 -0
  281. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/src/health.rs +67 -0
  282. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/src/lib.rs +256 -0
  283. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/src/main.rs +6 -0
  284. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/src/notifications.rs +180 -0
  285. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/src/server.rs +306 -0
  286. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/src/updater.rs +124 -0
  287. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/tauri.conf.json +68 -0
  288. package/.claude/worktrees/agent-a5b87d75/native/macos/src-tauri/volume-icon.icns +0 -0
  289. package/.claude/worktrees/agent-a5b87d75/package.json +55 -0
  290. package/.claude/worktrees/agent-a5b87d75/pkg.config.json +14 -0
  291. package/.claude/worktrees/agent-a5b87d75/scripts/build-standalone.sh +106 -0
  292. package/.claude/worktrees/agent-a5b87d75/scripts/cleanup.js +251 -0
  293. package/.claude/worktrees/agent-a5b87d75/scripts/generate-update-manifest.sh +42 -0
  294. package/.claude/worktrees/agent-a5b87d75/scripts/install-openclaw.js +986 -0
  295. package/.claude/worktrees/agent-a5b87d75/scripts/install-skills.js +234 -0
  296. package/.claude/worktrees/agent-a5b87d75/scripts/postinstall.js +224 -0
  297. package/.claude/worktrees/agent-a5b87d75/scripts/preuninstall.js +68 -0
  298. package/.claude/worktrees/agent-a5b87d75/scripts/run-e2e.sh +52 -0
  299. package/.claude/worktrees/agent-a5b87d75/scripts/smoke-test-standalone.sh +101 -0
  300. package/.claude/worktrees/agent-a5b87d75/scripts/sync-version.sh +28 -0
  301. package/.claude/worktrees/agent-a5b87d75/scripts/verify-app-bundle.sh +34 -0
  302. package/.claude/worktrees/agent-a5b87d75/src/dashboard/public/app.js +2683 -0
  303. package/.claude/worktrees/agent-a5b87d75/src/dashboard/public/index.html +393 -0
  304. package/.claude/worktrees/agent-a5b87d75/src/dashboard/public/onboarding.css +269 -0
  305. package/.claude/worktrees/agent-a5b87d75/src/dashboard/public/onboarding.html +96 -0
  306. package/.claude/worktrees/agent-a5b87d75/src/dashboard/public/onboarding.js +277 -0
  307. package/.claude/worktrees/agent-a5b87d75/src/dashboard/public/style.css +1294 -0
  308. package/.claude/worktrees/agent-a5b87d75/src/index.js +76 -0
  309. package/.claude/worktrees/agent-a5b87d75/src/lib/agent-card.js +111 -0
  310. package/.claude/worktrees/agent-a5b87d75/src/lib/call-monitor.js +205 -0
  311. package/.claude/worktrees/agent-a5b87d75/src/lib/callbook.js +366 -0
  312. package/.claude/worktrees/agent-a5b87d75/src/lib/claude-subagent.js +696 -0
  313. package/.claude/worktrees/agent-a5b87d75/src/lib/client.js +683 -0
  314. package/.claude/worktrees/agent-a5b87d75/src/lib/config.js +480 -0
  315. package/.claude/worktrees/agent-a5b87d75/src/lib/conversation-driver.js +608 -0
  316. package/.claude/worktrees/agent-a5b87d75/src/lib/conversations.js +830 -0
  317. package/.claude/worktrees/agent-a5b87d75/src/lib/crypto.js +113 -0
  318. package/.claude/worktrees/agent-a5b87d75/src/lib/dashboard-events.js +213 -0
  319. package/.claude/worktrees/agent-a5b87d75/src/lib/disclosure.js +792 -0
  320. package/.claude/worktrees/agent-a5b87d75/src/lib/external-ip.js +211 -0
  321. package/.claude/worktrees/agent-a5b87d75/src/lib/invite-host.js +223 -0
  322. package/.claude/worktrees/agent-a5b87d75/src/lib/local-request.js +69 -0
  323. package/.claude/worktrees/agent-a5b87d75/src/lib/logger.js +677 -0
  324. package/.claude/worktrees/agent-a5b87d75/src/lib/openclaw-integration.js +339 -0
  325. package/.claude/worktrees/agent-a5b87d75/src/lib/pid-file.js +103 -0
  326. package/.claude/worktrees/agent-a5b87d75/src/lib/port-scanner.js +83 -0
  327. package/.claude/worktrees/agent-a5b87d75/src/lib/prompt-template.js +355 -0
  328. package/.claude/worktrees/agent-a5b87d75/src/lib/runtime-adapter.js +701 -0
  329. package/.claude/worktrees/agent-a5b87d75/src/lib/summarizer.js +156 -0
  330. package/.claude/worktrees/agent-a5b87d75/src/lib/summary-formatter.js +168 -0
  331. package/.claude/worktrees/agent-a5b87d75/src/lib/summary-prompt.js +203 -0
  332. package/.claude/worktrees/agent-a5b87d75/src/lib/tokens.js +868 -0
  333. package/.claude/worktrees/agent-a5b87d75/src/lib/turn-timeout.js +52 -0
  334. package/.claude/worktrees/agent-a5b87d75/src/lib/update-checker.js +93 -0
  335. package/.claude/worktrees/agent-a5b87d75/src/lib/update-manager.js +313 -0
  336. package/.claude/worktrees/agent-a5b87d75/src/routes/a2a.js +1213 -0
  337. package/.claude/worktrees/agent-a5b87d75/src/routes/callbook.js +142 -0
  338. package/.claude/worktrees/agent-a5b87d75/src/routes/dashboard.js +1688 -0
  339. package/.claude/worktrees/agent-a5b87d75/src/server.js +1179 -0
  340. package/.claude/worktrees/agent-acefedbd/.a2a-manifest.json +70 -0
  341. package/.claude/worktrees/agent-acefedbd/.c8rc.json +16 -0
  342. package/.claude/worktrees/agent-acefedbd/.claude/a2a-skill-reference.md +462 -0
  343. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-app.md +42 -0
  344. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-call.md +26 -0
  345. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-contacts.md +31 -0
  346. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-conversations.md +47 -0
  347. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-gui.md +30 -0
  348. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-invite.md +63 -0
  349. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-setup.md +30 -0
  350. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-skills.md +27 -0
  351. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-status.md +46 -0
  352. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-uninstall.md +36 -0
  353. package/.claude/worktrees/agent-acefedbd/.claude/commands/a2a-update.md +41 -0
  354. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.a2a-manifest.json +70 -0
  355. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.c8rc.json +16 -0
  356. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/a2a-skill-reference.md +462 -0
  357. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-app.md +42 -0
  358. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-call.md +26 -0
  359. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-contacts.md +31 -0
  360. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-conversations.md +47 -0
  361. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-gui.md +30 -0
  362. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-invite.md +63 -0
  363. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-setup.md +30 -0
  364. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-skills.md +27 -0
  365. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-status.md +46 -0
  366. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-uninstall.md +36 -0
  367. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.claude/commands/a2a-update.md +41 -0
  368. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/.node-version +1 -0
  369. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/ARCHITECTURE.md +135 -0
  370. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/CLAUDE-INSTALL.md +156 -0
  371. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/CONVENTIONS.md +179 -0
  372. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/README.md +470 -0
  373. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/SKILL.md +462 -0
  374. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/bin/cli.js +3184 -0
  375. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/biome.json +27 -0
  376. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  377. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  378. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  379. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-02-16-auto-updater.md +1284 -0
  380. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  381. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  382. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  383. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  384. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  385. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  386. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/prompts/e2e-test-agent.md +368 -0
  387. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/protocol.md +440 -0
  388. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/docs/signing-setup.md +49 -0
  389. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/eslint.config.js +16 -0
  390. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/knip.json +17 -0
  391. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/index.html +179 -0
  392. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/package.json +8 -0
  393. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/Cargo.lock +5875 -0
  394. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/Cargo.toml +25 -0
  395. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/binaries/.gitkeep +0 -0
  396. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/build.rs +3 -0
  397. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/capabilities/default.json +26 -0
  398. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/entitlements.plist +14 -0
  399. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/icons/128x128.png +0 -0
  400. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  401. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/icons/32x32.png +0 -0
  402. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/icons/icon.icns +0 -0
  403. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/icons/tray-connected.png +0 -0
  404. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  405. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/src/discovery.rs +184 -0
  406. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/src/health.rs +67 -0
  407. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/src/lib.rs +255 -0
  408. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/src/main.rs +6 -0
  409. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/src/notifications.rs +180 -0
  410. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/src/server.rs +306 -0
  411. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/src/updater.rs +117 -0
  412. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/native/macos/src-tauri/tauri.conf.json +58 -0
  413. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/package.json +54 -0
  414. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/pkg.config.json +14 -0
  415. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/build-standalone.sh +106 -0
  416. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/cleanup.js +251 -0
  417. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/generate-update-manifest.sh +42 -0
  418. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/install-openclaw.js +986 -0
  419. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/install-skills.js +234 -0
  420. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/postinstall.js +224 -0
  421. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/preuninstall.js +68 -0
  422. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/run-e2e.sh +44 -0
  423. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/smoke-test-standalone.sh +101 -0
  424. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/sync-version.sh +28 -0
  425. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/scripts/verify-app-bundle.sh +34 -0
  426. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/dashboard/public/app.js +2683 -0
  427. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/dashboard/public/index.html +394 -0
  428. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/dashboard/public/style.css +1294 -0
  429. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/index.js +76 -0
  430. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/agent-card.js +111 -0
  431. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/call-monitor.js +205 -0
  432. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/callbook.js +366 -0
  433. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/claude-subagent.js +696 -0
  434. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/client.js +683 -0
  435. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/config.js +480 -0
  436. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/conversation-driver.js +608 -0
  437. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/conversations.js +830 -0
  438. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/crypto.js +113 -0
  439. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/dashboard-events.js +213 -0
  440. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/disclosure.js +792 -0
  441. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/external-ip.js +211 -0
  442. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/invite-host.js +223 -0
  443. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/local-request.js +69 -0
  444. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/logger.js +677 -0
  445. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/openclaw-integration.js +339 -0
  446. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/pid-file.js +103 -0
  447. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/port-scanner.js +83 -0
  448. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/prompt-template.js +355 -0
  449. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/runtime-adapter.js +701 -0
  450. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/summarizer.js +156 -0
  451. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/summary-formatter.js +168 -0
  452. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/summary-prompt.js +203 -0
  453. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/tokens.js +868 -0
  454. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/turn-timeout.js +52 -0
  455. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/update-checker.js +93 -0
  456. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/lib/update-manager.js +313 -0
  457. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/routes/a2a.js +1213 -0
  458. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/routes/callbook.js +142 -0
  459. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/routes/dashboard.js +1578 -0
  460. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a04dc0fe/src/server.js +1179 -0
  461. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.a2a-manifest.json +70 -0
  462. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.c8rc.json +16 -0
  463. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/a2a-skill-reference.md +462 -0
  464. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-app.md +42 -0
  465. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-call.md +26 -0
  466. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-contacts.md +31 -0
  467. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-conversations.md +47 -0
  468. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-gui.md +30 -0
  469. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-invite.md +63 -0
  470. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-setup.md +30 -0
  471. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-skills.md +27 -0
  472. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-status.md +46 -0
  473. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-uninstall.md +36 -0
  474. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.claude/commands/a2a-update.md +41 -0
  475. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/.node-version +1 -0
  476. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/ARCHITECTURE.md +135 -0
  477. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/CLAUDE-INSTALL.md +156 -0
  478. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/CONVENTIONS.md +178 -0
  479. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/README.md +470 -0
  480. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/SKILL.md +462 -0
  481. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/bin/cli.js +3184 -0
  482. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/biome.json +27 -0
  483. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  484. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  485. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  486. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-02-16-auto-updater.md +1284 -0
  487. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  488. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  489. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  490. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  491. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  492. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  493. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/prompts/e2e-test-agent.md +368 -0
  494. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/protocol.md +440 -0
  495. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/docs/signing-setup.md +49 -0
  496. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/eslint.config.js +16 -0
  497. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/knip.json +17 -0
  498. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/index.html +179 -0
  499. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/package.json +8 -0
  500. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/Cargo.lock +5875 -0
  501. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/Cargo.toml +24 -0
  502. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/binaries/.gitkeep +0 -0
  503. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/build.rs +3 -0
  504. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/capabilities/default.json +26 -0
  505. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/dmg-background.png +0 -0
  506. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/dmg-background@2x.png +0 -0
  507. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/entitlements.plist +14 -0
  508. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/128x128.png +0 -0
  509. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  510. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/256x256.png +0 -0
  511. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/32x32.png +0 -0
  512. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/512x512.png +0 -0
  513. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/512x512@2x.png +0 -0
  514. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/icon.icns +0 -0
  515. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/tray-connected.png +0 -0
  516. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  517. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/src/discovery.rs +184 -0
  518. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/src/health.rs +67 -0
  519. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/src/lib.rs +226 -0
  520. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/src/main.rs +6 -0
  521. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/src/notifications.rs +180 -0
  522. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/src/server.rs +306 -0
  523. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/tauri.conf.json +60 -0
  524. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/native/macos/src-tauri/volume-icon.icns +0 -0
  525. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/package.json +54 -0
  526. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/pkg.config.json +14 -0
  527. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/build-standalone.sh +106 -0
  528. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/cleanup.js +251 -0
  529. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/install-openclaw.js +986 -0
  530. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/install-skills.js +234 -0
  531. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/postinstall.js +224 -0
  532. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/preuninstall.js +68 -0
  533. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/run-e2e.sh +44 -0
  534. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/smoke-test-standalone.sh +101 -0
  535. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/sync-version.sh +28 -0
  536. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/scripts/verify-app-bundle.sh +34 -0
  537. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/dashboard/public/app.js +2649 -0
  538. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/dashboard/public/index.html +386 -0
  539. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/dashboard/public/style.css +1274 -0
  540. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/index.js +76 -0
  541. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/agent-card.js +111 -0
  542. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/call-monitor.js +205 -0
  543. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/callbook.js +366 -0
  544. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/claude-subagent.js +696 -0
  545. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/client.js +683 -0
  546. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/config.js +480 -0
  547. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/conversation-driver.js +608 -0
  548. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/conversations.js +830 -0
  549. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/crypto.js +113 -0
  550. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/dashboard-events.js +213 -0
  551. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/disclosure.js +792 -0
  552. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/external-ip.js +211 -0
  553. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/invite-host.js +223 -0
  554. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/local-request.js +69 -0
  555. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/logger.js +677 -0
  556. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/openclaw-integration.js +339 -0
  557. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/pid-file.js +103 -0
  558. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/port-scanner.js +83 -0
  559. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/prompt-template.js +355 -0
  560. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/runtime-adapter.js +701 -0
  561. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/summarizer.js +156 -0
  562. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/summary-formatter.js +168 -0
  563. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/summary-prompt.js +203 -0
  564. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/tokens.js +868 -0
  565. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/turn-timeout.js +52 -0
  566. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/update-checker.js +93 -0
  567. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/lib/update-manager.js +313 -0
  568. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/routes/a2a.js +1213 -0
  569. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/routes/callbook.js +142 -0
  570. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/routes/dashboard.js +1578 -0
  571. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-a1418bc4/src/server.js +1179 -0
  572. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.a2a-manifest.json +70 -0
  573. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.c8rc.json +16 -0
  574. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/a2a-skill-reference.md +462 -0
  575. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-app.md +42 -0
  576. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-call.md +26 -0
  577. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-contacts.md +31 -0
  578. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-conversations.md +47 -0
  579. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-gui.md +30 -0
  580. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-invite.md +63 -0
  581. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-setup.md +30 -0
  582. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-skills.md +27 -0
  583. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-status.md +46 -0
  584. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-uninstall.md +36 -0
  585. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.claude/commands/a2a-update.md +41 -0
  586. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/.node-version +1 -0
  587. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/ARCHITECTURE.md +135 -0
  588. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/CLAUDE-INSTALL.md +156 -0
  589. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/CONVENTIONS.md +169 -0
  590. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/README.md +470 -0
  591. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/SKILL.md +462 -0
  592. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/bin/cli.js +3184 -0
  593. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/biome.json +27 -0
  594. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/app.js +160 -0
  595. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  596. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/assets/icon-32.png +0 -0
  597. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/assets/icon-64.png +0 -0
  598. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/index.html +166 -0
  599. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  600. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  601. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-02-16-auto-updater.md +1284 -0
  602. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  603. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  604. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  605. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  606. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  607. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  608. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/prompts/e2e-test-agent.md +368 -0
  609. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/protocol.md +440 -0
  610. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/signing-setup.md +49 -0
  611. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/docs/style.css +457 -0
  612. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/eslint.config.js +16 -0
  613. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/knip.json +17 -0
  614. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/index.html +179 -0
  615. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/package.json +8 -0
  616. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/Cargo.lock +5875 -0
  617. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/Cargo.toml +24 -0
  618. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/binaries/.gitkeep +0 -0
  619. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/build.rs +3 -0
  620. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/capabilities/default.json +26 -0
  621. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/entitlements.plist +14 -0
  622. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/icons/128x128.png +0 -0
  623. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  624. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/icons/32x32.png +0 -0
  625. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/icons/icon.icns +0 -0
  626. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/icons/tray-connected.png +0 -0
  627. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  628. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/src/discovery.rs +184 -0
  629. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/src/health.rs +67 -0
  630. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/src/lib.rs +226 -0
  631. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/src/main.rs +6 -0
  632. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/src/notifications.rs +180 -0
  633. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/src/server.rs +306 -0
  634. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/native/macos/src-tauri/tauri.conf.json +50 -0
  635. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/package.json +54 -0
  636. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/pkg.config.json +14 -0
  637. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/build-standalone.sh +106 -0
  638. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/cleanup.js +251 -0
  639. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/install-openclaw.js +986 -0
  640. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/install-skills.js +234 -0
  641. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/postinstall.js +224 -0
  642. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/preuninstall.js +68 -0
  643. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/run-e2e.sh +44 -0
  644. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/smoke-test-standalone.sh +101 -0
  645. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/sync-version.sh +28 -0
  646. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/scripts/verify-app-bundle.sh +34 -0
  647. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/dashboard/public/app.js +2649 -0
  648. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/dashboard/public/index.html +386 -0
  649. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/dashboard/public/style.css +1274 -0
  650. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/index.js +76 -0
  651. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/agent-card.js +111 -0
  652. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/call-monitor.js +205 -0
  653. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/callbook.js +366 -0
  654. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/claude-subagent.js +696 -0
  655. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/client.js +683 -0
  656. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/config.js +480 -0
  657. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/conversation-driver.js +608 -0
  658. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/conversations.js +830 -0
  659. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/crypto.js +113 -0
  660. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/dashboard-events.js +213 -0
  661. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/disclosure.js +792 -0
  662. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/external-ip.js +211 -0
  663. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/invite-host.js +223 -0
  664. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/local-request.js +69 -0
  665. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/logger.js +677 -0
  666. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/openclaw-integration.js +339 -0
  667. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/pid-file.js +103 -0
  668. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/port-scanner.js +83 -0
  669. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/prompt-template.js +355 -0
  670. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/runtime-adapter.js +701 -0
  671. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/summarizer.js +156 -0
  672. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/summary-formatter.js +168 -0
  673. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/summary-prompt.js +203 -0
  674. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/tokens.js +868 -0
  675. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/turn-timeout.js +52 -0
  676. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/update-checker.js +93 -0
  677. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/lib/update-manager.js +313 -0
  678. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/routes/a2a.js +1213 -0
  679. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/routes/callbook.js +142 -0
  680. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/routes/dashboard.js +1578 -0
  681. package/.claude/worktrees/agent-acefedbd/.claude/worktrees/agent-aa4cd927/src/server.js +1179 -0
  682. package/.claude/worktrees/agent-acefedbd/.node-version +1 -0
  683. package/.claude/worktrees/agent-acefedbd/ARCHITECTURE.md +135 -0
  684. package/.claude/worktrees/agent-acefedbd/CLAUDE-INSTALL.md +156 -0
  685. package/.claude/worktrees/agent-acefedbd/CONVENTIONS.md +177 -0
  686. package/.claude/worktrees/agent-acefedbd/README.md +470 -0
  687. package/.claude/worktrees/agent-acefedbd/SKILL.md +462 -0
  688. package/.claude/worktrees/agent-acefedbd/bin/cli.js +3184 -0
  689. package/.claude/worktrees/agent-acefedbd/biome.json +27 -0
  690. package/.claude/worktrees/agent-acefedbd/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  691. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  692. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  693. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-02-16-auto-updater.md +1284 -0
  694. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  695. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  696. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  697. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  698. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  699. package/.claude/worktrees/agent-acefedbd/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  700. package/.claude/worktrees/agent-acefedbd/docs/prompts/e2e-test-agent.md +368 -0
  701. package/.claude/worktrees/agent-acefedbd/docs/protocol.md +440 -0
  702. package/.claude/worktrees/agent-acefedbd/docs/signing-setup.md +49 -0
  703. package/.claude/worktrees/agent-acefedbd/eslint.config.js +16 -0
  704. package/.claude/worktrees/agent-acefedbd/knip.json +17 -0
  705. package/.claude/worktrees/agent-acefedbd/native/macos/index.html +182 -0
  706. package/.claude/worktrees/agent-acefedbd/native/macos/package.json +8 -0
  707. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/Cargo.lock +5875 -0
  708. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/Cargo.toml +24 -0
  709. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/binaries/.gitkeep +0 -0
  710. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/build.rs +3 -0
  711. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/capabilities/default.json +26 -0
  712. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/entitlements.plist +14 -0
  713. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/icons/128x128.png +0 -0
  714. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  715. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/icons/32x32.png +0 -0
  716. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/icons/icon.icns +0 -0
  717. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/icons/tray-connected.png +0 -0
  718. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  719. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/src/discovery.rs +221 -0
  720. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/src/health.rs +67 -0
  721. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/src/lib.rs +226 -0
  722. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/src/main.rs +6 -0
  723. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/src/notifications.rs +180 -0
  724. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/src/server.rs +306 -0
  725. package/.claude/worktrees/agent-acefedbd/native/macos/src-tauri/tauri.conf.json +50 -0
  726. package/.claude/worktrees/agent-acefedbd/package.json +54 -0
  727. package/.claude/worktrees/agent-acefedbd/pkg.config.json +14 -0
  728. package/.claude/worktrees/agent-acefedbd/scripts/build-standalone.sh +106 -0
  729. package/.claude/worktrees/agent-acefedbd/scripts/cleanup.js +251 -0
  730. package/.claude/worktrees/agent-acefedbd/scripts/install-openclaw.js +986 -0
  731. package/.claude/worktrees/agent-acefedbd/scripts/install-skills.js +234 -0
  732. package/.claude/worktrees/agent-acefedbd/scripts/postinstall.js +224 -0
  733. package/.claude/worktrees/agent-acefedbd/scripts/preuninstall.js +68 -0
  734. package/.claude/worktrees/agent-acefedbd/scripts/run-e2e.sh +44 -0
  735. package/.claude/worktrees/agent-acefedbd/scripts/smoke-test-standalone.sh +101 -0
  736. package/.claude/worktrees/agent-acefedbd/scripts/sync-version.sh +28 -0
  737. package/.claude/worktrees/agent-acefedbd/scripts/verify-app-bundle.sh +34 -0
  738. package/.claude/worktrees/agent-acefedbd/src/dashboard/public/app.js +2649 -0
  739. package/.claude/worktrees/agent-acefedbd/src/dashboard/public/index.html +386 -0
  740. package/.claude/worktrees/agent-acefedbd/src/dashboard/public/onboarding.css +269 -0
  741. package/.claude/worktrees/agent-acefedbd/src/dashboard/public/onboarding.html +96 -0
  742. package/.claude/worktrees/agent-acefedbd/src/dashboard/public/onboarding.js +277 -0
  743. package/.claude/worktrees/agent-acefedbd/src/dashboard/public/style.css +1274 -0
  744. package/.claude/worktrees/agent-acefedbd/src/index.js +76 -0
  745. package/.claude/worktrees/agent-acefedbd/src/lib/agent-card.js +111 -0
  746. package/.claude/worktrees/agent-acefedbd/src/lib/call-monitor.js +205 -0
  747. package/.claude/worktrees/agent-acefedbd/src/lib/callbook.js +366 -0
  748. package/.claude/worktrees/agent-acefedbd/src/lib/claude-subagent.js +696 -0
  749. package/.claude/worktrees/agent-acefedbd/src/lib/client.js +683 -0
  750. package/.claude/worktrees/agent-acefedbd/src/lib/config.js +480 -0
  751. package/.claude/worktrees/agent-acefedbd/src/lib/conversation-driver.js +608 -0
  752. package/.claude/worktrees/agent-acefedbd/src/lib/conversations.js +830 -0
  753. package/.claude/worktrees/agent-acefedbd/src/lib/crypto.js +113 -0
  754. package/.claude/worktrees/agent-acefedbd/src/lib/dashboard-events.js +213 -0
  755. package/.claude/worktrees/agent-acefedbd/src/lib/disclosure.js +792 -0
  756. package/.claude/worktrees/agent-acefedbd/src/lib/external-ip.js +211 -0
  757. package/.claude/worktrees/agent-acefedbd/src/lib/invite-host.js +223 -0
  758. package/.claude/worktrees/agent-acefedbd/src/lib/local-request.js +69 -0
  759. package/.claude/worktrees/agent-acefedbd/src/lib/logger.js +677 -0
  760. package/.claude/worktrees/agent-acefedbd/src/lib/openclaw-integration.js +339 -0
  761. package/.claude/worktrees/agent-acefedbd/src/lib/pid-file.js +103 -0
  762. package/.claude/worktrees/agent-acefedbd/src/lib/port-scanner.js +83 -0
  763. package/.claude/worktrees/agent-acefedbd/src/lib/prompt-template.js +355 -0
  764. package/.claude/worktrees/agent-acefedbd/src/lib/runtime-adapter.js +701 -0
  765. package/.claude/worktrees/agent-acefedbd/src/lib/summarizer.js +156 -0
  766. package/.claude/worktrees/agent-acefedbd/src/lib/summary-formatter.js +168 -0
  767. package/.claude/worktrees/agent-acefedbd/src/lib/summary-prompt.js +203 -0
  768. package/.claude/worktrees/agent-acefedbd/src/lib/tokens.js +868 -0
  769. package/.claude/worktrees/agent-acefedbd/src/lib/turn-timeout.js +52 -0
  770. package/.claude/worktrees/agent-acefedbd/src/lib/update-checker.js +93 -0
  771. package/.claude/worktrees/agent-acefedbd/src/lib/update-manager.js +313 -0
  772. package/.claude/worktrees/agent-acefedbd/src/routes/a2a.js +1213 -0
  773. package/.claude/worktrees/agent-acefedbd/src/routes/callbook.js +142 -0
  774. package/.claude/worktrees/agent-acefedbd/src/routes/dashboard.js +1688 -0
  775. package/.claude/worktrees/agent-acefedbd/src/server.js +1179 -0
  776. package/.claude/worktrees/agent-ad420869/.a2a-manifest.json +70 -0
  777. package/.claude/worktrees/agent-ad420869/.c8rc.json +16 -0
  778. package/.claude/worktrees/agent-ad420869/.claude/a2a-skill-reference.md +462 -0
  779. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-app.md +42 -0
  780. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-call.md +26 -0
  781. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-contacts.md +31 -0
  782. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-conversations.md +47 -0
  783. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-gui.md +30 -0
  784. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-invite.md +63 -0
  785. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-setup.md +30 -0
  786. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-skills.md +27 -0
  787. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-status.md +46 -0
  788. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-uninstall.md +36 -0
  789. package/.claude/worktrees/agent-ad420869/.claude/commands/a2a-update.md +41 -0
  790. package/.claude/worktrees/agent-ad420869/.node-version +1 -0
  791. package/.claude/worktrees/agent-ad420869/ARCHITECTURE.md +135 -0
  792. package/.claude/worktrees/agent-ad420869/CLAUDE-INSTALL.md +156 -0
  793. package/.claude/worktrees/agent-ad420869/CONVENTIONS.md +178 -0
  794. package/.claude/worktrees/agent-ad420869/README.md +470 -0
  795. package/.claude/worktrees/agent-ad420869/SKILL.md +462 -0
  796. package/.claude/worktrees/agent-ad420869/bin/cli.js +3184 -0
  797. package/.claude/worktrees/agent-ad420869/biome.json +27 -0
  798. package/.claude/worktrees/agent-ad420869/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  799. package/.claude/worktrees/agent-ad420869/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  800. package/.claude/worktrees/agent-ad420869/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  801. package/.claude/worktrees/agent-ad420869/docs/plans/2026-02-16-auto-updater.md +1284 -0
  802. package/.claude/worktrees/agent-ad420869/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  803. package/.claude/worktrees/agent-ad420869/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  804. package/.claude/worktrees/agent-ad420869/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  805. package/.claude/worktrees/agent-ad420869/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  806. package/.claude/worktrees/agent-ad420869/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  807. package/.claude/worktrees/agent-ad420869/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  808. package/.claude/worktrees/agent-ad420869/docs/prompts/e2e-test-agent.md +368 -0
  809. package/.claude/worktrees/agent-ad420869/docs/protocol.md +440 -0
  810. package/.claude/worktrees/agent-ad420869/docs/signing-setup.md +49 -0
  811. package/.claude/worktrees/agent-ad420869/eslint.config.js +16 -0
  812. package/.claude/worktrees/agent-ad420869/knip.json +17 -0
  813. package/.claude/worktrees/agent-ad420869/native/macos/index.html +182 -0
  814. package/.claude/worktrees/agent-ad420869/native/macos/package.json +8 -0
  815. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/Cargo.lock +5875 -0
  816. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/Cargo.toml +24 -0
  817. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/binaries/.gitkeep +0 -0
  818. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/build.rs +3 -0
  819. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/capabilities/default.json +26 -0
  820. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/entitlements.plist +14 -0
  821. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/icons/128x128.png +0 -0
  822. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  823. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/icons/32x32.png +0 -0
  824. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/icons/icon.icns +0 -0
  825. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/icons/tray-connected.png +0 -0
  826. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  827. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/src/discovery.rs +221 -0
  828. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/src/health.rs +67 -0
  829. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/src/lib.rs +226 -0
  830. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/src/main.rs +6 -0
  831. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/src/notifications.rs +180 -0
  832. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/src/server.rs +306 -0
  833. package/.claude/worktrees/agent-ad420869/native/macos/src-tauri/tauri.conf.json +50 -0
  834. package/.claude/worktrees/agent-ad420869/package.json +54 -0
  835. package/.claude/worktrees/agent-ad420869/pkg.config.json +14 -0
  836. package/.claude/worktrees/agent-ad420869/scripts/build-standalone.sh +106 -0
  837. package/.claude/worktrees/agent-ad420869/scripts/cleanup.js +251 -0
  838. package/.claude/worktrees/agent-ad420869/scripts/install-openclaw.js +986 -0
  839. package/.claude/worktrees/agent-ad420869/scripts/install-skills.js +234 -0
  840. package/.claude/worktrees/agent-ad420869/scripts/postinstall.js +224 -0
  841. package/.claude/worktrees/agent-ad420869/scripts/preuninstall.js +68 -0
  842. package/.claude/worktrees/agent-ad420869/scripts/run-e2e.sh +44 -0
  843. package/.claude/worktrees/agent-ad420869/scripts/smoke-test-standalone.sh +101 -0
  844. package/.claude/worktrees/agent-ad420869/scripts/sync-version.sh +28 -0
  845. package/.claude/worktrees/agent-ad420869/scripts/verify-app-bundle.sh +34 -0
  846. package/.claude/worktrees/agent-ad420869/src/dashboard/public/app.js +2683 -0
  847. package/.claude/worktrees/agent-ad420869/src/dashboard/public/index.html +394 -0
  848. package/.claude/worktrees/agent-ad420869/src/dashboard/public/onboarding.css +269 -0
  849. package/.claude/worktrees/agent-ad420869/src/dashboard/public/onboarding.html +96 -0
  850. package/.claude/worktrees/agent-ad420869/src/dashboard/public/onboarding.js +277 -0
  851. package/.claude/worktrees/agent-ad420869/src/dashboard/public/style.css +1294 -0
  852. package/.claude/worktrees/agent-ad420869/src/index.js +76 -0
  853. package/.claude/worktrees/agent-ad420869/src/lib/agent-card.js +111 -0
  854. package/.claude/worktrees/agent-ad420869/src/lib/call-monitor.js +205 -0
  855. package/.claude/worktrees/agent-ad420869/src/lib/callbook.js +366 -0
  856. package/.claude/worktrees/agent-ad420869/src/lib/claude-subagent.js +696 -0
  857. package/.claude/worktrees/agent-ad420869/src/lib/client.js +683 -0
  858. package/.claude/worktrees/agent-ad420869/src/lib/config.js +480 -0
  859. package/.claude/worktrees/agent-ad420869/src/lib/conversation-driver.js +608 -0
  860. package/.claude/worktrees/agent-ad420869/src/lib/conversations.js +830 -0
  861. package/.claude/worktrees/agent-ad420869/src/lib/crypto.js +113 -0
  862. package/.claude/worktrees/agent-ad420869/src/lib/dashboard-events.js +213 -0
  863. package/.claude/worktrees/agent-ad420869/src/lib/disclosure.js +792 -0
  864. package/.claude/worktrees/agent-ad420869/src/lib/external-ip.js +211 -0
  865. package/.claude/worktrees/agent-ad420869/src/lib/invite-host.js +223 -0
  866. package/.claude/worktrees/agent-ad420869/src/lib/local-request.js +69 -0
  867. package/.claude/worktrees/agent-ad420869/src/lib/logger.js +677 -0
  868. package/.claude/worktrees/agent-ad420869/src/lib/openclaw-integration.js +339 -0
  869. package/.claude/worktrees/agent-ad420869/src/lib/pid-file.js +103 -0
  870. package/.claude/worktrees/agent-ad420869/src/lib/port-scanner.js +83 -0
  871. package/.claude/worktrees/agent-ad420869/src/lib/prompt-template.js +355 -0
  872. package/.claude/worktrees/agent-ad420869/src/lib/runtime-adapter.js +701 -0
  873. package/.claude/worktrees/agent-ad420869/src/lib/summarizer.js +156 -0
  874. package/.claude/worktrees/agent-ad420869/src/lib/summary-formatter.js +168 -0
  875. package/.claude/worktrees/agent-ad420869/src/lib/summary-prompt.js +203 -0
  876. package/.claude/worktrees/agent-ad420869/src/lib/tokens.js +868 -0
  877. package/.claude/worktrees/agent-ad420869/src/lib/turn-timeout.js +52 -0
  878. package/.claude/worktrees/agent-ad420869/src/lib/update-checker.js +93 -0
  879. package/.claude/worktrees/agent-ad420869/src/lib/update-manager.js +313 -0
  880. package/.claude/worktrees/agent-ad420869/src/routes/a2a.js +1213 -0
  881. package/.claude/worktrees/agent-ad420869/src/routes/callbook.js +142 -0
  882. package/.claude/worktrees/agent-ad420869/src/routes/dashboard.js +1688 -0
  883. package/.claude/worktrees/agent-ad420869/src/server.js +1179 -0
  884. package/.claude/worktrees/agent-af1f3b59/.c8rc.json +16 -0
  885. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-app.md +42 -0
  886. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-call.md +26 -0
  887. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-contacts.md +31 -0
  888. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-conversations.md +47 -0
  889. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-gui.md +30 -0
  890. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-invite.md +63 -0
  891. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-setup.md +30 -0
  892. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-skills.md +27 -0
  893. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-status.md +46 -0
  894. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-uninstall.md +36 -0
  895. package/.claude/worktrees/agent-af1f3b59/.claude/commands/a2a-update.md +41 -0
  896. package/.claude/worktrees/agent-af1f3b59/.node-version +1 -0
  897. package/.claude/worktrees/agent-af1f3b59/ARCHITECTURE.md +135 -0
  898. package/.claude/worktrees/agent-af1f3b59/CLAUDE-INSTALL.md +156 -0
  899. package/.claude/worktrees/agent-af1f3b59/CONVENTIONS.md +178 -0
  900. package/.claude/worktrees/agent-af1f3b59/README.md +470 -0
  901. package/.claude/worktrees/agent-af1f3b59/SKILL.md +462 -0
  902. package/.claude/worktrees/agent-af1f3b59/bin/cli.js +3184 -0
  903. package/.claude/worktrees/agent-af1f3b59/biome.json +27 -0
  904. package/.claude/worktrees/agent-af1f3b59/docs/assessments/2026-02-27-google-a2a-protocol-assessment.md +292 -0
  905. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-02-15-port-fallback-warning-design.md +611 -0
  906. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-02-16-a2a-callbook-macos-app.md +1660 -0
  907. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-02-16-auto-updater.md +1284 -0
  908. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-02-16-bugfixes-22-24.md +246 -0
  909. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-02-16-e2e-test-prompt-sequence.md +3085 -0
  910. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-02-16-orphan-process-fix.md +962 -0
  911. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-02-17-claude-code-codex-skills.md +770 -0
  912. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-03-01-a2a-68-openclaw-integration-tests.md +676 -0
  913. package/.claude/worktrees/agent-af1f3b59/docs/plans/2026-03-01-a2a-77-invoke-security-tests.md +661 -0
  914. package/.claude/worktrees/agent-af1f3b59/docs/prompts/e2e-test-agent.md +368 -0
  915. package/.claude/worktrees/agent-af1f3b59/docs/protocol.md +440 -0
  916. package/.claude/worktrees/agent-af1f3b59/docs/signing-setup.md +49 -0
  917. package/.claude/worktrees/agent-af1f3b59/eslint.config.js +16 -0
  918. package/.claude/worktrees/agent-af1f3b59/knip.json +17 -0
  919. package/.claude/worktrees/agent-af1f3b59/native/macos/index.html +179 -0
  920. package/.claude/worktrees/agent-af1f3b59/native/macos/package.json +8 -0
  921. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/Cargo.lock +5875 -0
  922. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/Cargo.toml +24 -0
  923. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/binaries/.gitkeep +0 -0
  924. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/build.rs +3 -0
  925. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/capabilities/default.json +26 -0
  926. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/dmg-background.png +0 -0
  927. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/dmg-background@2x.png +0 -0
  928. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/entitlements.plist +14 -0
  929. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/128x128.png +0 -0
  930. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/128x128@2x.png +0 -0
  931. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/256x256.png +0 -0
  932. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/32x32.png +0 -0
  933. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/512x512.png +0 -0
  934. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/512x512@2x.png +0 -0
  935. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/icon.icns +0 -0
  936. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/tray-connected.png +0 -0
  937. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/icons/tray-disconnected.png +0 -0
  938. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/src/discovery.rs +184 -0
  939. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/src/health.rs +67 -0
  940. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/src/lib.rs +226 -0
  941. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/src/main.rs +6 -0
  942. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/src/notifications.rs +180 -0
  943. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/src/server.rs +306 -0
  944. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/tauri.conf.json +60 -0
  945. package/.claude/worktrees/agent-af1f3b59/native/macos/src-tauri/volume-icon.icns +0 -0
  946. package/.claude/worktrees/agent-af1f3b59/package.json +54 -0
  947. package/.claude/worktrees/agent-af1f3b59/pkg.config.json +14 -0
  948. package/.claude/worktrees/agent-af1f3b59/scripts/build-standalone.sh +106 -0
  949. package/.claude/worktrees/agent-af1f3b59/scripts/cleanup.js +251 -0
  950. package/.claude/worktrees/agent-af1f3b59/scripts/install-openclaw.js +986 -0
  951. package/.claude/worktrees/agent-af1f3b59/scripts/install-skills.js +234 -0
  952. package/.claude/worktrees/agent-af1f3b59/scripts/postinstall.js +224 -0
  953. package/.claude/worktrees/agent-af1f3b59/scripts/preuninstall.js +68 -0
  954. package/.claude/worktrees/agent-af1f3b59/scripts/run-e2e.sh +44 -0
  955. package/.claude/worktrees/agent-af1f3b59/scripts/smoke-test-standalone.sh +101 -0
  956. package/.claude/worktrees/agent-af1f3b59/scripts/sync-version.sh +28 -0
  957. package/.claude/worktrees/agent-af1f3b59/scripts/verify-app-bundle.sh +34 -0
  958. package/.claude/worktrees/agent-af1f3b59/src/dashboard/public/app.js +2649 -0
  959. package/.claude/worktrees/agent-af1f3b59/src/dashboard/public/index.html +386 -0
  960. package/.claude/worktrees/agent-af1f3b59/src/dashboard/public/style.css +1274 -0
  961. package/.claude/worktrees/agent-af1f3b59/src/index.js +76 -0
  962. package/.claude/worktrees/agent-af1f3b59/src/lib/agent-card.js +111 -0
  963. package/.claude/worktrees/agent-af1f3b59/src/lib/call-monitor.js +205 -0
  964. package/.claude/worktrees/agent-af1f3b59/src/lib/callbook.js +366 -0
  965. package/.claude/worktrees/agent-af1f3b59/src/lib/claude-subagent.js +696 -0
  966. package/.claude/worktrees/agent-af1f3b59/src/lib/client.js +683 -0
  967. package/.claude/worktrees/agent-af1f3b59/src/lib/config.js +480 -0
  968. package/.claude/worktrees/agent-af1f3b59/src/lib/conversation-driver.js +608 -0
  969. package/.claude/worktrees/agent-af1f3b59/src/lib/conversations.js +830 -0
  970. package/.claude/worktrees/agent-af1f3b59/src/lib/crypto.js +113 -0
  971. package/.claude/worktrees/agent-af1f3b59/src/lib/dashboard-events.js +213 -0
  972. package/.claude/worktrees/agent-af1f3b59/src/lib/disclosure.js +792 -0
  973. package/.claude/worktrees/agent-af1f3b59/src/lib/external-ip.js +211 -0
  974. package/.claude/worktrees/agent-af1f3b59/src/lib/invite-host.js +223 -0
  975. package/.claude/worktrees/agent-af1f3b59/src/lib/local-request.js +69 -0
  976. package/.claude/worktrees/agent-af1f3b59/src/lib/logger.js +677 -0
  977. package/.claude/worktrees/agent-af1f3b59/src/lib/openclaw-integration.js +339 -0
  978. package/.claude/worktrees/agent-af1f3b59/src/lib/pid-file.js +103 -0
  979. package/.claude/worktrees/agent-af1f3b59/src/lib/port-scanner.js +83 -0
  980. package/.claude/worktrees/agent-af1f3b59/src/lib/prompt-template.js +355 -0
  981. package/.claude/worktrees/agent-af1f3b59/src/lib/runtime-adapter.js +701 -0
  982. package/.claude/worktrees/agent-af1f3b59/src/lib/summarizer.js +156 -0
  983. package/.claude/worktrees/agent-af1f3b59/src/lib/summary-formatter.js +168 -0
  984. package/.claude/worktrees/agent-af1f3b59/src/lib/summary-prompt.js +203 -0
  985. package/.claude/worktrees/agent-af1f3b59/src/lib/tokens.js +868 -0
  986. package/.claude/worktrees/agent-af1f3b59/src/lib/turn-timeout.js +52 -0
  987. package/.claude/worktrees/agent-af1f3b59/src/lib/update-checker.js +93 -0
  988. package/.claude/worktrees/agent-af1f3b59/src/lib/update-manager.js +313 -0
  989. package/.claude/worktrees/agent-af1f3b59/src/routes/a2a.js +1213 -0
  990. package/.claude/worktrees/agent-af1f3b59/src/routes/callbook.js +142 -0
  991. package/.claude/worktrees/agent-af1f3b59/src/routes/dashboard.js +1578 -0
  992. package/.claude/worktrees/agent-af1f3b59/src/server.js +1179 -0
  993. package/CONVENTIONS.md +39 -0
  994. package/docs/app.js +30 -0
  995. package/docs/assets/icon-32.png +0 -0
  996. package/docs/assets/icon-64.png +0 -0
  997. package/docs/index.html +117 -0
  998. package/docs/plans/2026-03-06-a2a-100-tauri-auto-updater.md +519 -0
  999. package/docs/plans/2026-03-06-a2a-101-dmg-installer-polish.md +229 -0
  1000. package/docs/plans/2026-03-06-a2a-102-landing-page.md +611 -0
  1001. package/docs/plans/2026-03-06-a2a-103-standalone-e2e-tests.md +810 -0
  1002. package/docs/plans/2026-03-06-a2a-99-native-onboarding-wizard.md +1261 -0
  1003. package/docs/style.css +209 -0
  1004. package/native/macos/index.html +7 -4
  1005. package/native/macos/src-tauri/Cargo.toml +1 -0
  1006. package/native/macos/src-tauri/dmg-background.png +0 -0
  1007. package/native/macos/src-tauri/dmg-background@2x.png +0 -0
  1008. package/native/macos/src-tauri/icons/256x256.png +0 -0
  1009. package/native/macos/src-tauri/icons/512x512.png +0 -0
  1010. package/native/macos/src-tauri/icons/512x512@2x.png +0 -0
  1011. package/native/macos/src-tauri/src/discovery.rs +37 -0
  1012. package/native/macos/src-tauri/src/lib.rs +32 -2
  1013. package/native/macos/src-tauri/src/updater.rs +124 -0
  1014. package/native/macos/src-tauri/tauri.conf.json +21 -3
  1015. package/native/macos/src-tauri/volume-icon.icns +0 -0
  1016. package/package.json +2 -1
  1017. package/scripts/generate-update-manifest.sh +42 -0
  1018. package/scripts/run-e2e.sh +8 -0
  1019. package/src/dashboard/public/app.js +34 -0
  1020. package/src/dashboard/public/index.html +7 -0
  1021. package/src/dashboard/public/onboarding.css +269 -0
  1022. package/src/dashboard/public/onboarding.html +96 -0
  1023. package/src/dashboard/public/onboarding.js +277 -0
  1024. package/src/dashboard/public/style.css +20 -0
  1025. package/src/routes/dashboard.js +110 -0
@@ -0,0 +1,683 @@
1
+ /**
2
+ * A2A Client - Make calls to remote agents
3
+ */
4
+
5
+ const https = require('https');
6
+ const http = require('http');
7
+ const { signRequest } = require('./crypto');
8
+ // A2A-54: structured logging for retry warnings and size-cap violations
9
+ const { createLogger } = require('./logger');
10
+
11
+ const logger = createLogger({ component: 'a2a.client' });
12
+
13
+ // A2A-54: response size cap prevents OOM from unbounded accumulation
14
+ const MAX_RESPONSE_BYTES = 2 * 1024 * 1024;
15
+
16
+ // A2A-54: only transient network errors are retryable — HTTP 4xx/5xx are not
17
+ const RETRYABLE_CODES = ['ECONNRESET', 'ECONNREFUSED', 'EPIPE', 'ENOTFOUND', 'EAI_AGAIN'];
18
+
19
+ // A2A-54: exponential backoff — first retry is immediate, then 1s, then 2s
20
+ const RETRY_DELAYS = [0, 1000, 2000];
21
+
22
+ // A2A-80: Agent Card cache — module-level Map with TTL and prune-on-access
23
+ // Each entry: { card: object|null, cachedAt: number }
24
+ // null card = negative cache (failed fetch)
25
+ const _agentCardCache = new Map();
26
+
27
+ function _readPositiveIntEnv(name, defaultVal) {
28
+ const raw = process.env[name];
29
+ if (!raw) return defaultVal;
30
+ const n = Number.parseInt(raw, 10);
31
+ return Number.isFinite(n) && n > 0 ? n : defaultVal;
32
+ }
33
+
34
+ const AGENT_CARD_TTL_MS = _readPositiveIntEnv('A2A_AGENT_CARD_TTL_MS', 300000);
35
+ const AGENT_CARD_MAX_ENTRIES = _readPositiveIntEnv('A2A_AGENT_CARD_MAX_ENTRIES', 200);
36
+ const AGENT_CARD_FETCH_TIMEOUT_MS = 3000;
37
+
38
+ // A2A-80: Prune-on-access eviction (pattern from A2A-69, NOT imported)
39
+ function _pruneAgentCardCache() {
40
+ const now = Date.now();
41
+ for (const [key, entry] of _agentCardCache.entries()) {
42
+ if (now - entry.cachedAt > AGENT_CARD_TTL_MS) {
43
+ _agentCardCache.delete(key);
44
+ }
45
+ }
46
+
47
+ if (_agentCardCache.size <= AGENT_CARD_MAX_ENTRIES) {
48
+ return;
49
+ }
50
+
51
+ const oldest = Array.from(_agentCardCache.entries())
52
+ .sort((a, b) => a[1].cachedAt - b[1].cachedAt);
53
+ const toDelete = _agentCardCache.size - AGENT_CARD_MAX_ENTRIES;
54
+ for (let i = 0; i < toDelete; i++) {
55
+ _agentCardCache.delete(oldest[i][0]);
56
+ }
57
+ }
58
+
59
+ // A2A-80: Cache key is always hostname:port
60
+ function _agentCardCacheKey(host) {
61
+ const parsed = splitHostPort(host);
62
+ const hostname = parsed.hostname;
63
+ const port = Number.isFinite(parsed.port) ? parsed.port : 80;
64
+ return `${hostname}:${port}`;
65
+ }
66
+
67
+ // A2A-80: Validate Agent Card — needs non-empty interfaces[] with { type: 'rest' }
68
+ function _parseAgentCard(json) {
69
+ if (!json || typeof json !== 'object') return null;
70
+ if (!Array.isArray(json.interfaces) || json.interfaces.length === 0) return null;
71
+
72
+ const restInterface = json.interfaces.find(
73
+ iface => iface && iface.type === 'rest'
74
+ );
75
+ if (!restInterface) return null;
76
+
77
+ return json;
78
+ }
79
+
80
+ // A2A-80: Fetch Agent Card (GET /.well-known/a2a-agent-card, 3s timeout, cached with TTL).
81
+ // TODO: Concurrent call() to same uncached host may duplicate Agent Card fetches.
82
+ function fetchRemoteAgentCard(host) {
83
+ _pruneAgentCardCache();
84
+
85
+ const cacheKey = _agentCardCacheKey(host);
86
+ const cached = _agentCardCache.get(cacheKey);
87
+ if (cached) {
88
+ return Promise.resolve(cached.card);
89
+ }
90
+
91
+ const { protocol, hostname, port } = resolveProtocolAndPort(host);
92
+
93
+ return new Promise((resolve) => {
94
+ const req = protocol.request({
95
+ hostname,
96
+ port,
97
+ path: '/.well-known/a2a-agent-card',
98
+ method: 'GET',
99
+ timeout: AGENT_CARD_FETCH_TIMEOUT_MS
100
+ }, (res) => {
101
+ let data = '';
102
+ let bytes = 0;
103
+ res.on('data', (chunk) => {
104
+ bytes += chunk.length;
105
+ if (bytes > MAX_RESPONSE_BYTES) {
106
+ res.destroy();
107
+ _agentCardCache.set(cacheKey, { card: null, cachedAt: Date.now() });
108
+ resolve(null);
109
+ return;
110
+ }
111
+ data += chunk;
112
+ });
113
+ res.on('end', () => {
114
+ if (res.statusCode !== 200) {
115
+ _agentCardCache.set(cacheKey, { card: null, cachedAt: Date.now() });
116
+ resolve(null);
117
+ return;
118
+ }
119
+ try {
120
+ const json = JSON.parse(data);
121
+ const card = _parseAgentCard(json);
122
+ _agentCardCache.set(cacheKey, { card, cachedAt: Date.now() });
123
+ resolve(card);
124
+ } catch {
125
+ _agentCardCache.set(cacheKey, { card: null, cachedAt: Date.now() });
126
+ resolve(null);
127
+ }
128
+ });
129
+ });
130
+
131
+ req.on('error', () => {
132
+ _agentCardCache.set(cacheKey, { card: null, cachedAt: Date.now() });
133
+ resolve(null);
134
+ });
135
+ req.on('timeout', () => {
136
+ req.destroy();
137
+ _agentCardCache.set(cacheKey, { card: null, cachedAt: Date.now() });
138
+ resolve(null);
139
+ });
140
+ req.end();
141
+ });
142
+ }
143
+
144
+ // A2A-80: Build Google A2A message/send body (ref: a2a.js translateInternalToGoogle)
145
+ function _translateToGoogleRequest(message, conversationId, options = {}, caller = {}) {
146
+ return {
147
+ message: {
148
+ role: 'user',
149
+ parts: [{ content: { text: message } }],
150
+ ...(conversationId ? { context_id: conversationId } : {})
151
+ },
152
+ metadata: {
153
+ caller_name: String(caller.name || '').slice(0, 100),
154
+ caller_owner: String(caller.owner || '').slice(0, 100),
155
+ caller_instance: String(caller.instance || '').slice(0, 200)
156
+ },
157
+ configuration: {
158
+ timeout_seconds: options.timeoutSeconds || 60,
159
+ blocking: true
160
+ }
161
+ };
162
+ }
163
+
164
+ // A2A-80: Translate Google A2A Task response to internal format (ref: a2a.js translateGoogleToInternal)
165
+ function _translateGoogleResponse(taskResponse) {
166
+ const task = taskResponse?.task;
167
+ if (!task || !task.status) {
168
+ throw new A2AError('google_a2a_error', 'Invalid Google A2A response: missing task or status');
169
+ }
170
+
171
+ const parts = task.status.message?.parts || [];
172
+ const textParts = [];
173
+ for (const part of parts) {
174
+ if (part?.content && typeof part.content.text === 'string') {
175
+ textParts.push(part.content.text);
176
+ }
177
+ }
178
+
179
+ const response = textParts.join('\n');
180
+ const state = task.status.state;
181
+ const canContinue = state === 'input-required';
182
+
183
+ return {
184
+ response,
185
+ conversation_id: task.context_id || null,
186
+ can_continue: canContinue
187
+ };
188
+ }
189
+
190
+ // A2A-80: Resolve message:send URL from Agent Card REST interface (trailing slash stripped)
191
+ function _resolveGoogleA2AUrl(agentCard, host) {
192
+ const restInterface = agentCard.interfaces.find(
193
+ iface => iface && iface.type === 'rest'
194
+ );
195
+
196
+ if (restInterface && restInterface.url) {
197
+ const baseUrl = restInterface.url.replace(/\/+$/, '');
198
+ return `${baseUrl}/message:send`;
199
+ }
200
+
201
+ // Fallback: build from host
202
+ const { hostname, port } = splitHostPort(host);
203
+ const effectivePort = Number.isFinite(port) ? port : 80;
204
+ const isLocalhost = hostname === 'localhost' ||
205
+ hostname === '127.0.0.1' ||
206
+ hostname === '::1' ||
207
+ hostname.startsWith('127.');
208
+ const scheme = (isLocalhost || effectivePort === 80 || (Number.isFinite(port) && port !== 443))
209
+ ? 'http' : 'https';
210
+ return `${scheme}://${hostname}:${effectivePort}/message:send`;
211
+ }
212
+
213
+ // A2A-54: Retry on transient network errors only (not HTTP 4xx/5xx)
214
+ async function withRetry(fn, options = {}) {
215
+ const delays = options.delays || RETRY_DELAYS;
216
+ const maxAttempts = delays.length + 1;
217
+
218
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
219
+ try {
220
+ return await fn();
221
+ } catch (err) {
222
+ // A2A-54: only retry transient network errors and timeouts.
223
+ // HTTP 4xx/5xx errors have err.code set to the server's error code
224
+ // (e.g. 'bad_request'), so they won't match network_error or timeout.
225
+ const isRetryable = err instanceof A2AError && (
226
+ (err.code === 'network_error' && RETRYABLE_CODES.some(c => err.message.includes(c))) ||
227
+ err.code === 'timeout'
228
+ );
229
+
230
+ if (!isRetryable || attempt >= maxAttempts) {
231
+ throw err;
232
+ }
233
+
234
+ // A2A-54: log each retry at warn level for operator visibility
235
+ const delay = delays[attempt - 1];
236
+ logger.warn(`Retrying request (attempt ${attempt + 1}/${maxAttempts})`, {
237
+ event: 'retry',
238
+ data: {
239
+ error_code: err.code,
240
+ error_message: err.message,
241
+ attempt: attempt + 1,
242
+ delay_ms: delay
243
+ }
244
+ });
245
+
246
+ if (delay > 0) {
247
+ await new Promise(resolve => setTimeout(resolve, delay));
248
+ }
249
+ }
250
+ }
251
+ }
252
+
253
+ function splitHostPort(rawHost) {
254
+ const host = String(rawHost || '').trim();
255
+ if (!host) return { hostname: '', port: null };
256
+
257
+ // IPv6 in brackets: [::1]:3001
258
+ const bracketed = host.match(/^\[([^\]]+)\](?::(\d+))?$/);
259
+ if (bracketed) {
260
+ return {
261
+ hostname: bracketed[1],
262
+ port: bracketed[2] ? Number.parseInt(bracketed[2], 10) : null
263
+ };
264
+ }
265
+
266
+ // Only treat the last ":" as a port separator when there's exactly one colon.
267
+ const lastColon = host.lastIndexOf(':');
268
+ if (lastColon !== -1 && host.indexOf(':') === lastColon) {
269
+ const maybePort = host.slice(lastColon + 1);
270
+ if (/^\d+$/.test(maybePort)) {
271
+ return {
272
+ hostname: host.slice(0, lastColon),
273
+ port: Number.parseInt(maybePort, 10)
274
+ };
275
+ }
276
+ }
277
+
278
+ return { hostname: host, port: null };
279
+ }
280
+
281
+ function resolveProtocolAndPort(host) {
282
+ const parsed = splitHostPort(host);
283
+ const hostname = parsed.hostname;
284
+ const hasExplicitPort = Number.isFinite(parsed.port);
285
+ const isLocalhost = hostname === 'localhost' ||
286
+ hostname === '127.0.0.1' ||
287
+ hostname === '::1' ||
288
+ hostname.startsWith('127.');
289
+
290
+ const port = hasExplicitPort ? parsed.port : 80;
291
+ // Use HTTP for localhost or explicit non-443 ports, HTTPS otherwise.
292
+ const useHttp = isLocalhost || port === 80 || (hasExplicitPort && port !== 443);
293
+ const protocol = useHttp ? http : https;
294
+
295
+ return { protocol, hostname, port };
296
+ }
297
+
298
+ // A2A-54: Size-capped response handler — destroys socket if cap exceeded
299
+ function handleSizeCappedResponse(res, resolve, reject, onComplete) {
300
+ let data = '';
301
+ let bytes = 0;
302
+ let destroyed = false;
303
+
304
+ res.on('data', (chunk) => {
305
+ bytes += chunk.length;
306
+ if (bytes > MAX_RESPONSE_BYTES) {
307
+ if (!destroyed) {
308
+ destroyed = true;
309
+ res.destroy();
310
+ // A2A-54: reject immediately — the remote sent more data than we allow
311
+ reject(new A2AError('response_too_large', `Response exceeded ${MAX_RESPONSE_BYTES} bytes`));
312
+ }
313
+ return;
314
+ }
315
+ data += chunk;
316
+ });
317
+
318
+ res.on('end', () => {
319
+ if (destroyed) return;
320
+ onComplete(data, res.statusCode);
321
+ });
322
+ }
323
+
324
+ class A2AClient {
325
+ constructor(options = {}) {
326
+ this.timeout = options.timeout || 60000;
327
+ this.caller = options.caller || {};
328
+ // A2A-52: Ed25519 identity keys for request signing
329
+ this.privateKey = options.privateKey || null;
330
+ this.publicKey = options.publicKey || null;
331
+ // A2A-54: allow configurable retry delays for testing (fast tests use [0,0,0])
332
+ this._retryDelays = options._retryDelays || RETRY_DELAYS;
333
+ }
334
+
335
+ // A2A-52: Build signature headers if keypair available
336
+ _signHeaders(method, endpoint, body) {
337
+ if (!this.privateKey || !this.publicKey) return {};
338
+ return signRequest({
339
+ privateKey: this.privateKey,
340
+ publicKey: this.publicKey,
341
+ method,
342
+ endpoint,
343
+ body
344
+ });
345
+ }
346
+
347
+ static parseInvite(inviteUrl) {
348
+ const match = inviteUrl.match(/^a2a:\/\/([^/]+)\/(.+)$/);
349
+ if (!match) {
350
+ throw new Error(`Invalid invite URL: ${inviteUrl}`);
351
+ }
352
+ return { host: match[1], token: match[2] };
353
+ }
354
+
355
+ // A2A-80: Send message via Google A2A protocol (message/send format)
356
+ _callGoogleA2A(host, token, body, agentCard) {
357
+ const url = _resolveGoogleA2AUrl(agentCard, host);
358
+ // Parse the URL to extract components for http/https request
359
+ const parsed = new URL(url);
360
+ const proto = parsed.protocol === 'https:' ? https : http;
361
+ const path = parsed.pathname;
362
+
363
+ // A2A-52: attach signature headers when keypair available
364
+ const sigHeaders = this._signHeaders('POST', path, body);
365
+
366
+ const makeRequest = () => new Promise((resolve, reject) => {
367
+ const req = proto.request({
368
+ hostname: parsed.hostname,
369
+ port: parsed.port || (parsed.protocol === 'https:' ? 443 : 80),
370
+ path,
371
+ method: 'POST',
372
+ headers: {
373
+ 'Authorization': `Bearer ${token}`,
374
+ 'Content-Type': 'application/json',
375
+ 'Content-Length': Buffer.byteLength(body),
376
+ ...sigHeaders
377
+ },
378
+ timeout: this.timeout
379
+ }, (res) => {
380
+ handleSizeCappedResponse(res, resolve, reject, (data, statusCode) => {
381
+ try {
382
+ const json = JSON.parse(data);
383
+ if (statusCode >= 400) {
384
+ // A2A-80: map Google A2A error format to A2AError
385
+ const errObj = json.error || {};
386
+ const code = errObj.code || json.error || 'google_a2a_error';
387
+ const message = errObj.message || json.message || data;
388
+ reject(new A2AError(String(code), message, statusCode));
389
+ } else {
390
+ resolve(_translateGoogleResponse(json));
391
+ }
392
+ } catch (e) {
393
+ if (e instanceof A2AError) {
394
+ reject(e);
395
+ } else {
396
+ reject(new A2AError('parse_error', `Failed to parse Google A2A response: ${data}`, statusCode));
397
+ }
398
+ }
399
+ });
400
+ });
401
+
402
+ req.on('error', (e) => {
403
+ reject(new A2AError('network_error', e.code ? `${e.code}: ${e.message}` : e.message));
404
+ });
405
+
406
+ req.on('timeout', () => {
407
+ req.destroy();
408
+ reject(new A2AError('timeout', 'Request timed out'));
409
+ });
410
+
411
+ req.write(body);
412
+ req.end();
413
+ });
414
+
415
+ return withRetry(makeRequest, { delays: this._retryDelays });
416
+ }
417
+
418
+ // Call a remote agent — auto-detects Google A2A via Agent Card
419
+ async call(endpoint, message, options = {}) {
420
+ let host, token;
421
+
422
+ if (typeof endpoint === 'string') {
423
+ ({ host, token } = A2AClient.parseInvite(endpoint));
424
+ } else {
425
+ ({ host, token } = endpoint);
426
+ }
427
+
428
+ const { conversationId, context, timeoutSeconds } = options;
429
+
430
+ // A2A-80: check Agent Card to decide Google A2A vs proprietary format
431
+ const agentCard = await fetchRemoteAgentCard(host);
432
+
433
+ if (agentCard) {
434
+ // Google A2A format path
435
+ const googleBody = JSON.stringify(
436
+ _translateToGoogleRequest(message, conversationId, { timeoutSeconds }, this.caller)
437
+ );
438
+ return this._callGoogleA2A(host, token, googleBody, agentCard);
439
+ }
440
+
441
+ // Proprietary format path (unchanged)
442
+ const body = JSON.stringify({
443
+ message,
444
+ conversation_id: conversationId,
445
+ caller: this.caller,
446
+ context,
447
+ timeout_seconds: timeoutSeconds || 60
448
+ });
449
+
450
+ const { protocol, hostname, port } = resolveProtocolAndPort(host);
451
+ // A2A-52: attach signature headers when keypair available
452
+ const sigHeaders = this._signHeaders('POST', '/api/a2a/invoke', body);
453
+
454
+ // A2A-54: wrap with retry for transient network failures
455
+ const makeRequest = () => new Promise((resolve, reject) => {
456
+ const req = protocol.request({
457
+ hostname,
458
+ port,
459
+ path: '/api/a2a/invoke',
460
+ method: 'POST',
461
+ headers: {
462
+ 'Authorization': `Bearer ${token}`,
463
+ 'Content-Type': 'application/json',
464
+ 'Content-Length': Buffer.byteLength(body),
465
+ ...sigHeaders
466
+ },
467
+ timeout: this.timeout
468
+ }, (res) => {
469
+ // A2A-54: size-capped response accumulation
470
+ handleSizeCappedResponse(res, resolve, reject, (data, statusCode) => {
471
+ try {
472
+ const json = JSON.parse(data);
473
+ if (statusCode >= 400) {
474
+ reject(new A2AError(json.error || 'request_failed', json.message || data, statusCode));
475
+ } else {
476
+ resolve(json);
477
+ }
478
+ } catch (e) {
479
+ reject(new A2AError('parse_error', `Failed to parse response: ${data}`, statusCode));
480
+ }
481
+ });
482
+ });
483
+
484
+ req.on('error', (e) => {
485
+ reject(new A2AError('network_error', e.code ? `${e.code}: ${e.message}` : e.message));
486
+ });
487
+
488
+ req.on('timeout', () => {
489
+ req.destroy();
490
+ reject(new A2AError('timeout', 'Request timed out'));
491
+ });
492
+
493
+ req.write(body);
494
+ req.end();
495
+ });
496
+
497
+ return withRetry(makeRequest, { delays: this._retryDelays });
498
+ }
499
+
500
+ // End a remote conversation — no-op for Google A2A remotes
501
+ async end(endpoint, conversationId) {
502
+ if (!conversationId) {
503
+ throw new A2AError('missing_conversation_id', 'conversationId is required');
504
+ }
505
+
506
+ let host, token;
507
+
508
+ if (typeof endpoint === 'string') {
509
+ ({ host, token } = A2AClient.parseInvite(endpoint));
510
+ } else {
511
+ ({ host, token } = endpoint);
512
+ }
513
+
514
+ // A2A-80: Google A2A remotes don't have an end endpoint — return synthetic response
515
+ const agentCard = await fetchRemoteAgentCard(host);
516
+ if (agentCard) {
517
+ logger.info('Skipping end() for Google A2A remote', {
518
+ event: 'google_a2a_end_skipped',
519
+ data: { conversationId, host }
520
+ });
521
+ return { ended: true, summary: null };
522
+ }
523
+
524
+ // Proprietary format path (unchanged)
525
+ const body = JSON.stringify({
526
+ conversation_id: conversationId
527
+ });
528
+
529
+ const { protocol, hostname, port } = resolveProtocolAndPort(host);
530
+ // A2A-52: attach signature headers when keypair available
531
+ const sigHeaders = this._signHeaders('POST', '/api/a2a/end', body);
532
+
533
+ // A2A-54: wrap with retry for transient network failures
534
+ const makeRequest = () => new Promise((resolve, reject) => {
535
+ const req = protocol.request({
536
+ hostname,
537
+ port,
538
+ path: '/api/a2a/end',
539
+ method: 'POST',
540
+ headers: {
541
+ 'Authorization': `Bearer ${token}`,
542
+ 'Content-Type': 'application/json',
543
+ 'Content-Length': Buffer.byteLength(body),
544
+ ...sigHeaders
545
+ },
546
+ timeout: this.timeout
547
+ }, (res) => {
548
+ // A2A-54: size-capped response accumulation
549
+ handleSizeCappedResponse(res, resolve, reject, (data, statusCode) => {
550
+ try {
551
+ const json = JSON.parse(data);
552
+ if (statusCode >= 400) {
553
+ reject(new A2AError(json.error || 'request_failed', json.message || data, statusCode));
554
+ } else {
555
+ resolve(json);
556
+ }
557
+ } catch (e) {
558
+ reject(new A2AError('parse_error', `Failed to parse response: ${data}`, statusCode));
559
+ }
560
+ });
561
+ });
562
+
563
+ req.on('error', (e) => {
564
+ reject(new A2AError('network_error', e.code ? `${e.code}: ${e.message}` : e.message));
565
+ });
566
+
567
+ req.on('timeout', () => {
568
+ req.destroy();
569
+ reject(new A2AError('timeout', 'Request timed out'));
570
+ });
571
+
572
+ req.write(body);
573
+ req.end();
574
+ });
575
+
576
+ return withRetry(makeRequest, { delays: this._retryDelays });
577
+ }
578
+
579
+ async ping(endpoint) {
580
+ let host;
581
+
582
+ if (typeof endpoint === 'string') {
583
+ ({ host } = A2AClient.parseInvite(endpoint));
584
+ } else {
585
+ ({ host } = endpoint);
586
+ }
587
+
588
+ const { protocol, hostname, port } = resolveProtocolAndPort(host);
589
+
590
+ // A2A-54: no retry for ping — it's a lightweight probe, not a critical call
591
+ return new Promise((resolve, reject) => {
592
+ const req = protocol.request({
593
+ hostname,
594
+ port,
595
+ path: '/api/a2a/ping',
596
+ method: 'GET',
597
+ timeout: 5000
598
+ }, (res) => {
599
+ // A2A-54: size-capped response accumulation
600
+ handleSizeCappedResponse(res, resolve, reject, (data, statusCode) => {
601
+ try {
602
+ resolve(JSON.parse(data));
603
+ } catch {
604
+ resolve({ pong: statusCode === 200 });
605
+ }
606
+ });
607
+ });
608
+
609
+ req.on('error', () => resolve({ pong: false }));
610
+ req.on('timeout', () => {
611
+ req.destroy();
612
+ resolve({ pong: false });
613
+ });
614
+ req.end();
615
+ });
616
+ }
617
+
618
+ async status(endpoint) {
619
+ let host;
620
+
621
+ if (typeof endpoint === 'string') {
622
+ ({ host } = A2AClient.parseInvite(endpoint));
623
+ } else {
624
+ ({ host } = endpoint);
625
+ }
626
+
627
+ const { protocol, hostname, port } = resolveProtocolAndPort(host);
628
+
629
+ // A2A-54: no retry for status — read-only probe, not a stateful operation
630
+ return new Promise((resolve, reject) => {
631
+ const req = protocol.request({
632
+ hostname,
633
+ port,
634
+ path: '/api/a2a/status',
635
+ method: 'GET',
636
+ timeout: 5000
637
+ }, (res) => {
638
+ // A2A-54: size-capped response accumulation
639
+ handleSizeCappedResponse(res, resolve, reject, (data) => {
640
+ try {
641
+ resolve(JSON.parse(data));
642
+ } catch {
643
+ reject(new A2AError('parse_error', 'Invalid status response'));
644
+ }
645
+ });
646
+ });
647
+
648
+ req.on('error', (e) => reject(new A2AError('network_error', e.code ? `${e.code}: ${e.message}` : e.message)));
649
+ req.on('timeout', () => {
650
+ req.destroy();
651
+ reject(new A2AError('timeout', 'Request timed out'));
652
+ });
653
+ req.end();
654
+ });
655
+ }
656
+ }
657
+
658
+ class A2AError extends Error {
659
+ constructor(code, message, statusCode = null) {
660
+ super(message);
661
+ this.name = 'A2AError';
662
+ this.code = code;
663
+ this.statusCode = statusCode;
664
+ }
665
+ }
666
+
667
+ // A2A-54: export internals for testing (splitHostPort, resolveProtocolAndPort, constants)
668
+ // A2A-80: export Agent Card cache and helpers for testing
669
+ module.exports = {
670
+ A2AClient,
671
+ A2AError,
672
+ _splitHostPort: splitHostPort,
673
+ _resolveProtocolAndPort: resolveProtocolAndPort,
674
+ _MAX_RESPONSE_BYTES: MAX_RESPONSE_BYTES,
675
+ _RETRYABLE_CODES: RETRYABLE_CODES,
676
+ _RETRY_DELAYS: RETRY_DELAYS,
677
+ _agentCardCache,
678
+ _parseAgentCard,
679
+ _translateToGoogleRequest,
680
+ _translateGoogleResponse,
681
+ _resolveGoogleA2AUrl,
682
+ fetchRemoteAgentCard
683
+ };