macro-agent 0.0.14 → 0.0.16

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 (154) hide show
  1. package/.claude/settings.local.json +59 -0
  2. package/dist/acp/index.d.ts +1 -1
  3. package/dist/acp/index.d.ts.map +1 -1
  4. package/dist/acp/index.js.map +1 -1
  5. package/dist/acp/macro-agent.d.ts +21 -0
  6. package/dist/acp/macro-agent.d.ts.map +1 -1
  7. package/dist/acp/macro-agent.js +182 -0
  8. package/dist/acp/macro-agent.js.map +1 -1
  9. package/dist/acp/types.d.ts +31 -2
  10. package/dist/acp/types.d.ts.map +1 -1
  11. package/dist/acp/types.js.map +1 -1
  12. package/dist/agent/agent-manager.d.ts.map +1 -1
  13. package/dist/agent/agent-manager.js +10 -4
  14. package/dist/agent/agent-manager.js.map +1 -1
  15. package/dist/cli/acp.d.ts +6 -0
  16. package/dist/cli/acp.d.ts.map +1 -1
  17. package/dist/cli/acp.js +16 -2
  18. package/dist/cli/acp.js.map +1 -1
  19. package/dist/map/adapter/acp-over-map.d.ts +5 -0
  20. package/dist/map/adapter/acp-over-map.d.ts.map +1 -1
  21. package/dist/map/adapter/acp-over-map.js +47 -4
  22. package/dist/map/adapter/acp-over-map.js.map +1 -1
  23. package/dist/map/utils/address-translation.d.ts +99 -0
  24. package/dist/map/utils/address-translation.d.ts.map +1 -0
  25. package/dist/map/utils/address-translation.js +285 -0
  26. package/dist/map/utils/address-translation.js.map +1 -0
  27. package/dist/map/utils/index.d.ts +7 -0
  28. package/dist/map/utils/index.d.ts.map +1 -0
  29. package/dist/map/utils/index.js +7 -0
  30. package/dist/map/utils/index.js.map +1 -0
  31. package/dist/store/event-store.js +9 -2
  32. package/dist/store/event-store.js.map +1 -1
  33. package/dist/store/types/agents.d.ts +2 -0
  34. package/dist/store/types/agents.d.ts.map +1 -1
  35. package/package.json +4 -4
  36. package/references/acp-factory-ref/CHANGELOG.md +33 -0
  37. package/references/acp-factory-ref/LICENSE +21 -0
  38. package/references/acp-factory-ref/README.md +341 -0
  39. package/references/acp-factory-ref/package-lock.json +3102 -0
  40. package/references/acp-factory-ref/package.json +96 -0
  41. package/references/acp-factory-ref/python/CHANGELOG.md +33 -0
  42. package/references/acp-factory-ref/python/LICENSE +21 -0
  43. package/references/acp-factory-ref/python/Makefile +57 -0
  44. package/references/acp-factory-ref/python/README.md +253 -0
  45. package/references/acp-factory-ref/python/pyproject.toml +73 -0
  46. package/references/acp-factory-ref/python/tests/__init__.py +0 -0
  47. package/references/acp-factory-ref/python/tests/e2e/__init__.py +1 -0
  48. package/references/acp-factory-ref/python/tests/e2e/test_codex_e2e.py +349 -0
  49. package/references/acp-factory-ref/python/tests/e2e/test_gemini_e2e.py +165 -0
  50. package/references/acp-factory-ref/python/tests/e2e/test_opencode_e2e.py +296 -0
  51. package/references/acp-factory-ref/python/tests/test_client_handler.py +543 -0
  52. package/references/acp-factory-ref/python/tests/test_pushable.py +199 -0
  53. package/references/claude-code-acp/.github/workflows/ci.yml +45 -0
  54. package/references/claude-code-acp/.github/workflows/publish.yml +34 -0
  55. package/references/claude-code-acp/.prettierrc.json +4 -0
  56. package/references/claude-code-acp/CHANGELOG.md +249 -0
  57. package/references/claude-code-acp/LICENSE +222 -0
  58. package/references/claude-code-acp/README.md +53 -0
  59. package/references/claude-code-acp/docs/RELEASES.md +24 -0
  60. package/references/claude-code-acp/eslint.config.js +48 -0
  61. package/references/claude-code-acp/package-lock.json +4570 -0
  62. package/references/claude-code-acp/package.json +88 -0
  63. package/references/claude-code-acp/scripts/release.sh +119 -0
  64. package/references/claude-code-acp/src/acp-agent.ts +2079 -0
  65. package/references/claude-code-acp/src/index.ts +26 -0
  66. package/references/claude-code-acp/src/lib.ts +38 -0
  67. package/references/claude-code-acp/src/mcp-server.ts +911 -0
  68. package/references/claude-code-acp/src/settings.ts +522 -0
  69. package/references/claude-code-acp/src/tests/.claude/commands/quick-math.md +5 -0
  70. package/references/claude-code-acp/src/tests/.claude/commands/say-hello.md +6 -0
  71. package/references/claude-code-acp/src/tests/acp-agent-fork.test.ts +479 -0
  72. package/references/claude-code-acp/src/tests/acp-agent.test.ts +1502 -0
  73. package/references/claude-code-acp/src/tests/extract-lines.test.ts +103 -0
  74. package/references/claude-code-acp/src/tests/fork-session.test.ts +335 -0
  75. package/references/claude-code-acp/src/tests/replace-and-calculate-location.test.ts +334 -0
  76. package/references/claude-code-acp/src/tests/settings.test.ts +617 -0
  77. package/references/claude-code-acp/src/tests/skills-options.test.ts +187 -0
  78. package/references/claude-code-acp/src/tests/tools.test.ts +318 -0
  79. package/references/claude-code-acp/src/tests/typescript-declarations.test.ts +558 -0
  80. package/references/claude-code-acp/src/tools.ts +819 -0
  81. package/references/claude-code-acp/src/utils.ts +171 -0
  82. package/references/claude-code-acp/tsconfig.json +18 -0
  83. package/references/claude-code-acp/vitest.config.ts +19 -0
  84. package/references/multi-agent-protocol/.sudocode/issues.jsonl +111 -0
  85. package/references/multi-agent-protocol/.sudocode/specs.jsonl +13 -0
  86. package/references/multi-agent-protocol/LICENSE +21 -0
  87. package/references/multi-agent-protocol/README.md +113 -0
  88. package/references/multi-agent-protocol/docs/00-design-specification.md +496 -0
  89. package/references/multi-agent-protocol/docs/01-open-questions.md +1050 -0
  90. package/references/multi-agent-protocol/docs/02-wire-protocol.md +296 -0
  91. package/references/multi-agent-protocol/docs/03-streaming-semantics.md +252 -0
  92. package/references/multi-agent-protocol/docs/04-error-handling.md +231 -0
  93. package/references/multi-agent-protocol/docs/05-connection-model.md +244 -0
  94. package/references/multi-agent-protocol/docs/06-visibility-permissions.md +243 -0
  95. package/references/multi-agent-protocol/docs/07-federation.md +259 -0
  96. package/references/multi-agent-protocol/docs/08-macro-agent-migration.md +253 -0
  97. package/references/multi-agent-protocol/docs/09-authentication.md +680 -0
  98. package/references/multi-agent-protocol/docs/10-mail-protocol.md +553 -0
  99. package/references/multi-agent-protocol/docs/agent-iam-integration.md +877 -0
  100. package/references/multi-agent-protocol/docs/agentic-mesh-integration-draft.md +459 -0
  101. package/references/multi-agent-protocol/docs/git-transport-draft.md +251 -0
  102. package/references/multi-agent-protocol/docs-site/Gemfile +22 -0
  103. package/references/multi-agent-protocol/docs-site/README.md +82 -0
  104. package/references/multi-agent-protocol/docs-site/_config.yml +91 -0
  105. package/references/multi-agent-protocol/docs-site/_includes/head_custom.html +20 -0
  106. package/references/multi-agent-protocol/docs-site/_sass/color_schemes/map.scss +42 -0
  107. package/references/multi-agent-protocol/docs-site/_sass/custom/custom.scss +34 -0
  108. package/references/multi-agent-protocol/docs-site/examples/full-integration.md +510 -0
  109. package/references/multi-agent-protocol/docs-site/examples/index.md +138 -0
  110. package/references/multi-agent-protocol/docs-site/examples/simple-chat.md +282 -0
  111. package/references/multi-agent-protocol/docs-site/examples/task-queue.md +399 -0
  112. package/references/multi-agent-protocol/docs-site/getting-started/index.md +98 -0
  113. package/references/multi-agent-protocol/docs-site/getting-started/installation.md +219 -0
  114. package/references/multi-agent-protocol/docs-site/getting-started/overview.md +172 -0
  115. package/references/multi-agent-protocol/docs-site/getting-started/quickstart.md +237 -0
  116. package/references/multi-agent-protocol/docs-site/index.md +136 -0
  117. package/references/multi-agent-protocol/docs-site/protocol/authentication.md +391 -0
  118. package/references/multi-agent-protocol/docs-site/protocol/connection-model.md +376 -0
  119. package/references/multi-agent-protocol/docs-site/protocol/design.md +284 -0
  120. package/references/multi-agent-protocol/docs-site/protocol/error-handling.md +312 -0
  121. package/references/multi-agent-protocol/docs-site/protocol/federation.md +449 -0
  122. package/references/multi-agent-protocol/docs-site/protocol/index.md +129 -0
  123. package/references/multi-agent-protocol/docs-site/protocol/permissions.md +398 -0
  124. package/references/multi-agent-protocol/docs-site/protocol/streaming.md +353 -0
  125. package/references/multi-agent-protocol/docs-site/protocol/wire-protocol.md +369 -0
  126. package/references/multi-agent-protocol/docs-site/sdk/api/agent.md +357 -0
  127. package/references/multi-agent-protocol/docs-site/sdk/api/client.md +380 -0
  128. package/references/multi-agent-protocol/docs-site/sdk/api/index.md +62 -0
  129. package/references/multi-agent-protocol/docs-site/sdk/api/server.md +453 -0
  130. package/references/multi-agent-protocol/docs-site/sdk/api/types.md +468 -0
  131. package/references/multi-agent-protocol/docs-site/sdk/guides/agent.md +375 -0
  132. package/references/multi-agent-protocol/docs-site/sdk/guides/authentication.md +405 -0
  133. package/references/multi-agent-protocol/docs-site/sdk/guides/client.md +352 -0
  134. package/references/multi-agent-protocol/docs-site/sdk/guides/index.md +89 -0
  135. package/references/multi-agent-protocol/docs-site/sdk/guides/server.md +360 -0
  136. package/references/multi-agent-protocol/docs-site/sdk/guides/testing.md +446 -0
  137. package/references/multi-agent-protocol/docs-site/sdk/guides/transports.md +363 -0
  138. package/references/multi-agent-protocol/docs-site/sdk/index.md +206 -0
  139. package/references/multi-agent-protocol/package-lock.json +3886 -0
  140. package/references/multi-agent-protocol/package.json +56 -0
  141. package/references/multi-agent-protocol/schema/meta.json +467 -0
  142. package/references/multi-agent-protocol/schema/schema.json +2558 -0
  143. package/src/acp/__tests__/history.test.ts +526 -0
  144. package/src/acp/__tests__/integration.test.ts +2 -1
  145. package/src/acp/index.ts +4 -0
  146. package/src/acp/macro-agent.ts +329 -85
  147. package/src/acp/types.ts +39 -2
  148. package/src/agent/__tests__/agent-manager.test.ts +67 -1
  149. package/src/agent/agent-manager.ts +10 -4
  150. package/src/cli/__tests__/stable-instance-id.test.ts +57 -0
  151. package/src/cli/acp.ts +17 -2
  152. package/src/map/adapter/acp-over-map.ts +57 -2
  153. package/src/store/event-store.ts +10 -3
  154. package/src/store/types/agents.ts +2 -0
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "multi-agent-protocol",
3
+ "version": "0.0.4",
4
+ "description": "Multi-Agent Protocol (MAP) - A protocol for observing, coordinating, and routing messages within multi-agent AI systems",
5
+ "type": "module",
6
+ "main": "./schema/schema.json",
7
+ "exports": {
8
+ ".": "./schema/schema.json",
9
+ "./schema": "./schema/schema.json",
10
+ "./meta": "./schema/meta.json"
11
+ },
12
+ "files": [
13
+ "schema",
14
+ "docs",
15
+ "README.md"
16
+ ],
17
+ "workspaces": [
18
+ "ts-sdk"
19
+ ],
20
+ "scripts": {
21
+ "build": "npm run build --workspace=ts-sdk",
22
+ "test": "npm run test --workspace=ts-sdk",
23
+ "typecheck": "npm run typecheck --workspace=ts-sdk",
24
+ "publish:npm": "npm publish --access public",
25
+ "prepublishOnly": "npm run build",
26
+ "version:patch": "npm version patch && git push && git push --tags",
27
+ "version:minor": "npm version minor && git push && git push --tags",
28
+ "version:major": "npm version major && git push && git push --tags"
29
+ },
30
+ "keywords": [
31
+ "multi-agent",
32
+ "agent",
33
+ "protocol",
34
+ "map",
35
+ "swarm",
36
+ "messaging",
37
+ "json-schema",
38
+ "specification"
39
+ ],
40
+ "author": "Alex Ngai",
41
+ "license": "MIT",
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+https://github.com/multi-agent-protocol/multi-agent-protocol.git"
45
+ },
46
+ "bugs": {
47
+ "url": "https://github.com/multi-agent-protocol/multi-agent-protocol/issues"
48
+ },
49
+ "homepage": "https://github.com/multi-agent-protocol/multi-agent-protocol#readme",
50
+ "engines": {
51
+ "node": ">=18.0.0"
52
+ },
53
+ "publishConfig": {
54
+ "access": "public"
55
+ }
56
+ }
@@ -0,0 +1,467 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Multi-Agent Protocol Method Metadata",
4
+ "description": "Metadata for MAP protocol methods including tier, implementer, and capability requirements",
5
+ "protocolVersion": 1,
6
+ "methods": {
7
+ "map/connect": {
8
+ "tier": "core",
9
+ "implementedBy": "system",
10
+ "callableBy": ["client", "agent", "gateway"],
11
+ "capabilities": [],
12
+ "description": "Connect to the MAP system and negotiate capabilities",
13
+ "requestType": "ConnectRequest",
14
+ "responseType": "ConnectResponse"
15
+ },
16
+ "map/disconnect": {
17
+ "tier": "core",
18
+ "implementedBy": "system",
19
+ "callableBy": ["client", "agent", "gateway"],
20
+ "capabilities": [],
21
+ "description": "Gracefully disconnect from the MAP system",
22
+ "requestType": "DisconnectRequest",
23
+ "responseType": "DisconnectResponse"
24
+ },
25
+ "map/session/list": {
26
+ "tier": "core",
27
+ "implementedBy": "system",
28
+ "callableBy": ["client", "agent"],
29
+ "capabilities": [],
30
+ "description": "List participant's sessions",
31
+ "requestType": "SessionListRequest",
32
+ "responseType": "SessionListResponse"
33
+ },
34
+ "map/session/load": {
35
+ "tier": "core",
36
+ "implementedBy": "system",
37
+ "callableBy": ["client", "agent"],
38
+ "capabilities": [],
39
+ "description": "Load/reconnect to an existing session",
40
+ "requestType": "SessionLoadRequest",
41
+ "responseType": "SessionLoadResponse"
42
+ },
43
+ "map/session/close": {
44
+ "tier": "core",
45
+ "implementedBy": "system",
46
+ "callableBy": ["client", "agent"],
47
+ "capabilities": [],
48
+ "description": "Explicitly end a session",
49
+ "requestType": "SessionCloseRequest",
50
+ "responseType": "SessionCloseResponse"
51
+ },
52
+ "map/agents/list": {
53
+ "tier": "core",
54
+ "implementedBy": "system",
55
+ "callableBy": ["client", "agent", "gateway"],
56
+ "capabilities": ["observation.canQuery"],
57
+ "description": "List agents with optional filters (server-filtered by visibility)",
58
+ "requestType": "AgentsListRequest",
59
+ "responseType": "AgentsListResponse"
60
+ },
61
+ "map/agents/get": {
62
+ "tier": "core",
63
+ "implementedBy": "system",
64
+ "callableBy": ["client", "agent", "gateway"],
65
+ "capabilities": ["observation.canQuery"],
66
+ "description": "Get details for a single agent",
67
+ "requestType": "AgentsGetRequest",
68
+ "responseType": "AgentsGetResponse"
69
+ },
70
+ "map/send": {
71
+ "tier": "core",
72
+ "implementedBy": "system",
73
+ "callableBy": ["client", "agent"],
74
+ "capabilities": ["messaging.canSend"],
75
+ "description": "Send a message to an address",
76
+ "requestType": "SendRequest",
77
+ "responseType": "SendResponse"
78
+ },
79
+ "map/subscribe": {
80
+ "tier": "core",
81
+ "implementedBy": "system",
82
+ "callableBy": ["client", "agent", "gateway"],
83
+ "capabilities": ["observation.canObserve"],
84
+ "description": "Subscribe to event streams",
85
+ "requestType": "SubscribeRequest",
86
+ "responseType": "SubscribeResponse"
87
+ },
88
+ "map/unsubscribe": {
89
+ "tier": "core",
90
+ "implementedBy": "system",
91
+ "callableBy": ["client", "agent", "gateway"],
92
+ "capabilities": ["observation.canObserve"],
93
+ "description": "Unsubscribe from event streams",
94
+ "requestType": "UnsubscribeRequest",
95
+ "responseType": "UnsubscribeResponse"
96
+ },
97
+ "map/auth/refresh": {
98
+ "tier": "core",
99
+ "implementedBy": "system",
100
+ "callableBy": ["client", "agent", "gateway"],
101
+ "capabilities": [],
102
+ "description": "Refresh authentication token in-band",
103
+ "requestType": "AuthRefreshRequest",
104
+ "responseType": "AuthRefreshResponse"
105
+ },
106
+ "map/agents/register": {
107
+ "tier": "structure",
108
+ "implementedBy": "system",
109
+ "callableBy": ["agent", "system"],
110
+ "capabilities": ["lifecycle.canRegister"],
111
+ "description": "Register a new agent in the system",
112
+ "requestType": "AgentsRegisterRequest",
113
+ "responseType": "AgentsRegisterResponse"
114
+ },
115
+ "map/agents/spawn": {
116
+ "tier": "structure",
117
+ "implementedBy": "system",
118
+ "callableBy": ["agent", "system"],
119
+ "capabilities": ["lifecycle.canSpawn"],
120
+ "description": "Register agent and assign initial task atomically",
121
+ "requestType": "AgentsSpawnRequest",
122
+ "responseType": "AgentsSpawnResponse"
123
+ },
124
+ "map/agents/unregister": {
125
+ "tier": "structure",
126
+ "implementedBy": "system",
127
+ "callableBy": ["agent", "system"],
128
+ "capabilities": ["lifecycle.canUnregister"],
129
+ "description": "Remove an agent from the system",
130
+ "requestType": "AgentsUnregisterRequest",
131
+ "responseType": "AgentsUnregisterResponse"
132
+ },
133
+ "map/agents/update": {
134
+ "tier": "structure",
135
+ "implementedBy": "system",
136
+ "callableBy": ["agent", "system"],
137
+ "capabilities": [],
138
+ "description": "Update agent state or metadata (agents can update themselves)",
139
+ "requestType": "AgentsUpdateRequest",
140
+ "responseType": "AgentsUpdateResponse"
141
+ },
142
+ "map/agents/stop": {
143
+ "tier": "structure",
144
+ "implementedBy": "system",
145
+ "callableBy": ["client", "agent", "system"],
146
+ "capabilities": ["lifecycle.canStop"],
147
+ "description": "Request graceful agent stop",
148
+ "requestType": "AgentsStopRequest",
149
+ "responseType": "AgentsStopResponse"
150
+ },
151
+ "map/agents/suspend": {
152
+ "tier": "structure",
153
+ "implementedBy": "system",
154
+ "callableBy": ["client", "agent", "system"],
155
+ "capabilities": ["lifecycle.canStop"],
156
+ "description": "Pause an agent",
157
+ "requestType": "AgentsSuspendRequest",
158
+ "responseType": "AgentsSuspendResponse"
159
+ },
160
+ "map/agents/resume": {
161
+ "tier": "structure",
162
+ "implementedBy": "system",
163
+ "callableBy": ["client", "agent", "system"],
164
+ "capabilities": ["lifecycle.canStop"],
165
+ "description": "Resume a suspended agent",
166
+ "requestType": "AgentsResumeRequest",
167
+ "responseType": "AgentsResumeResponse"
168
+ },
169
+ "map/structure/graph": {
170
+ "tier": "structure",
171
+ "implementedBy": "system",
172
+ "callableBy": ["client", "agent"],
173
+ "capabilities": ["observation.canQuery"],
174
+ "description": "Get the agent relationship graph",
175
+ "requestType": "StructureGraphRequest",
176
+ "responseType": "StructureGraphResponse"
177
+ },
178
+ "map/scopes/list": {
179
+ "tier": "structure",
180
+ "implementedBy": "system",
181
+ "callableBy": ["client", "agent"],
182
+ "capabilities": ["observation.canQuery"],
183
+ "description": "List all scopes",
184
+ "requestType": "ScopesListRequest",
185
+ "responseType": "ScopesListResponse"
186
+ },
187
+ "map/scopes/get": {
188
+ "tier": "structure",
189
+ "implementedBy": "system",
190
+ "callableBy": ["client", "agent"],
191
+ "capabilities": ["observation.canQuery"],
192
+ "description": "Get details for a single scope",
193
+ "requestType": "ScopesGetRequest",
194
+ "responseType": "ScopesGetResponse"
195
+ },
196
+ "map/scopes/create": {
197
+ "tier": "structure",
198
+ "implementedBy": "system",
199
+ "callableBy": ["agent", "system"],
200
+ "capabilities": ["scopes.canCreateScopes"],
201
+ "description": "Create a new scope",
202
+ "requestType": "ScopesCreateRequest",
203
+ "responseType": "ScopesCreateResponse"
204
+ },
205
+ "map/scopes/delete": {
206
+ "tier": "structure",
207
+ "implementedBy": "system",
208
+ "callableBy": ["agent", "system"],
209
+ "capabilities": ["scopes.canManageScopes"],
210
+ "description": "Delete a scope",
211
+ "requestType": "ScopesDeleteRequest",
212
+ "responseType": "ScopesDeleteResponse"
213
+ },
214
+ "map/scopes/join": {
215
+ "tier": "structure",
216
+ "implementedBy": "system",
217
+ "callableBy": ["agent", "system"],
218
+ "capabilities": [],
219
+ "description": "Add an agent to a scope",
220
+ "requestType": "ScopesJoinRequest",
221
+ "responseType": "ScopesJoinResponse"
222
+ },
223
+ "map/scopes/leave": {
224
+ "tier": "structure",
225
+ "implementedBy": "system",
226
+ "callableBy": ["agent", "system"],
227
+ "capabilities": [],
228
+ "description": "Remove an agent from a scope",
229
+ "requestType": "ScopesLeaveRequest",
230
+ "responseType": "ScopesLeaveResponse"
231
+ },
232
+ "map/scopes/members": {
233
+ "tier": "structure",
234
+ "implementedBy": "system",
235
+ "callableBy": ["client", "agent"],
236
+ "capabilities": ["observation.canQuery"],
237
+ "description": "List members of a scope",
238
+ "requestType": "ScopesMembersRequest",
239
+ "responseType": "ScopesMembersResponse"
240
+ },
241
+ "map/inject": {
242
+ "tier": "extension",
243
+ "implementedBy": "system",
244
+ "callableBy": ["client", "agent"],
245
+ "capabilities": ["lifecycle.canSteer"],
246
+ "description": "Inject context into a running agent (steering)",
247
+ "requestType": "InjectRequest",
248
+ "responseType": "InjectResponse"
249
+ },
250
+ "map/federation/connect": {
251
+ "tier": "extension",
252
+ "implementedBy": "system",
253
+ "callableBy": ["system"],
254
+ "capabilities": [],
255
+ "description": "Connect to a peer MAP system",
256
+ "requestType": "FederationConnectRequest",
257
+ "responseType": "FederationConnectResponse"
258
+ },
259
+ "map/federation/route": {
260
+ "tier": "extension",
261
+ "implementedBy": "system",
262
+ "callableBy": ["agent", "system"],
263
+ "capabilities": ["messaging.canSend"],
264
+ "description": "Route a message to a federated system",
265
+ "requestType": "FederationRouteRequest",
266
+ "responseType": "FederationRouteResponse"
267
+ },
268
+ "mail/create": {
269
+ "tier": "extension",
270
+ "implementedBy": "system",
271
+ "callableBy": ["client", "agent"],
272
+ "capabilities": ["mail.canCreate"],
273
+ "description": "Create a new conversation with optional initial participants and turn",
274
+ "requestType": "MailCreateRequest",
275
+ "responseType": "MailCreateResponse"
276
+ },
277
+ "mail/get": {
278
+ "tier": "extension",
279
+ "implementedBy": "system",
280
+ "callableBy": ["client", "agent"],
281
+ "capabilities": ["mail.canViewHistory"],
282
+ "description": "Get conversation details with optional includes (participants, threads, recent turns, stats)",
283
+ "requestType": "MailGetRequest",
284
+ "responseType": "MailGetResponse"
285
+ },
286
+ "mail/list": {
287
+ "tier": "extension",
288
+ "implementedBy": "system",
289
+ "callableBy": ["client", "agent"],
290
+ "capabilities": ["mail.canViewHistory"],
291
+ "description": "List conversations with filtering by type, status, participant, and time range",
292
+ "requestType": "MailListRequest",
293
+ "responseType": "MailListResponse"
294
+ },
295
+ "mail/close": {
296
+ "tier": "extension",
297
+ "implementedBy": "system",
298
+ "callableBy": ["client", "agent"],
299
+ "capabilities": [],
300
+ "description": "Close a conversation (must be a participant)",
301
+ "requestType": "MailCloseRequest",
302
+ "responseType": "MailCloseResponse"
303
+ },
304
+ "mail/join": {
305
+ "tier": "extension",
306
+ "implementedBy": "system",
307
+ "callableBy": ["client", "agent"],
308
+ "capabilities": ["mail.canJoin"],
309
+ "description": "Join a conversation with optional catch-up history",
310
+ "requestType": "MailJoinRequest",
311
+ "responseType": "MailJoinResponse"
312
+ },
313
+ "mail/leave": {
314
+ "tier": "extension",
315
+ "implementedBy": "system",
316
+ "callableBy": ["client", "agent"],
317
+ "capabilities": [],
318
+ "description": "Leave a conversation (must be a participant)",
319
+ "requestType": "MailLeaveRequest",
320
+ "responseType": "MailLeaveResponse"
321
+ },
322
+ "mail/invite": {
323
+ "tier": "extension",
324
+ "implementedBy": "system",
325
+ "callableBy": ["client", "agent"],
326
+ "capabilities": ["mail.canInvite"],
327
+ "description": "Invite a participant to a conversation",
328
+ "requestType": "MailInviteRequest",
329
+ "responseType": "MailInviteResponse"
330
+ },
331
+ "mail/turn": {
332
+ "tier": "extension",
333
+ "implementedBy": "system",
334
+ "callableBy": ["client", "agent"],
335
+ "capabilities": [],
336
+ "description": "Record a turn in a conversation (must be a participant)",
337
+ "requestType": "MailTurnRequest",
338
+ "responseType": "MailTurnResponse"
339
+ },
340
+ "mail/turns/list": {
341
+ "tier": "extension",
342
+ "implementedBy": "system",
343
+ "callableBy": ["client", "agent"],
344
+ "capabilities": ["mail.canViewHistory"],
345
+ "description": "List turns in a conversation with filtering and pagination",
346
+ "requestType": "MailTurnsListRequest",
347
+ "responseType": "MailTurnsListResponse"
348
+ },
349
+ "mail/thread/create": {
350
+ "tier": "extension",
351
+ "implementedBy": "system",
352
+ "callableBy": ["client", "agent"],
353
+ "capabilities": ["mail.canCreateThreads"],
354
+ "description": "Create a thread rooted at a specific turn",
355
+ "requestType": "MailThreadCreateRequest",
356
+ "responseType": "MailThreadCreateResponse"
357
+ },
358
+ "mail/thread/list": {
359
+ "tier": "extension",
360
+ "implementedBy": "system",
361
+ "callableBy": ["client", "agent"],
362
+ "capabilities": ["mail.canViewHistory"],
363
+ "description": "List threads in a conversation",
364
+ "requestType": "MailThreadListRequest",
365
+ "responseType": "MailThreadListResponse"
366
+ },
367
+ "mail/summary": {
368
+ "tier": "extension",
369
+ "implementedBy": "system",
370
+ "callableBy": ["client", "agent"],
371
+ "capabilities": ["mail.canViewHistory"],
372
+ "description": "Get or generate a summary for a conversation",
373
+ "requestType": "MailSummaryRequest",
374
+ "responseType": "MailSummaryResponse"
375
+ },
376
+ "mail/replay": {
377
+ "tier": "extension",
378
+ "implementedBy": "system",
379
+ "callableBy": ["client", "agent"],
380
+ "capabilities": ["mail.canViewHistory"],
381
+ "description": "Replay conversation turns from a specific point",
382
+ "requestType": "MailReplayRequest",
383
+ "responseType": "MailReplayResponse"
384
+ }
385
+ },
386
+ "notifications": {
387
+ "map/event": {
388
+ "tier": "core",
389
+ "direction": "system-to-participant",
390
+ "description": "System event notification (sent to subscribers)",
391
+ "paramsType": "EventNotification"
392
+ },
393
+ "map/message": {
394
+ "tier": "core",
395
+ "direction": "system-to-participant",
396
+ "description": "Message delivery notification",
397
+ "paramsType": "MessageNotification"
398
+ }
399
+ },
400
+ "errorCodes": {
401
+ "protocol": {
402
+ "-32700": "Parse error",
403
+ "-32600": "Invalid request",
404
+ "-32601": "Method not found",
405
+ "-32602": "Invalid params",
406
+ "-32603": "Internal error"
407
+ },
408
+ "auth": {
409
+ "1000": "Authentication required",
410
+ "1001": "Authentication failed",
411
+ "1002": "Token expired",
412
+ "1003": "Insufficient permissions"
413
+ },
414
+ "routing": {
415
+ "2000": "Address not found",
416
+ "2001": "Agent not found",
417
+ "2002": "Scope not found",
418
+ "2003": "Delivery failed",
419
+ "2004": "Address ambiguous"
420
+ },
421
+ "agent": {
422
+ "3000": "Agent already exists",
423
+ "3001": "Agent state invalid",
424
+ "3002": "Agent not responding",
425
+ "3003": "Agent terminated",
426
+ "3004": "Spawn failed"
427
+ },
428
+ "resource": {
429
+ "4000": "Resource exhausted",
430
+ "4001": "Rate limited",
431
+ "4002": "Quota exceeded"
432
+ },
433
+ "federation": {
434
+ "5000": "Federation unavailable",
435
+ "5001": "System not found",
436
+ "5002": "Federation auth failed",
437
+ "5003": "Route rejected"
438
+ },
439
+ "mail": {
440
+ "10000": "Conversation not found",
441
+ "10001": "Conversation closed",
442
+ "10002": "Not a participant",
443
+ "10003": "Mail permission denied",
444
+ "10004": "Participant already joined",
445
+ "10005": "Participant not found",
446
+ "10006": "Turn not found",
447
+ "10007": "Thread not found",
448
+ "10008": "Invalid content type",
449
+ "10009": "Thread nesting limit exceeded",
450
+ "10010": "Mail not enabled"
451
+ }
452
+ },
453
+ "tiers": {
454
+ "core": {
455
+ "description": "Required methods for basic MAP functionality",
456
+ "required": true
457
+ },
458
+ "structure": {
459
+ "description": "Methods for agent lifecycle and system structure management",
460
+ "required": false
461
+ },
462
+ "extension": {
463
+ "description": "Optional extension methods for advanced features",
464
+ "required": false
465
+ }
466
+ }
467
+ }