human-browser 4.3.0 → 4.3.1

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 (2) hide show
  1. package/SKILL.md +26 -0
  2. package/package.json +1 -1
package/SKILL.md CHANGED
@@ -858,3 +858,29 @@ const result = await runOnCloudSync({
858
858
  });
859
859
  console.log(result.text); // throws if state is failed/canceled
860
860
  ```
861
+
862
+ ### Raw A2A (any language, no SDK)
863
+
864
+ The endpoint is plain JSON-RPC 2.0 over HTTPS at `POST /a2a`. Any A2A-aware client (LangGraph, CrewAI, Google ADK, hand-rolled `curl`) can drive it. Use `message/stream` for live SSE, or `message/send` + `tasks/get` for plain request/response.
865
+
866
+ ```bash
867
+ # Submit a task (non-streaming) — returns immediately with taskId + viewerUrl
868
+ curl -sX POST https://agent.humanbrowser.cloud/a2a \
869
+ -H "Authorization: Bearer $HUMANBROWSER_API_TOKEN" \
870
+ -H "Content-Type: application/json" \
871
+ -d '{
872
+ "jsonrpc":"2.0","id":1,"method":"message/send",
873
+ "params":{"message":{"role":"user","parts":[{"kind":"text","text":"Open ifconfig.me and report the IP"}]}}
874
+ }'
875
+ # → { "result": { "id": "task_...", "status": { "state": "submitted" }, "metadata": { "viewerUrl": "..." } } }
876
+
877
+ # Poll until terminal
878
+ curl -sX POST https://agent.humanbrowser.cloud/a2a \
879
+ -H "Authorization: Bearer $HUMANBROWSER_API_TOKEN" \
880
+ -H "Content-Type: application/json" \
881
+ -d '{"jsonrpc":"2.0","id":2,"method":"tasks/get","params":{"id":"task_..."}}'
882
+ ```
883
+
884
+ For live streaming, swap `message/send` → `message/stream` and read the response as `text/event-stream`. Each frame is a JSON-RPC notification carrying a `Task`, `TaskStatusUpdateEvent` or `TaskArtifactUpdateEvent` — exactly what `runOnCloud()` parses internally.
885
+
886
+ > **Note on multi-turn**: the A2A spec describes an `input-required` state for tasks that need follow-up input. The current cloud build runs every task to terminal in one shot — multi-turn resumption is reserved in the protocol but not yet wired up server-side. Use `tasks/cancel` and submit a fresh task if you need to redirect.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "human-browser",
3
- "version": "4.3.0",
3
+ "version": "4.3.1",
4
4
  "description": "Stealth browser for AI agents. Bypasses Cloudflare, DataDome, PerimeterX. Residential IPs from 10+ countries. iPhone 15 Pro fingerprint. Drop-in Playwright replacement — launchHuman() just works.",
5
5
  "keywords": [
6
6
  "browser-automation",