@perkos/perkos-a2a 0.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.
- package/LICENSE +21 -0
- package/README.md +620 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +236 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +36 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +287 -0
- package/dist/server.js.map +1 -0
- package/dist/types.d.ts +78 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/openclaw.plugin.json +65 -0
- package/package.json +53 -0
- package/skills/a2a/SKILL.md +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,YAAY,EAAE;QAAE,iBAAiB,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;CACnB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kCAAkC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "perkos-a2a",
|
|
3
|
+
"name": "PerkOS A2A",
|
|
4
|
+
"version": "0.3.1",
|
|
5
|
+
"description": "Agent-to-Agent (A2A) protocol communication for OpenClaw agents",
|
|
6
|
+
"author": "PerkOS",
|
|
7
|
+
"configSchema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"additionalProperties": false,
|
|
10
|
+
"properties": {
|
|
11
|
+
"agentName": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "This agent's name in the council"
|
|
14
|
+
},
|
|
15
|
+
"port": {
|
|
16
|
+
"type": "number",
|
|
17
|
+
"default": 5050,
|
|
18
|
+
"description": "Port for the A2A HTTP server (5050 default; macOS uses 5000 for AirPlay)"
|
|
19
|
+
},
|
|
20
|
+
"skills": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"id": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
},
|
|
28
|
+
"name": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"description": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"tags": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"items": {
|
|
37
|
+
"type": "string"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"description": "Skills this agent exposes via A2A"
|
|
43
|
+
},
|
|
44
|
+
"peers": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"additionalProperties": {
|
|
47
|
+
"type": "string"
|
|
48
|
+
},
|
|
49
|
+
"description": "Map of peer agent names to their A2A URLs"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"uiHints": {
|
|
54
|
+
"agentName": {
|
|
55
|
+
"label": "Agent Name",
|
|
56
|
+
"placeholder": "mimir"
|
|
57
|
+
},
|
|
58
|
+
"port": {
|
|
59
|
+
"label": "A2A Server Port"
|
|
60
|
+
},
|
|
61
|
+
"peers": {
|
|
62
|
+
"label": "Peer Agents (name \u2192 URL)"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@perkos/perkos-a2a",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "A2A Protocol communication plugin for OpenClaw \u2014 Agent-to-Agent protocol implementation",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"skills",
|
|
11
|
+
"openclaw.plugin.json"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"dev": "tsc --watch",
|
|
16
|
+
"lint": "tsc --noEmit"
|
|
17
|
+
},
|
|
18
|
+
"openclaw": {
|
|
19
|
+
"extensions": [
|
|
20
|
+
"./dist/index.js"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"openclaw",
|
|
25
|
+
"plugin",
|
|
26
|
+
"a2a",
|
|
27
|
+
"agent2agent",
|
|
28
|
+
"protocol",
|
|
29
|
+
"multi-agent",
|
|
30
|
+
"perkos"
|
|
31
|
+
],
|
|
32
|
+
"author": "PerkOS <julio.cruz@eb-ms.net>",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/PerkOS-xyz/PerkOS-A2A"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"express": "^4.21.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@sinclair/typebox": "^0.34.0",
|
|
43
|
+
"typescript": "^5.7.0",
|
|
44
|
+
"@types/express": "^5.0.0",
|
|
45
|
+
"@types/node": "^22.0.0"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"openclaw": ">=2026.3.0"
|
|
49
|
+
},
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# A2A Protocol Communication
|
|
2
|
+
|
|
3
|
+
Use this skill when you need to communicate with other agents in the council.
|
|
4
|
+
|
|
5
|
+
## Available Tools
|
|
6
|
+
|
|
7
|
+
### a2a_discover
|
|
8
|
+
Discover all peer agents, their capabilities, and online status.
|
|
9
|
+
Use this first to see who is available.
|
|
10
|
+
|
|
11
|
+
### a2a_send_task
|
|
12
|
+
Send a task to another agent. Provide the target agent name and a clear message.
|
|
13
|
+
|
|
14
|
+
Example: `a2a_send_task(target="tyr", message="Implement rate limiting on the Stack API")`
|
|
15
|
+
|
|
16
|
+
### a2a_task_status
|
|
17
|
+
Check the status of a previously sent task.
|
|
18
|
+
|
|
19
|
+
Example: `a2a_task_status(target="tyr", taskId="abc-123")`
|
|
20
|
+
|
|
21
|
+
## Agent Roles
|
|
22
|
+
|
|
23
|
+
- **mimir** — Strategy and orchestration. Assign planning and coordination tasks.
|
|
24
|
+
- **tyr** — Engineering and execution. Assign code, infra, and DevOps tasks.
|
|
25
|
+
- **bragi** — Communication and growth. Assign docs, copy, and social tasks.
|
|
26
|
+
- **idunn** — Product and design. Assign UX, design, and product tasks.
|
|
27
|
+
|
|
28
|
+
## Best Practices
|
|
29
|
+
|
|
30
|
+
1. Use `a2a_discover` to check agent availability before sending tasks
|
|
31
|
+
2. Send clear, specific tasks with acceptance criteria
|
|
32
|
+
3. Check task status with `a2a_task_status` after sending
|
|
33
|
+
4. One task per message — don't overload agents
|