claude-code-swarm 0.0.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1176) hide show
  1. package/.claude-plugin/marketplace.json +15 -0
  2. package/.claude-plugin/plugin.json +8 -0
  3. package/CLAUDE.md +266 -0
  4. package/README.md +108 -1
  5. package/docs/design.md +1181 -0
  6. package/docs/implementation-plan.md +635 -0
  7. package/e2e/helpers/assertions.mjs +162 -0
  8. package/e2e/helpers/cleanup.mjs +48 -0
  9. package/e2e/helpers/cli.mjs +327 -0
  10. package/e2e/helpers/map-mock-server.mjs +121 -0
  11. package/e2e/helpers/workspace.mjs +72 -0
  12. package/e2e/tier1-hooks.test.mjs +176 -0
  13. package/e2e/tier2-skill.test.mjs +146 -0
  14. package/e2e/tier3-coordination.test.mjs +88 -0
  15. package/e2e/tier4-map.test.mjs +203 -0
  16. package/e2e/vitest.config.e2e.mjs +19 -0
  17. package/hooks/hooks.json +107 -0
  18. package/package.json +45 -14
  19. package/plan.md +214 -0
  20. package/references/multi-agent-protocol/.sudocode/issues.jsonl +120 -0
  21. package/references/multi-agent-protocol/.sudocode/specs.jsonl +15 -0
  22. package/references/multi-agent-protocol/LICENSE +21 -0
  23. package/references/multi-agent-protocol/README.md +113 -0
  24. package/references/multi-agent-protocol/docs/00-design-specification.md +496 -0
  25. package/references/multi-agent-protocol/docs/01-open-questions.md +1050 -0
  26. package/references/multi-agent-protocol/docs/02-wire-protocol.md +296 -0
  27. package/references/multi-agent-protocol/docs/03-streaming-semantics.md +252 -0
  28. package/references/multi-agent-protocol/docs/04-error-handling.md +231 -0
  29. package/references/multi-agent-protocol/docs/05-connection-model.md +244 -0
  30. package/references/multi-agent-protocol/docs/06-visibility-permissions.md +243 -0
  31. package/references/multi-agent-protocol/docs/07-federation.md +335 -0
  32. package/references/multi-agent-protocol/docs/08-macro-agent-migration.md +253 -0
  33. package/references/multi-agent-protocol/docs/09-authentication.md +748 -0
  34. package/references/multi-agent-protocol/docs/10-environment-awareness.md +242 -0
  35. package/references/multi-agent-protocol/docs/10-mail-protocol.md +553 -0
  36. package/references/multi-agent-protocol/docs/11-anp-inspired-improvements.md +1079 -0
  37. package/references/multi-agent-protocol/docs/11-trajectory-protocol.md +292 -0
  38. package/references/multi-agent-protocol/docs/12-anp-implementation-plan.md +641 -0
  39. package/references/multi-agent-protocol/docs/agent-iam-integration.md +877 -0
  40. package/references/multi-agent-protocol/docs/agentic-mesh-integration-draft.md +459 -0
  41. package/references/multi-agent-protocol/docs/git-transport-draft.md +251 -0
  42. package/references/multi-agent-protocol/docs-site/Gemfile +22 -0
  43. package/references/multi-agent-protocol/docs-site/README.md +82 -0
  44. package/references/multi-agent-protocol/docs-site/_config.yml +91 -0
  45. package/references/multi-agent-protocol/docs-site/_includes/head_custom.html +20 -0
  46. package/references/multi-agent-protocol/docs-site/_sass/color_schemes/map.scss +42 -0
  47. package/references/multi-agent-protocol/docs-site/_sass/custom/custom.scss +34 -0
  48. package/references/multi-agent-protocol/docs-site/examples/full-integration.md +510 -0
  49. package/references/multi-agent-protocol/docs-site/examples/index.md +138 -0
  50. package/references/multi-agent-protocol/docs-site/examples/simple-chat.md +282 -0
  51. package/references/multi-agent-protocol/docs-site/examples/task-queue.md +399 -0
  52. package/references/multi-agent-protocol/docs-site/getting-started/index.md +98 -0
  53. package/references/multi-agent-protocol/docs-site/getting-started/installation.md +219 -0
  54. package/references/multi-agent-protocol/docs-site/getting-started/overview.md +172 -0
  55. package/references/multi-agent-protocol/docs-site/getting-started/quickstart.md +237 -0
  56. package/references/multi-agent-protocol/docs-site/index.md +136 -0
  57. package/references/multi-agent-protocol/docs-site/protocol/authentication.md +391 -0
  58. package/references/multi-agent-protocol/docs-site/protocol/connection-model.md +376 -0
  59. package/references/multi-agent-protocol/docs-site/protocol/design.md +284 -0
  60. package/references/multi-agent-protocol/docs-site/protocol/error-handling.md +312 -0
  61. package/references/multi-agent-protocol/docs-site/protocol/federation.md +449 -0
  62. package/references/multi-agent-protocol/docs-site/protocol/index.md +129 -0
  63. package/references/multi-agent-protocol/docs-site/protocol/permissions.md +398 -0
  64. package/references/multi-agent-protocol/docs-site/protocol/streaming.md +353 -0
  65. package/references/multi-agent-protocol/docs-site/protocol/wire-protocol.md +369 -0
  66. package/references/multi-agent-protocol/docs-site/sdk/api/agent.md +357 -0
  67. package/references/multi-agent-protocol/docs-site/sdk/api/client.md +380 -0
  68. package/references/multi-agent-protocol/docs-site/sdk/api/index.md +62 -0
  69. package/references/multi-agent-protocol/docs-site/sdk/api/server.md +453 -0
  70. package/references/multi-agent-protocol/docs-site/sdk/api/types.md +468 -0
  71. package/references/multi-agent-protocol/docs-site/sdk/guides/agent.md +375 -0
  72. package/references/multi-agent-protocol/docs-site/sdk/guides/authentication.md +405 -0
  73. package/references/multi-agent-protocol/docs-site/sdk/guides/client.md +352 -0
  74. package/references/multi-agent-protocol/docs-site/sdk/guides/index.md +89 -0
  75. package/references/multi-agent-protocol/docs-site/sdk/guides/server.md +360 -0
  76. package/references/multi-agent-protocol/docs-site/sdk/guides/testing.md +446 -0
  77. package/references/multi-agent-protocol/docs-site/sdk/guides/transports.md +363 -0
  78. package/references/multi-agent-protocol/docs-site/sdk/index.md +206 -0
  79. package/references/multi-agent-protocol/package-lock.json +4230 -0
  80. package/references/multi-agent-protocol/package.json +56 -0
  81. package/references/multi-agent-protocol/schema/meta.json +584 -0
  82. package/references/multi-agent-protocol/schema/schema.json +3067 -0
  83. package/references/openhive/.claude/settings.json +6 -0
  84. package/references/openhive/.dockerignore +54 -0
  85. package/references/openhive/.github/workflows/docker.yml +52 -0
  86. package/references/openhive/.sudocode/issues.jsonl +24 -0
  87. package/references/openhive/.sudocode/specs.jsonl +4 -0
  88. package/references/openhive/CLAUDE.md +88 -0
  89. package/references/openhive/Dockerfile +105 -0
  90. package/references/openhive/README.md +745 -0
  91. package/references/openhive/bin/openhive.js +6 -0
  92. package/references/openhive/cloudbuild.yaml +80 -0
  93. package/references/openhive/deploy/cloud-run.sh +106 -0
  94. package/references/openhive/deploy/openhive.env.example +80 -0
  95. package/references/openhive/deploy/openhive.service +91 -0
  96. package/references/openhive/docker-compose.yml +67 -0
  97. package/references/openhive/docker-entrypoint.sh +117 -0
  98. package/references/openhive/docs/API_MIGRATION.md +176 -0
  99. package/references/openhive/docs/DEPLOYMENT.md +847 -0
  100. package/references/openhive/docs/DESIGN_v1.md +489 -0
  101. package/references/openhive/docs/DESIGN_v2.md +564 -0
  102. package/references/openhive/docs/HEADSCALE_HOSTING_SPEC.md +513 -0
  103. package/references/openhive/docs/HIVE_SYNC_DESIGN.md +2362 -0
  104. package/references/openhive/docs/HIVE_SYNC_IMPLEMENTATION_PLAN.md +1169 -0
  105. package/references/openhive/docs/HOSTING.md +601 -0
  106. package/references/openhive/docs/IMPLEMENTATION_PLAN.md +428 -0
  107. package/references/openhive/docs/LOCAL_SETUP.md +506 -0
  108. package/references/openhive/docs/MACRO_AGENT_ATLAS_EXTENSION.md +351 -0
  109. package/references/openhive/docs/MEMORY_BANK_SYNC_SPEC.md +909 -0
  110. package/references/openhive/docs/PLAN_v1.md +471 -0
  111. package/references/openhive/docs/PLAN_v2.md +623 -0
  112. package/references/openhive/docs/WEBSOCKET.md +267 -0
  113. package/references/openhive/docs/openswarm-bootstrap-token-spec.md +240 -0
  114. package/references/openhive/ecosystem.config.cjs +76 -0
  115. package/references/openhive/fly.toml +63 -0
  116. package/references/openhive/package-lock.json +17640 -0
  117. package/references/openhive/package.json +128 -0
  118. package/references/openhive/packages/openhive-types/package-lock.json +1473 -0
  119. package/references/openhive/packages/openhive-types/package.json +42 -0
  120. package/references/openhive/packages/openhive-types/src/index.ts +36 -0
  121. package/references/openhive/packages/openhive-types/src/map-coordination.ts +92 -0
  122. package/references/openhive/packages/openhive-types/src/map-session-sync.ts +50 -0
  123. package/references/openhive/packages/openhive-types/src/map-sync.ts +68 -0
  124. package/references/openhive/packages/openhive-types/tsconfig.json +15 -0
  125. package/references/openhive/packages/openhive-types/tsconfig.tsbuildinfo +1 -0
  126. package/references/openhive/packages/openhive-types/tsup.config.ts +12 -0
  127. package/references/openhive/railway.json +13 -0
  128. package/references/openhive/railway.toml +24 -0
  129. package/references/openhive/render.yaml +51 -0
  130. package/references/openhive/src/__tests__/auth.test.ts +148 -0
  131. package/references/openhive/src/__tests__/bridge/credentials.test.ts +65 -0
  132. package/references/openhive/src/__tests__/bridge/dal.test.ts +279 -0
  133. package/references/openhive/src/__tests__/bridge/inbound.test.ts +349 -0
  134. package/references/openhive/src/__tests__/bridge/manager.test.ts +419 -0
  135. package/references/openhive/src/__tests__/bridge/mentions.test.ts +83 -0
  136. package/references/openhive/src/__tests__/bridge/outbound.test.ts +209 -0
  137. package/references/openhive/src/__tests__/bridge/slack-adapter.test.ts +276 -0
  138. package/references/openhive/src/__tests__/cli.test.ts +342 -0
  139. package/references/openhive/src/__tests__/config.test.ts +205 -0
  140. package/references/openhive/src/__tests__/coordination/coordination.test.ts +1072 -0
  141. package/references/openhive/src/__tests__/coordination/cross-instance.test.ts +540 -0
  142. package/references/openhive/src/__tests__/coordination/e2e.test.ts +780 -0
  143. package/references/openhive/src/__tests__/data-dir.test.ts +332 -0
  144. package/references/openhive/src/__tests__/db.test.ts +258 -0
  145. package/references/openhive/src/__tests__/discovery.test.ts +288 -0
  146. package/references/openhive/src/__tests__/events/dal.test.ts +371 -0
  147. package/references/openhive/src/__tests__/events/dispatch.test.ts +202 -0
  148. package/references/openhive/src/__tests__/events/e2e.test.ts +528 -0
  149. package/references/openhive/src/__tests__/events/normalizers.test.ts +263 -0
  150. package/references/openhive/src/__tests__/events/router.test.ts +314 -0
  151. package/references/openhive/src/__tests__/events/routes.test.ts +407 -0
  152. package/references/openhive/src/__tests__/follows.test.ts +328 -0
  153. package/references/openhive/src/__tests__/helpers/test-dirs.ts +44 -0
  154. package/references/openhive/src/__tests__/ingest-keys.test.ts +925 -0
  155. package/references/openhive/src/__tests__/map/sync-client-content.test.ts +288 -0
  156. package/references/openhive/src/__tests__/map/sync-client.test.ts +500 -0
  157. package/references/openhive/src/__tests__/map/sync-listener.test.ts +504 -0
  158. package/references/openhive/src/__tests__/middleware/hostname-guard.test.ts +73 -0
  159. package/references/openhive/src/__tests__/migrations.test.ts +260 -0
  160. package/references/openhive/src/__tests__/opentasks/client.test.ts +497 -0
  161. package/references/openhive/src/__tests__/opentasks/discovery.test.ts +283 -0
  162. package/references/openhive/src/__tests__/opentasks/e2e.test.ts +767 -0
  163. package/references/openhive/src/__tests__/routes/agents.test.ts +417 -0
  164. package/references/openhive/src/__tests__/routes/opentasks-content.test.ts +493 -0
  165. package/references/openhive/src/__tests__/routes/resource-content.test.ts +1741 -0
  166. package/references/openhive/src/__tests__/sessions/adapters.test.ts +524 -0
  167. package/references/openhive/src/__tests__/sessions/routes.test.ts +1053 -0
  168. package/references/openhive/src/__tests__/sessions/storage.test.ts +545 -0
  169. package/references/openhive/src/__tests__/sessions/trajectory-checkpoints.test.ts +349 -0
  170. package/references/openhive/src/__tests__/sessions/trajectory-routes.test.ts +290 -0
  171. package/references/openhive/src/__tests__/swarm/config.test.ts +125 -0
  172. package/references/openhive/src/__tests__/swarm/credentials.test.ts +254 -0
  173. package/references/openhive/src/__tests__/swarm/dal.test.ts +290 -0
  174. package/references/openhive/src/__tests__/swarm/e2e.test.ts +827 -0
  175. package/references/openhive/src/__tests__/swarm/fixtures/exit-immediately.js +3 -0
  176. package/references/openhive/src/__tests__/swarm/fixtures/map-server.js +147 -0
  177. package/references/openhive/src/__tests__/swarm/fixtures/sleep-server.js +52 -0
  178. package/references/openhive/src/__tests__/swarm/local-provider.test.ts +279 -0
  179. package/references/openhive/src/__tests__/swarm/manager.test.ts +305 -0
  180. package/references/openhive/src/__tests__/swarm/routes.test.ts +396 -0
  181. package/references/openhive/src/__tests__/swarm/workspace.test.ts +257 -0
  182. package/references/openhive/src/__tests__/swarmhub/client.test.ts +324 -0
  183. package/references/openhive/src/__tests__/swarmhub/config.test.ts +213 -0
  184. package/references/openhive/src/__tests__/swarmhub/connector.test.ts +581 -0
  185. package/references/openhive/src/__tests__/swarmhub/routes.test.ts +639 -0
  186. package/references/openhive/src/__tests__/swarmhub/slack-client.test.ts +164 -0
  187. package/references/openhive/src/__tests__/swarmhub/slack-connector.test.ts +164 -0
  188. package/references/openhive/src/__tests__/swarmhub/slack-routes.test.ts +373 -0
  189. package/references/openhive/src/__tests__/swarmhub/webhook-handler.test.ts +295 -0
  190. package/references/openhive/src/__tests__/sync/resource-sync.test.ts +1418 -0
  191. package/references/openhive/src/__tests__/sync/sync.test.ts +800 -0
  192. package/references/openhive/src/api/index.ts +65 -0
  193. package/references/openhive/src/api/middleware/auth.ts +227 -0
  194. package/references/openhive/src/api/middleware/hostname-guard.ts +38 -0
  195. package/references/openhive/src/api/routes/admin.ts +366 -0
  196. package/references/openhive/src/api/routes/agents.ts +223 -0
  197. package/references/openhive/src/api/routes/auth.ts +164 -0
  198. package/references/openhive/src/api/routes/bridges.ts +384 -0
  199. package/references/openhive/src/api/routes/comments.ts +294 -0
  200. package/references/openhive/src/api/routes/coordination.ts +312 -0
  201. package/references/openhive/src/api/routes/events.ts +158 -0
  202. package/references/openhive/src/api/routes/federation.ts +367 -0
  203. package/references/openhive/src/api/routes/feed.ts +212 -0
  204. package/references/openhive/src/api/routes/hives.ts +264 -0
  205. package/references/openhive/src/api/routes/map.ts +674 -0
  206. package/references/openhive/src/api/routes/memory-banks.ts +971 -0
  207. package/references/openhive/src/api/routes/posts.ts +342 -0
  208. package/references/openhive/src/api/routes/resource-content.ts +727 -0
  209. package/references/openhive/src/api/routes/resources.ts +1013 -0
  210. package/references/openhive/src/api/routes/search.ts +45 -0
  211. package/references/openhive/src/api/routes/sessions.ts +1187 -0
  212. package/references/openhive/src/api/routes/swarm-hosting.ts +313 -0
  213. package/references/openhive/src/api/routes/sync-protocol.ts +168 -0
  214. package/references/openhive/src/api/routes/sync.ts +279 -0
  215. package/references/openhive/src/api/routes/uploads.ts +174 -0
  216. package/references/openhive/src/api/routes/webhooks.ts +603 -0
  217. package/references/openhive/src/api/schemas/agents.ts +26 -0
  218. package/references/openhive/src/api/schemas/comments.ts +22 -0
  219. package/references/openhive/src/api/schemas/hives.ts +33 -0
  220. package/references/openhive/src/api/schemas/posts.ts +37 -0
  221. package/references/openhive/src/api/schemas/sync.ts +56 -0
  222. package/references/openhive/src/auth/index.ts +2 -0
  223. package/references/openhive/src/auth/jwks.ts +58 -0
  224. package/references/openhive/src/bridge/adapters/slack.ts +306 -0
  225. package/references/openhive/src/bridge/credentials.ts +72 -0
  226. package/references/openhive/src/bridge/inbound.ts +288 -0
  227. package/references/openhive/src/bridge/index.ts +42 -0
  228. package/references/openhive/src/bridge/manager.ts +425 -0
  229. package/references/openhive/src/bridge/mentions.ts +42 -0
  230. package/references/openhive/src/bridge/outbound.ts +103 -0
  231. package/references/openhive/src/bridge/schema.ts +82 -0
  232. package/references/openhive/src/bridge/types.ts +238 -0
  233. package/references/openhive/src/cli/network.ts +480 -0
  234. package/references/openhive/src/cli.ts +620 -0
  235. package/references/openhive/src/config.ts +611 -0
  236. package/references/openhive/src/coordination/index.ts +43 -0
  237. package/references/openhive/src/coordination/listener.ts +92 -0
  238. package/references/openhive/src/coordination/schema.ts +79 -0
  239. package/references/openhive/src/coordination/service.ts +233 -0
  240. package/references/openhive/src/coordination/types.ts +177 -0
  241. package/references/openhive/src/data-dir.ts +105 -0
  242. package/references/openhive/src/db/adapters/index.ts +21 -0
  243. package/references/openhive/src/db/adapters/postgres.ts +310 -0
  244. package/references/openhive/src/db/adapters/sqlite.ts +56 -0
  245. package/references/openhive/src/db/adapters/types.ts +65 -0
  246. package/references/openhive/src/db/dal/agents.ts +430 -0
  247. package/references/openhive/src/db/dal/bridge.ts +336 -0
  248. package/references/openhive/src/db/dal/comments.ts +213 -0
  249. package/references/openhive/src/db/dal/coordination.ts +361 -0
  250. package/references/openhive/src/db/dal/events.ts +381 -0
  251. package/references/openhive/src/db/dal/follows.ts +96 -0
  252. package/references/openhive/src/db/dal/hives.ts +198 -0
  253. package/references/openhive/src/db/dal/ingest-keys.ts +176 -0
  254. package/references/openhive/src/db/dal/instances.ts +196 -0
  255. package/references/openhive/src/db/dal/invites.ts +123 -0
  256. package/references/openhive/src/db/dal/map.ts +750 -0
  257. package/references/openhive/src/db/dal/posts.ts +274 -0
  258. package/references/openhive/src/db/dal/remote-agents.ts +56 -0
  259. package/references/openhive/src/db/dal/search.ts +238 -0
  260. package/references/openhive/src/db/dal/sync-events.ts +160 -0
  261. package/references/openhive/src/db/dal/sync-groups.ts +100 -0
  262. package/references/openhive/src/db/dal/sync-peer-configs.ts +216 -0
  263. package/references/openhive/src/db/dal/sync-peers.ts +145 -0
  264. package/references/openhive/src/db/dal/syncable-resources.ts +888 -0
  265. package/references/openhive/src/db/dal/trajectory-checkpoints.ts +291 -0
  266. package/references/openhive/src/db/dal/uploads.ts +124 -0
  267. package/references/openhive/src/db/dal/votes.ts +124 -0
  268. package/references/openhive/src/db/index.ts +293 -0
  269. package/references/openhive/src/db/providers/index.ts +75 -0
  270. package/references/openhive/src/db/providers/postgres.ts +529 -0
  271. package/references/openhive/src/db/providers/sqlite.ts +1383 -0
  272. package/references/openhive/src/db/providers/turso.ts +1360 -0
  273. package/references/openhive/src/db/providers/types.ts +516 -0
  274. package/references/openhive/src/db/schema.ts +641 -0
  275. package/references/openhive/src/discovery/index.ts +403 -0
  276. package/references/openhive/src/events/dispatch.ts +106 -0
  277. package/references/openhive/src/events/index.ts +17 -0
  278. package/references/openhive/src/events/normalizers/github.ts +133 -0
  279. package/references/openhive/src/events/normalizers/index.ts +62 -0
  280. package/references/openhive/src/events/normalizers/slack.ts +50 -0
  281. package/references/openhive/src/events/router.ts +156 -0
  282. package/references/openhive/src/events/schema.ts +66 -0
  283. package/references/openhive/src/events/types.ts +130 -0
  284. package/references/openhive/src/federation/index.ts +1 -0
  285. package/references/openhive/src/federation/service.ts +776 -0
  286. package/references/openhive/src/headscale/client.ts +256 -0
  287. package/references/openhive/src/headscale/config.ts +212 -0
  288. package/references/openhive/src/headscale/index.ts +23 -0
  289. package/references/openhive/src/headscale/manager.ts +249 -0
  290. package/references/openhive/src/headscale/sync.ts +272 -0
  291. package/references/openhive/src/headscale/types.ts +231 -0
  292. package/references/openhive/src/index.ts +225 -0
  293. package/references/openhive/src/map/client-entry.ts +26 -0
  294. package/references/openhive/src/map/index.ts +76 -0
  295. package/references/openhive/src/map/schema.ts +119 -0
  296. package/references/openhive/src/map/service.ts +323 -0
  297. package/references/openhive/src/map/sync-client.ts +696 -0
  298. package/references/openhive/src/map/sync-listener.ts +409 -0
  299. package/references/openhive/src/map/types.ts +290 -0
  300. package/references/openhive/src/network/factory.ts +118 -0
  301. package/references/openhive/src/network/headscale-provider.ts +437 -0
  302. package/references/openhive/src/network/index.ts +43 -0
  303. package/references/openhive/src/network/tailscale-client.ts +289 -0
  304. package/references/openhive/src/network/tailscale-provider.ts +287 -0
  305. package/references/openhive/src/network/types.ts +178 -0
  306. package/references/openhive/src/opentasks-client/client.ts +374 -0
  307. package/references/openhive/src/opentasks-client/index.ts +7 -0
  308. package/references/openhive/src/realtime/index.ts +282 -0
  309. package/references/openhive/src/server.ts +1069 -0
  310. package/references/openhive/src/services/email.ts +177 -0
  311. package/references/openhive/src/services/sitemap.ts +135 -0
  312. package/references/openhive/src/sessions/adapters/claude.ts +466 -0
  313. package/references/openhive/src/sessions/adapters/codex.ts +265 -0
  314. package/references/openhive/src/sessions/adapters/index.ts +263 -0
  315. package/references/openhive/src/sessions/adapters/raw.ts +144 -0
  316. package/references/openhive/src/sessions/adapters/types.ts +83 -0
  317. package/references/openhive/src/sessions/index.ts +50 -0
  318. package/references/openhive/src/sessions/storage/adapters/gcs.ts +277 -0
  319. package/references/openhive/src/sessions/storage/adapters/local.ts +240 -0
  320. package/references/openhive/src/sessions/storage/adapters/s3.ts +321 -0
  321. package/references/openhive/src/sessions/storage/index.ts +231 -0
  322. package/references/openhive/src/sessions/storage/types.ts +189 -0
  323. package/references/openhive/src/sessions/types.ts +415 -0
  324. package/references/openhive/src/shared/types/index.ts +45 -0
  325. package/references/openhive/src/shared/types/map-coordination.ts +92 -0
  326. package/references/openhive/src/shared/types/map-session-sync.ts +170 -0
  327. package/references/openhive/src/shared/types/map-sync.ts +68 -0
  328. package/references/openhive/src/skill.ts +203 -0
  329. package/references/openhive/src/storage/adapters/local.ts +169 -0
  330. package/references/openhive/src/storage/adapters/s3.ts +195 -0
  331. package/references/openhive/src/storage/index.ts +64 -0
  332. package/references/openhive/src/storage/types.ts +69 -0
  333. package/references/openhive/src/swarm/credentials.ts +98 -0
  334. package/references/openhive/src/swarm/dal.ts +206 -0
  335. package/references/openhive/src/swarm/index.ts +28 -0
  336. package/references/openhive/src/swarm/manager.ts +917 -0
  337. package/references/openhive/src/swarm/providers/local.ts +338 -0
  338. package/references/openhive/src/swarm/providers/sandboxed-local.ts +478 -0
  339. package/references/openhive/src/swarm/providers/workspace.ts +52 -0
  340. package/references/openhive/src/swarm/schema.ts +43 -0
  341. package/references/openhive/src/swarm/types.ts +333 -0
  342. package/references/openhive/src/swarmhub/client.ts +279 -0
  343. package/references/openhive/src/swarmhub/connector.ts +463 -0
  344. package/references/openhive/src/swarmhub/index.ts +43 -0
  345. package/references/openhive/src/swarmhub/routes.ts +296 -0
  346. package/references/openhive/src/swarmhub/types.ts +213 -0
  347. package/references/openhive/src/swarmhub/webhook-handler.ts +126 -0
  348. package/references/openhive/src/sync/compaction.ts +193 -0
  349. package/references/openhive/src/sync/coordination-hooks.ts +154 -0
  350. package/references/openhive/src/sync/crypto.ts +79 -0
  351. package/references/openhive/src/sync/gossip.ts +136 -0
  352. package/references/openhive/src/sync/hooks.ts +202 -0
  353. package/references/openhive/src/sync/materializer-repo.ts +256 -0
  354. package/references/openhive/src/sync/materializer.ts +682 -0
  355. package/references/openhive/src/sync/middleware.ts +140 -0
  356. package/references/openhive/src/sync/peer-resolver.ts +157 -0
  357. package/references/openhive/src/sync/resource-hooks.ts +161 -0
  358. package/references/openhive/src/sync/schema.ts +158 -0
  359. package/references/openhive/src/sync/service.ts +990 -0
  360. package/references/openhive/src/sync/types.ts +369 -0
  361. package/references/openhive/src/terminal/index.ts +4 -0
  362. package/references/openhive/src/terminal/pty-manager.ts +337 -0
  363. package/references/openhive/src/terminal/resolve-tui.ts +44 -0
  364. package/references/openhive/src/terminal/terminal-ws.ts +251 -0
  365. package/references/openhive/src/types.ts +442 -0
  366. package/references/openhive/src/utils/git-remote.ts +329 -0
  367. package/references/openhive/src/web/App.tsx +77 -0
  368. package/references/openhive/src/web/__tests__/components/dashboard/RecentActivity.test.tsx +77 -0
  369. package/references/openhive/src/web/__tests__/components/dashboard/StatsOverview.test.tsx +62 -0
  370. package/references/openhive/src/web/__tests__/components/dashboard/SwarmStatusSummary.test.tsx +122 -0
  371. package/references/openhive/src/web/__tests__/components/dashboard/SyncResourcesStatus.test.tsx +104 -0
  372. package/references/openhive/src/web/__tests__/components/layout/Sidebar.test.tsx +110 -0
  373. package/references/openhive/src/web/__tests__/components/swarm/StatusBadges.test.tsx +65 -0
  374. package/references/openhive/src/web/__tests__/components/terminal/query-responses.test.ts +143 -0
  375. package/references/openhive/src/web/__tests__/components/terminal/terminal-mouse.test.ts +509 -0
  376. package/references/openhive/src/web/__tests__/hooks/useEventsApi.test.ts +378 -0
  377. package/references/openhive/src/web/__tests__/pages/Dashboard.test.tsx +57 -0
  378. package/references/openhive/src/web/__tests__/pages/Events.test.tsx +886 -0
  379. package/references/openhive/src/web/__tests__/pages/Explore.test.tsx +63 -0
  380. package/references/openhive/src/web/__tests__/routing.test.tsx +79 -0
  381. package/references/openhive/src/web/__tests__/setup.ts +37 -0
  382. package/references/openhive/src/web/__tests__/stores/dashboard.test.ts +49 -0
  383. package/references/openhive/src/web/components/common/AgentBadge.tsx +58 -0
  384. package/references/openhive/src/web/components/common/Avatar.tsx +78 -0
  385. package/references/openhive/src/web/components/common/ErrorBoundary.tsx +76 -0
  386. package/references/openhive/src/web/components/common/Highlight.tsx +79 -0
  387. package/references/openhive/src/web/components/common/ImageUpload.tsx +209 -0
  388. package/references/openhive/src/web/components/common/LoadingSpinner.tsx +37 -0
  389. package/references/openhive/src/web/components/common/Logo.tsx +21 -0
  390. package/references/openhive/src/web/components/common/Markdown.tsx +53 -0
  391. package/references/openhive/src/web/components/common/ProtectedRoute.tsx +18 -0
  392. package/references/openhive/src/web/components/common/ThemeToggle.tsx +38 -0
  393. package/references/openhive/src/web/components/common/TimeAgo.tsx +17 -0
  394. package/references/openhive/src/web/components/common/Toast.tsx +70 -0
  395. package/references/openhive/src/web/components/common/VoteButtons.tsx +100 -0
  396. package/references/openhive/src/web/components/dashboard/RecentActivity.tsx +100 -0
  397. package/references/openhive/src/web/components/dashboard/StatsOverview.tsx +40 -0
  398. package/references/openhive/src/web/components/dashboard/SwarmStatusSummary.tsx +89 -0
  399. package/references/openhive/src/web/components/dashboard/SyncResourcesStatus.tsx +81 -0
  400. package/references/openhive/src/web/components/feed/FeedControls.tsx +38 -0
  401. package/references/openhive/src/web/components/feed/NewPostsIndicator.tsx +75 -0
  402. package/references/openhive/src/web/components/feed/PostCard.tsx +129 -0
  403. package/references/openhive/src/web/components/feed/PostList.tsx +83 -0
  404. package/references/openhive/src/web/components/layout/Footer.tsx +5 -0
  405. package/references/openhive/src/web/components/layout/Layout.tsx +29 -0
  406. package/references/openhive/src/web/components/layout/Sidebar.tsx +348 -0
  407. package/references/openhive/src/web/components/post/CommentForm.tsx +59 -0
  408. package/references/openhive/src/web/components/post/CommentTree.tsx +145 -0
  409. package/references/openhive/src/web/components/resources/MemoryBrowser.tsx +208 -0
  410. package/references/openhive/src/web/components/resources/OpenTasksSummary.tsx +138 -0
  411. package/references/openhive/src/web/components/resources/SkillBrowser.tsx +284 -0
  412. package/references/openhive/src/web/components/swarm/StatusBadges.tsx +56 -0
  413. package/references/openhive/src/web/components/terminal/TerminalPanel.tsx +485 -0
  414. package/references/openhive/src/web/components/terminal/index.ts +2 -0
  415. package/references/openhive/src/web/components/terminal/query-responses.ts +70 -0
  416. package/references/openhive/src/web/components/terminal/terminal-mouse.ts +222 -0
  417. package/references/openhive/src/web/hooks/useApi.ts +740 -0
  418. package/references/openhive/src/web/hooks/useDocumentTitle.ts +49 -0
  419. package/references/openhive/src/web/hooks/useInfiniteScroll.ts +58 -0
  420. package/references/openhive/src/web/hooks/useRealtimeUpdates.ts +154 -0
  421. package/references/openhive/src/web/hooks/useWebSocket.ts +225 -0
  422. package/references/openhive/src/web/index.html +73 -0
  423. package/references/openhive/src/web/lib/api.ts +518 -0
  424. package/references/openhive/src/web/main.tsx +32 -0
  425. package/references/openhive/src/web/pages/About.tsx +131 -0
  426. package/references/openhive/src/web/pages/Agent.tsx +130 -0
  427. package/references/openhive/src/web/pages/Agents.tsx +69 -0
  428. package/references/openhive/src/web/pages/AuthCallback.tsx +75 -0
  429. package/references/openhive/src/web/pages/Dashboard.tsx +41 -0
  430. package/references/openhive/src/web/pages/Events.tsx +1025 -0
  431. package/references/openhive/src/web/pages/Explore.tsx +43 -0
  432. package/references/openhive/src/web/pages/Hive.tsx +134 -0
  433. package/references/openhive/src/web/pages/Hives.tsx +64 -0
  434. package/references/openhive/src/web/pages/Home.tsx +43 -0
  435. package/references/openhive/src/web/pages/Login.tsx +122 -0
  436. package/references/openhive/src/web/pages/Post.tsx +216 -0
  437. package/references/openhive/src/web/pages/ResourceDetail.tsx +426 -0
  438. package/references/openhive/src/web/pages/Resources.tsx +276 -0
  439. package/references/openhive/src/web/pages/Search.tsx +234 -0
  440. package/references/openhive/src/web/pages/SessionDetail.tsx +703 -0
  441. package/references/openhive/src/web/pages/Sessions.tsx +129 -0
  442. package/references/openhive/src/web/pages/Settings.tsx +826 -0
  443. package/references/openhive/src/web/pages/SwarmCraft.tsx +16 -0
  444. package/references/openhive/src/web/pages/Swarms.tsx +981 -0
  445. package/references/openhive/src/web/pages/Terminal.tsx +69 -0
  446. package/references/openhive/src/web/postcss.config.js +5 -0
  447. package/references/openhive/src/web/public/favicon.svg +11 -0
  448. package/references/openhive/src/web/public/manifest.json +21 -0
  449. package/references/openhive/src/web/stores/auth.ts +207 -0
  450. package/references/openhive/src/web/stores/dashboard.ts +23 -0
  451. package/references/openhive/src/web/stores/realtime.ts +90 -0
  452. package/references/openhive/src/web/stores/theme.ts +70 -0
  453. package/references/openhive/src/web/stores/toast.ts +63 -0
  454. package/references/openhive/src/web/styles/globals.css +503 -0
  455. package/references/openhive/src/web/sw.ts +228 -0
  456. package/references/openhive/src/web/utils/serviceWorker.ts +86 -0
  457. package/references/openhive/src/web/vite.config.ts +81 -0
  458. package/references/openhive/tsconfig.json +32 -0
  459. package/references/openhive/tsup.config.ts +17 -0
  460. package/references/openhive/vitest.config.ts +30 -0
  461. package/references/openhive/vitest.web.config.ts +20 -0
  462. package/references/opentasks/.claude/settings.json +6 -0
  463. package/references/opentasks/.claude-plugin/plugin.json +20 -0
  464. package/references/opentasks/.lintstagedrc.json +4 -0
  465. package/references/opentasks/.prettierignore +4 -0
  466. package/references/opentasks/.prettierrc.json +11 -0
  467. package/references/opentasks/.sudocode/issues.jsonl +89 -0
  468. package/references/opentasks/.sudocode/specs.jsonl +24 -0
  469. package/references/opentasks/README.md +401 -0
  470. package/references/opentasks/docs/ARCHITECTURE.md +841 -0
  471. package/references/opentasks/docs/DESIGN.md +689 -0
  472. package/references/opentasks/docs/INTERFACE.md +670 -0
  473. package/references/opentasks/docs/PERSISTENCE.md +1638 -0
  474. package/references/opentasks/docs/PROVIDERS.md +1412 -0
  475. package/references/opentasks/docs/SCHEMA.md +815 -0
  476. package/references/opentasks/docs/TESTING.md +1081 -0
  477. package/references/opentasks/eslint.config.js +58 -0
  478. package/references/opentasks/package-lock.json +4348 -0
  479. package/references/opentasks/package.json +81 -0
  480. package/references/opentasks/skills/opentasks/SKILL.md +139 -0
  481. package/references/opentasks/skills/opentasks/dependency-management.md +119 -0
  482. package/references/opentasks/skills/opentasks/feedback-and-review.md +100 -0
  483. package/references/opentasks/skills/opentasks/linking-external-data.md +103 -0
  484. package/references/opentasks/skills/opentasks/spec-to-implementation.md +98 -0
  485. package/references/opentasks/src/__tests__/cli-tools.test.ts +800 -0
  486. package/references/opentasks/src/__tests__/cli.test.ts +97 -0
  487. package/references/opentasks/src/__tests__/p1-p3-gaps.test.ts +635 -0
  488. package/references/opentasks/src/cli.ts +929 -0
  489. package/references/opentasks/src/client/__tests__/client-crud.test.ts +546 -0
  490. package/references/opentasks/src/client/__tests__/client.test.ts +658 -0
  491. package/references/opentasks/src/client/__tests__/socket-discovery.test.ts +122 -0
  492. package/references/opentasks/src/client/client.ts +560 -0
  493. package/references/opentasks/src/client/index.ts +32 -0
  494. package/references/opentasks/src/config/__tests__/defaults.test.ts +66 -0
  495. package/references/opentasks/src/config/__tests__/env.test.ts +155 -0
  496. package/references/opentasks/src/config/__tests__/index.test.ts +148 -0
  497. package/references/opentasks/src/config/__tests__/loader.test.ts +173 -0
  498. package/references/opentasks/src/config/__tests__/merge.test.ts +121 -0
  499. package/references/opentasks/src/config/__tests__/schema.test.ts +446 -0
  500. package/references/opentasks/src/config/defaults.ts +18 -0
  501. package/references/opentasks/src/config/env.ts +170 -0
  502. package/references/opentasks/src/config/errors.ts +33 -0
  503. package/references/opentasks/src/config/index.ts +63 -0
  504. package/references/opentasks/src/config/loader.ts +90 -0
  505. package/references/opentasks/src/config/merge.ts +64 -0
  506. package/references/opentasks/src/config/schema.ts +767 -0
  507. package/references/opentasks/src/core/__tests__/conditional-redirects.test.ts +116 -0
  508. package/references/opentasks/src/core/__tests__/connections.test.ts +194 -0
  509. package/references/opentasks/src/core/__tests__/hash.test.ts +161 -0
  510. package/references/opentasks/src/core/__tests__/id.test.ts +175 -0
  511. package/references/opentasks/src/core/__tests__/init.test.ts +115 -0
  512. package/references/opentasks/src/core/__tests__/location.test.ts +94 -0
  513. package/references/opentasks/src/core/__tests__/merge-driver.test.ts +300 -0
  514. package/references/opentasks/src/core/__tests__/redirects.test.ts +169 -0
  515. package/references/opentasks/src/core/__tests__/resolve-location-target.test.ts +468 -0
  516. package/references/opentasks/src/core/__tests__/uri.test.ts +228 -0
  517. package/references/opentasks/src/core/__tests__/worktree.test.ts +160 -0
  518. package/references/opentasks/src/core/conditional-redirects.ts +100 -0
  519. package/references/opentasks/src/core/connections.ts +217 -0
  520. package/references/opentasks/src/core/discover.ts +195 -0
  521. package/references/opentasks/src/core/hash.ts +74 -0
  522. package/references/opentasks/src/core/id.ts +174 -0
  523. package/references/opentasks/src/core/index.ts +108 -0
  524. package/references/opentasks/src/core/init.ts +66 -0
  525. package/references/opentasks/src/core/location.ts +139 -0
  526. package/references/opentasks/src/core/merge-driver.ts +280 -0
  527. package/references/opentasks/src/core/redirects.ts +182 -0
  528. package/references/opentasks/src/core/uri.ts +270 -0
  529. package/references/opentasks/src/core/worktree.ts +504 -0
  530. package/references/opentasks/src/daemon/__tests__/e2e-live-agent.test.ts +344 -0
  531. package/references/opentasks/src/daemon/__tests__/e2e-session-pipeline.test.ts +447 -0
  532. package/references/opentasks/src/daemon/__tests__/e2e-watch.test.ts +279 -0
  533. package/references/opentasks/src/daemon/__tests__/entire-linker.test.ts +1074 -0
  534. package/references/opentasks/src/daemon/__tests__/entire-watcher.test.ts +659 -0
  535. package/references/opentasks/src/daemon/__tests__/flush.test.ts +306 -0
  536. package/references/opentasks/src/daemon/__tests__/integration.test.ts +338 -0
  537. package/references/opentasks/src/daemon/__tests__/ipc.test.ts +406 -0
  538. package/references/opentasks/src/daemon/__tests__/lifecycle.test.ts +378 -0
  539. package/references/opentasks/src/daemon/__tests__/lock.test.ts +240 -0
  540. package/references/opentasks/src/daemon/__tests__/methods/graph.test.ts +372 -0
  541. package/references/opentasks/src/daemon/__tests__/methods/provider.test.ts +238 -0
  542. package/references/opentasks/src/daemon/__tests__/methods/tools.test.ts +690 -0
  543. package/references/opentasks/src/daemon/__tests__/multi-location.test.ts +945 -0
  544. package/references/opentasks/src/daemon/__tests__/registry.test.ts +268 -0
  545. package/references/opentasks/src/daemon/__tests__/watcher.test.ts +329 -0
  546. package/references/opentasks/src/daemon/entire-linker.ts +615 -0
  547. package/references/opentasks/src/daemon/entire-watcher.ts +415 -0
  548. package/references/opentasks/src/daemon/factory.ts +133 -0
  549. package/references/opentasks/src/daemon/flush.ts +168 -0
  550. package/references/opentasks/src/daemon/index.ts +120 -0
  551. package/references/opentasks/src/daemon/ipc.ts +491 -0
  552. package/references/opentasks/src/daemon/lifecycle.ts +1106 -0
  553. package/references/opentasks/src/daemon/location-state.ts +481 -0
  554. package/references/opentasks/src/daemon/lock.ts +168 -0
  555. package/references/opentasks/src/daemon/methods/__tests__/graph.test.ts +359 -0
  556. package/references/opentasks/src/daemon/methods/__tests__/provider.test.ts +227 -0
  557. package/references/opentasks/src/daemon/methods/__tests__/tools.test.ts +360 -0
  558. package/references/opentasks/src/daemon/methods/__tests__/watch.test.ts +656 -0
  559. package/references/opentasks/src/daemon/methods/archive.ts +193 -0
  560. package/references/opentasks/src/daemon/methods/graph.ts +274 -0
  561. package/references/opentasks/src/daemon/methods/lifecycle.ts +112 -0
  562. package/references/opentasks/src/daemon/methods/location.ts +118 -0
  563. package/references/opentasks/src/daemon/methods/provider.ts +159 -0
  564. package/references/opentasks/src/daemon/methods/tools.ts +221 -0
  565. package/references/opentasks/src/daemon/methods/watch.ts +206 -0
  566. package/references/opentasks/src/daemon/registry.ts +244 -0
  567. package/references/opentasks/src/daemon/types.ts +163 -0
  568. package/references/opentasks/src/daemon/watcher.ts +248 -0
  569. package/references/opentasks/src/entire/__tests__/agent-registry.test.ts +127 -0
  570. package/references/opentasks/src/entire/__tests__/claude-generator.test.ts +49 -0
  571. package/references/opentasks/src/entire/__tests__/commit-msg.test.ts +89 -0
  572. package/references/opentasks/src/entire/__tests__/cursor-agent.test.ts +224 -0
  573. package/references/opentasks/src/entire/__tests__/flush-sentinel.test.ts +93 -0
  574. package/references/opentasks/src/entire/__tests__/gemini-agent.test.ts +375 -0
  575. package/references/opentasks/src/entire/__tests__/git-hooks.test.ts +85 -0
  576. package/references/opentasks/src/entire/__tests__/hook-managers.test.ts +128 -0
  577. package/references/opentasks/src/entire/__tests__/opencode-agent.test.ts +329 -0
  578. package/references/opentasks/src/entire/__tests__/redaction.test.ts +143 -0
  579. package/references/opentasks/src/entire/__tests__/session-store.test.ts +83 -0
  580. package/references/opentasks/src/entire/__tests__/summarize.test.ts +346 -0
  581. package/references/opentasks/src/entire/__tests__/transcript-timestamp.test.ts +127 -0
  582. package/references/opentasks/src/entire/__tests__/types.test.ts +112 -0
  583. package/references/opentasks/src/entire/__tests__/utils.test.ts +296 -0
  584. package/references/opentasks/src/entire/__tests__/validation.test.ts +103 -0
  585. package/references/opentasks/src/entire/__tests__/worktree.test.ts +66 -0
  586. package/references/opentasks/src/entire/agent/registry.ts +143 -0
  587. package/references/opentasks/src/entire/agent/session-types.ts +117 -0
  588. package/references/opentasks/src/entire/agent/types.ts +217 -0
  589. package/references/opentasks/src/entire/commands/clean.ts +134 -0
  590. package/references/opentasks/src/entire/commands/disable.ts +85 -0
  591. package/references/opentasks/src/entire/commands/doctor.ts +152 -0
  592. package/references/opentasks/src/entire/commands/enable.ts +149 -0
  593. package/references/opentasks/src/entire/commands/explain.ts +271 -0
  594. package/references/opentasks/src/entire/commands/reset.ts +105 -0
  595. package/references/opentasks/src/entire/commands/resume.ts +194 -0
  596. package/references/opentasks/src/entire/commands/rewind.ts +204 -0
  597. package/references/opentasks/src/entire/commands/status.ts +150 -0
  598. package/references/opentasks/src/entire/config.ts +153 -0
  599. package/references/opentasks/src/entire/git-operations.ts +485 -0
  600. package/references/opentasks/src/entire/hooks/git-hooks.ts +171 -0
  601. package/references/opentasks/src/entire/hooks/lifecycle.ts +224 -0
  602. package/references/opentasks/src/entire/index.ts +644 -0
  603. package/references/opentasks/src/entire/security/redaction.ts +263 -0
  604. package/references/opentasks/src/entire/session/state-machine.ts +463 -0
  605. package/references/opentasks/src/entire/store/checkpoint-store.ts +489 -0
  606. package/references/opentasks/src/entire/store/native-store.ts +178 -0
  607. package/references/opentasks/src/entire/store/provider-types.ts +99 -0
  608. package/references/opentasks/src/entire/store/session-store.ts +233 -0
  609. package/references/opentasks/src/entire/strategy/attribution.ts +300 -0
  610. package/references/opentasks/src/entire/strategy/common.ts +222 -0
  611. package/references/opentasks/src/entire/strategy/content-overlap.ts +242 -0
  612. package/references/opentasks/src/entire/strategy/manual-commit.ts +1008 -0
  613. package/references/opentasks/src/entire/strategy/types.ts +285 -0
  614. package/references/opentasks/src/entire/summarize/claude-generator.ts +119 -0
  615. package/references/opentasks/src/entire/summarize/summarize.ts +432 -0
  616. package/references/opentasks/src/entire/types.ts +408 -0
  617. package/references/opentasks/src/entire/utils/chunk-files.ts +49 -0
  618. package/references/opentasks/src/entire/utils/commit-message.ts +65 -0
  619. package/references/opentasks/src/entire/utils/detect-agent.ts +36 -0
  620. package/references/opentasks/src/entire/utils/hook-managers.ts +118 -0
  621. package/references/opentasks/src/entire/utils/ide-tags.ts +32 -0
  622. package/references/opentasks/src/entire/utils/paths.ts +59 -0
  623. package/references/opentasks/src/entire/utils/preview-rewind.ts +86 -0
  624. package/references/opentasks/src/entire/utils/rewind-conflict.ts +121 -0
  625. package/references/opentasks/src/entire/utils/shadow-branch.ts +113 -0
  626. package/references/opentasks/src/entire/utils/string-utils.ts +46 -0
  627. package/references/opentasks/src/entire/utils/todo-extract.ts +193 -0
  628. package/references/opentasks/src/entire/utils/trailers.ts +190 -0
  629. package/references/opentasks/src/entire/utils/transcript-parse.ts +177 -0
  630. package/references/opentasks/src/entire/utils/transcript-timestamp.ts +61 -0
  631. package/references/opentasks/src/entire/utils/tree-ops.ts +227 -0
  632. package/references/opentasks/src/entire/utils/tty.ts +72 -0
  633. package/references/opentasks/src/entire/utils/validation.ts +67 -0
  634. package/references/opentasks/src/entire/utils/worktree.ts +58 -0
  635. package/references/opentasks/src/graph/EdgeTypeRegistry.ts +330 -0
  636. package/references/opentasks/src/graph/FederatedGraph.ts +796 -0
  637. package/references/opentasks/src/graph/GraphologyAdapter.ts +374 -0
  638. package/references/opentasks/src/graph/HydratingFederatedGraph.ts +533 -0
  639. package/references/opentasks/src/graph/__tests__/EdgeTypeRegistry.test.ts +263 -0
  640. package/references/opentasks/src/graph/__tests__/FederatedGraph.test.ts +821 -0
  641. package/references/opentasks/src/graph/__tests__/GraphologyAdapter.test.ts +408 -0
  642. package/references/opentasks/src/graph/__tests__/HydratingFederatedGraph.test.ts +735 -0
  643. package/references/opentasks/src/graph/__tests__/debounce.test.ts +276 -0
  644. package/references/opentasks/src/graph/__tests__/e2e-store-roundtrip.test.ts +349 -0
  645. package/references/opentasks/src/graph/__tests__/edge-cases.test.ts +595 -0
  646. package/references/opentasks/src/graph/__tests__/expansion.test.ts +304 -0
  647. package/references/opentasks/src/graph/__tests__/git-graph-syncer.test.ts +572 -0
  648. package/references/opentasks/src/graph/__tests__/provider-store.test.ts +1091 -0
  649. package/references/opentasks/src/graph/__tests__/query.test.ts +991 -0
  650. package/references/opentasks/src/graph/__tests__/store.test.ts +998 -0
  651. package/references/opentasks/src/graph/__tests__/sync.test.ts +178 -0
  652. package/references/opentasks/src/graph/__tests__/validation.test.ts +657 -0
  653. package/references/opentasks/src/graph/coordination.ts +454 -0
  654. package/references/opentasks/src/graph/debounce.ts +154 -0
  655. package/references/opentasks/src/graph/expansion.ts +364 -0
  656. package/references/opentasks/src/graph/git-graph-syncer.ts +321 -0
  657. package/references/opentasks/src/graph/history.ts +438 -0
  658. package/references/opentasks/src/graph/index.ts +145 -0
  659. package/references/opentasks/src/graph/provider-store.ts +1077 -0
  660. package/references/opentasks/src/graph/query.ts +651 -0
  661. package/references/opentasks/src/graph/store.ts +861 -0
  662. package/references/opentasks/src/graph/sync.ts +116 -0
  663. package/references/opentasks/src/graph/types.ts +420 -0
  664. package/references/opentasks/src/graph/validation.ts +520 -0
  665. package/references/opentasks/src/index.ts +270 -0
  666. package/references/opentasks/src/materialization/CLAUDE.md +88 -0
  667. package/references/opentasks/src/materialization/README.md +187 -0
  668. package/references/opentasks/src/materialization/__tests__/archive-methods.test.ts +194 -0
  669. package/references/opentasks/src/materialization/__tests__/archiver.test.ts +528 -0
  670. package/references/opentasks/src/materialization/__tests__/config.test.ts +123 -0
  671. package/references/opentasks/src/materialization/__tests__/git-remote-store.test.ts +533 -0
  672. package/references/opentasks/src/materialization/__tests__/graph-id.test.ts +82 -0
  673. package/references/opentasks/src/materialization/__tests__/http-remote-store.test.ts +263 -0
  674. package/references/opentasks/src/materialization/__tests__/materialize-before-archive.test.ts +246 -0
  675. package/references/opentasks/src/materialization/__tests__/remote-store-factory.test.ts +152 -0
  676. package/references/opentasks/src/materialization/__tests__/snapshot.test.ts +209 -0
  677. package/references/opentasks/src/materialization/archiver.ts +318 -0
  678. package/references/opentasks/src/materialization/git-archive-store.ts +568 -0
  679. package/references/opentasks/src/materialization/git-remote-store.ts +551 -0
  680. package/references/opentasks/src/materialization/graph-id.ts +173 -0
  681. package/references/opentasks/src/materialization/http-remote-store.ts +190 -0
  682. package/references/opentasks/src/materialization/index.ts +62 -0
  683. package/references/opentasks/src/materialization/remote-store-factory.ts +55 -0
  684. package/references/opentasks/src/materialization/snapshot.ts +230 -0
  685. package/references/opentasks/src/materialization/types.ts +410 -0
  686. package/references/opentasks/src/providers/__tests__/beads.test.ts +752 -0
  687. package/references/opentasks/src/providers/__tests__/claude-tasks.test.ts +485 -0
  688. package/references/opentasks/src/providers/__tests__/entire-e2e.test.ts +692 -0
  689. package/references/opentasks/src/providers/__tests__/entire-sessionlog-e2e.test.ts +1113 -0
  690. package/references/opentasks/src/providers/__tests__/entire.test.ts +1016 -0
  691. package/references/opentasks/src/providers/__tests__/from-config.test.ts +183 -0
  692. package/references/opentasks/src/providers/__tests__/global.test.ts +515 -0
  693. package/references/opentasks/src/providers/__tests__/materialization.test.ts +567 -0
  694. package/references/opentasks/src/providers/__tests__/native.test.ts +693 -0
  695. package/references/opentasks/src/providers/__tests__/registry.test.ts +232 -0
  696. package/references/opentasks/src/providers/beads.ts +1155 -0
  697. package/references/opentasks/src/providers/claude-tasks.ts +402 -0
  698. package/references/opentasks/src/providers/entire.ts +608 -0
  699. package/references/opentasks/src/providers/from-config.ts +210 -0
  700. package/references/opentasks/src/providers/global.ts +460 -0
  701. package/references/opentasks/src/providers/index.ts +147 -0
  702. package/references/opentasks/src/providers/location.ts +237 -0
  703. package/references/opentasks/src/providers/materialization.ts +346 -0
  704. package/references/opentasks/src/providers/native.ts +725 -0
  705. package/references/opentasks/src/providers/registry.ts +114 -0
  706. package/references/opentasks/src/providers/sudocode.ts +1292 -0
  707. package/references/opentasks/src/providers/sync.ts +485 -0
  708. package/references/opentasks/src/providers/traits/RelationshipQueryable.ts +169 -0
  709. package/references/opentasks/src/providers/traits/TaskManageable.ts +211 -0
  710. package/references/opentasks/src/providers/traits/Watchable.ts +260 -0
  711. package/references/opentasks/src/providers/traits/__tests__/RelationshipQueryable.test.ts +217 -0
  712. package/references/opentasks/src/providers/traits/__tests__/TaskManageable.test.ts +241 -0
  713. package/references/opentasks/src/providers/traits/index.ts +42 -0
  714. package/references/opentasks/src/providers/types.ts +439 -0
  715. package/references/opentasks/src/schema/__tests__/validation.test.ts +283 -0
  716. package/references/opentasks/src/schema/base.ts +88 -0
  717. package/references/opentasks/src/schema/edges.ts +78 -0
  718. package/references/opentasks/src/schema/index.ts +37 -0
  719. package/references/opentasks/src/schema/nodes.ts +119 -0
  720. package/references/opentasks/src/schema/storage.ts +130 -0
  721. package/references/opentasks/src/schema/validation.ts +209 -0
  722. package/references/opentasks/src/storage/__tests__/atomic-write.test.ts +227 -0
  723. package/references/opentasks/src/storage/__tests__/file-lock.test.ts +120 -0
  724. package/references/opentasks/src/storage/__tests__/jsonl.test.ts +267 -0
  725. package/references/opentasks/src/storage/__tests__/locked-writer.test.ts +134 -0
  726. package/references/opentasks/src/storage/__tests__/sqlite.test.ts +572 -0
  727. package/references/opentasks/src/storage/atomic-write.ts +86 -0
  728. package/references/opentasks/src/storage/file-lock.ts +215 -0
  729. package/references/opentasks/src/storage/index.ts +24 -0
  730. package/references/opentasks/src/storage/interface.ts +289 -0
  731. package/references/opentasks/src/storage/jsonl.ts +264 -0
  732. package/references/opentasks/src/storage/locked-writer.ts +140 -0
  733. package/references/opentasks/src/storage/sqlite-schema.ts +177 -0
  734. package/references/opentasks/src/storage/sqlite.ts +791 -0
  735. package/references/opentasks/src/tools/__tests__/annotate.test.ts +381 -0
  736. package/references/opentasks/src/tools/__tests__/link.test.ts +299 -0
  737. package/references/opentasks/src/tools/__tests__/query.test.ts +350 -0
  738. package/references/opentasks/src/tools/__tests__/task.test.ts +218 -0
  739. package/references/opentasks/src/tools/annotate.ts +277 -0
  740. package/references/opentasks/src/tools/index.ts +57 -0
  741. package/references/opentasks/src/tools/link.ts +163 -0
  742. package/references/opentasks/src/tools/query.ts +468 -0
  743. package/references/opentasks/src/tools/task.ts +213 -0
  744. package/references/opentasks/src/tools/types.ts +451 -0
  745. package/references/opentasks/src/tracking/__tests__/claude-tool-categorizer.test.ts +223 -0
  746. package/references/opentasks/src/tracking/__tests__/transcript-extractor.test.ts +262 -0
  747. package/references/opentasks/src/tracking/claude-tool-categorizer.ts +155 -0
  748. package/references/opentasks/src/tracking/index.ts +32 -0
  749. package/references/opentasks/src/tracking/skill-tracker.ts +322 -0
  750. package/references/opentasks/src/tracking/transcript-extractor.ts +225 -0
  751. package/references/opentasks/tests/e2e/helpers/assertions.ts +211 -0
  752. package/references/opentasks/tests/e2e/helpers/beads-helpers.ts +487 -0
  753. package/references/opentasks/tests/e2e/helpers/fixtures.ts +236 -0
  754. package/references/opentasks/tests/e2e/helpers/index.ts +122 -0
  755. package/references/opentasks/tests/e2e/helpers/sudocode-helpers.ts +341 -0
  756. package/references/opentasks/tests/e2e/helpers/system-setup.ts +504 -0
  757. package/references/opentasks/tests/e2e/helpers/test-agent.ts +504 -0
  758. package/references/opentasks/tests/e2e/infrastructure.e2e.test.ts +521 -0
  759. package/references/opentasks/tests/e2e/skill-tracking.e2e.test.ts +625 -0
  760. package/references/opentasks/tests/e2e/workflows/feedback-loop.e2e.test.ts +279 -0
  761. package/references/opentasks/tests/e2e/workflows/multi-agent.e2e.test.ts +304 -0
  762. package/references/opentasks/tests/e2e/workflows/provider-sync/background-sync.e2e.test.ts +292 -0
  763. package/references/opentasks/tests/e2e/workflows/provider-sync/beads-provider-compat.e2e.test.ts +249 -0
  764. package/references/opentasks/tests/e2e/workflows/provider-sync/cross-provider-edges.e2e.test.ts +407 -0
  765. package/references/opentasks/tests/e2e/workflows/provider-sync/federated-ready.e2e.test.ts +504 -0
  766. package/references/opentasks/tests/e2e/workflows/provider-sync/hydration.e2e.test.ts +340 -0
  767. package/references/opentasks/tests/e2e/workflows/provider-sync/materialization.e2e.test.ts +370 -0
  768. package/references/opentasks/tests/e2e/workflows/provider-sync/sudocode-provider-compat.e2e.test.ts +683 -0
  769. package/references/opentasks/tests/e2e/workflows/provider-sync/watchable-beads.e2e.test.ts +573 -0
  770. package/references/opentasks/tests/e2e/workflows/spec-driven.e2e.test.ts +244 -0
  771. package/references/opentasks/tests/e2e/worktree-location.e2e.test.ts +699 -0
  772. package/references/opentasks/tests/integration/daemon/helpers.ts +147 -0
  773. package/references/opentasks/tests/integration/daemon/ipc.integration.test.ts +343 -0
  774. package/references/opentasks/tests/integration/daemon/lifecycle.integration.test.ts +407 -0
  775. package/references/opentasks/tests/integration/graph/federated-graph.integration.test.ts +660 -0
  776. package/references/opentasks/tests/integration/helpers/flags.ts +28 -0
  777. package/references/opentasks/tests/integration/helpers/index.ts +47 -0
  778. package/references/opentasks/tests/integration/helpers/process.ts +133 -0
  779. package/references/opentasks/tests/integration/helpers/temp.ts +105 -0
  780. package/references/opentasks/tests/integration/helpers/wait.ts +133 -0
  781. package/references/opentasks/tests/integration/helpers.test.ts +120 -0
  782. package/references/opentasks/tests/integration/providers/beads-task-manageable.integration.test.ts +450 -0
  783. package/references/opentasks/tests/integration/providers/beads.integration.test.ts +388 -0
  784. package/references/opentasks/tests/integration/providers/native-task-manageable.integration.test.ts +667 -0
  785. package/references/opentasks/tests/integration/providers/sudocode-task-manageable.integration.test.ts +406 -0
  786. package/references/opentasks/tests/integration/providers/sudocode.integration.test.ts +342 -0
  787. package/references/opentasks/tests/integration/storage/jsonl-durability.integration.test.ts +390 -0
  788. package/references/opentasks/tests/integration/storage/sqlite-durability.integration.test.ts +527 -0
  789. package/references/opentasks/tests/integration/worktree/redirect-location-resolution.integration.test.ts +578 -0
  790. package/references/opentasks/tests/integration/worktree/worktree-flow.integration.test.ts +656 -0
  791. package/references/opentasks/tsconfig.json +18 -0
  792. package/references/opentasks/vitest.config.ts +27 -0
  793. package/references/opentasks/vitest.e2e.config.ts +35 -0
  794. package/references/opentasks/vitest.integration.config.ts +19 -0
  795. package/references/openteams/.claude/settings.json +6 -0
  796. package/references/openteams/CLAUDE.md +98 -0
  797. package/references/openteams/README.md +508 -0
  798. package/references/openteams/SKILL.md +198 -0
  799. package/references/openteams/design.md +250 -0
  800. package/references/openteams/docs/visual-editor-design.md +1225 -0
  801. package/references/openteams/editor/index.html +15 -0
  802. package/references/openteams/editor/package.json +39 -0
  803. package/references/openteams/editor/src/App.tsx +48 -0
  804. package/references/openteams/editor/src/components/canvas/Canvas.tsx +131 -0
  805. package/references/openteams/editor/src/components/canvas/QuickAddMenu.tsx +134 -0
  806. package/references/openteams/editor/src/components/edges/PeerRouteEdge.tsx +82 -0
  807. package/references/openteams/editor/src/components/edges/SignalFlowEdge.tsx +77 -0
  808. package/references/openteams/editor/src/components/edges/SpawnEdge.tsx +54 -0
  809. package/references/openteams/editor/src/components/inspector/ChannelInspector.tsx +158 -0
  810. package/references/openteams/editor/src/components/inspector/EdgeInspector.tsx +168 -0
  811. package/references/openteams/editor/src/components/inspector/Inspector.tsx +46 -0
  812. package/references/openteams/editor/src/components/inspector/RoleInspector.tsx +508 -0
  813. package/references/openteams/editor/src/components/inspector/TeamInspector.tsx +126 -0
  814. package/references/openteams/editor/src/components/nodes/ChannelNode.tsx +103 -0
  815. package/references/openteams/editor/src/components/nodes/RoleNode.tsx +157 -0
  816. package/references/openteams/editor/src/components/nodes/node-styles.ts +101 -0
  817. package/references/openteams/editor/src/components/sidebar/Sidebar.tsx +227 -0
  818. package/references/openteams/editor/src/components/toolbar/ExportModal.tsx +110 -0
  819. package/references/openteams/editor/src/components/toolbar/ImportModal.tsx +139 -0
  820. package/references/openteams/editor/src/components/toolbar/Toolbar.tsx +190 -0
  821. package/references/openteams/editor/src/hooks/use-autosave.ts +126 -0
  822. package/references/openteams/editor/src/hooks/use-keyboard.ts +106 -0
  823. package/references/openteams/editor/src/hooks/use-validation.ts +45 -0
  824. package/references/openteams/editor/src/index.css +245 -0
  825. package/references/openteams/editor/src/lib/auto-layout.ts +51 -0
  826. package/references/openteams/editor/src/lib/bundled-templates.ts +42 -0
  827. package/references/openteams/editor/src/lib/compiler.ts +75 -0
  828. package/references/openteams/editor/src/lib/load-template.ts +103 -0
  829. package/references/openteams/editor/src/lib/rebuild-edges.ts +104 -0
  830. package/references/openteams/editor/src/lib/serializer.ts +408 -0
  831. package/references/openteams/editor/src/lib/signal-catalog.ts +50 -0
  832. package/references/openteams/editor/src/lib/validator.ts +172 -0
  833. package/references/openteams/editor/src/main.tsx +10 -0
  834. package/references/openteams/editor/src/stores/canvas-store.ts +80 -0
  835. package/references/openteams/editor/src/stores/config-store.ts +243 -0
  836. package/references/openteams/editor/src/stores/history-store.ts +143 -0
  837. package/references/openteams/editor/src/stores/theme-store.ts +66 -0
  838. package/references/openteams/editor/src/stores/ui-store.ts +46 -0
  839. package/references/openteams/editor/src/stores/validation-store.ts +27 -0
  840. package/references/openteams/editor/src/types/editor.ts +74 -0
  841. package/references/openteams/editor/src/vite-env.d.ts +1 -0
  842. package/references/openteams/editor/tests/compiler.test.ts +151 -0
  843. package/references/openteams/editor/tests/e2e-add-remove.test.ts +386 -0
  844. package/references/openteams/editor/tests/e2e-components.test.tsx +424 -0
  845. package/references/openteams/editor/tests/e2e-export-roundtrip.test.ts +299 -0
  846. package/references/openteams/editor/tests/e2e-template-load.test.ts +204 -0
  847. package/references/openteams/editor/tests/e2e-ui-store.test.ts +126 -0
  848. package/references/openteams/editor/tests/e2e-undo-redo.test.ts +203 -0
  849. package/references/openteams/editor/tests/e2e-validation.test.ts +307 -0
  850. package/references/openteams/editor/tests/serializer.test.ts +142 -0
  851. package/references/openteams/editor/tests/setup.ts +52 -0
  852. package/references/openteams/editor/tests/validator.test.ts +92 -0
  853. package/references/openteams/editor/tsconfig.json +21 -0
  854. package/references/openteams/editor/tsconfig.tsbuildinfo +1 -0
  855. package/references/openteams/editor/vite.config.ts +28 -0
  856. package/references/openteams/examples/bmad-method/prompts/analyst/ROLE.md +16 -0
  857. package/references/openteams/examples/bmad-method/prompts/analyst/SOUL.md +5 -0
  858. package/references/openteams/examples/bmad-method/prompts/architect/ROLE.md +24 -0
  859. package/references/openteams/examples/bmad-method/prompts/architect/SOUL.md +5 -0
  860. package/references/openteams/examples/bmad-method/prompts/developer/ROLE.md +25 -0
  861. package/references/openteams/examples/bmad-method/prompts/developer/SOUL.md +5 -0
  862. package/references/openteams/examples/bmad-method/prompts/master/ROLE.md +21 -0
  863. package/references/openteams/examples/bmad-method/prompts/master/SOUL.md +5 -0
  864. package/references/openteams/examples/bmad-method/prompts/pm/ROLE.md +20 -0
  865. package/references/openteams/examples/bmad-method/prompts/pm/SOUL.md +5 -0
  866. package/references/openteams/examples/bmad-method/prompts/qa/ROLE.md +17 -0
  867. package/references/openteams/examples/bmad-method/prompts/qa/SOUL.md +5 -0
  868. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/ROLE.md +23 -0
  869. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/SOUL.md +5 -0
  870. package/references/openteams/examples/bmad-method/prompts/scrum-master/ROLE.md +27 -0
  871. package/references/openteams/examples/bmad-method/prompts/scrum-master/SOUL.md +5 -0
  872. package/references/openteams/examples/bmad-method/prompts/tech-writer/ROLE.md +21 -0
  873. package/references/openteams/examples/bmad-method/prompts/tech-writer/SOUL.md +5 -0
  874. package/references/openteams/examples/bmad-method/prompts/ux-designer/ROLE.md +16 -0
  875. package/references/openteams/examples/bmad-method/prompts/ux-designer/SOUL.md +5 -0
  876. package/references/openteams/examples/bmad-method/roles/analyst.yaml +9 -0
  877. package/references/openteams/examples/bmad-method/roles/architect.yaml +9 -0
  878. package/references/openteams/examples/bmad-method/roles/developer.yaml +8 -0
  879. package/references/openteams/examples/bmad-method/roles/master.yaml +8 -0
  880. package/references/openteams/examples/bmad-method/roles/pm.yaml +9 -0
  881. package/references/openteams/examples/bmad-method/roles/qa.yaml +8 -0
  882. package/references/openteams/examples/bmad-method/roles/quick-flow-dev.yaml +8 -0
  883. package/references/openteams/examples/bmad-method/roles/scrum-master.yaml +9 -0
  884. package/references/openteams/examples/bmad-method/roles/tech-writer.yaml +8 -0
  885. package/references/openteams/examples/bmad-method/roles/ux-designer.yaml +8 -0
  886. package/references/openteams/examples/bmad-method/team.yaml +161 -0
  887. package/references/openteams/examples/bug-fix-pipeline/roles/fixer.yaml +9 -0
  888. package/references/openteams/examples/bug-fix-pipeline/roles/investigator.yaml +8 -0
  889. package/references/openteams/examples/bug-fix-pipeline/roles/pr-creator.yaml +6 -0
  890. package/references/openteams/examples/bug-fix-pipeline/roles/triager.yaml +7 -0
  891. package/references/openteams/examples/bug-fix-pipeline/roles/verifier.yaml +8 -0
  892. package/references/openteams/examples/bug-fix-pipeline/team.yaml +88 -0
  893. package/references/openteams/examples/codebase-migration/roles/assessor.yaml +7 -0
  894. package/references/openteams/examples/codebase-migration/roles/migrator.yaml +9 -0
  895. package/references/openteams/examples/codebase-migration/roles/planner.yaml +5 -0
  896. package/references/openteams/examples/codebase-migration/roles/test-extractor.yaml +9 -0
  897. package/references/openteams/examples/codebase-migration/roles/validator.yaml +7 -0
  898. package/references/openteams/examples/codebase-migration/team.yaml +81 -0
  899. package/references/openteams/examples/docs-sync/roles/adr-writer.yaml +7 -0
  900. package/references/openteams/examples/docs-sync/roles/api-doc-writer.yaml +7 -0
  901. package/references/openteams/examples/docs-sync/roles/change-detector.yaml +7 -0
  902. package/references/openteams/examples/docs-sync/roles/doc-reviewer.yaml +7 -0
  903. package/references/openteams/examples/docs-sync/roles/guide-writer.yaml +7 -0
  904. package/references/openteams/examples/docs-sync/team.yaml +84 -0
  905. package/references/openteams/examples/gsd/prompts/codebase-mapper/ROLE.md +17 -0
  906. package/references/openteams/examples/gsd/prompts/codebase-mapper/SOUL.md +5 -0
  907. package/references/openteams/examples/gsd/prompts/debugger/ROLE.md +25 -0
  908. package/references/openteams/examples/gsd/prompts/debugger/SOUL.md +5 -0
  909. package/references/openteams/examples/gsd/prompts/executor/ROLE.md +34 -0
  910. package/references/openteams/examples/gsd/prompts/executor/SOUL.md +5 -0
  911. package/references/openteams/examples/gsd/prompts/integration-checker/ROLE.md +18 -0
  912. package/references/openteams/examples/gsd/prompts/integration-checker/SOUL.md +3 -0
  913. package/references/openteams/examples/gsd/prompts/orchestrator/ROLE.md +42 -0
  914. package/references/openteams/examples/gsd/prompts/orchestrator/SOUL.md +5 -0
  915. package/references/openteams/examples/gsd/prompts/phase-researcher/ROLE.md +15 -0
  916. package/references/openteams/examples/gsd/prompts/phase-researcher/SOUL.md +3 -0
  917. package/references/openteams/examples/gsd/prompts/plan-checker/ROLE.md +17 -0
  918. package/references/openteams/examples/gsd/prompts/plan-checker/SOUL.md +3 -0
  919. package/references/openteams/examples/gsd/prompts/planner/ROLE.md +28 -0
  920. package/references/openteams/examples/gsd/prompts/planner/SOUL.md +5 -0
  921. package/references/openteams/examples/gsd/prompts/project-researcher/ROLE.md +16 -0
  922. package/references/openteams/examples/gsd/prompts/project-researcher/SOUL.md +3 -0
  923. package/references/openteams/examples/gsd/prompts/research-synthesizer/ROLE.md +13 -0
  924. package/references/openteams/examples/gsd/prompts/research-synthesizer/SOUL.md +3 -0
  925. package/references/openteams/examples/gsd/prompts/roadmapper/ROLE.md +14 -0
  926. package/references/openteams/examples/gsd/prompts/roadmapper/SOUL.md +3 -0
  927. package/references/openteams/examples/gsd/prompts/verifier/ROLE.md +19 -0
  928. package/references/openteams/examples/gsd/prompts/verifier/SOUL.md +5 -0
  929. package/references/openteams/examples/gsd/roles/codebase-mapper.yaml +8 -0
  930. package/references/openteams/examples/gsd/roles/debugger.yaml +8 -0
  931. package/references/openteams/examples/gsd/roles/executor.yaml +8 -0
  932. package/references/openteams/examples/gsd/roles/integration-checker.yaml +8 -0
  933. package/references/openteams/examples/gsd/roles/orchestrator.yaml +9 -0
  934. package/references/openteams/examples/gsd/roles/phase-researcher.yaml +7 -0
  935. package/references/openteams/examples/gsd/roles/plan-checker.yaml +8 -0
  936. package/references/openteams/examples/gsd/roles/planner.yaml +8 -0
  937. package/references/openteams/examples/gsd/roles/project-researcher.yaml +8 -0
  938. package/references/openteams/examples/gsd/roles/research-synthesizer.yaml +7 -0
  939. package/references/openteams/examples/gsd/roles/roadmapper.yaml +7 -0
  940. package/references/openteams/examples/gsd/roles/verifier.yaml +8 -0
  941. package/references/openteams/examples/gsd/team.yaml +154 -0
  942. package/references/openteams/examples/incident-response/roles/communicator.yaml +5 -0
  943. package/references/openteams/examples/incident-response/roles/fix-proposer.yaml +7 -0
  944. package/references/openteams/examples/incident-response/roles/incident-triager.yaml +8 -0
  945. package/references/openteams/examples/incident-response/roles/investigator.yaml +8 -0
  946. package/references/openteams/examples/incident-response/team.yaml +68 -0
  947. package/references/openteams/examples/pr-review-checks/roles/code-reviewer.yaml +7 -0
  948. package/references/openteams/examples/pr-review-checks/roles/security-scanner.yaml +6 -0
  949. package/references/openteams/examples/pr-review-checks/roles/summarizer.yaml +6 -0
  950. package/references/openteams/examples/pr-review-checks/roles/test-checker.yaml +8 -0
  951. package/references/openteams/examples/pr-review-checks/team.yaml +64 -0
  952. package/references/openteams/examples/security-audit/roles/code-analyzer.yaml +6 -0
  953. package/references/openteams/examples/security-audit/roles/dep-scanner.yaml +7 -0
  954. package/references/openteams/examples/security-audit/roles/fixer.yaml +9 -0
  955. package/references/openteams/examples/security-audit/roles/pr-creator.yaml +6 -0
  956. package/references/openteams/examples/security-audit/roles/prioritizer.yaml +6 -0
  957. package/references/openteams/examples/security-audit/roles/secrets-scanner.yaml +6 -0
  958. package/references/openteams/examples/security-audit/roles/verifier.yaml +8 -0
  959. package/references/openteams/examples/security-audit/team.yaml +102 -0
  960. package/references/openteams/media/banner.png +0 -0
  961. package/references/openteams/media/editor.png +0 -0
  962. package/references/openteams/package-lock.json +4804 -0
  963. package/references/openteams/package.json +58 -0
  964. package/references/openteams/schema/role.schema.json +147 -0
  965. package/references/openteams/schema/team.schema.json +311 -0
  966. package/references/openteams/src/cli/editor.ts +170 -0
  967. package/references/openteams/src/cli/generate.test.ts +191 -0
  968. package/references/openteams/src/cli/generate.ts +220 -0
  969. package/references/openteams/src/cli/prompt-utils.ts +42 -0
  970. package/references/openteams/src/cli/template.test.ts +365 -0
  971. package/references/openteams/src/cli/template.ts +205 -0
  972. package/references/openteams/src/cli.ts +22 -0
  973. package/references/openteams/src/generators/agent-prompt-generator.test.ts +332 -0
  974. package/references/openteams/src/generators/agent-prompt-generator.ts +527 -0
  975. package/references/openteams/src/generators/package-generator.test.ts +129 -0
  976. package/references/openteams/src/generators/package-generator.ts +102 -0
  977. package/references/openteams/src/generators/skill-generator.test.ts +246 -0
  978. package/references/openteams/src/generators/skill-generator.ts +388 -0
  979. package/references/openteams/src/index.ts +84 -0
  980. package/references/openteams/src/template/builtins.test.ts +74 -0
  981. package/references/openteams/src/template/builtins.ts +108 -0
  982. package/references/openteams/src/template/install-service.test.ts +452 -0
  983. package/references/openteams/src/template/install-service.ts +332 -0
  984. package/references/openteams/src/template/loader.test.ts +1696 -0
  985. package/references/openteams/src/template/loader.ts +804 -0
  986. package/references/openteams/src/template/resolver.test.ts +304 -0
  987. package/references/openteams/src/template/resolver.ts +251 -0
  988. package/references/openteams/src/template/types.ts +229 -0
  989. package/references/openteams/tsconfig.cjs.json +7 -0
  990. package/references/openteams/tsconfig.esm.json +8 -0
  991. package/references/openteams/tsconfig.json +16 -0
  992. package/references/openteams/vitest.config.ts +9 -0
  993. package/references/sessionlog/.husky/pre-commit +1 -0
  994. package/references/sessionlog/.lintstagedrc.json +4 -0
  995. package/references/sessionlog/.prettierignore +4 -0
  996. package/references/sessionlog/.prettierrc.json +11 -0
  997. package/references/sessionlog/LICENSE +21 -0
  998. package/references/sessionlog/README.md +453 -0
  999. package/references/sessionlog/eslint.config.js +58 -0
  1000. package/references/sessionlog/package-lock.json +3672 -0
  1001. package/references/sessionlog/package.json +65 -0
  1002. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
  1003. package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
  1004. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
  1005. package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
  1006. package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
  1007. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
  1008. package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
  1009. package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
  1010. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
  1011. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
  1012. package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
  1013. package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
  1014. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
  1015. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
  1016. package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
  1017. package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
  1018. package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
  1019. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
  1020. package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
  1021. package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
  1022. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
  1023. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
  1024. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
  1025. package/references/sessionlog/src/__tests__/types.test.ts +166 -0
  1026. package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
  1027. package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
  1028. package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
  1029. package/references/sessionlog/src/agent/registry.ts +143 -0
  1030. package/references/sessionlog/src/agent/session-types.ts +113 -0
  1031. package/references/sessionlog/src/agent/types.ts +220 -0
  1032. package/references/sessionlog/src/cli.ts +597 -0
  1033. package/references/sessionlog/src/commands/clean.ts +133 -0
  1034. package/references/sessionlog/src/commands/disable.ts +84 -0
  1035. package/references/sessionlog/src/commands/doctor.ts +145 -0
  1036. package/references/sessionlog/src/commands/enable.ts +202 -0
  1037. package/references/sessionlog/src/commands/explain.ts +261 -0
  1038. package/references/sessionlog/src/commands/reset.ts +105 -0
  1039. package/references/sessionlog/src/commands/resume.ts +180 -0
  1040. package/references/sessionlog/src/commands/rewind.ts +195 -0
  1041. package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
  1042. package/references/sessionlog/src/commands/status.ts +172 -0
  1043. package/references/sessionlog/src/config.ts +165 -0
  1044. package/references/sessionlog/src/events/event-log.ts +126 -0
  1045. package/references/sessionlog/src/git-operations.ts +558 -0
  1046. package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
  1047. package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
  1048. package/references/sessionlog/src/index.ts +650 -0
  1049. package/references/sessionlog/src/security/redaction.ts +283 -0
  1050. package/references/sessionlog/src/session/state-machine.ts +452 -0
  1051. package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
  1052. package/references/sessionlog/src/store/native-store.ts +173 -0
  1053. package/references/sessionlog/src/store/provider-types.ts +99 -0
  1054. package/references/sessionlog/src/store/session-store.ts +266 -0
  1055. package/references/sessionlog/src/strategy/attribution.ts +296 -0
  1056. package/references/sessionlog/src/strategy/common.ts +207 -0
  1057. package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
  1058. package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
  1059. package/references/sessionlog/src/strategy/types.ts +279 -0
  1060. package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
  1061. package/references/sessionlog/src/summarize/summarize.ts +432 -0
  1062. package/references/sessionlog/src/types.ts +508 -0
  1063. package/references/sessionlog/src/utils/chunk-files.ts +49 -0
  1064. package/references/sessionlog/src/utils/commit-message.ts +65 -0
  1065. package/references/sessionlog/src/utils/detect-agent.ts +36 -0
  1066. package/references/sessionlog/src/utils/hook-managers.ts +125 -0
  1067. package/references/sessionlog/src/utils/ide-tags.ts +32 -0
  1068. package/references/sessionlog/src/utils/paths.ts +79 -0
  1069. package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
  1070. package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
  1071. package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
  1072. package/references/sessionlog/src/utils/string-utils.ts +46 -0
  1073. package/references/sessionlog/src/utils/todo-extract.ts +188 -0
  1074. package/references/sessionlog/src/utils/trailers.ts +187 -0
  1075. package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
  1076. package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
  1077. package/references/sessionlog/src/utils/tree-ops.ts +219 -0
  1078. package/references/sessionlog/src/utils/tty.ts +72 -0
  1079. package/references/sessionlog/src/utils/validation.ts +65 -0
  1080. package/references/sessionlog/src/utils/worktree.ts +58 -0
  1081. package/references/sessionlog/src/wire-types.ts +59 -0
  1082. package/references/sessionlog/templates/setup-env.sh +153 -0
  1083. package/references/sessionlog/tsconfig.json +18 -0
  1084. package/references/sessionlog/vitest.config.ts +12 -0
  1085. package/references/swarmkit/LICENSE +21 -0
  1086. package/references/swarmkit/README.md +130 -0
  1087. package/references/swarmkit/docs/design.md +453 -0
  1088. package/references/swarmkit/docs/package-setup-reference.md +519 -0
  1089. package/references/swarmkit/package-lock.json +1938 -0
  1090. package/references/swarmkit/package.json +43 -0
  1091. package/references/swarmkit/src/cli.ts +41 -0
  1092. package/references/swarmkit/src/commands/add.ts +126 -0
  1093. package/references/swarmkit/src/commands/doctor.ts +117 -0
  1094. package/references/swarmkit/src/commands/hive.ts +279 -0
  1095. package/references/swarmkit/src/commands/init/phases/configure.ts +96 -0
  1096. package/references/swarmkit/src/commands/init/phases/global-setup.ts +102 -0
  1097. package/references/swarmkit/src/commands/init/phases/packages.ts +44 -0
  1098. package/references/swarmkit/src/commands/init/phases/project.ts +81 -0
  1099. package/references/swarmkit/src/commands/init/phases/use-case.ts +47 -0
  1100. package/references/swarmkit/src/commands/init/state.test.ts +23 -0
  1101. package/references/swarmkit/src/commands/init/state.ts +22 -0
  1102. package/references/swarmkit/src/commands/init/wizard.ts +160 -0
  1103. package/references/swarmkit/src/commands/init.ts +17 -0
  1104. package/references/swarmkit/src/commands/login.ts +106 -0
  1105. package/references/swarmkit/src/commands/logout.ts +22 -0
  1106. package/references/swarmkit/src/commands/remove.ts +72 -0
  1107. package/references/swarmkit/src/commands/status.ts +101 -0
  1108. package/references/swarmkit/src/commands/update.ts +62 -0
  1109. package/references/swarmkit/src/commands/whoami.ts +41 -0
  1110. package/references/swarmkit/src/config/global.test.ts +258 -0
  1111. package/references/swarmkit/src/config/global.ts +141 -0
  1112. package/references/swarmkit/src/config/keys.test.ts +109 -0
  1113. package/references/swarmkit/src/config/keys.ts +49 -0
  1114. package/references/swarmkit/src/doctor/checks.test.ts +366 -0
  1115. package/references/swarmkit/src/doctor/checks.ts +292 -0
  1116. package/references/swarmkit/src/doctor/types.ts +33 -0
  1117. package/references/swarmkit/src/hub/auth-flow.test.ts +127 -0
  1118. package/references/swarmkit/src/hub/auth-flow.ts +144 -0
  1119. package/references/swarmkit/src/hub/client.test.ts +224 -0
  1120. package/references/swarmkit/src/hub/client.ts +185 -0
  1121. package/references/swarmkit/src/hub/credentials.test.ts +132 -0
  1122. package/references/swarmkit/src/hub/credentials.ts +51 -0
  1123. package/references/swarmkit/src/index.ts +116 -0
  1124. package/references/swarmkit/src/packages/installer.test.ts +365 -0
  1125. package/references/swarmkit/src/packages/installer.ts +206 -0
  1126. package/references/swarmkit/src/packages/plugin.test.ts +141 -0
  1127. package/references/swarmkit/src/packages/plugin.ts +46 -0
  1128. package/references/swarmkit/src/packages/registry.test.ts +235 -0
  1129. package/references/swarmkit/src/packages/registry.ts +209 -0
  1130. package/references/swarmkit/src/packages/setup.test.ts +1349 -0
  1131. package/references/swarmkit/src/packages/setup.ts +635 -0
  1132. package/references/swarmkit/src/utils/ui.test.ts +115 -0
  1133. package/references/swarmkit/src/utils/ui.ts +62 -0
  1134. package/references/swarmkit/tsconfig.json +17 -0
  1135. package/references/swarmkit/vitest.config.ts +9 -0
  1136. package/scripts/bootstrap.mjs +26 -0
  1137. package/scripts/generate-agents.mjs +32 -0
  1138. package/scripts/map-hook.mjs +187 -0
  1139. package/scripts/map-sidecar.mjs +115 -0
  1140. package/scripts/sync-version.mjs +22 -0
  1141. package/scripts/team-loader.mjs +87 -0
  1142. package/settings.json +13 -0
  1143. package/skills/swarm/SKILL.md +71 -0
  1144. package/src/__tests__/agent-generator.test.mjs +299 -0
  1145. package/src/__tests__/bootstrap.test.mjs +353 -0
  1146. package/src/__tests__/config.test.mjs +286 -0
  1147. package/src/__tests__/context-output.test.mjs +138 -0
  1148. package/src/__tests__/helpers.mjs +136 -0
  1149. package/src/__tests__/inbox.test.mjs +174 -0
  1150. package/src/__tests__/index.test.mjs +90 -0
  1151. package/src/__tests__/map-connection.test.mjs +134 -0
  1152. package/src/__tests__/map-events.test.mjs +325 -0
  1153. package/src/__tests__/paths.test.mjs +70 -0
  1154. package/src/__tests__/roles.test.mjs +112 -0
  1155. package/src/__tests__/sessionlog.test.mjs +139 -0
  1156. package/src/__tests__/sidecar-client.test.mjs +73 -0
  1157. package/src/__tests__/sidecar-server.test.mjs +318 -0
  1158. package/src/__tests__/template.test.mjs +109 -0
  1159. package/src/agent-generator.mjs +325 -0
  1160. package/src/bootstrap.mjs +237 -0
  1161. package/src/config.mjs +86 -0
  1162. package/src/context-output.mjs +150 -0
  1163. package/src/inbox.mjs +105 -0
  1164. package/src/index.mjs +98 -0
  1165. package/src/map-connection.mjs +121 -0
  1166. package/src/map-events.mjs +175 -0
  1167. package/src/paths.mjs +74 -0
  1168. package/src/roles.mjs +72 -0
  1169. package/src/sessionlog.mjs +161 -0
  1170. package/src/sidecar-client.mjs +131 -0
  1171. package/src/sidecar-server.mjs +247 -0
  1172. package/src/swarmkit-resolver.mjs +111 -0
  1173. package/src/template.mjs +163 -0
  1174. package/vitest.config.mjs +17 -0
  1175. package/dist/index.d.ts +0 -1
  1176. package/dist/index.js +0 -6
@@ -0,0 +1,3067 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/alexngai/multi-agent-protocol/schema/schema.json",
4
+ "title": "Multi-Agent Protocol Schema",
5
+ "description": "JSON Schema for the Multi-Agent Protocol (MAP) - a protocol for observing, coordinating, and routing messages within multi-agent AI systems",
6
+ "oneOf": [
7
+ { "$ref": "#/$defs/MAPRequest" },
8
+ { "$ref": "#/$defs/MAPResponse" },
9
+ { "$ref": "#/$defs/MAPNotification" }
10
+ ],
11
+ "$defs": {
12
+ "JsonRpcVersion": {
13
+ "type": "string",
14
+ "const": "2.0",
15
+ "description": "JSON-RPC version, always '2.0'"
16
+ },
17
+ "RequestId": {
18
+ "oneOf": [
19
+ { "type": "string" },
20
+ { "type": "integer" }
21
+ ],
22
+ "description": "Unique identifier for a request, used to correlate responses"
23
+ },
24
+ "MAPRequest": {
25
+ "type": "object",
26
+ "description": "A JSON-RPC 2.0 request message in MAP",
27
+ "properties": {
28
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
29
+ "id": { "$ref": "#/$defs/RequestId" },
30
+ "method": { "type": "string" },
31
+ "params": { "type": "object" }
32
+ },
33
+ "required": ["jsonrpc", "id", "method"],
34
+ "additionalProperties": false,
35
+ "oneOf": [
36
+ { "$ref": "#/$defs/ConnectRequest" },
37
+ { "$ref": "#/$defs/DisconnectRequest" },
38
+ { "$ref": "#/$defs/SessionListRequest" },
39
+ { "$ref": "#/$defs/SessionLoadRequest" },
40
+ { "$ref": "#/$defs/SessionCloseRequest" },
41
+ { "$ref": "#/$defs/AgentsListRequest" },
42
+ { "$ref": "#/$defs/AgentsGetRequest" },
43
+ { "$ref": "#/$defs/AgentsRegisterRequest" },
44
+ { "$ref": "#/$defs/AgentsSpawnRequest" },
45
+ { "$ref": "#/$defs/AgentsUnregisterRequest" },
46
+ { "$ref": "#/$defs/AgentsUpdateRequest" },
47
+ { "$ref": "#/$defs/AgentsStopRequest" },
48
+ { "$ref": "#/$defs/AgentsSuspendRequest" },
49
+ { "$ref": "#/$defs/AgentsResumeRequest" },
50
+ { "$ref": "#/$defs/SendRequest" },
51
+ { "$ref": "#/$defs/SubscribeRequest" },
52
+ { "$ref": "#/$defs/UnsubscribeRequest" },
53
+ { "$ref": "#/$defs/ScopesListRequest" },
54
+ { "$ref": "#/$defs/ScopesGetRequest" },
55
+ { "$ref": "#/$defs/ScopesCreateRequest" },
56
+ { "$ref": "#/$defs/ScopesDeleteRequest" },
57
+ { "$ref": "#/$defs/ScopesJoinRequest" },
58
+ { "$ref": "#/$defs/ScopesLeaveRequest" },
59
+ { "$ref": "#/$defs/ScopesMembersRequest" },
60
+ { "$ref": "#/$defs/StructureGraphRequest" },
61
+ { "$ref": "#/$defs/AuthRefreshRequest" },
62
+ { "$ref": "#/$defs/InjectRequest" },
63
+ { "$ref": "#/$defs/FederationConnectRequest" },
64
+ { "$ref": "#/$defs/FederationRouteRequest" },
65
+ { "$ref": "#/$defs/MailCreateRequest" },
66
+ { "$ref": "#/$defs/MailGetRequest" },
67
+ { "$ref": "#/$defs/MailListRequest" },
68
+ { "$ref": "#/$defs/MailCloseRequest" },
69
+ { "$ref": "#/$defs/MailJoinRequest" },
70
+ { "$ref": "#/$defs/MailLeaveRequest" },
71
+ { "$ref": "#/$defs/MailInviteRequest" },
72
+ { "$ref": "#/$defs/MailTurnRequest" },
73
+ { "$ref": "#/$defs/MailTurnsListRequest" },
74
+ { "$ref": "#/$defs/MailThreadCreateRequest" },
75
+ { "$ref": "#/$defs/MailThreadListRequest" },
76
+ { "$ref": "#/$defs/MailSummaryRequest" },
77
+ { "$ref": "#/$defs/MailReplayRequest" },
78
+ { "$ref": "#/$defs/CredGetRequest" },
79
+ { "$ref": "#/$defs/CredListRequest" },
80
+ { "$ref": "#/$defs/CredStatusRequest" },
81
+ { "$ref": "#/$defs/WorkspaceSearchRequest" },
82
+ { "$ref": "#/$defs/WorkspaceListRequest" },
83
+ { "$ref": "#/$defs/WorkspaceReadRequest" }
84
+ ]
85
+ },
86
+ "MAPResponse": {
87
+ "type": "object",
88
+ "description": "A JSON-RPC 2.0 response message in MAP",
89
+ "properties": {
90
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
91
+ "id": { "$ref": "#/$defs/RequestId" }
92
+ },
93
+ "required": ["jsonrpc", "id"],
94
+ "oneOf": [
95
+ {
96
+ "type": "object",
97
+ "properties": {
98
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
99
+ "id": { "$ref": "#/$defs/RequestId" },
100
+ "result": {}
101
+ },
102
+ "required": ["jsonrpc", "id", "result"],
103
+ "additionalProperties": false
104
+ },
105
+ {
106
+ "type": "object",
107
+ "properties": {
108
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
109
+ "id": { "$ref": "#/$defs/RequestId" },
110
+ "error": { "$ref": "#/$defs/MAPError" }
111
+ },
112
+ "required": ["jsonrpc", "id", "error"],
113
+ "additionalProperties": false
114
+ }
115
+ ]
116
+ },
117
+ "MAPNotification": {
118
+ "type": "object",
119
+ "description": "A JSON-RPC 2.0 notification message in MAP (no response expected)",
120
+ "properties": {
121
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
122
+ "method": { "type": "string" },
123
+ "params": { "type": "object" }
124
+ },
125
+ "required": ["jsonrpc", "method"],
126
+ "additionalProperties": false,
127
+ "oneOf": [
128
+ { "$ref": "#/$defs/EventNotification" },
129
+ { "$ref": "#/$defs/MessageNotification" }
130
+ ]
131
+ },
132
+ "MAPError": {
133
+ "type": "object",
134
+ "description": "JSON-RPC 2.0 error object",
135
+ "properties": {
136
+ "code": {
137
+ "type": "integer",
138
+ "description": "Error code"
139
+ },
140
+ "message": {
141
+ "type": "string",
142
+ "description": "Human-readable error message"
143
+ },
144
+ "data": {
145
+ "description": "Additional error data",
146
+ "$ref": "#/$defs/MAPErrorData"
147
+ }
148
+ },
149
+ "required": ["code", "message"],
150
+ "additionalProperties": false
151
+ },
152
+ "MAPErrorData": {
153
+ "type": "object",
154
+ "description": "Structured error data",
155
+ "properties": {
156
+ "category": { "$ref": "#/$defs/ErrorCategory" },
157
+ "retryable": { "type": "boolean" },
158
+ "retryAfterMs": { "type": "integer" },
159
+ "details": { "type": "object" },
160
+ "_meta": { "$ref": "#/$defs/Meta" }
161
+ },
162
+ "additionalProperties": true
163
+ },
164
+ "ErrorCategory": {
165
+ "type": "string",
166
+ "enum": [
167
+ "protocol",
168
+ "auth",
169
+ "routing",
170
+ "agent",
171
+ "resource",
172
+ "federation",
173
+ "mail",
174
+ "internal"
175
+ ],
176
+ "description": "Category of error for handling decisions"
177
+ },
178
+
179
+ "ParticipantId": {
180
+ "type": "string",
181
+ "description": "Unique identifier for any participant (agent, client, system, gateway)"
182
+ },
183
+ "AgentId": {
184
+ "type": "string",
185
+ "description": "Unique identifier for an agent"
186
+ },
187
+ "ScopeId": {
188
+ "type": "string",
189
+ "description": "Unique identifier for a scope"
190
+ },
191
+ "SessionId": {
192
+ "type": "string",
193
+ "description": "Unique identifier for a session"
194
+ },
195
+ "MessageId": {
196
+ "type": "string",
197
+ "description": "Unique identifier for a message"
198
+ },
199
+ "SubscriptionId": {
200
+ "type": "string",
201
+ "description": "Unique identifier for a subscription"
202
+ },
203
+ "CorrelationId": {
204
+ "type": "string",
205
+ "description": "Identifier for correlating related messages"
206
+ },
207
+ "ProtocolVersion": {
208
+ "type": "integer",
209
+ "const": 1,
210
+ "description": "MAP protocol version"
211
+ },
212
+ "Timestamp": {
213
+ "type": "integer",
214
+ "description": "Unix timestamp in milliseconds"
215
+ },
216
+ "Meta": {
217
+ "type": "object",
218
+ "additionalProperties": true,
219
+ "description": "Vendor extension metadata. Implementations MUST NOT assume specific keys."
220
+ },
221
+
222
+ "ParticipantType": {
223
+ "type": "string",
224
+ "enum": ["agent", "client", "system", "gateway"],
225
+ "description": "Type of participant in the protocol"
226
+ },
227
+ "ParticipantCapabilities": {
228
+ "type": "object",
229
+ "description": "Capabilities of a participant, grouped by category",
230
+ "properties": {
231
+ "observation": {
232
+ "type": "object",
233
+ "properties": {
234
+ "canObserve": {
235
+ "type": "boolean",
236
+ "description": "Can subscribe to event streams"
237
+ },
238
+ "canQuery": {
239
+ "type": "boolean",
240
+ "description": "Can query agents and structure"
241
+ }
242
+ },
243
+ "additionalProperties": false
244
+ },
245
+ "messaging": {
246
+ "type": "object",
247
+ "properties": {
248
+ "canSend": {
249
+ "type": "boolean",
250
+ "description": "Can send messages"
251
+ },
252
+ "canReceive": {
253
+ "type": "boolean",
254
+ "description": "Can receive messages addressed to it"
255
+ },
256
+ "canBroadcast": {
257
+ "type": "boolean",
258
+ "description": "Can send to scopes/roles"
259
+ }
260
+ },
261
+ "additionalProperties": false
262
+ },
263
+ "lifecycle": {
264
+ "type": "object",
265
+ "properties": {
266
+ "canSpawn": {
267
+ "type": "boolean",
268
+ "description": "Can create child agents"
269
+ },
270
+ "canRegister": {
271
+ "type": "boolean",
272
+ "description": "Can register agents (not as children)"
273
+ },
274
+ "canUnregister": {
275
+ "type": "boolean",
276
+ "description": "Can remove agents"
277
+ },
278
+ "canSteer": {
279
+ "type": "boolean",
280
+ "description": "Can inject context/control agents"
281
+ },
282
+ "canStop": {
283
+ "type": "boolean",
284
+ "description": "Can request agent termination"
285
+ }
286
+ },
287
+ "additionalProperties": false
288
+ },
289
+ "scopes": {
290
+ "type": "object",
291
+ "properties": {
292
+ "canCreateScopes": {
293
+ "type": "boolean",
294
+ "description": "Can create new scopes"
295
+ },
296
+ "canManageScopes": {
297
+ "type": "boolean",
298
+ "description": "Can modify and delete scopes"
299
+ }
300
+ },
301
+ "additionalProperties": false
302
+ },
303
+ "mail": {
304
+ "type": "object",
305
+ "description": "Mail protocol capabilities for conversation/turn tracking",
306
+ "properties": {
307
+ "enabled": { "type": "boolean", "description": "Whether mail is enabled (server response only)" },
308
+ "canCreate": { "type": "boolean", "description": "Can create new conversations" },
309
+ "canJoin": { "type": "boolean", "description": "Can join existing conversations" },
310
+ "canInvite": { "type": "boolean", "description": "Can invite participants to conversations" },
311
+ "canViewHistory": { "type": "boolean", "description": "Can view conversation history" },
312
+ "canCreateThreads": { "type": "boolean", "description": "Can create threads within conversations" }
313
+ },
314
+ "additionalProperties": false
315
+ },
316
+ "credentials": {
317
+ "type": "object",
318
+ "description": "Credential brokering capabilities",
319
+ "properties": {
320
+ "enabled": { "type": "boolean", "description": "Whether credential brokering is enabled (server response only)" },
321
+ "canGet": { "type": "boolean", "description": "Can request credentials via cred/get" },
322
+ "canList": { "type": "boolean", "description": "Can list available scopes via cred/list" },
323
+ "canStatus": { "type": "boolean", "description": "Can check broker status via cred/status" }
324
+ },
325
+ "additionalProperties": false
326
+ },
327
+ "_meta": { "$ref": "#/$defs/Meta" }
328
+ },
329
+ "additionalProperties": false
330
+ },
331
+ "TransportType": {
332
+ "type": "string",
333
+ "enum": ["websocket", "stdio", "inprocess", "http-sse"],
334
+ "description": "Transport binding type"
335
+ },
336
+ "Participant": {
337
+ "type": "object",
338
+ "description": "A participant in the MAP protocol",
339
+ "properties": {
340
+ "id": { "$ref": "#/$defs/ParticipantId" },
341
+ "type": { "$ref": "#/$defs/ParticipantType" },
342
+ "name": { "type": "string" },
343
+ "capabilities": { "$ref": "#/$defs/ParticipantCapabilities" },
344
+ "transport": { "$ref": "#/$defs/TransportType" },
345
+ "sessionId": { "$ref": "#/$defs/SessionId" },
346
+ "metadata": { "type": "object" },
347
+ "_meta": { "$ref": "#/$defs/Meta" }
348
+ },
349
+ "required": ["id", "type"],
350
+ "additionalProperties": false
351
+ },
352
+
353
+ "AgentState": {
354
+ "type": "string",
355
+ "description": "State of an agent. Standard states are enumerated; custom states use 'x-' prefix.",
356
+ "oneOf": [
357
+ {
358
+ "enum": [
359
+ "registered",
360
+ "active",
361
+ "busy",
362
+ "idle",
363
+ "suspended",
364
+ "stopping",
365
+ "stopped",
366
+ "failed"
367
+ ]
368
+ },
369
+ {
370
+ "type": "string",
371
+ "pattern": "^x-[a-z][a-z0-9-]*$",
372
+ "description": "Custom state with x- prefix"
373
+ }
374
+ ]
375
+ },
376
+ "AgentRelationship": {
377
+ "type": "object",
378
+ "description": "A relationship between agents",
379
+ "properties": {
380
+ "type": {
381
+ "type": "string",
382
+ "enum": ["peer", "supervisor", "supervised", "collaborator"],
383
+ "description": "Type of relationship"
384
+ },
385
+ "agentId": { "$ref": "#/$defs/AgentId" },
386
+ "metadata": { "type": "object" },
387
+ "_meta": { "$ref": "#/$defs/Meta" }
388
+ },
389
+ "required": ["type", "agentId"],
390
+ "additionalProperties": false
391
+ },
392
+ "AgentLifecycle": {
393
+ "type": "object",
394
+ "description": "Lifecycle metadata for an agent",
395
+ "properties": {
396
+ "createdAt": { "$ref": "#/$defs/Timestamp" },
397
+ "startedAt": { "$ref": "#/$defs/Timestamp" },
398
+ "stoppedAt": { "$ref": "#/$defs/Timestamp" },
399
+ "lastActiveAt": { "$ref": "#/$defs/Timestamp" },
400
+ "exitCode": { "type": "integer" },
401
+ "exitReason": { "type": "string" },
402
+ "_meta": { "$ref": "#/$defs/Meta" }
403
+ },
404
+ "additionalProperties": false
405
+ },
406
+ "AgentVisibility": {
407
+ "type": "string",
408
+ "enum": ["public", "parent-only", "scope", "system"],
409
+ "description": "Who can see this agent"
410
+ },
411
+ "Agent": {
412
+ "type": "object",
413
+ "description": "An agent in the multi-agent system",
414
+ "properties": {
415
+ "id": { "$ref": "#/$defs/AgentId" },
416
+ "name": { "type": "string" },
417
+ "description": { "type": "string" },
418
+ "parent": { "$ref": "#/$defs/AgentId" },
419
+ "relationships": {
420
+ "type": "array",
421
+ "items": { "$ref": "#/$defs/AgentRelationship" }
422
+ },
423
+ "state": { "$ref": "#/$defs/AgentState" },
424
+ "role": { "type": "string" },
425
+ "scopes": {
426
+ "type": "array",
427
+ "items": { "$ref": "#/$defs/ScopeId" }
428
+ },
429
+ "visibility": { "$ref": "#/$defs/AgentVisibility" },
430
+ "lifecycle": { "$ref": "#/$defs/AgentLifecycle" },
431
+ "capabilities": { "$ref": "#/$defs/ParticipantCapabilities" },
432
+ "capabilityDescriptor": { "$ref": "#/$defs/MAPAgentCapabilityDescriptor" },
433
+ "environment": { "$ref": "#/$defs/AgentEnvironment" },
434
+ "metadata": { "type": "object" },
435
+ "_meta": { "$ref": "#/$defs/Meta" }
436
+ },
437
+ "required": ["id", "state"],
438
+ "additionalProperties": false
439
+ },
440
+
441
+ "AgentEnvironment": {
442
+ "type": "object",
443
+ "description": "Compute environment information for an agent. Category names are normative; field conventions within categories are documented separately.",
444
+ "properties": {
445
+ "schemaVersion": { "type": "string", "description": "Schema version (e.g., '1.0')" },
446
+ "profiles": { "type": "array", "items": { "type": "string" }, "description": "Self-declared profile compliance" },
447
+ "host": { "type": "object", "additionalProperties": true, "description": "Host/machine info (arch, cpu, memory, gpu)" },
448
+ "os": { "type": "object", "additionalProperties": true, "description": "Operating system info (type, version)" },
449
+ "process": { "type": "object", "additionalProperties": true, "description": "Process/runtime info (pid, cwd, runtime)" },
450
+ "container": { "type": "object", "additionalProperties": true, "description": "Container info if containerized" },
451
+ "cloud": { "type": "object", "additionalProperties": true, "description": "Cloud provider info (provider, region)" },
452
+ "k8s": { "type": "object", "additionalProperties": true, "description": "Kubernetes info if in k8s" },
453
+ "filesystem": { "type": "object", "additionalProperties": true, "description": "Filesystem/workspace info (cwd, mounts, workspace)" },
454
+ "network": { "type": "object", "additionalProperties": true, "description": "Network info (connectivity, addresses)" },
455
+ "tools": { "type": "object", "additionalProperties": true, "description": "Available tools and runtimes" },
456
+ "resources": { "type": "object", "additionalProperties": true, "description": "Resource limits and constraints" },
457
+ "security": { "type": "object", "additionalProperties": true, "description": "Security/isolation context" },
458
+ "services": { "type": "object", "additionalProperties": true, "description": "External services and APIs (aiProviders, mcp)" }
459
+ },
460
+ "additionalProperties": true
461
+ },
462
+
463
+ "Address": {
464
+ "description": "Flexible addressing for any topology",
465
+ "oneOf": [
466
+ {
467
+ "type": "string",
468
+ "description": "Shorthand: agent ID"
469
+ },
470
+ { "$ref": "#/$defs/DirectAddress" },
471
+ { "$ref": "#/$defs/MultiAddress" },
472
+ { "$ref": "#/$defs/ScopeAddress" },
473
+ { "$ref": "#/$defs/RoleAddress" },
474
+ { "$ref": "#/$defs/HierarchicalAddress" },
475
+ { "$ref": "#/$defs/BroadcastAddress" },
476
+ { "$ref": "#/$defs/SystemAddress" },
477
+ { "$ref": "#/$defs/ParticipantAddress" },
478
+ { "$ref": "#/$defs/FederatedAddress" }
479
+ ]
480
+ },
481
+ "DirectAddress": {
482
+ "type": "object",
483
+ "description": "Address a single agent directly",
484
+ "properties": {
485
+ "agent": { "$ref": "#/$defs/AgentId" }
486
+ },
487
+ "required": ["agent"],
488
+ "additionalProperties": false
489
+ },
490
+ "MultiAddress": {
491
+ "type": "object",
492
+ "description": "Address multiple agents",
493
+ "properties": {
494
+ "agents": {
495
+ "type": "array",
496
+ "items": { "$ref": "#/$defs/AgentId" },
497
+ "minItems": 1
498
+ }
499
+ },
500
+ "required": ["agents"],
501
+ "additionalProperties": false
502
+ },
503
+ "ScopeAddress": {
504
+ "type": "object",
505
+ "description": "Address all agents in a scope",
506
+ "properties": {
507
+ "scope": { "$ref": "#/$defs/ScopeId" }
508
+ },
509
+ "required": ["scope"],
510
+ "additionalProperties": false
511
+ },
512
+ "RoleAddress": {
513
+ "type": "object",
514
+ "description": "Address agents by role, optionally within a scope",
515
+ "properties": {
516
+ "role": { "type": "string" },
517
+ "within": { "$ref": "#/$defs/ScopeId" }
518
+ },
519
+ "required": ["role"],
520
+ "additionalProperties": false
521
+ },
522
+ "HierarchicalAddress": {
523
+ "type": "object",
524
+ "description": "Address relative to sender in hierarchy",
525
+ "properties": {
526
+ "parent": {
527
+ "type": "boolean",
528
+ "const": true,
529
+ "description": "Address sender's parent"
530
+ },
531
+ "children": {
532
+ "type": "boolean",
533
+ "const": true,
534
+ "description": "Address sender's children"
535
+ },
536
+ "ancestors": {
537
+ "type": "boolean",
538
+ "const": true,
539
+ "description": "Address ancestors up the tree"
540
+ },
541
+ "descendants": {
542
+ "type": "boolean",
543
+ "const": true,
544
+ "description": "Address descendants down the tree"
545
+ },
546
+ "siblings": {
547
+ "type": "boolean",
548
+ "const": true,
549
+ "description": "Address agents with same parent"
550
+ },
551
+ "depth": {
552
+ "type": "integer",
553
+ "minimum": 1,
554
+ "description": "Limit depth for children/ancestors/descendants"
555
+ }
556
+ },
557
+ "oneOf": [
558
+ { "required": ["parent"] },
559
+ { "required": ["children"] },
560
+ { "required": ["ancestors"] },
561
+ { "required": ["descendants"] },
562
+ { "required": ["siblings"] }
563
+ ],
564
+ "additionalProperties": false
565
+ },
566
+ "BroadcastAddress": {
567
+ "type": "object",
568
+ "description": "Address all agents in the system",
569
+ "properties": {
570
+ "broadcast": {
571
+ "type": "boolean",
572
+ "const": true
573
+ }
574
+ },
575
+ "required": ["broadcast"],
576
+ "additionalProperties": false
577
+ },
578
+ "SystemAddress": {
579
+ "type": "object",
580
+ "description": "Address the system/router itself",
581
+ "properties": {
582
+ "system": {
583
+ "type": "boolean",
584
+ "const": true
585
+ }
586
+ },
587
+ "required": ["system"],
588
+ "additionalProperties": false
589
+ },
590
+ "ParticipantAddress": {
591
+ "type": "object",
592
+ "description": "Address any participant by ID or category",
593
+ "properties": {
594
+ "participant": { "$ref": "#/$defs/ParticipantId" },
595
+ "participants": {
596
+ "type": "string",
597
+ "enum": ["all", "agents", "clients"]
598
+ }
599
+ },
600
+ "oneOf": [
601
+ { "required": ["participant"] },
602
+ { "required": ["participants"] }
603
+ ],
604
+ "additionalProperties": false
605
+ },
606
+ "FederatedAddress": {
607
+ "type": "object",
608
+ "description": "Address an agent in a federated system",
609
+ "properties": {
610
+ "system": {
611
+ "type": "string",
612
+ "description": "Target system identifier"
613
+ },
614
+ "agent": { "$ref": "#/$defs/AgentId" }
615
+ },
616
+ "required": ["system", "agent"],
617
+ "additionalProperties": false
618
+ },
619
+
620
+ "MessagePriority": {
621
+ "type": "string",
622
+ "enum": ["urgent", "high", "normal", "low"],
623
+ "default": "normal"
624
+ },
625
+ "DeliverySemantics": {
626
+ "type": "string",
627
+ "enum": ["fire-and-forget", "acknowledged", "guaranteed"],
628
+ "default": "fire-and-forget",
629
+ "description": "Message delivery guarantees"
630
+ },
631
+ "MessageRelationship": {
632
+ "type": "string",
633
+ "enum": ["parent-to-child", "child-to-parent", "peer", "broadcast"],
634
+ "description": "Relationship context for the message"
635
+ },
636
+ "MessageMeta": {
637
+ "type": "object",
638
+ "description": "Metadata for a message",
639
+ "properties": {
640
+ "timestamp": { "$ref": "#/$defs/Timestamp" },
641
+ "relationship": { "$ref": "#/$defs/MessageRelationship" },
642
+ "expectsResponse": { "type": "boolean" },
643
+ "correlationId": { "$ref": "#/$defs/CorrelationId" },
644
+ "isResult": { "type": "boolean" },
645
+ "priority": { "$ref": "#/$defs/MessagePriority" },
646
+ "delivery": { "$ref": "#/$defs/DeliverySemantics" },
647
+ "ttlMs": {
648
+ "type": "integer",
649
+ "description": "Time-to-live in milliseconds"
650
+ },
651
+ "mail": {
652
+ "$ref": "#/$defs/MailMessageMeta",
653
+ "description": "Mail turn tracking metadata. When present on map/send, an intercepted turn is recorded."
654
+ },
655
+ "_meta": { "$ref": "#/$defs/Meta" }
656
+ },
657
+ "additionalProperties": false
658
+ },
659
+ "Message": {
660
+ "type": "object",
661
+ "description": "A message in the multi-agent system",
662
+ "properties": {
663
+ "id": { "$ref": "#/$defs/MessageId" },
664
+ "from": { "$ref": "#/$defs/ParticipantId" },
665
+ "to": { "$ref": "#/$defs/Address" },
666
+ "payload": {
667
+ "description": "Message payload - structure depends on use case"
668
+ },
669
+ "meta": { "$ref": "#/$defs/MessageMeta" },
670
+ "_meta": { "$ref": "#/$defs/Meta" }
671
+ },
672
+ "required": ["id", "from", "to"],
673
+ "additionalProperties": false
674
+ },
675
+
676
+ "JoinPolicy": {
677
+ "type": "string",
678
+ "enum": ["open", "invite", "role", "system"],
679
+ "description": "Policy for joining a scope"
680
+ },
681
+ "ScopeVisibility": {
682
+ "type": "string",
683
+ "enum": ["public", "members", "system"],
684
+ "description": "Who can see the scope exists and its members"
685
+ },
686
+ "MessageVisibility": {
687
+ "type": "string",
688
+ "enum": ["public", "members", "system"],
689
+ "description": "Who can see messages sent to this scope"
690
+ },
691
+ "SendPolicy": {
692
+ "type": "string",
693
+ "enum": ["members", "any"],
694
+ "description": "Who can send messages to this scope"
695
+ },
696
+ "Scope": {
697
+ "type": "object",
698
+ "description": "A scope for grouping agents",
699
+ "properties": {
700
+ "id": { "$ref": "#/$defs/ScopeId" },
701
+ "name": { "type": "string" },
702
+ "description": { "type": "string" },
703
+ "parent": { "$ref": "#/$defs/ScopeId" },
704
+ "joinPolicy": { "$ref": "#/$defs/JoinPolicy" },
705
+ "autoJoinRoles": {
706
+ "type": "array",
707
+ "items": { "type": "string" },
708
+ "description": "Roles that auto-join this scope"
709
+ },
710
+ "visibility": { "$ref": "#/$defs/ScopeVisibility" },
711
+ "messageVisibility": { "$ref": "#/$defs/MessageVisibility" },
712
+ "sendPolicy": { "$ref": "#/$defs/SendPolicy" },
713
+ "persistent": {
714
+ "type": "boolean",
715
+ "default": true,
716
+ "description": "Survives system restart"
717
+ },
718
+ "autoDelete": {
719
+ "type": "boolean",
720
+ "default": false,
721
+ "description": "Delete when empty"
722
+ },
723
+ "metadata": { "type": "object" },
724
+ "_meta": { "$ref": "#/$defs/Meta" }
725
+ },
726
+ "required": ["id"],
727
+ "additionalProperties": false
728
+ },
729
+
730
+ "EventType": {
731
+ "type": "string",
732
+ "enum": [
733
+ "agent_registered",
734
+ "agent_state_changed",
735
+ "agent_environment_changed",
736
+ "agent_unregistered",
737
+ "message_sent",
738
+ "message_delivered",
739
+ "message_failed",
740
+ "scope_created",
741
+ "scope_deleted",
742
+ "scope_member_joined",
743
+ "scope_member_left",
744
+ "system_error",
745
+ "federation_connected",
746
+ "federation_disconnected",
747
+ "mail.created",
748
+ "mail.closed",
749
+ "mail.participant.joined",
750
+ "mail.participant.left",
751
+ "mail.turn.added",
752
+ "mail.turn.updated",
753
+ "mail.thread.created",
754
+ "mail.summary.generated"
755
+ ],
756
+ "description": "Type of system event"
757
+ },
758
+ "Event": {
759
+ "type": "object",
760
+ "description": "A system event",
761
+ "properties": {
762
+ "id": { "type": "string" },
763
+ "type": { "$ref": "#/$defs/EventType" },
764
+ "timestamp": { "$ref": "#/$defs/Timestamp" },
765
+ "source": { "$ref": "#/$defs/ParticipantId" },
766
+ "data": {
767
+ "type": "object",
768
+ "description": "Event-specific data"
769
+ },
770
+ "causedBy": {
771
+ "type": "array",
772
+ "items": { "type": "string" },
773
+ "description": "IDs of events that caused this one (causal ordering)"
774
+ },
775
+ "_meta": { "$ref": "#/$defs/Meta" }
776
+ },
777
+ "required": ["id", "type", "timestamp"],
778
+ "additionalProperties": false
779
+ },
780
+ "SubscriptionFilter": {
781
+ "type": "object",
782
+ "description": "Filter for event subscriptions",
783
+ "properties": {
784
+ "agents": {
785
+ "type": "array",
786
+ "items": { "$ref": "#/$defs/AgentId" },
787
+ "description": "Only events from these agents"
788
+ },
789
+ "roles": {
790
+ "type": "array",
791
+ "items": { "type": "string" },
792
+ "description": "Only events from agents with these roles"
793
+ },
794
+ "scopes": {
795
+ "type": "array",
796
+ "items": { "$ref": "#/$defs/ScopeId" },
797
+ "description": "Only events in these scopes"
798
+ },
799
+ "eventTypes": {
800
+ "type": "array",
801
+ "items": { "$ref": "#/$defs/EventType" },
802
+ "description": "Only these event types"
803
+ },
804
+ "priorities": {
805
+ "type": "array",
806
+ "items": { "$ref": "#/$defs/MessagePriority" },
807
+ "description": "Only events with these priorities"
808
+ },
809
+ "mail": {
810
+ "$ref": "#/$defs/MailSubscriptionFilter",
811
+ "description": "Mail-specific filter for conversation events"
812
+ },
813
+ "environmentMatch": {
814
+ "type": "object",
815
+ "description": "Filter by agent environment attributes (e.g., 'os.type', 'cloud.region', 'network.connectivity')",
816
+ "additionalProperties": true
817
+ },
818
+ "_meta": { "$ref": "#/$defs/Meta" }
819
+ },
820
+ "additionalProperties": false
821
+ },
822
+ "Subscription": {
823
+ "type": "object",
824
+ "description": "An active event subscription",
825
+ "properties": {
826
+ "id": { "$ref": "#/$defs/SubscriptionId" },
827
+ "filter": { "$ref": "#/$defs/SubscriptionFilter" },
828
+ "createdAt": { "$ref": "#/$defs/Timestamp" },
829
+ "replayFrom": {
830
+ "oneOf": [
831
+ { "$ref": "#/$defs/Timestamp" },
832
+ { "type": "string", "description": "Event ID to replay from" }
833
+ ],
834
+ "description": "Replay missed events from this point"
835
+ },
836
+ "_meta": { "$ref": "#/$defs/Meta" }
837
+ },
838
+ "required": ["id"],
839
+ "additionalProperties": false
840
+ },
841
+
842
+ "ConnectRequest": {
843
+ "type": "object",
844
+ "x-method": "map/connect",
845
+ "x-tier": "core",
846
+ "description": "Connect to the MAP system and negotiate capabilities",
847
+ "properties": {
848
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
849
+ "id": { "$ref": "#/$defs/RequestId" },
850
+ "method": { "const": "map/connect" },
851
+ "params": {
852
+ "type": "object",
853
+ "properties": {
854
+ "protocolVersion": { "$ref": "#/$defs/ProtocolVersion" },
855
+ "participantType": { "$ref": "#/$defs/ParticipantType" },
856
+ "participantId": { "$ref": "#/$defs/ParticipantId" },
857
+ "name": { "type": "string" },
858
+ "capabilities": { "$ref": "#/$defs/ParticipantCapabilities" },
859
+ "sessionId": {
860
+ "$ref": "#/$defs/SessionId",
861
+ "description": "Optional session to reconnect to"
862
+ },
863
+ "auth": {
864
+ "type": "object",
865
+ "properties": {
866
+ "method": {
867
+ "type": "string",
868
+ "oneOf": [
869
+ { "enum": ["bearer", "api-key", "mtls", "none"] },
870
+ { "type": "string", "pattern": "^x-" }
871
+ ]
872
+ },
873
+ "token": { "type": "string" }
874
+ }
875
+ },
876
+ "_meta": { "$ref": "#/$defs/Meta" }
877
+ },
878
+ "required": ["protocolVersion", "participantType"]
879
+ }
880
+ },
881
+ "required": ["jsonrpc", "id", "method", "params"]
882
+ },
883
+ "ConnectResponse": {
884
+ "type": "object",
885
+ "description": "Response to map/connect",
886
+ "properties": {
887
+ "protocolVersion": { "$ref": "#/$defs/ProtocolVersion" },
888
+ "sessionId": { "$ref": "#/$defs/SessionId" },
889
+ "participantId": { "$ref": "#/$defs/ParticipantId" },
890
+ "capabilities": { "$ref": "#/$defs/ParticipantCapabilities" },
891
+ "systemInfo": {
892
+ "type": "object",
893
+ "properties": {
894
+ "name": { "type": "string" },
895
+ "version": { "type": "string" }
896
+ }
897
+ },
898
+ "serverEnvironment": {
899
+ "$ref": "#/$defs/AgentEnvironment",
900
+ "description": "Server's compute environment (if relevant)"
901
+ },
902
+ "_meta": { "$ref": "#/$defs/Meta" }
903
+ },
904
+ "required": ["protocolVersion", "sessionId", "participantId", "capabilities"]
905
+ },
906
+ "DisconnectRequest": {
907
+ "type": "object",
908
+ "x-method": "map/disconnect",
909
+ "x-tier": "core",
910
+ "description": "Gracefully disconnect from the MAP system",
911
+ "properties": {
912
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
913
+ "id": { "$ref": "#/$defs/RequestId" },
914
+ "method": { "const": "map/disconnect" },
915
+ "params": {
916
+ "type": "object",
917
+ "properties": {
918
+ "reason": { "type": "string" },
919
+ "_meta": { "$ref": "#/$defs/Meta" }
920
+ }
921
+ }
922
+ },
923
+ "required": ["jsonrpc", "id", "method"]
924
+ },
925
+ "DisconnectResponse": {
926
+ "type": "object",
927
+ "description": "Response to map/disconnect",
928
+ "properties": {
929
+ "acknowledged": { "type": "boolean" },
930
+ "_meta": { "$ref": "#/$defs/Meta" }
931
+ },
932
+ "required": ["acknowledged"]
933
+ },
934
+
935
+ "SessionListRequest": {
936
+ "type": "object",
937
+ "x-method": "map/session/list",
938
+ "x-tier": "core",
939
+ "description": "List participant's sessions",
940
+ "properties": {
941
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
942
+ "id": { "$ref": "#/$defs/RequestId" },
943
+ "method": { "const": "map/session/list" },
944
+ "params": {
945
+ "type": "object",
946
+ "properties": {
947
+ "_meta": { "$ref": "#/$defs/Meta" }
948
+ }
949
+ }
950
+ },
951
+ "required": ["jsonrpc", "id", "method"]
952
+ },
953
+ "SessionListResponse": {
954
+ "type": "object",
955
+ "description": "Response to map/session/list",
956
+ "properties": {
957
+ "sessions": {
958
+ "type": "array",
959
+ "items": {
960
+ "type": "object",
961
+ "properties": {
962
+ "id": { "$ref": "#/$defs/SessionId" },
963
+ "createdAt": { "$ref": "#/$defs/Timestamp" },
964
+ "lastActiveAt": { "$ref": "#/$defs/Timestamp" }
965
+ },
966
+ "required": ["id", "createdAt"]
967
+ }
968
+ },
969
+ "_meta": { "$ref": "#/$defs/Meta" }
970
+ },
971
+ "required": ["sessions"]
972
+ },
973
+ "SessionLoadRequest": {
974
+ "type": "object",
975
+ "x-method": "map/session/load",
976
+ "x-tier": "core",
977
+ "description": "Load/reconnect to an existing session",
978
+ "properties": {
979
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
980
+ "id": { "$ref": "#/$defs/RequestId" },
981
+ "method": { "const": "map/session/load" },
982
+ "params": {
983
+ "type": "object",
984
+ "properties": {
985
+ "sessionId": { "$ref": "#/$defs/SessionId" },
986
+ "_meta": { "$ref": "#/$defs/Meta" }
987
+ },
988
+ "required": ["sessionId"]
989
+ }
990
+ },
991
+ "required": ["jsonrpc", "id", "method", "params"]
992
+ },
993
+ "SessionLoadResponse": {
994
+ "type": "object",
995
+ "description": "Response to map/session/load",
996
+ "properties": {
997
+ "sessionId": { "$ref": "#/$defs/SessionId" },
998
+ "restored": { "type": "boolean" },
999
+ "_meta": { "$ref": "#/$defs/Meta" }
1000
+ },
1001
+ "required": ["sessionId", "restored"]
1002
+ },
1003
+ "SessionCloseRequest": {
1004
+ "type": "object",
1005
+ "x-method": "map/session/close",
1006
+ "x-tier": "core",
1007
+ "description": "Explicitly end a session",
1008
+ "properties": {
1009
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1010
+ "id": { "$ref": "#/$defs/RequestId" },
1011
+ "method": { "const": "map/session/close" },
1012
+ "params": {
1013
+ "type": "object",
1014
+ "properties": {
1015
+ "sessionId": { "$ref": "#/$defs/SessionId" },
1016
+ "_meta": { "$ref": "#/$defs/Meta" }
1017
+ }
1018
+ }
1019
+ },
1020
+ "required": ["jsonrpc", "id", "method"]
1021
+ },
1022
+ "SessionCloseResponse": {
1023
+ "type": "object",
1024
+ "description": "Response to map/session/close",
1025
+ "properties": {
1026
+ "closed": { "type": "boolean" },
1027
+ "_meta": { "$ref": "#/$defs/Meta" }
1028
+ },
1029
+ "required": ["closed"]
1030
+ },
1031
+
1032
+ "AgentsListRequest": {
1033
+ "type": "object",
1034
+ "x-method": "map/agents/list",
1035
+ "x-tier": "core",
1036
+ "description": "List agents with optional filters",
1037
+ "properties": {
1038
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1039
+ "id": { "$ref": "#/$defs/RequestId" },
1040
+ "method": { "const": "map/agents/list" },
1041
+ "params": {
1042
+ "type": "object",
1043
+ "properties": {
1044
+ "filter": {
1045
+ "type": "object",
1046
+ "properties": {
1047
+ "states": {
1048
+ "type": "array",
1049
+ "items": { "$ref": "#/$defs/AgentState" }
1050
+ },
1051
+ "roles": {
1052
+ "type": "array",
1053
+ "items": { "type": "string" }
1054
+ },
1055
+ "scopes": {
1056
+ "type": "array",
1057
+ "items": { "$ref": "#/$defs/ScopeId" }
1058
+ },
1059
+ "parent": { "$ref": "#/$defs/AgentId" },
1060
+ "hasChildren": { "type": "boolean" },
1061
+ "capabilityId": {
1062
+ "type": "string",
1063
+ "description": "Filter by structured capability ID from capabilityDescriptor"
1064
+ },
1065
+ "tags": {
1066
+ "type": "array",
1067
+ "items": { "type": "string" },
1068
+ "description": "Filter by semantic tags from capabilityDescriptor"
1069
+ },
1070
+ "accepts": {
1071
+ "type": "string",
1072
+ "description": "Filter by accepted content type from capabilityDescriptor (MIME type)"
1073
+ }
1074
+ }
1075
+ },
1076
+ "limit": { "type": "integer", "minimum": 1 },
1077
+ "cursor": { "type": "string" },
1078
+ "_meta": { "$ref": "#/$defs/Meta" }
1079
+ }
1080
+ }
1081
+ },
1082
+ "required": ["jsonrpc", "id", "method"]
1083
+ },
1084
+ "AgentsListResponse": {
1085
+ "type": "object",
1086
+ "description": "Response to map/agents/list",
1087
+ "properties": {
1088
+ "agents": {
1089
+ "type": "array",
1090
+ "items": { "$ref": "#/$defs/Agent" }
1091
+ },
1092
+ "nextCursor": { "type": "string" },
1093
+ "_meta": { "$ref": "#/$defs/Meta" }
1094
+ },
1095
+ "required": ["agents"]
1096
+ },
1097
+ "AgentsGetRequest": {
1098
+ "type": "object",
1099
+ "x-method": "map/agents/get",
1100
+ "x-tier": "core",
1101
+ "description": "Get details for a single agent",
1102
+ "properties": {
1103
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1104
+ "id": { "$ref": "#/$defs/RequestId" },
1105
+ "method": { "const": "map/agents/get" },
1106
+ "params": {
1107
+ "type": "object",
1108
+ "properties": {
1109
+ "agentId": { "$ref": "#/$defs/AgentId" },
1110
+ "_meta": { "$ref": "#/$defs/Meta" }
1111
+ },
1112
+ "required": ["agentId"]
1113
+ }
1114
+ },
1115
+ "required": ["jsonrpc", "id", "method", "params"]
1116
+ },
1117
+ "AgentsGetResponse": {
1118
+ "type": "object",
1119
+ "description": "Response to map/agents/get",
1120
+ "properties": {
1121
+ "agent": { "$ref": "#/$defs/Agent" },
1122
+ "_meta": { "$ref": "#/$defs/Meta" }
1123
+ },
1124
+ "required": ["agent"]
1125
+ },
1126
+
1127
+ "SendRequest": {
1128
+ "type": "object",
1129
+ "x-method": "map/send",
1130
+ "x-tier": "core",
1131
+ "description": "Send a message to an address",
1132
+ "properties": {
1133
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1134
+ "id": { "$ref": "#/$defs/RequestId" },
1135
+ "method": { "const": "map/send" },
1136
+ "params": {
1137
+ "type": "object",
1138
+ "properties": {
1139
+ "to": { "$ref": "#/$defs/Address" },
1140
+ "payload": {},
1141
+ "meta": { "$ref": "#/$defs/MessageMeta" },
1142
+ "_meta": { "$ref": "#/$defs/Meta" }
1143
+ },
1144
+ "required": ["to"]
1145
+ }
1146
+ },
1147
+ "required": ["jsonrpc", "id", "method", "params"]
1148
+ },
1149
+ "SendResponse": {
1150
+ "type": "object",
1151
+ "description": "Response to map/send",
1152
+ "properties": {
1153
+ "messageId": { "$ref": "#/$defs/MessageId" },
1154
+ "delivered": {
1155
+ "type": "array",
1156
+ "items": { "$ref": "#/$defs/ParticipantId" },
1157
+ "description": "Participants the message was delivered to"
1158
+ },
1159
+ "_meta": { "$ref": "#/$defs/Meta" }
1160
+ },
1161
+ "required": ["messageId"]
1162
+ },
1163
+
1164
+ "SubscribeRequest": {
1165
+ "type": "object",
1166
+ "x-method": "map/subscribe",
1167
+ "x-tier": "core",
1168
+ "description": "Subscribe to event streams",
1169
+ "properties": {
1170
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1171
+ "id": { "$ref": "#/$defs/RequestId" },
1172
+ "method": { "const": "map/subscribe" },
1173
+ "params": {
1174
+ "type": "object",
1175
+ "properties": {
1176
+ "filter": { "$ref": "#/$defs/SubscriptionFilter" },
1177
+ "replayFrom": {
1178
+ "oneOf": [
1179
+ { "$ref": "#/$defs/Timestamp" },
1180
+ { "type": "string" }
1181
+ ]
1182
+ },
1183
+ "_meta": { "$ref": "#/$defs/Meta" }
1184
+ }
1185
+ }
1186
+ },
1187
+ "required": ["jsonrpc", "id", "method"]
1188
+ },
1189
+ "SubscribeResponse": {
1190
+ "type": "object",
1191
+ "description": "Response to map/subscribe",
1192
+ "properties": {
1193
+ "subscriptionId": { "$ref": "#/$defs/SubscriptionId" },
1194
+ "_meta": { "$ref": "#/$defs/Meta" }
1195
+ },
1196
+ "required": ["subscriptionId"]
1197
+ },
1198
+ "UnsubscribeRequest": {
1199
+ "type": "object",
1200
+ "x-method": "map/unsubscribe",
1201
+ "x-tier": "core",
1202
+ "description": "Unsubscribe from event streams",
1203
+ "properties": {
1204
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1205
+ "id": { "$ref": "#/$defs/RequestId" },
1206
+ "method": { "const": "map/unsubscribe" },
1207
+ "params": {
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "subscriptionId": { "$ref": "#/$defs/SubscriptionId" },
1211
+ "_meta": { "$ref": "#/$defs/Meta" }
1212
+ },
1213
+ "required": ["subscriptionId"]
1214
+ }
1215
+ },
1216
+ "required": ["jsonrpc", "id", "method", "params"]
1217
+ },
1218
+ "UnsubscribeResponse": {
1219
+ "type": "object",
1220
+ "description": "Response to map/unsubscribe",
1221
+ "properties": {
1222
+ "unsubscribed": { "type": "boolean" },
1223
+ "_meta": { "$ref": "#/$defs/Meta" }
1224
+ },
1225
+ "required": ["unsubscribed"]
1226
+ },
1227
+
1228
+ "AuthRefreshRequest": {
1229
+ "type": "object",
1230
+ "x-method": "map/auth/refresh",
1231
+ "x-tier": "core",
1232
+ "description": "Refresh authentication token in-band",
1233
+ "properties": {
1234
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1235
+ "id": { "$ref": "#/$defs/RequestId" },
1236
+ "method": { "const": "map/auth/refresh" },
1237
+ "params": {
1238
+ "type": "object",
1239
+ "properties": {
1240
+ "refreshToken": { "type": "string" },
1241
+ "_meta": { "$ref": "#/$defs/Meta" }
1242
+ },
1243
+ "required": ["refreshToken"]
1244
+ }
1245
+ },
1246
+ "required": ["jsonrpc", "id", "method", "params"]
1247
+ },
1248
+ "AuthRefreshResponse": {
1249
+ "type": "object",
1250
+ "description": "Response to map/auth/refresh",
1251
+ "properties": {
1252
+ "accessToken": { "type": "string" },
1253
+ "expiresAt": { "$ref": "#/$defs/Timestamp" },
1254
+ "refreshToken": { "type": "string" },
1255
+ "_meta": { "$ref": "#/$defs/Meta" }
1256
+ },
1257
+ "required": ["accessToken", "expiresAt"]
1258
+ },
1259
+
1260
+ "AgentsRegisterRequest": {
1261
+ "type": "object",
1262
+ "x-method": "map/agents/register",
1263
+ "x-tier": "structure",
1264
+ "description": "Register a new agent in the system",
1265
+ "properties": {
1266
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1267
+ "id": { "$ref": "#/$defs/RequestId" },
1268
+ "method": { "const": "map/agents/register" },
1269
+ "params": {
1270
+ "type": "object",
1271
+ "properties": {
1272
+ "agentId": { "$ref": "#/$defs/AgentId" },
1273
+ "name": { "type": "string" },
1274
+ "description": { "type": "string" },
1275
+ "role": { "type": "string" },
1276
+ "parent": { "$ref": "#/$defs/AgentId" },
1277
+ "scopes": {
1278
+ "type": "array",
1279
+ "items": { "$ref": "#/$defs/ScopeId" }
1280
+ },
1281
+ "visibility": { "$ref": "#/$defs/AgentVisibility" },
1282
+ "capabilities": { "$ref": "#/$defs/ParticipantCapabilities" },
1283
+ "capabilityDescriptor": { "$ref": "#/$defs/MAPAgentCapabilityDescriptor" },
1284
+ "environment": { "$ref": "#/$defs/AgentEnvironment" },
1285
+ "metadata": { "type": "object" },
1286
+ "_meta": { "$ref": "#/$defs/Meta" }
1287
+ }
1288
+ }
1289
+ },
1290
+ "required": ["jsonrpc", "id", "method"]
1291
+ },
1292
+ "AgentsRegisterResponse": {
1293
+ "type": "object",
1294
+ "description": "Response to map/agents/register",
1295
+ "properties": {
1296
+ "agent": { "$ref": "#/$defs/Agent" },
1297
+ "_meta": { "$ref": "#/$defs/Meta" }
1298
+ },
1299
+ "required": ["agent"]
1300
+ },
1301
+ "AgentsSpawnRequest": {
1302
+ "type": "object",
1303
+ "x-method": "map/agents/spawn",
1304
+ "x-tier": "structure",
1305
+ "description": "Register agent and assign initial task atomically",
1306
+ "properties": {
1307
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1308
+ "id": { "$ref": "#/$defs/RequestId" },
1309
+ "method": { "const": "map/agents/spawn" },
1310
+ "params": {
1311
+ "type": "object",
1312
+ "properties": {
1313
+ "agentId": { "$ref": "#/$defs/AgentId" },
1314
+ "name": { "type": "string" },
1315
+ "description": { "type": "string" },
1316
+ "role": { "type": "string" },
1317
+ "parent": { "$ref": "#/$defs/AgentId" },
1318
+ "scopes": {
1319
+ "type": "array",
1320
+ "items": { "$ref": "#/$defs/ScopeId" }
1321
+ },
1322
+ "visibility": { "$ref": "#/$defs/AgentVisibility" },
1323
+ "capabilities": { "$ref": "#/$defs/ParticipantCapabilities" },
1324
+ "capabilityDescriptor": { "$ref": "#/$defs/MAPAgentCapabilityDescriptor" },
1325
+ "environment": { "$ref": "#/$defs/AgentEnvironment" },
1326
+ "initialMessage": { "$ref": "#/$defs/Message" },
1327
+ "metadata": { "type": "object" },
1328
+ "requestedScopes": {
1329
+ "type": "array",
1330
+ "items": { "type": "string" },
1331
+ "description": "Scopes to request for the delegated credential (defaults to parent's scopes)"
1332
+ },
1333
+ "ttlMinutes": {
1334
+ "type": "integer",
1335
+ "minimum": 1,
1336
+ "description": "TTL in minutes for the delegated credential"
1337
+ },
1338
+ "_meta": { "$ref": "#/$defs/Meta" }
1339
+ }
1340
+ }
1341
+ },
1342
+ "required": ["jsonrpc", "id", "method"]
1343
+ },
1344
+ "AgentsSpawnResponse": {
1345
+ "type": "object",
1346
+ "description": "Response to map/agents/spawn",
1347
+ "properties": {
1348
+ "agent": { "$ref": "#/$defs/Agent" },
1349
+ "messageId": { "$ref": "#/$defs/MessageId" },
1350
+ "delegatedCredentials": {
1351
+ "type": "object",
1352
+ "description": "Credentials delegated to the spawned child agent (when auth provider supports delegation)",
1353
+ "properties": {
1354
+ "method": { "type": "string", "description": "Auth method for the delegated credential" },
1355
+ "credentials": { "type": "object", "description": "The delegated credential data" },
1356
+ "env": {
1357
+ "type": "object",
1358
+ "additionalProperties": { "type": "string" },
1359
+ "description": "Environment variables for the child agent"
1360
+ }
1361
+ },
1362
+ "required": ["method", "credentials"]
1363
+ },
1364
+ "_meta": { "$ref": "#/$defs/Meta" }
1365
+ },
1366
+ "required": ["agent"]
1367
+ },
1368
+ "AgentsUnregisterRequest": {
1369
+ "type": "object",
1370
+ "x-method": "map/agents/unregister",
1371
+ "x-tier": "structure",
1372
+ "description": "Remove an agent from the system",
1373
+ "properties": {
1374
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1375
+ "id": { "$ref": "#/$defs/RequestId" },
1376
+ "method": { "const": "map/agents/unregister" },
1377
+ "params": {
1378
+ "type": "object",
1379
+ "properties": {
1380
+ "agentId": { "$ref": "#/$defs/AgentId" },
1381
+ "reason": { "type": "string" },
1382
+ "_meta": { "$ref": "#/$defs/Meta" }
1383
+ },
1384
+ "required": ["agentId"]
1385
+ }
1386
+ },
1387
+ "required": ["jsonrpc", "id", "method", "params"]
1388
+ },
1389
+ "AgentsUnregisterResponse": {
1390
+ "type": "object",
1391
+ "description": "Response to map/agents/unregister",
1392
+ "properties": {
1393
+ "unregistered": { "type": "boolean" },
1394
+ "_meta": { "$ref": "#/$defs/Meta" }
1395
+ },
1396
+ "required": ["unregistered"]
1397
+ },
1398
+ "AgentsUpdateRequest": {
1399
+ "type": "object",
1400
+ "x-method": "map/agents/update",
1401
+ "x-tier": "structure",
1402
+ "description": "Update agent state or metadata",
1403
+ "properties": {
1404
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1405
+ "id": { "$ref": "#/$defs/RequestId" },
1406
+ "method": { "const": "map/agents/update" },
1407
+ "params": {
1408
+ "type": "object",
1409
+ "properties": {
1410
+ "agentId": { "$ref": "#/$defs/AgentId" },
1411
+ "state": { "$ref": "#/$defs/AgentState" },
1412
+ "metadata": { "type": "object" },
1413
+ "_meta": { "$ref": "#/$defs/Meta" }
1414
+ },
1415
+ "required": ["agentId"]
1416
+ }
1417
+ },
1418
+ "required": ["jsonrpc", "id", "method", "params"]
1419
+ },
1420
+ "AgentsUpdateResponse": {
1421
+ "type": "object",
1422
+ "description": "Response to map/agents/update",
1423
+ "properties": {
1424
+ "agent": { "$ref": "#/$defs/Agent" },
1425
+ "_meta": { "$ref": "#/$defs/Meta" }
1426
+ },
1427
+ "required": ["agent"]
1428
+ },
1429
+ "AgentsStopRequest": {
1430
+ "type": "object",
1431
+ "x-method": "map/agents/stop",
1432
+ "x-tier": "structure",
1433
+ "description": "Request graceful agent stop",
1434
+ "properties": {
1435
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1436
+ "id": { "$ref": "#/$defs/RequestId" },
1437
+ "method": { "const": "map/agents/stop" },
1438
+ "params": {
1439
+ "type": "object",
1440
+ "properties": {
1441
+ "agentId": { "$ref": "#/$defs/AgentId" },
1442
+ "reason": { "type": "string" },
1443
+ "force": { "type": "boolean", "default": false },
1444
+ "_meta": { "$ref": "#/$defs/Meta" }
1445
+ },
1446
+ "required": ["agentId"]
1447
+ }
1448
+ },
1449
+ "required": ["jsonrpc", "id", "method", "params"]
1450
+ },
1451
+ "AgentsStopResponse": {
1452
+ "type": "object",
1453
+ "description": "Response to map/agents/stop",
1454
+ "properties": {
1455
+ "stopping": { "type": "boolean" },
1456
+ "agent": { "$ref": "#/$defs/Agent" },
1457
+ "_meta": { "$ref": "#/$defs/Meta" }
1458
+ },
1459
+ "required": ["stopping"]
1460
+ },
1461
+ "AgentsSuspendRequest": {
1462
+ "type": "object",
1463
+ "x-method": "map/agents/suspend",
1464
+ "x-tier": "structure",
1465
+ "description": "Pause an agent",
1466
+ "properties": {
1467
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1468
+ "id": { "$ref": "#/$defs/RequestId" },
1469
+ "method": { "const": "map/agents/suspend" },
1470
+ "params": {
1471
+ "type": "object",
1472
+ "properties": {
1473
+ "agentId": { "$ref": "#/$defs/AgentId" },
1474
+ "reason": { "type": "string" },
1475
+ "_meta": { "$ref": "#/$defs/Meta" }
1476
+ },
1477
+ "required": ["agentId"]
1478
+ }
1479
+ },
1480
+ "required": ["jsonrpc", "id", "method", "params"]
1481
+ },
1482
+ "AgentsSuspendResponse": {
1483
+ "type": "object",
1484
+ "description": "Response to map/agents/suspend",
1485
+ "properties": {
1486
+ "suspended": { "type": "boolean" },
1487
+ "agent": { "$ref": "#/$defs/Agent" },
1488
+ "_meta": { "$ref": "#/$defs/Meta" }
1489
+ },
1490
+ "required": ["suspended"]
1491
+ },
1492
+ "AgentsResumeRequest": {
1493
+ "type": "object",
1494
+ "x-method": "map/agents/resume",
1495
+ "x-tier": "structure",
1496
+ "description": "Resume a suspended agent",
1497
+ "properties": {
1498
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1499
+ "id": { "$ref": "#/$defs/RequestId" },
1500
+ "method": { "const": "map/agents/resume" },
1501
+ "params": {
1502
+ "type": "object",
1503
+ "properties": {
1504
+ "agentId": { "$ref": "#/$defs/AgentId" },
1505
+ "_meta": { "$ref": "#/$defs/Meta" }
1506
+ },
1507
+ "required": ["agentId"]
1508
+ }
1509
+ },
1510
+ "required": ["jsonrpc", "id", "method", "params"]
1511
+ },
1512
+ "AgentsResumeResponse": {
1513
+ "type": "object",
1514
+ "description": "Response to map/agents/resume",
1515
+ "properties": {
1516
+ "resumed": { "type": "boolean" },
1517
+ "agent": { "$ref": "#/$defs/Agent" },
1518
+ "_meta": { "$ref": "#/$defs/Meta" }
1519
+ },
1520
+ "required": ["resumed"]
1521
+ },
1522
+
1523
+ "StructureGraphRequest": {
1524
+ "type": "object",
1525
+ "x-method": "map/structure/graph",
1526
+ "x-tier": "structure",
1527
+ "description": "Get the agent relationship graph",
1528
+ "properties": {
1529
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1530
+ "id": { "$ref": "#/$defs/RequestId" },
1531
+ "method": { "const": "map/structure/graph" },
1532
+ "params": {
1533
+ "type": "object",
1534
+ "properties": {
1535
+ "rootAgentId": { "$ref": "#/$defs/AgentId" },
1536
+ "depth": { "type": "integer", "minimum": 1 },
1537
+ "includeRelationships": { "type": "boolean", "default": true },
1538
+ "_meta": { "$ref": "#/$defs/Meta" }
1539
+ }
1540
+ }
1541
+ },
1542
+ "required": ["jsonrpc", "id", "method"]
1543
+ },
1544
+ "StructureGraphResponse": {
1545
+ "type": "object",
1546
+ "description": "Response to map/structure/graph",
1547
+ "properties": {
1548
+ "nodes": {
1549
+ "type": "array",
1550
+ "items": { "$ref": "#/$defs/Agent" }
1551
+ },
1552
+ "edges": {
1553
+ "type": "array",
1554
+ "items": {
1555
+ "type": "object",
1556
+ "properties": {
1557
+ "from": { "$ref": "#/$defs/AgentId" },
1558
+ "to": { "$ref": "#/$defs/AgentId" },
1559
+ "type": {
1560
+ "type": "string",
1561
+ "enum": ["parent-child", "peer", "supervisor", "collaborator"]
1562
+ }
1563
+ },
1564
+ "required": ["from", "to", "type"]
1565
+ }
1566
+ },
1567
+ "_meta": { "$ref": "#/$defs/Meta" }
1568
+ },
1569
+ "required": ["nodes", "edges"]
1570
+ },
1571
+
1572
+ "ScopesListRequest": {
1573
+ "type": "object",
1574
+ "x-method": "map/scopes/list",
1575
+ "x-tier": "structure",
1576
+ "description": "List all scopes",
1577
+ "properties": {
1578
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1579
+ "id": { "$ref": "#/$defs/RequestId" },
1580
+ "method": { "const": "map/scopes/list" },
1581
+ "params": {
1582
+ "type": "object",
1583
+ "properties": {
1584
+ "parent": { "$ref": "#/$defs/ScopeId" },
1585
+ "_meta": { "$ref": "#/$defs/Meta" }
1586
+ }
1587
+ }
1588
+ },
1589
+ "required": ["jsonrpc", "id", "method"]
1590
+ },
1591
+ "ScopesListResponse": {
1592
+ "type": "object",
1593
+ "description": "Response to map/scopes/list",
1594
+ "properties": {
1595
+ "scopes": {
1596
+ "type": "array",
1597
+ "items": { "$ref": "#/$defs/Scope" }
1598
+ },
1599
+ "_meta": { "$ref": "#/$defs/Meta" }
1600
+ },
1601
+ "required": ["scopes"]
1602
+ },
1603
+ "ScopesGetRequest": {
1604
+ "type": "object",
1605
+ "x-method": "map/scopes/get",
1606
+ "x-tier": "structure",
1607
+ "description": "Get details for a single scope",
1608
+ "properties": {
1609
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1610
+ "id": { "$ref": "#/$defs/RequestId" },
1611
+ "method": { "const": "map/scopes/get" },
1612
+ "params": {
1613
+ "type": "object",
1614
+ "properties": {
1615
+ "scopeId": { "$ref": "#/$defs/ScopeId" },
1616
+ "_meta": { "$ref": "#/$defs/Meta" }
1617
+ },
1618
+ "required": ["scopeId"]
1619
+ }
1620
+ },
1621
+ "required": ["jsonrpc", "id", "method", "params"]
1622
+ },
1623
+ "ScopesGetResponse": {
1624
+ "type": "object",
1625
+ "description": "Response to map/scopes/get",
1626
+ "properties": {
1627
+ "scope": { "$ref": "#/$defs/Scope" },
1628
+ "_meta": { "$ref": "#/$defs/Meta" }
1629
+ },
1630
+ "required": ["scope"]
1631
+ },
1632
+ "ScopesCreateRequest": {
1633
+ "type": "object",
1634
+ "x-method": "map/scopes/create",
1635
+ "x-tier": "structure",
1636
+ "description": "Create a new scope",
1637
+ "properties": {
1638
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1639
+ "id": { "$ref": "#/$defs/RequestId" },
1640
+ "method": { "const": "map/scopes/create" },
1641
+ "params": {
1642
+ "type": "object",
1643
+ "properties": {
1644
+ "scopeId": { "$ref": "#/$defs/ScopeId" },
1645
+ "name": { "type": "string" },
1646
+ "description": { "type": "string" },
1647
+ "parent": { "$ref": "#/$defs/ScopeId" },
1648
+ "joinPolicy": { "$ref": "#/$defs/JoinPolicy" },
1649
+ "autoJoinRoles": {
1650
+ "type": "array",
1651
+ "items": { "type": "string" }
1652
+ },
1653
+ "visibility": { "$ref": "#/$defs/ScopeVisibility" },
1654
+ "messageVisibility": { "$ref": "#/$defs/MessageVisibility" },
1655
+ "sendPolicy": { "$ref": "#/$defs/SendPolicy" },
1656
+ "persistent": { "type": "boolean" },
1657
+ "autoDelete": { "type": "boolean" },
1658
+ "metadata": { "type": "object" },
1659
+ "_meta": { "$ref": "#/$defs/Meta" }
1660
+ }
1661
+ }
1662
+ },
1663
+ "required": ["jsonrpc", "id", "method"]
1664
+ },
1665
+ "ScopesCreateResponse": {
1666
+ "type": "object",
1667
+ "description": "Response to map/scopes/create",
1668
+ "properties": {
1669
+ "scope": { "$ref": "#/$defs/Scope" },
1670
+ "_meta": { "$ref": "#/$defs/Meta" }
1671
+ },
1672
+ "required": ["scope"]
1673
+ },
1674
+ "ScopesDeleteRequest": {
1675
+ "type": "object",
1676
+ "x-method": "map/scopes/delete",
1677
+ "x-tier": "structure",
1678
+ "description": "Delete a scope",
1679
+ "properties": {
1680
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1681
+ "id": { "$ref": "#/$defs/RequestId" },
1682
+ "method": { "const": "map/scopes/delete" },
1683
+ "params": {
1684
+ "type": "object",
1685
+ "properties": {
1686
+ "scopeId": { "$ref": "#/$defs/ScopeId" },
1687
+ "_meta": { "$ref": "#/$defs/Meta" }
1688
+ },
1689
+ "required": ["scopeId"]
1690
+ }
1691
+ },
1692
+ "required": ["jsonrpc", "id", "method", "params"]
1693
+ },
1694
+ "ScopesDeleteResponse": {
1695
+ "type": "object",
1696
+ "description": "Response to map/scopes/delete",
1697
+ "properties": {
1698
+ "deleted": { "type": "boolean" },
1699
+ "_meta": { "$ref": "#/$defs/Meta" }
1700
+ },
1701
+ "required": ["deleted"]
1702
+ },
1703
+ "ScopesJoinRequest": {
1704
+ "type": "object",
1705
+ "x-method": "map/scopes/join",
1706
+ "x-tier": "structure",
1707
+ "description": "Add an agent to a scope",
1708
+ "properties": {
1709
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1710
+ "id": { "$ref": "#/$defs/RequestId" },
1711
+ "method": { "const": "map/scopes/join" },
1712
+ "params": {
1713
+ "type": "object",
1714
+ "properties": {
1715
+ "scopeId": { "$ref": "#/$defs/ScopeId" },
1716
+ "agentId": { "$ref": "#/$defs/AgentId" },
1717
+ "_meta": { "$ref": "#/$defs/Meta" }
1718
+ },
1719
+ "required": ["scopeId", "agentId"]
1720
+ }
1721
+ },
1722
+ "required": ["jsonrpc", "id", "method", "params"]
1723
+ },
1724
+ "ScopesJoinResponse": {
1725
+ "type": "object",
1726
+ "description": "Response to map/scopes/join",
1727
+ "properties": {
1728
+ "joined": { "type": "boolean" },
1729
+ "_meta": { "$ref": "#/$defs/Meta" }
1730
+ },
1731
+ "required": ["joined"]
1732
+ },
1733
+ "ScopesLeaveRequest": {
1734
+ "type": "object",
1735
+ "x-method": "map/scopes/leave",
1736
+ "x-tier": "structure",
1737
+ "description": "Remove an agent from a scope",
1738
+ "properties": {
1739
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1740
+ "id": { "$ref": "#/$defs/RequestId" },
1741
+ "method": { "const": "map/scopes/leave" },
1742
+ "params": {
1743
+ "type": "object",
1744
+ "properties": {
1745
+ "scopeId": { "$ref": "#/$defs/ScopeId" },
1746
+ "agentId": { "$ref": "#/$defs/AgentId" },
1747
+ "_meta": { "$ref": "#/$defs/Meta" }
1748
+ },
1749
+ "required": ["scopeId", "agentId"]
1750
+ }
1751
+ },
1752
+ "required": ["jsonrpc", "id", "method", "params"]
1753
+ },
1754
+ "ScopesLeaveResponse": {
1755
+ "type": "object",
1756
+ "description": "Response to map/scopes/leave",
1757
+ "properties": {
1758
+ "left": { "type": "boolean" },
1759
+ "_meta": { "$ref": "#/$defs/Meta" }
1760
+ },
1761
+ "required": ["left"]
1762
+ },
1763
+ "ScopesMembersRequest": {
1764
+ "type": "object",
1765
+ "x-method": "map/scopes/members",
1766
+ "x-tier": "structure",
1767
+ "description": "List members of a scope",
1768
+ "properties": {
1769
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1770
+ "id": { "$ref": "#/$defs/RequestId" },
1771
+ "method": { "const": "map/scopes/members" },
1772
+ "params": {
1773
+ "type": "object",
1774
+ "properties": {
1775
+ "scopeId": { "$ref": "#/$defs/ScopeId" },
1776
+ "limit": { "type": "integer", "minimum": 1 },
1777
+ "cursor": { "type": "string" },
1778
+ "_meta": { "$ref": "#/$defs/Meta" }
1779
+ },
1780
+ "required": ["scopeId"]
1781
+ }
1782
+ },
1783
+ "required": ["jsonrpc", "id", "method", "params"]
1784
+ },
1785
+ "ScopesMembersResponse": {
1786
+ "type": "object",
1787
+ "description": "Response to map/scopes/members",
1788
+ "properties": {
1789
+ "members": {
1790
+ "type": "array",
1791
+ "items": { "$ref": "#/$defs/AgentId" }
1792
+ },
1793
+ "nextCursor": { "type": "string" },
1794
+ "_meta": { "$ref": "#/$defs/Meta" }
1795
+ },
1796
+ "required": ["members"]
1797
+ },
1798
+
1799
+ "InjectRequest": {
1800
+ "type": "object",
1801
+ "x-method": "map/inject",
1802
+ "x-tier": "extension",
1803
+ "description": "Inject context into a running agent (steering)",
1804
+ "properties": {
1805
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1806
+ "id": { "$ref": "#/$defs/RequestId" },
1807
+ "method": { "const": "map/inject" },
1808
+ "params": {
1809
+ "type": "object",
1810
+ "properties": {
1811
+ "agentId": { "$ref": "#/$defs/AgentId" },
1812
+ "content": {
1813
+ "description": "Content to inject"
1814
+ },
1815
+ "delivery": {
1816
+ "type": "string",
1817
+ "enum": ["interrupt", "queue", "best-effort"],
1818
+ "default": "best-effort",
1819
+ "description": "How to deliver the injection"
1820
+ },
1821
+ "_meta": { "$ref": "#/$defs/Meta" }
1822
+ },
1823
+ "required": ["agentId", "content"]
1824
+ }
1825
+ },
1826
+ "required": ["jsonrpc", "id", "method", "params"]
1827
+ },
1828
+ "InjectResponse": {
1829
+ "type": "object",
1830
+ "description": "Response to map/inject",
1831
+ "properties": {
1832
+ "injected": { "type": "boolean" },
1833
+ "delivery": {
1834
+ "type": "string",
1835
+ "enum": ["interrupt", "queue", "message"],
1836
+ "description": "Actual delivery method used"
1837
+ },
1838
+ "_meta": { "$ref": "#/$defs/Meta" }
1839
+ },
1840
+ "required": ["injected"]
1841
+ },
1842
+
1843
+ "FederationConnectRequest": {
1844
+ "type": "object",
1845
+ "x-method": "map/federation/connect",
1846
+ "x-tier": "extension",
1847
+ "description": "Connect to a peer MAP system. Supports single-request auth: include auth inline to complete federation handshake in one round-trip.",
1848
+ "properties": {
1849
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1850
+ "id": { "$ref": "#/$defs/RequestId" },
1851
+ "method": { "const": "map/federation/connect" },
1852
+ "params": {
1853
+ "type": "object",
1854
+ "properties": {
1855
+ "systemId": { "type": "string" },
1856
+ "endpoint": { "type": "string", "format": "uri" },
1857
+ "auth": {
1858
+ "oneOf": [
1859
+ {
1860
+ "type": "object",
1861
+ "description": "Standard federation auth (bearer, api-key, mtls, etc.)",
1862
+ "properties": {
1863
+ "method": {
1864
+ "type": "string",
1865
+ "oneOf": [
1866
+ { "enum": ["bearer", "api-key", "mtls", "none", "did:wba", "oauth2"] },
1867
+ { "type": "string", "pattern": "^x-" }
1868
+ ]
1869
+ },
1870
+ "credentials": { "type": "string" }
1871
+ },
1872
+ "required": ["method"]
1873
+ },
1874
+ { "$ref": "#/$defs/DIDWBACredentials" }
1875
+ ]
1876
+ },
1877
+ "authContext": {
1878
+ "type": "object",
1879
+ "description": "Additional auth context for single-request federation auth",
1880
+ "properties": {
1881
+ "challenge": { "type": "string", "description": "Challenge nonce for proof-based auth" }
1882
+ }
1883
+ },
1884
+ "systemInfo": {
1885
+ "type": "object",
1886
+ "description": "Connecting system's self-description",
1887
+ "properties": {
1888
+ "name": { "type": "string" },
1889
+ "version": { "type": "string" }
1890
+ }
1891
+ },
1892
+ "protocolVersion": { "type": "integer", "description": "MAP protocol version (default: 1)" },
1893
+ "exposure": {
1894
+ "type": "object",
1895
+ "description": "Which resources the connecting system exposes",
1896
+ "properties": {
1897
+ "agents": { "type": "boolean" },
1898
+ "scopes": { "type": "boolean" },
1899
+ "events": { "type": "boolean" }
1900
+ }
1901
+ },
1902
+ "_meta": { "$ref": "#/$defs/Meta" }
1903
+ },
1904
+ "required": ["systemId", "endpoint"]
1905
+ }
1906
+ },
1907
+ "required": ["jsonrpc", "id", "method", "params"]
1908
+ },
1909
+ "FederationConnectResponse": {
1910
+ "type": "object",
1911
+ "description": "Response to map/federation/connect. When single-request auth succeeds, includes sessionId and principal. When auth fails or is required, includes authRequired with supported methods and challenge.",
1912
+ "properties": {
1913
+ "connected": { "type": "boolean" },
1914
+ "sessionId": { "type": "string", "description": "Session ID assigned on successful auth" },
1915
+ "principal": {
1916
+ "type": "object",
1917
+ "description": "Authenticated principal (on successful auth)",
1918
+ "properties": {
1919
+ "id": { "type": "string" },
1920
+ "issuer": { "type": "string" },
1921
+ "claims": { "type": "object" }
1922
+ }
1923
+ },
1924
+ "authRequired": {
1925
+ "type": "object",
1926
+ "description": "Auth negotiation data (when auth is required or failed)",
1927
+ "properties": {
1928
+ "methods": {
1929
+ "type": "array",
1930
+ "items": { "type": "string" },
1931
+ "description": "Supported auth methods"
1932
+ },
1933
+ "challenge": { "type": "string", "description": "Challenge nonce for proof-based auth methods" },
1934
+ "required": { "type": "boolean", "description": "Whether authentication is required to proceed" }
1935
+ },
1936
+ "required": ["methods", "challenge"]
1937
+ },
1938
+ "systemInfo": {
1939
+ "type": "object",
1940
+ "properties": {
1941
+ "name": { "type": "string" },
1942
+ "version": { "type": "string" },
1943
+ "capabilities": { "$ref": "#/$defs/ParticipantCapabilities" }
1944
+ }
1945
+ },
1946
+ "_meta": { "$ref": "#/$defs/Meta" }
1947
+ },
1948
+ "required": ["connected"]
1949
+ },
1950
+ "FederationRouteRequest": {
1951
+ "type": "object",
1952
+ "x-method": "map/federation/route",
1953
+ "x-tier": "extension",
1954
+ "description": "Route a message to a federated system",
1955
+ "properties": {
1956
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1957
+ "id": { "$ref": "#/$defs/RequestId" },
1958
+ "method": { "const": "map/federation/route" },
1959
+ "params": {
1960
+ "type": "object",
1961
+ "properties": {
1962
+ "systemId": { "type": "string" },
1963
+ "message": { "$ref": "#/$defs/Message" },
1964
+ "_meta": { "$ref": "#/$defs/Meta" }
1965
+ },
1966
+ "required": ["systemId", "message"]
1967
+ }
1968
+ },
1969
+ "required": ["jsonrpc", "id", "method", "params"]
1970
+ },
1971
+ "FederationRouteResponse": {
1972
+ "type": "object",
1973
+ "description": "Response to map/federation/route",
1974
+ "properties": {
1975
+ "routed": { "type": "boolean" },
1976
+ "messageId": { "$ref": "#/$defs/MessageId" },
1977
+ "_meta": { "$ref": "#/$defs/Meta" }
1978
+ },
1979
+ "required": ["routed"]
1980
+ },
1981
+
1982
+ "EventNotification": {
1983
+ "type": "object",
1984
+ "x-method": "map/event",
1985
+ "description": "System event notification (sent to subscribers)",
1986
+ "properties": {
1987
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
1988
+ "method": { "const": "map/event" },
1989
+ "params": {
1990
+ "type": "object",
1991
+ "properties": {
1992
+ "subscriptionId": { "$ref": "#/$defs/SubscriptionId" },
1993
+ "sequenceNumber": {
1994
+ "type": "integer",
1995
+ "description": "Monotonic sequence for ordering"
1996
+ },
1997
+ "event": { "$ref": "#/$defs/Event" },
1998
+ "_meta": { "$ref": "#/$defs/Meta" }
1999
+ },
2000
+ "required": ["subscriptionId", "sequenceNumber", "event"]
2001
+ }
2002
+ },
2003
+ "required": ["jsonrpc", "method", "params"]
2004
+ },
2005
+ "MessageNotification": {
2006
+ "type": "object",
2007
+ "x-method": "map/message",
2008
+ "description": "Message delivery notification",
2009
+ "properties": {
2010
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2011
+ "method": { "const": "map/message" },
2012
+ "params": {
2013
+ "type": "object",
2014
+ "properties": {
2015
+ "message": { "$ref": "#/$defs/Message" },
2016
+ "_meta": { "$ref": "#/$defs/Meta" }
2017
+ },
2018
+ "required": ["message"]
2019
+ }
2020
+ },
2021
+ "required": ["jsonrpc", "method", "params"]
2022
+ },
2023
+
2024
+ "ConversationId": {
2025
+ "type": "string",
2026
+ "description": "Unique identifier for a conversation"
2027
+ },
2028
+ "TurnId": {
2029
+ "type": "string",
2030
+ "description": "Unique identifier for a turn"
2031
+ },
2032
+ "ThreadId": {
2033
+ "type": "string",
2034
+ "description": "Unique identifier for a thread"
2035
+ },
2036
+ "ConversationType": {
2037
+ "type": "string",
2038
+ "enum": ["user-session", "agent-task", "multi-agent", "mixed"],
2039
+ "description": "Type of conversation"
2040
+ },
2041
+ "ConversationStatus": {
2042
+ "type": "string",
2043
+ "enum": ["active", "paused", "completed", "failed", "archived"],
2044
+ "description": "Status of a conversation"
2045
+ },
2046
+ "ParticipantRole": {
2047
+ "type": "string",
2048
+ "enum": ["initiator", "assistant", "worker", "observer", "moderator"],
2049
+ "description": "Role of a participant within a conversation"
2050
+ },
2051
+ "TurnStatus": {
2052
+ "type": "string",
2053
+ "enum": ["pending", "streaming", "complete", "failed"],
2054
+ "description": "Status of a turn's content lifecycle"
2055
+ },
2056
+ "TurnVisibility": {
2057
+ "description": "Visibility of a turn within a conversation",
2058
+ "oneOf": [
2059
+ { "type": "object", "properties": { "type": { "const": "all" } }, "required": ["type"] },
2060
+ { "type": "object", "properties": { "type": { "const": "participants" }, "ids": { "type": "array", "items": { "$ref": "#/$defs/ParticipantId" } } }, "required": ["type", "ids"] },
2061
+ { "type": "object", "properties": { "type": { "const": "role" }, "roles": { "type": "array", "items": { "$ref": "#/$defs/ParticipantRole" } } }, "required": ["type", "roles"] },
2062
+ { "type": "object", "properties": { "type": { "const": "private" } }, "required": ["type"] }
2063
+ ]
2064
+ },
2065
+ "TurnSource": {
2066
+ "description": "How a turn was created",
2067
+ "oneOf": [
2068
+ { "type": "object", "properties": { "type": { "const": "explicit" }, "method": { "const": "mail/turn" } }, "required": ["type", "method"] },
2069
+ { "type": "object", "properties": { "type": { "const": "intercepted" }, "messageId": { "$ref": "#/$defs/MessageId" } }, "required": ["type", "messageId"] }
2070
+ ]
2071
+ },
2072
+ "ConversationPermissions": {
2073
+ "type": "object",
2074
+ "description": "Permissions for a participant within a conversation",
2075
+ "properties": {
2076
+ "canSend": { "type": "boolean" },
2077
+ "canObserve": { "type": "boolean" },
2078
+ "canInvite": { "type": "boolean" },
2079
+ "canRemove": { "type": "boolean" },
2080
+ "canCreateThreads": { "type": "boolean" },
2081
+ "historyAccess": { "type": "string", "enum": ["none", "from-join", "full"] },
2082
+ "canSeeInternal": { "type": "boolean" }
2083
+ },
2084
+ "additionalProperties": false
2085
+ },
2086
+ "Conversation": {
2087
+ "type": "object",
2088
+ "description": "A conversation - container for tracking related interactions",
2089
+ "properties": {
2090
+ "id": { "$ref": "#/$defs/ConversationId" },
2091
+ "type": { "$ref": "#/$defs/ConversationType" },
2092
+ "status": { "$ref": "#/$defs/ConversationStatus" },
2093
+ "subject": { "type": "string" },
2094
+ "participantCount": { "type": "integer" },
2095
+ "parentConversationId": { "$ref": "#/$defs/ConversationId" },
2096
+ "parentTurnId": { "$ref": "#/$defs/TurnId" },
2097
+ "createdAt": { "$ref": "#/$defs/Timestamp" },
2098
+ "updatedAt": { "$ref": "#/$defs/Timestamp" },
2099
+ "closedAt": { "$ref": "#/$defs/Timestamp" },
2100
+ "createdBy": { "$ref": "#/$defs/ParticipantId" },
2101
+ "metadata": { "type": "object" },
2102
+ "_meta": { "$ref": "#/$defs/Meta" }
2103
+ },
2104
+ "required": ["id", "type", "status", "participantCount", "createdAt", "updatedAt", "createdBy"],
2105
+ "additionalProperties": false
2106
+ },
2107
+ "ConversationParticipant": {
2108
+ "type": "object",
2109
+ "description": "A participant in a conversation with role and permissions",
2110
+ "properties": {
2111
+ "id": { "$ref": "#/$defs/ParticipantId" },
2112
+ "type": { "type": "string", "enum": ["user", "agent", "system"] },
2113
+ "role": { "$ref": "#/$defs/ParticipantRole" },
2114
+ "joinedAt": { "$ref": "#/$defs/Timestamp" },
2115
+ "leftAt": { "$ref": "#/$defs/Timestamp" },
2116
+ "permissions": { "$ref": "#/$defs/ConversationPermissions" },
2117
+ "agentInfo": {
2118
+ "type": "object",
2119
+ "properties": {
2120
+ "agentId": { "$ref": "#/$defs/AgentId" },
2121
+ "name": { "type": "string" },
2122
+ "role": { "type": "string" }
2123
+ },
2124
+ "required": ["agentId"]
2125
+ },
2126
+ "_meta": { "$ref": "#/$defs/Meta" }
2127
+ },
2128
+ "required": ["id", "type", "role", "joinedAt", "permissions"],
2129
+ "additionalProperties": false
2130
+ },
2131
+ "Turn": {
2132
+ "type": "object",
2133
+ "description": "A turn - the atomic unit of conversation",
2134
+ "properties": {
2135
+ "id": { "$ref": "#/$defs/TurnId" },
2136
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2137
+ "participant": { "$ref": "#/$defs/ParticipantId" },
2138
+ "timestamp": { "$ref": "#/$defs/Timestamp" },
2139
+ "contentType": { "type": "string", "description": "Content type: text, data, event, reference, or x-* custom" },
2140
+ "content": { "description": "Content payload - shape determined by contentType" },
2141
+ "threadId": { "$ref": "#/$defs/ThreadId" },
2142
+ "inReplyTo": { "$ref": "#/$defs/TurnId" },
2143
+ "source": { "$ref": "#/$defs/TurnSource" },
2144
+ "visibility": { "$ref": "#/$defs/TurnVisibility" },
2145
+ "status": { "$ref": "#/$defs/TurnStatus" },
2146
+ "metadata": { "type": "object" },
2147
+ "_meta": { "$ref": "#/$defs/Meta" }
2148
+ },
2149
+ "required": ["id", "conversationId", "participant", "timestamp", "contentType", "content", "source"],
2150
+ "additionalProperties": false
2151
+ },
2152
+ "Thread": {
2153
+ "type": "object",
2154
+ "description": "A thread within a conversation for focused discussion",
2155
+ "properties": {
2156
+ "id": { "$ref": "#/$defs/ThreadId" },
2157
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2158
+ "parentThreadId": { "$ref": "#/$defs/ThreadId" },
2159
+ "subject": { "type": "string" },
2160
+ "rootTurnId": { "$ref": "#/$defs/TurnId" },
2161
+ "turnCount": { "type": "integer" },
2162
+ "participantCount": { "type": "integer" },
2163
+ "createdAt": { "$ref": "#/$defs/Timestamp" },
2164
+ "updatedAt": { "$ref": "#/$defs/Timestamp" },
2165
+ "createdBy": { "$ref": "#/$defs/ParticipantId" },
2166
+ "_meta": { "$ref": "#/$defs/Meta" }
2167
+ },
2168
+ "required": ["id", "conversationId", "rootTurnId", "turnCount", "participantCount", "createdAt", "updatedAt", "createdBy"],
2169
+ "additionalProperties": false
2170
+ },
2171
+ "MailMessageMeta": {
2172
+ "type": "object",
2173
+ "description": "Mail metadata for map/send turn tracking",
2174
+ "properties": {
2175
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2176
+ "threadId": { "$ref": "#/$defs/ThreadId" },
2177
+ "inReplyTo": { "$ref": "#/$defs/TurnId" },
2178
+ "visibility": { "$ref": "#/$defs/TurnVisibility" }
2179
+ },
2180
+ "required": ["conversationId"],
2181
+ "additionalProperties": false
2182
+ },
2183
+ "MailSubscriptionFilter": {
2184
+ "type": "object",
2185
+ "description": "Mail-specific subscription filter for conversation events",
2186
+ "properties": {
2187
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2188
+ "threadId": { "$ref": "#/$defs/ThreadId" },
2189
+ "participantId": { "$ref": "#/$defs/ParticipantId" },
2190
+ "contentType": { "type": "string" }
2191
+ },
2192
+ "additionalProperties": false
2193
+ },
2194
+
2195
+ "MailCreateRequest": {
2196
+ "type": "object",
2197
+ "x-method": "mail/create",
2198
+ "x-tier": "extension",
2199
+ "description": "Create a new conversation",
2200
+ "properties": {
2201
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2202
+ "id": { "$ref": "#/$defs/RequestId" },
2203
+ "method": { "const": "mail/create" },
2204
+ "params": {
2205
+ "type": "object",
2206
+ "properties": {
2207
+ "type": { "$ref": "#/$defs/ConversationType" },
2208
+ "subject": { "type": "string" },
2209
+ "parentConversationId": { "$ref": "#/$defs/ConversationId" },
2210
+ "parentTurnId": { "$ref": "#/$defs/TurnId" },
2211
+ "initialParticipants": {
2212
+ "type": "array",
2213
+ "items": {
2214
+ "type": "object",
2215
+ "properties": {
2216
+ "id": { "$ref": "#/$defs/ParticipantId" },
2217
+ "role": { "$ref": "#/$defs/ParticipantRole" },
2218
+ "permissions": { "$ref": "#/$defs/ConversationPermissions" }
2219
+ },
2220
+ "required": ["id"]
2221
+ }
2222
+ },
2223
+ "initialTurn": {
2224
+ "type": "object",
2225
+ "properties": {
2226
+ "contentType": { "type": "string" },
2227
+ "content": {},
2228
+ "visibility": { "$ref": "#/$defs/TurnVisibility" }
2229
+ },
2230
+ "required": ["contentType", "content"]
2231
+ },
2232
+ "metadata": { "type": "object" },
2233
+ "_meta": { "$ref": "#/$defs/Meta" }
2234
+ }
2235
+ }
2236
+ },
2237
+ "required": ["jsonrpc", "id", "method"]
2238
+ },
2239
+ "MailCreateResponse": {
2240
+ "type": "object",
2241
+ "properties": {
2242
+ "conversation": { "$ref": "#/$defs/Conversation" },
2243
+ "participant": { "$ref": "#/$defs/ConversationParticipant" },
2244
+ "initialTurn": { "$ref": "#/$defs/Turn" },
2245
+ "_meta": { "$ref": "#/$defs/Meta" }
2246
+ },
2247
+ "required": ["conversation", "participant"]
2248
+ },
2249
+ "MailGetRequest": {
2250
+ "type": "object",
2251
+ "x-method": "mail/get",
2252
+ "x-tier": "extension",
2253
+ "description": "Get conversation details",
2254
+ "properties": {
2255
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2256
+ "id": { "$ref": "#/$defs/RequestId" },
2257
+ "method": { "const": "mail/get" },
2258
+ "params": {
2259
+ "type": "object",
2260
+ "properties": {
2261
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2262
+ "include": {
2263
+ "type": "object",
2264
+ "properties": {
2265
+ "participants": { "type": "boolean" },
2266
+ "threads": { "type": "boolean" },
2267
+ "recentTurns": { "type": "integer" },
2268
+ "stats": { "type": "boolean" }
2269
+ }
2270
+ },
2271
+ "_meta": { "$ref": "#/$defs/Meta" }
2272
+ },
2273
+ "required": ["conversationId"]
2274
+ }
2275
+ },
2276
+ "required": ["jsonrpc", "id", "method", "params"]
2277
+ },
2278
+ "MailGetResponse": {
2279
+ "type": "object",
2280
+ "properties": {
2281
+ "conversation": { "$ref": "#/$defs/Conversation" },
2282
+ "participants": { "type": "array", "items": { "$ref": "#/$defs/ConversationParticipant" } },
2283
+ "threads": { "type": "array", "items": { "$ref": "#/$defs/Thread" } },
2284
+ "recentTurns": { "type": "array", "items": { "$ref": "#/$defs/Turn" } },
2285
+ "stats": {
2286
+ "type": "object",
2287
+ "properties": {
2288
+ "totalTurns": { "type": "integer" },
2289
+ "turnsByContentType": { "type": "object" },
2290
+ "activeParticipants": { "type": "integer" },
2291
+ "threadCount": { "type": "integer" }
2292
+ }
2293
+ },
2294
+ "_meta": { "$ref": "#/$defs/Meta" }
2295
+ },
2296
+ "required": ["conversation"]
2297
+ },
2298
+ "MailListRequest": {
2299
+ "type": "object",
2300
+ "x-method": "mail/list",
2301
+ "x-tier": "extension",
2302
+ "description": "List conversations with filtering",
2303
+ "properties": {
2304
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2305
+ "id": { "$ref": "#/$defs/RequestId" },
2306
+ "method": { "const": "mail/list" },
2307
+ "params": {
2308
+ "type": "object",
2309
+ "properties": {
2310
+ "filter": {
2311
+ "type": "object",
2312
+ "properties": {
2313
+ "type": { "type": "array", "items": { "$ref": "#/$defs/ConversationType" } },
2314
+ "status": { "type": "array", "items": { "$ref": "#/$defs/ConversationStatus" } },
2315
+ "participantId": { "$ref": "#/$defs/ParticipantId" },
2316
+ "createdAfter": { "$ref": "#/$defs/Timestamp" },
2317
+ "createdBefore": { "$ref": "#/$defs/Timestamp" },
2318
+ "parentConversationId": { "$ref": "#/$defs/ConversationId" }
2319
+ }
2320
+ },
2321
+ "limit": { "type": "integer", "minimum": 1 },
2322
+ "cursor": { "type": "string" },
2323
+ "_meta": { "$ref": "#/$defs/Meta" }
2324
+ }
2325
+ }
2326
+ },
2327
+ "required": ["jsonrpc", "id", "method"]
2328
+ },
2329
+ "MailListResponse": {
2330
+ "type": "object",
2331
+ "properties": {
2332
+ "conversations": { "type": "array", "items": { "$ref": "#/$defs/Conversation" } },
2333
+ "nextCursor": { "type": "string" },
2334
+ "hasMore": { "type": "boolean" },
2335
+ "_meta": { "$ref": "#/$defs/Meta" }
2336
+ },
2337
+ "required": ["conversations", "hasMore"]
2338
+ },
2339
+ "MailCloseRequest": {
2340
+ "type": "object",
2341
+ "x-method": "mail/close",
2342
+ "x-tier": "extension",
2343
+ "description": "Close a conversation",
2344
+ "properties": {
2345
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2346
+ "id": { "$ref": "#/$defs/RequestId" },
2347
+ "method": { "const": "mail/close" },
2348
+ "params": {
2349
+ "type": "object",
2350
+ "properties": {
2351
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2352
+ "reason": { "type": "string" },
2353
+ "_meta": { "$ref": "#/$defs/Meta" }
2354
+ },
2355
+ "required": ["conversationId"]
2356
+ }
2357
+ },
2358
+ "required": ["jsonrpc", "id", "method", "params"]
2359
+ },
2360
+ "MailCloseResponse": {
2361
+ "type": "object",
2362
+ "properties": {
2363
+ "conversation": { "$ref": "#/$defs/Conversation" },
2364
+ "_meta": { "$ref": "#/$defs/Meta" }
2365
+ },
2366
+ "required": ["conversation"]
2367
+ },
2368
+ "MailJoinRequest": {
2369
+ "type": "object",
2370
+ "x-method": "mail/join",
2371
+ "x-tier": "extension",
2372
+ "description": "Join a conversation",
2373
+ "properties": {
2374
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2375
+ "id": { "$ref": "#/$defs/RequestId" },
2376
+ "method": { "const": "mail/join" },
2377
+ "params": {
2378
+ "type": "object",
2379
+ "properties": {
2380
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2381
+ "role": { "$ref": "#/$defs/ParticipantRole" },
2382
+ "catchUp": {
2383
+ "type": "object",
2384
+ "properties": {
2385
+ "from": { "oneOf": [{ "type": "string" }, { "type": "number" }] },
2386
+ "limit": { "type": "integer" },
2387
+ "includeSummary": { "type": "boolean" }
2388
+ }
2389
+ },
2390
+ "_meta": { "$ref": "#/$defs/Meta" }
2391
+ },
2392
+ "required": ["conversationId"]
2393
+ }
2394
+ },
2395
+ "required": ["jsonrpc", "id", "method", "params"]
2396
+ },
2397
+ "MailJoinResponse": {
2398
+ "type": "object",
2399
+ "properties": {
2400
+ "conversation": { "$ref": "#/$defs/Conversation" },
2401
+ "participant": { "$ref": "#/$defs/ConversationParticipant" },
2402
+ "history": { "type": "array", "items": { "$ref": "#/$defs/Turn" } },
2403
+ "historyCursor": { "type": "string" },
2404
+ "summary": { "type": "string" },
2405
+ "_meta": { "$ref": "#/$defs/Meta" }
2406
+ },
2407
+ "required": ["conversation", "participant"]
2408
+ },
2409
+ "MailLeaveRequest": {
2410
+ "type": "object",
2411
+ "x-method": "mail/leave",
2412
+ "x-tier": "extension",
2413
+ "description": "Leave a conversation",
2414
+ "properties": {
2415
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2416
+ "id": { "$ref": "#/$defs/RequestId" },
2417
+ "method": { "const": "mail/leave" },
2418
+ "params": {
2419
+ "type": "object",
2420
+ "properties": {
2421
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2422
+ "reason": { "type": "string" },
2423
+ "_meta": { "$ref": "#/$defs/Meta" }
2424
+ },
2425
+ "required": ["conversationId"]
2426
+ }
2427
+ },
2428
+ "required": ["jsonrpc", "id", "method", "params"]
2429
+ },
2430
+ "MailLeaveResponse": {
2431
+ "type": "object",
2432
+ "properties": {
2433
+ "success": { "type": "boolean" },
2434
+ "leftAt": { "$ref": "#/$defs/Timestamp" },
2435
+ "_meta": { "$ref": "#/$defs/Meta" }
2436
+ },
2437
+ "required": ["success", "leftAt"]
2438
+ },
2439
+ "MailInviteRequest": {
2440
+ "type": "object",
2441
+ "x-method": "mail/invite",
2442
+ "x-tier": "extension",
2443
+ "description": "Invite a participant to a conversation",
2444
+ "properties": {
2445
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2446
+ "id": { "$ref": "#/$defs/RequestId" },
2447
+ "method": { "const": "mail/invite" },
2448
+ "params": {
2449
+ "type": "object",
2450
+ "properties": {
2451
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2452
+ "participant": {
2453
+ "type": "object",
2454
+ "properties": {
2455
+ "id": { "$ref": "#/$defs/ParticipantId" },
2456
+ "role": { "$ref": "#/$defs/ParticipantRole" },
2457
+ "permissions": { "$ref": "#/$defs/ConversationPermissions" }
2458
+ },
2459
+ "required": ["id"]
2460
+ },
2461
+ "message": { "type": "string" },
2462
+ "_meta": { "$ref": "#/$defs/Meta" }
2463
+ },
2464
+ "required": ["conversationId", "participant"]
2465
+ }
2466
+ },
2467
+ "required": ["jsonrpc", "id", "method", "params"]
2468
+ },
2469
+ "MailInviteResponse": {
2470
+ "type": "object",
2471
+ "properties": {
2472
+ "invited": { "type": "boolean" },
2473
+ "participant": { "$ref": "#/$defs/ConversationParticipant" },
2474
+ "invitationId": { "type": "string" },
2475
+ "pending": { "type": "boolean" },
2476
+ "_meta": { "$ref": "#/$defs/Meta" }
2477
+ },
2478
+ "required": ["invited"]
2479
+ },
2480
+ "MailTurnRequest": {
2481
+ "type": "object",
2482
+ "x-method": "mail/turn",
2483
+ "x-tier": "extension",
2484
+ "description": "Record a turn in a conversation",
2485
+ "properties": {
2486
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2487
+ "id": { "$ref": "#/$defs/RequestId" },
2488
+ "method": { "const": "mail/turn" },
2489
+ "params": {
2490
+ "type": "object",
2491
+ "properties": {
2492
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2493
+ "contentType": { "type": "string" },
2494
+ "content": {},
2495
+ "threadId": { "$ref": "#/$defs/ThreadId" },
2496
+ "inReplyTo": { "$ref": "#/$defs/TurnId" },
2497
+ "visibility": { "$ref": "#/$defs/TurnVisibility" },
2498
+ "metadata": { "type": "object" },
2499
+ "_meta": { "$ref": "#/$defs/Meta" }
2500
+ },
2501
+ "required": ["conversationId", "contentType", "content"]
2502
+ }
2503
+ },
2504
+ "required": ["jsonrpc", "id", "method", "params"]
2505
+ },
2506
+ "MailTurnResponse": {
2507
+ "type": "object",
2508
+ "properties": {
2509
+ "turn": { "$ref": "#/$defs/Turn" },
2510
+ "_meta": { "$ref": "#/$defs/Meta" }
2511
+ },
2512
+ "required": ["turn"]
2513
+ },
2514
+ "MailTurnsListRequest": {
2515
+ "type": "object",
2516
+ "x-method": "mail/turns/list",
2517
+ "x-tier": "extension",
2518
+ "description": "List turns in a conversation",
2519
+ "properties": {
2520
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2521
+ "id": { "$ref": "#/$defs/RequestId" },
2522
+ "method": { "const": "mail/turns/list" },
2523
+ "params": {
2524
+ "type": "object",
2525
+ "properties": {
2526
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2527
+ "filter": {
2528
+ "type": "object",
2529
+ "properties": {
2530
+ "threadId": { "$ref": "#/$defs/ThreadId" },
2531
+ "includeAllThreads": { "type": "boolean" },
2532
+ "contentTypes": { "type": "array", "items": { "type": "string" } },
2533
+ "participantId": { "$ref": "#/$defs/ParticipantId" },
2534
+ "afterTurnId": { "$ref": "#/$defs/TurnId" },
2535
+ "beforeTurnId": { "$ref": "#/$defs/TurnId" },
2536
+ "afterTimestamp": { "$ref": "#/$defs/Timestamp" },
2537
+ "beforeTimestamp": { "$ref": "#/$defs/Timestamp" }
2538
+ }
2539
+ },
2540
+ "limit": { "type": "integer", "minimum": 1 },
2541
+ "order": { "type": "string", "enum": ["asc", "desc"] },
2542
+ "_meta": { "$ref": "#/$defs/Meta" }
2543
+ },
2544
+ "required": ["conversationId"]
2545
+ }
2546
+ },
2547
+ "required": ["jsonrpc", "id", "method", "params"]
2548
+ },
2549
+ "MailTurnsListResponse": {
2550
+ "type": "object",
2551
+ "properties": {
2552
+ "turns": { "type": "array", "items": { "$ref": "#/$defs/Turn" } },
2553
+ "hasMore": { "type": "boolean" },
2554
+ "nextCursor": { "type": "string" },
2555
+ "_meta": { "$ref": "#/$defs/Meta" }
2556
+ },
2557
+ "required": ["turns", "hasMore"]
2558
+ },
2559
+ "MailThreadCreateRequest": {
2560
+ "type": "object",
2561
+ "x-method": "mail/thread/create",
2562
+ "x-tier": "extension",
2563
+ "description": "Create a thread within a conversation",
2564
+ "properties": {
2565
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2566
+ "id": { "$ref": "#/$defs/RequestId" },
2567
+ "method": { "const": "mail/thread/create" },
2568
+ "params": {
2569
+ "type": "object",
2570
+ "properties": {
2571
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2572
+ "rootTurnId": { "$ref": "#/$defs/TurnId" },
2573
+ "subject": { "type": "string" },
2574
+ "parentThreadId": { "$ref": "#/$defs/ThreadId" },
2575
+ "_meta": { "$ref": "#/$defs/Meta" }
2576
+ },
2577
+ "required": ["conversationId", "rootTurnId"]
2578
+ }
2579
+ },
2580
+ "required": ["jsonrpc", "id", "method", "params"]
2581
+ },
2582
+ "MailThreadCreateResponse": {
2583
+ "type": "object",
2584
+ "properties": {
2585
+ "thread": { "$ref": "#/$defs/Thread" },
2586
+ "_meta": { "$ref": "#/$defs/Meta" }
2587
+ },
2588
+ "required": ["thread"]
2589
+ },
2590
+ "MailThreadListRequest": {
2591
+ "type": "object",
2592
+ "x-method": "mail/thread/list",
2593
+ "x-tier": "extension",
2594
+ "description": "List threads in a conversation",
2595
+ "properties": {
2596
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2597
+ "id": { "$ref": "#/$defs/RequestId" },
2598
+ "method": { "const": "mail/thread/list" },
2599
+ "params": {
2600
+ "type": "object",
2601
+ "properties": {
2602
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2603
+ "parentThreadId": { "$ref": "#/$defs/ThreadId" },
2604
+ "limit": { "type": "integer", "minimum": 1 },
2605
+ "cursor": { "type": "string" },
2606
+ "_meta": { "$ref": "#/$defs/Meta" }
2607
+ },
2608
+ "required": ["conversationId"]
2609
+ }
2610
+ },
2611
+ "required": ["jsonrpc", "id", "method", "params"]
2612
+ },
2613
+ "MailThreadListResponse": {
2614
+ "type": "object",
2615
+ "properties": {
2616
+ "threads": { "type": "array", "items": { "$ref": "#/$defs/Thread" } },
2617
+ "hasMore": { "type": "boolean" },
2618
+ "nextCursor": { "type": "string" },
2619
+ "_meta": { "$ref": "#/$defs/Meta" }
2620
+ },
2621
+ "required": ["threads", "hasMore"]
2622
+ },
2623
+ "MailSummaryRequest": {
2624
+ "type": "object",
2625
+ "x-method": "mail/summary",
2626
+ "x-tier": "extension",
2627
+ "description": "Get or generate a conversation summary",
2628
+ "properties": {
2629
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2630
+ "id": { "$ref": "#/$defs/RequestId" },
2631
+ "method": { "const": "mail/summary" },
2632
+ "params": {
2633
+ "type": "object",
2634
+ "properties": {
2635
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2636
+ "scope": {
2637
+ "type": "object",
2638
+ "properties": {
2639
+ "fromTurnId": { "$ref": "#/$defs/TurnId" },
2640
+ "toTurnId": { "$ref": "#/$defs/TurnId" },
2641
+ "threadId": { "$ref": "#/$defs/ThreadId" }
2642
+ }
2643
+ },
2644
+ "regenerate": { "type": "boolean" },
2645
+ "include": {
2646
+ "type": "object",
2647
+ "properties": {
2648
+ "keyPoints": { "type": "boolean" },
2649
+ "keyDecisions": { "type": "boolean" },
2650
+ "openQuestions": { "type": "boolean" },
2651
+ "participants": { "type": "boolean" }
2652
+ }
2653
+ },
2654
+ "_meta": { "$ref": "#/$defs/Meta" }
2655
+ },
2656
+ "required": ["conversationId"]
2657
+ }
2658
+ },
2659
+ "required": ["jsonrpc", "id", "method", "params"]
2660
+ },
2661
+ "MailSummaryResponse": {
2662
+ "type": "object",
2663
+ "properties": {
2664
+ "summary": { "type": "string" },
2665
+ "keyPoints": { "type": "array", "items": { "type": "string" } },
2666
+ "keyDecisions": { "type": "array", "items": { "type": "string" } },
2667
+ "openQuestions": { "type": "array", "items": { "type": "string" } },
2668
+ "generated": { "type": "boolean" },
2669
+ "cachedAt": { "$ref": "#/$defs/Timestamp" },
2670
+ "_meta": { "$ref": "#/$defs/Meta" }
2671
+ },
2672
+ "required": ["summary", "generated"]
2673
+ },
2674
+ "MailReplayRequest": {
2675
+ "type": "object",
2676
+ "x-method": "mail/replay",
2677
+ "x-tier": "extension",
2678
+ "description": "Replay conversation turns from a point",
2679
+ "properties": {
2680
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2681
+ "id": { "$ref": "#/$defs/RequestId" },
2682
+ "method": { "const": "mail/replay" },
2683
+ "params": {
2684
+ "type": "object",
2685
+ "properties": {
2686
+ "conversationId": { "$ref": "#/$defs/ConversationId" },
2687
+ "fromTurnId": { "$ref": "#/$defs/TurnId" },
2688
+ "fromTimestamp": { "$ref": "#/$defs/Timestamp" },
2689
+ "threadId": { "$ref": "#/$defs/ThreadId" },
2690
+ "limit": { "type": "integer", "minimum": 1 },
2691
+ "contentTypes": { "type": "array", "items": { "type": "string" } },
2692
+ "_meta": { "$ref": "#/$defs/Meta" }
2693
+ },
2694
+ "required": ["conversationId"]
2695
+ }
2696
+ },
2697
+ "required": ["jsonrpc", "id", "method", "params"]
2698
+ },
2699
+ "MailReplayResponse": {
2700
+ "type": "object",
2701
+ "properties": {
2702
+ "turns": { "type": "array", "items": { "$ref": "#/$defs/Turn" } },
2703
+ "hasMore": { "type": "boolean" },
2704
+ "nextCursor": { "type": "string" },
2705
+ "missedCount": { "type": "integer" },
2706
+ "_meta": { "$ref": "#/$defs/Meta" }
2707
+ },
2708
+ "required": ["turns", "hasMore", "missedCount"]
2709
+ },
2710
+
2711
+ "CredGetRequest": {
2712
+ "type": "object",
2713
+ "x-method": "cred/get",
2714
+ "x-tier": "extension",
2715
+ "description": "Request a short-lived credential for a scope and resource",
2716
+ "properties": {
2717
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2718
+ "id": { "$ref": "#/$defs/RequestId" },
2719
+ "method": { "const": "cred/get" },
2720
+ "params": {
2721
+ "type": "object",
2722
+ "properties": {
2723
+ "scope": { "type": "string", "description": "Scope to request (e.g. 'github:repo:write')" },
2724
+ "resource": { "type": "string", "description": "Resource to access (e.g. 'acme-corp/frontend')" },
2725
+ "_meta": { "$ref": "#/$defs/Meta" }
2726
+ },
2727
+ "required": ["scope", "resource"]
2728
+ }
2729
+ },
2730
+ "required": ["jsonrpc", "id", "method", "params"]
2731
+ },
2732
+ "CredGetResponse": {
2733
+ "type": "object",
2734
+ "description": "Response to cred/get",
2735
+ "properties": {
2736
+ "credentialType": {
2737
+ "type": "string",
2738
+ "enum": ["bearer_token", "aws_credentials", "api_key"],
2739
+ "description": "Type of credential returned"
2740
+ },
2741
+ "credential": { "type": "object", "description": "Provider-specific credential data" },
2742
+ "expiresAt": { "type": "string", "format": "date-time", "description": "When the credential expires (ISO 8601)" },
2743
+ "_meta": { "$ref": "#/$defs/Meta" }
2744
+ },
2745
+ "required": ["credentialType", "credential"]
2746
+ },
2747
+ "CredListRequest": {
2748
+ "type": "object",
2749
+ "x-method": "cred/list",
2750
+ "x-tier": "extension",
2751
+ "description": "List available scopes for the authenticated token",
2752
+ "properties": {
2753
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2754
+ "id": { "$ref": "#/$defs/RequestId" },
2755
+ "method": { "const": "cred/list" },
2756
+ "params": {
2757
+ "type": "object",
2758
+ "properties": {
2759
+ "_meta": { "$ref": "#/$defs/Meta" }
2760
+ }
2761
+ }
2762
+ },
2763
+ "required": ["jsonrpc", "id", "method"]
2764
+ },
2765
+ "CredListResponse": {
2766
+ "type": "object",
2767
+ "description": "Response to cred/list",
2768
+ "properties": {
2769
+ "agentId": { "type": "string", "description": "Agent ID from the authenticated token" },
2770
+ "scopes": { "type": "array", "items": { "type": "string" }, "description": "Available scopes" },
2771
+ "constraints": { "type": "object", "description": "Token constraints" },
2772
+ "expiresAt": { "type": "string", "format": "date-time", "description": "Token expiration" },
2773
+ "_meta": { "$ref": "#/$defs/Meta" }
2774
+ },
2775
+ "required": ["agentId", "scopes"]
2776
+ },
2777
+ "CredStatusRequest": {
2778
+ "type": "object",
2779
+ "x-method": "cred/status",
2780
+ "x-tier": "extension",
2781
+ "description": "Check credential broker status and available providers",
2782
+ "properties": {
2783
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2784
+ "id": { "$ref": "#/$defs/RequestId" },
2785
+ "method": { "const": "cred/status" },
2786
+ "params": {
2787
+ "type": "object",
2788
+ "properties": {
2789
+ "_meta": { "$ref": "#/$defs/Meta" }
2790
+ }
2791
+ }
2792
+ },
2793
+ "required": ["jsonrpc", "id", "method"]
2794
+ },
2795
+ "CredStatusResponse": {
2796
+ "type": "object",
2797
+ "description": "Response to cred/status",
2798
+ "properties": {
2799
+ "providers": { "type": "array", "items": { "type": "string" }, "description": "Available credential providers" },
2800
+ "_meta": { "$ref": "#/$defs/Meta" }
2801
+ },
2802
+ "required": ["providers"]
2803
+ },
2804
+
2805
+ "WorkspaceSearchRequest": {
2806
+ "type": "object",
2807
+ "x-method": "workspace/search",
2808
+ "x-tier": "extension",
2809
+ "description": "Search for files matching a query in an agent's workspace",
2810
+ "properties": {
2811
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2812
+ "id": { "$ref": "#/$defs/RequestId" },
2813
+ "method": { "const": "workspace/search" },
2814
+ "params": {
2815
+ "type": "object",
2816
+ "properties": {
2817
+ "agentId": { "type": "string", "description": "Agent whose workspace to search" },
2818
+ "query": { "type": "string", "description": "Search query (matched against filenames)" },
2819
+ "cwd": { "type": "string", "description": "Subdirectory to search within (relative to workspace root)" },
2820
+ "limit": { "type": "integer", "description": "Max results to return (default 50)" },
2821
+ "_meta": { "$ref": "#/$defs/Meta" }
2822
+ },
2823
+ "required": ["agentId", "query"]
2824
+ }
2825
+ },
2826
+ "required": ["jsonrpc", "id", "method", "params"]
2827
+ },
2828
+ "WorkspaceSearchResponse": {
2829
+ "type": "object",
2830
+ "description": "Response to workspace/search",
2831
+ "properties": {
2832
+ "files": {
2833
+ "type": "array",
2834
+ "items": { "$ref": "#/$defs/WorkspaceFileResult" },
2835
+ "description": "Matching files"
2836
+ },
2837
+ "_meta": { "$ref": "#/$defs/Meta" }
2838
+ },
2839
+ "required": ["files"]
2840
+ },
2841
+ "WorkspaceListRequest": {
2842
+ "type": "object",
2843
+ "x-method": "workspace/list",
2844
+ "x-tier": "extension",
2845
+ "description": "List files in a directory of an agent's workspace",
2846
+ "properties": {
2847
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2848
+ "id": { "$ref": "#/$defs/RequestId" },
2849
+ "method": { "const": "workspace/list" },
2850
+ "params": {
2851
+ "type": "object",
2852
+ "properties": {
2853
+ "agentId": { "type": "string", "description": "Agent whose workspace to list" },
2854
+ "directory": { "type": "string", "description": "Directory to list (relative to workspace root, default '.')" },
2855
+ "_meta": { "$ref": "#/$defs/Meta" }
2856
+ },
2857
+ "required": ["agentId"]
2858
+ }
2859
+ },
2860
+ "required": ["jsonrpc", "id", "method", "params"]
2861
+ },
2862
+ "WorkspaceListResponse": {
2863
+ "type": "object",
2864
+ "description": "Response to workspace/list",
2865
+ "properties": {
2866
+ "files": {
2867
+ "type": "array",
2868
+ "items": { "$ref": "#/$defs/WorkspaceFileResult" },
2869
+ "description": "Files in the directory"
2870
+ },
2871
+ "_meta": { "$ref": "#/$defs/Meta" }
2872
+ },
2873
+ "required": ["files"]
2874
+ },
2875
+ "WorkspaceReadRequest": {
2876
+ "type": "object",
2877
+ "x-method": "workspace/read",
2878
+ "x-tier": "extension",
2879
+ "description": "Read file contents from an agent's workspace",
2880
+ "properties": {
2881
+ "jsonrpc": { "$ref": "#/$defs/JsonRpcVersion" },
2882
+ "id": { "$ref": "#/$defs/RequestId" },
2883
+ "method": { "const": "workspace/read" },
2884
+ "params": {
2885
+ "type": "object",
2886
+ "properties": {
2887
+ "agentId": { "type": "string", "description": "Agent whose workspace to read from" },
2888
+ "path": { "type": "string", "description": "File path relative to workspace root" },
2889
+ "lineRange": {
2890
+ "type": "object",
2891
+ "description": "Optional line range to read (1-indexed)",
2892
+ "properties": {
2893
+ "start": { "type": "integer", "description": "Start line (1-indexed, inclusive)" },
2894
+ "end": { "type": "integer", "description": "End line (1-indexed, inclusive)" }
2895
+ },
2896
+ "required": ["start", "end"]
2897
+ },
2898
+ "_meta": { "$ref": "#/$defs/Meta" }
2899
+ },
2900
+ "required": ["agentId", "path"]
2901
+ }
2902
+ },
2903
+ "required": ["jsonrpc", "id", "method", "params"]
2904
+ },
2905
+ "WorkspaceReadResponse": {
2906
+ "type": "object",
2907
+ "description": "Response to workspace/read",
2908
+ "properties": {
2909
+ "text": { "type": "string", "description": "File text content" },
2910
+ "mime": { "type": "string", "description": "MIME type" },
2911
+ "size": { "type": "integer", "description": "File size in bytes" },
2912
+ "_meta": { "$ref": "#/$defs/Meta" }
2913
+ },
2914
+ "required": ["text", "mime", "size"]
2915
+ },
2916
+ "WorkspaceFileResult": {
2917
+ "type": "object",
2918
+ "description": "A file or directory entry in a workspace",
2919
+ "properties": {
2920
+ "path": { "type": "string", "description": "Relative path from workspace root" },
2921
+ "isDirectory": { "type": "boolean", "description": "Whether this is a directory" },
2922
+ "size": { "type": "integer", "description": "File size in bytes (undefined for directories)" },
2923
+ "mime": { "type": "string", "description": "MIME type guess based on extension" }
2924
+ },
2925
+ "required": ["path", "isDirectory"]
2926
+ },
2927
+
2928
+ "MAPAgentCapabilityDescriptor": {
2929
+ "type": "object",
2930
+ "description": "Structured capability descriptor for rich agent discovery",
2931
+ "properties": {
2932
+ "id": { "type": "string", "description": "Globally unique capability descriptor ID (e.g., 'urn:map:cap:code-review')" },
2933
+ "version": { "type": "string", "description": "Semantic version of the capability descriptor" },
2934
+ "name": { "type": "string", "description": "Human-readable name" },
2935
+ "description": { "type": "string", "description": "Human-readable description" },
2936
+ "capabilities": {
2937
+ "type": "array",
2938
+ "items": { "$ref": "#/$defs/MAPCapabilityDeclaration" },
2939
+ "description": "Individual capabilities this agent provides"
2940
+ },
2941
+ "tags": {
2942
+ "type": "array",
2943
+ "items": { "type": "string" },
2944
+ "description": "Semantic tags for categorization (e.g., 'code', 'review', 'testing')"
2945
+ },
2946
+ "accepts": {
2947
+ "type": "array",
2948
+ "items": { "$ref": "#/$defs/MAPInterfaceSpec" },
2949
+ "description": "Input interfaces this agent accepts"
2950
+ },
2951
+ "provides": {
2952
+ "type": "array",
2953
+ "items": { "$ref": "#/$defs/MAPInterfaceSpec" },
2954
+ "description": "Output interfaces this agent provides"
2955
+ }
2956
+ }
2957
+ },
2958
+ "MAPCapabilityDeclaration": {
2959
+ "type": "object",
2960
+ "description": "A single capability declared by an agent",
2961
+ "properties": {
2962
+ "id": { "type": "string", "description": "Capability identifier (e.g., 'code-review', 'translation')" },
2963
+ "version": { "type": "string", "description": "Capability version" },
2964
+ "description": { "type": "string" },
2965
+ "interfaces": {
2966
+ "type": "array",
2967
+ "items": { "$ref": "#/$defs/MAPInterfaceSpec" },
2968
+ "description": "Interfaces for this specific capability"
2969
+ }
2970
+ },
2971
+ "required": ["id"]
2972
+ },
2973
+ "MAPInterfaceSpec": {
2974
+ "type": "object",
2975
+ "description": "Content type interface specification",
2976
+ "properties": {
2977
+ "contentType": { "type": "string", "description": "MIME type (e.g., 'application/json', 'text/plain')" },
2978
+ "schema": { "type": "string", "description": "Optional JSON Schema URI for the content" },
2979
+ "description": { "type": "string" }
2980
+ },
2981
+ "required": ["contentType"]
2982
+ },
2983
+
2984
+ "DIDDocument": {
2985
+ "type": "object",
2986
+ "description": "W3C DID Document for did:wba method",
2987
+ "properties": {
2988
+ "@context": {
2989
+ "oneOf": [
2990
+ { "type": "string" },
2991
+ { "type": "array", "items": { "type": "string" } }
2992
+ ]
2993
+ },
2994
+ "id": { "type": "string", "description": "The DID (e.g., 'did:wba:agents.example.com:gateway')" },
2995
+ "verificationMethod": {
2996
+ "type": "array",
2997
+ "items": { "$ref": "#/$defs/DIDVerificationMethod" }
2998
+ },
2999
+ "authentication": {
3000
+ "type": "array",
3001
+ "items": { "type": "string" },
3002
+ "description": "Key references for authentication (e.g., 'did:wba:...#key-1')"
3003
+ },
3004
+ "service": {
3005
+ "type": "array",
3006
+ "items": { "$ref": "#/$defs/DIDService" }
3007
+ }
3008
+ },
3009
+ "required": ["id"]
3010
+ },
3011
+ "DIDVerificationMethod": {
3012
+ "type": "object",
3013
+ "description": "A verification method in a DID Document",
3014
+ "properties": {
3015
+ "id": { "type": "string" },
3016
+ "type": { "type": "string", "description": "Key type (e.g., 'JsonWebKey2020')" },
3017
+ "controller": { "type": "string" },
3018
+ "publicKeyJwk": { "type": "object", "description": "Public key in JWK format" }
3019
+ },
3020
+ "required": ["id", "type", "controller"]
3021
+ },
3022
+ "DIDService": {
3023
+ "type": "object",
3024
+ "description": "A service endpoint in a DID Document",
3025
+ "properties": {
3026
+ "id": { "type": "string" },
3027
+ "type": { "type": "string", "description": "Service type (e.g., 'MAPFederationEndpoint')" },
3028
+ "serviceEndpoint": {
3029
+ "oneOf": [
3030
+ { "type": "string" },
3031
+ { "type": "object" }
3032
+ ]
3033
+ },
3034
+ "mapProtocolVersion": { "type": "integer" },
3035
+ "mapCapabilities": { "type": "object" }
3036
+ },
3037
+ "required": ["id", "type", "serviceEndpoint"]
3038
+ },
3039
+ "DIDWBAProof": {
3040
+ "type": "object",
3041
+ "description": "Cryptographic proof for DID:WBA authentication",
3042
+ "properties": {
3043
+ "type": { "type": "string", "description": "Proof type (e.g., 'JsonWebSignature2020')" },
3044
+ "created": { "type": "string", "format": "date-time", "description": "ISO 8601 timestamp" },
3045
+ "challenge": { "type": "string", "description": "Server-provided challenge nonce" },
3046
+ "jws": { "type": "string", "description": "JWS compact serialization of the proof signature" }
3047
+ },
3048
+ "required": ["type", "created", "challenge", "jws"]
3049
+ },
3050
+ "DIDWBACredentials": {
3051
+ "type": "object",
3052
+ "description": "Federation auth credentials using did:wba",
3053
+ "properties": {
3054
+ "method": { "const": "did:wba" },
3055
+ "metadata": {
3056
+ "type": "object",
3057
+ "properties": {
3058
+ "did": { "type": "string", "description": "The DID of the authenticating system" },
3059
+ "proof": { "$ref": "#/$defs/DIDWBAProof" }
3060
+ },
3061
+ "required": ["did", "proof"]
3062
+ }
3063
+ },
3064
+ "required": ["method", "metadata"]
3065
+ }
3066
+ }
3067
+ }