@joe-broadhead/messaging 0.0.0-stage → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/CHANGELOG.md +220 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +12 -0
  4. package/README.md +36 -2
  5. package/dist/bin/messaging-mcp.js +26524 -0
  6. package/dist/bin/messaging-relay.js +19768 -0
  7. package/dist/bin/messaging.js +15465 -0
  8. package/dist/bin/messagingd.js +29449 -0
  9. package/dist/lib/core-testing.js +1 -0
  10. package/dist/lib/core.js +1 -0
  11. package/dist/lib/ipc-testing.js +1 -0
  12. package/dist/lib/ipc.js +1 -0
  13. package/dist/lib/modules/core/address.js +42 -0
  14. package/dist/lib/modules/core/agent/operations.js +595 -0
  15. package/dist/lib/modules/core/agent/present.js +244 -0
  16. package/dist/lib/modules/core/agent/text.js +79 -0
  17. package/dist/lib/modules/core/agent-tools.js +477 -0
  18. package/dist/lib/modules/core/b64u.js +20 -0
  19. package/dist/lib/modules/core/cards.js +55 -0
  20. package/dist/lib/modules/core/check.js +20 -0
  21. package/dist/lib/modules/core/consent.js +199 -0
  22. package/dist/lib/modules/core/contact-card.js +74 -0
  23. package/dist/lib/modules/core/conversation/context.js +80 -0
  24. package/dist/lib/modules/core/conversation/event.js +100 -0
  25. package/dist/lib/modules/core/conversation/ids.js +38 -0
  26. package/dist/lib/modules/core/conversation/link.js +35 -0
  27. package/dist/lib/modules/core/conversation/log.js +766 -0
  28. package/dist/lib/modules/core/conversation/ratchet.js +243 -0
  29. package/dist/lib/modules/core/conversation/seal.js +198 -0
  30. package/dist/lib/modules/core/delegation.js +174 -0
  31. package/dist/lib/modules/core/directory/device-log.js +258 -0
  32. package/dist/lib/modules/core/directory/epoch.js +103 -0
  33. package/dist/lib/modules/core/directory/handle.js +29 -0
  34. package/dist/lib/modules/core/directory/jelly-device.js +204 -0
  35. package/dist/lib/modules/core/directory/jelly-issuer.js +12 -0
  36. package/dist/lib/modules/core/directory/jelly-token.js +305 -0
  37. package/dist/lib/modules/core/directory/keys-statement.js +43 -0
  38. package/dist/lib/modules/core/directory/link.js +81 -0
  39. package/dist/lib/modules/core/directory/merkle-log.js +250 -0
  40. package/dist/lib/modules/core/directory/person-view.js +197 -0
  41. package/dist/lib/modules/core/directory/person.js +40 -0
  42. package/dist/lib/modules/core/directory/realm.js +59 -0
  43. package/dist/lib/modules/core/directory/smt.js +266 -0
  44. package/dist/lib/modules/core/envelope.js +320 -0
  45. package/dist/lib/modules/core/hash.js +5 -0
  46. package/dist/lib/modules/core/head.js +27 -0
  47. package/dist/lib/modules/core/identity.js +71 -0
  48. package/dist/lib/modules/core/index.js +53 -0
  49. package/dist/lib/modules/core/jcs.js +96 -0
  50. package/dist/lib/modules/core/jelly-host-double.js +35 -0
  51. package/dist/lib/modules/core/jelly-host.js +211 -0
  52. package/dist/lib/modules/core/keys.js +79 -0
  53. package/dist/lib/modules/core/peer-text.js +563 -0
  54. package/dist/lib/modules/core/realm.js +1 -0
  55. package/dist/lib/modules/core/roster.js +454 -0
  56. package/dist/lib/modules/core/schema/a2a.js +85 -0
  57. package/dist/lib/modules/core/schema/common.js +310 -0
  58. package/dist/lib/modules/core/schema/consent.js +120 -0
  59. package/dist/lib/modules/core/schema/conversation.js +292 -0
  60. package/dist/lib/modules/core/schema/delegation.js +58 -0
  61. package/dist/lib/modules/core/schema/directory-frames.js +270 -0
  62. package/dist/lib/modules/core/schema/directory.js +169 -0
  63. package/dist/lib/modules/core/schema/envelope.js +211 -0
  64. package/dist/lib/modules/core/schema/errors.js +104 -0
  65. package/dist/lib/modules/core/schema/index.js +16 -0
  66. package/dist/lib/modules/core/schema/ipc/consent.js +181 -0
  67. package/dist/lib/modules/core/schema/ipc/device.js +276 -0
  68. package/dist/lib/modules/core/schema/ipc/jelly.js +189 -0
  69. package/dist/lib/modules/core/schema/ipc/shapes.js +185 -0
  70. package/dist/lib/modules/core/schema/ipc/surfaces.js +223 -0
  71. package/dist/lib/modules/core/schema/ipc.js +451 -0
  72. package/dist/lib/modules/core/schema/jelly.js +122 -0
  73. package/dist/lib/modules/core/schema/realm.js +27 -0
  74. package/dist/lib/modules/core/schema/relay.js +112 -0
  75. package/dist/lib/modules/core/schema/roster.js +126 -0
  76. package/dist/lib/modules/core/sign.js +43 -0
  77. package/dist/lib/modules/core/task.js +37 -0
  78. package/dist/lib/modules/core/testing.js +21 -0
  79. package/dist/lib/modules/core/ulid.js +36 -0
  80. package/dist/lib/modules/core/version.js +6 -0
  81. package/dist/lib/modules/core/wire.js +255 -0
  82. package/dist/lib/modules/ipc/client.js +289 -0
  83. package/dist/lib/modules/ipc/framing.js +33 -0
  84. package/dist/lib/modules/ipc/index.js +6 -0
  85. package/dist/lib/modules/ipc/paths.js +102 -0
  86. package/dist/lib/modules/ipc/pipes.js +65 -0
  87. package/dist/lib/modules/ipc/rpc.js +8 -0
  88. package/dist/lib/modules/ipc/server.js +317 -0
  89. package/dist/lib/modules/ipc/testing.js +145 -0
  90. package/dist/lib/modules/ipc/trust.js +166 -0
  91. package/dist/lib/modules/ipc/windows-acl.js +275 -0
  92. package/dist/lib/modules/vendor/zod/index.js +7 -0
  93. package/dist/lib/modules/vendor/zod/v4/classic/checks.js +1 -0
  94. package/dist/lib/modules/vendor/zod/v4/classic/coerce.js +17 -0
  95. package/dist/lib/modules/vendor/zod/v4/classic/compat.js +31 -0
  96. package/dist/lib/modules/vendor/zod/v4/classic/deep-partial.js +13 -0
  97. package/dist/lib/modules/vendor/zod/v4/classic/errors.js +57 -0
  98. package/dist/lib/modules/vendor/zod/v4/classic/external.js +17 -0
  99. package/dist/lib/modules/vendor/zod/v4/classic/from-json-schema.js +881 -0
  100. package/dist/lib/modules/vendor/zod/v4/classic/in-out.js +36 -0
  101. package/dist/lib/modules/vendor/zod/v4/classic/iso.js +15 -0
  102. package/dist/lib/modules/vendor/zod/v4/classic/parse.js +16 -0
  103. package/dist/lib/modules/vendor/zod/v4/classic/schemas.js +1535 -0
  104. package/dist/lib/modules/vendor/zod/v4/core/api.js +1107 -0
  105. package/dist/lib/modules/vendor/zod/v4/core/checks.js +516 -0
  106. package/dist/lib/modules/vendor/zod/v4/core/compile.js +1866 -0
  107. package/dist/lib/modules/vendor/zod/v4/core/core.js +141 -0
  108. package/dist/lib/modules/vendor/zod/v4/core/doc.js +38 -0
  109. package/dist/lib/modules/vendor/zod/v4/core/errors.js +267 -0
  110. package/dist/lib/modules/vendor/zod/v4/core/index.js +19 -0
  111. package/dist/lib/modules/vendor/zod/v4/core/json-schema-generator.js +99 -0
  112. package/dist/lib/modules/vendor/zod/v4/core/json-schema-processors.js +843 -0
  113. package/dist/lib/modules/vendor/zod/v4/core/json-schema.js +1 -0
  114. package/dist/lib/modules/vendor/zod/v4/core/memoizer.js +311 -0
  115. package/dist/lib/modules/vendor/zod/v4/core/parse.js +175 -0
  116. package/dist/lib/modules/vendor/zod/v4/core/regexes.js +156 -0
  117. package/dist/lib/modules/vendor/zod/v4/core/registries.js +51 -0
  118. package/dist/lib/modules/vendor/zod/v4/core/schemas.js +2636 -0
  119. package/dist/lib/modules/vendor/zod/v4/core/to-json-schema.js +651 -0
  120. package/dist/lib/modules/vendor/zod/v4/core/util.js +873 -0
  121. package/dist/lib/modules/vendor/zod/v4/core/versions.js +5 -0
  122. package/dist/lib/modules/vendor/zod/v4/core/visit.js +169 -0
  123. package/dist/lib/modules/vendor/zod/v4/locales/ar.js +111 -0
  124. package/dist/lib/modules/vendor/zod/v4/locales/az.js +110 -0
  125. package/dist/lib/modules/vendor/zod/v4/locales/be.js +168 -0
  126. package/dist/lib/modules/vendor/zod/v4/locales/bg.js +125 -0
  127. package/dist/lib/modules/vendor/zod/v4/locales/bn.js +113 -0
  128. package/dist/lib/modules/vendor/zod/v4/locales/ca.js +112 -0
  129. package/dist/lib/modules/vendor/zod/v4/locales/ckb.js +133 -0
  130. package/dist/lib/modules/vendor/zod/v4/locales/cs.js +116 -0
  131. package/dist/lib/modules/vendor/zod/v4/locales/da.js +120 -0
  132. package/dist/lib/modules/vendor/zod/v4/locales/de.js +113 -0
  133. package/dist/lib/modules/vendor/zod/v4/locales/el.js +112 -0
  134. package/dist/lib/modules/vendor/zod/v4/locales/en.js +125 -0
  135. package/dist/lib/modules/vendor/zod/v4/locales/eo.js +114 -0
  136. package/dist/lib/modules/vendor/zod/v4/locales/es.js +136 -0
  137. package/dist/lib/modules/vendor/zod/v4/locales/fa.js +119 -0
  138. package/dist/lib/modules/vendor/zod/v4/locales/fi.js +117 -0
  139. package/dist/lib/modules/vendor/zod/v4/locales/fr-CA.js +112 -0
  140. package/dist/lib/modules/vendor/zod/v4/locales/fr.js +129 -0
  141. package/dist/lib/modules/vendor/zod/v4/locales/gu.js +113 -0
  142. package/dist/lib/modules/vendor/zod/v4/locales/he.js +221 -0
  143. package/dist/lib/modules/vendor/zod/v4/locales/hi.js +111 -0
  144. package/dist/lib/modules/vendor/zod/v4/locales/hr.js +126 -0
  145. package/dist/lib/modules/vendor/zod/v4/locales/hu.js +113 -0
  146. package/dist/lib/modules/vendor/zod/v4/locales/hy.js +158 -0
  147. package/dist/lib/modules/vendor/zod/v4/locales/id.js +111 -0
  148. package/dist/lib/modules/vendor/zod/v4/locales/index.js +63 -0
  149. package/dist/lib/modules/vendor/zod/v4/locales/is.js +114 -0
  150. package/dist/lib/modules/vendor/zod/v4/locales/it.js +113 -0
  151. package/dist/lib/modules/vendor/zod/v4/locales/ja.js +112 -0
  152. package/dist/lib/modules/vendor/zod/v4/locales/ka.js +117 -0
  153. package/dist/lib/modules/vendor/zod/v4/locales/kh.js +5 -0
  154. package/dist/lib/modules/vendor/zod/v4/locales/km.js +115 -0
  155. package/dist/lib/modules/vendor/zod/v4/locales/kn.js +116 -0
  156. package/dist/lib/modules/vendor/zod/v4/locales/ko.js +116 -0
  157. package/dist/lib/modules/vendor/zod/v4/locales/lt.js +207 -0
  158. package/dist/lib/modules/vendor/zod/v4/locales/mk.js +114 -0
  159. package/dist/lib/modules/vendor/zod/v4/locales/ms.js +112 -0
  160. package/dist/lib/modules/vendor/zod/v4/locales/ne.js +111 -0
  161. package/dist/lib/modules/vendor/zod/v4/locales/nl.js +115 -0
  162. package/dist/lib/modules/vendor/zod/v4/locales/nn.js +113 -0
  163. package/dist/lib/modules/vendor/zod/v4/locales/no.js +113 -0
  164. package/dist/lib/modules/vendor/zod/v4/locales/ota.js +114 -0
  165. package/dist/lib/modules/vendor/zod/v4/locales/pl.js +114 -0
  166. package/dist/lib/modules/vendor/zod/v4/locales/ps.js +119 -0
  167. package/dist/lib/modules/vendor/zod/v4/locales/pt-BR.js +143 -0
  168. package/dist/lib/modules/vendor/zod/v4/locales/pt.js +142 -0
  169. package/dist/lib/modules/vendor/zod/v4/locales/ro.js +122 -0
  170. package/dist/lib/modules/vendor/zod/v4/locales/ru.js +168 -0
  171. package/dist/lib/modules/vendor/zod/v4/locales/sk.js +116 -0
  172. package/dist/lib/modules/vendor/zod/v4/locales/sl.js +114 -0
  173. package/dist/lib/modules/vendor/zod/v4/locales/sv.js +115 -0
  174. package/dist/lib/modules/vendor/zod/v4/locales/ta.js +115 -0
  175. package/dist/lib/modules/vendor/zod/v4/locales/tg.js +117 -0
  176. package/dist/lib/modules/vendor/zod/v4/locales/th.js +115 -0
  177. package/dist/lib/modules/vendor/zod/v4/locales/tk.js +107 -0
  178. package/dist/lib/modules/vendor/zod/v4/locales/tr.js +110 -0
  179. package/dist/lib/modules/vendor/zod/v4/locales/ua.js +5 -0
  180. package/dist/lib/modules/vendor/zod/v4/locales/uk.js +113 -0
  181. package/dist/lib/modules/vendor/zod/v4/locales/ur.js +115 -0
  182. package/dist/lib/modules/vendor/zod/v4/locales/uz.js +113 -0
  183. package/dist/lib/modules/vendor/zod/v4/locales/vi.js +113 -0
  184. package/dist/lib/modules/vendor/zod/v4/locales/yo.js +112 -0
  185. package/dist/lib/modules/vendor/zod/v4/locales/zh-CN.js +114 -0
  186. package/dist/lib/modules/vendor/zod/v4/locales/zh-TW.js +112 -0
  187. package/dist/lib/testing-jelly-id.js +1219 -0
  188. package/dist/lib/zod.js +1 -0
  189. package/dist/spec/messaging-v1.md +3744 -0
  190. package/dist/third-party-notices.md +239 -0
  191. package/dist/third-party.json +88 -0
  192. package/dist/types/core/address.d.ts +16 -0
  193. package/dist/types/core/agent/operations.d.ts +129 -0
  194. package/dist/types/core/agent/present.d.ts +57 -0
  195. package/dist/types/core/agent/text.d.ts +62 -0
  196. package/dist/types/core/agent-tools.d.ts +966 -0
  197. package/dist/types/core/b64u.d.ts +6 -0
  198. package/dist/types/core/cards.d.ts +21 -0
  199. package/dist/types/core/check.d.ts +10 -0
  200. package/dist/types/core/consent.d.ts +132 -0
  201. package/dist/types/core/contact-card.d.ts +34 -0
  202. package/dist/types/core/conversation/context.d.ts +56 -0
  203. package/dist/types/core/conversation/event.d.ts +36 -0
  204. package/dist/types/core/conversation/ids.d.ts +18 -0
  205. package/dist/types/core/conversation/link.d.ts +16 -0
  206. package/dist/types/core/conversation/log.d.ts +142 -0
  207. package/dist/types/core/conversation/ratchet.d.ts +95 -0
  208. package/dist/types/core/conversation/seal.d.ts +47 -0
  209. package/dist/types/core/delegation.d.ts +71 -0
  210. package/dist/types/core/directory/device-log.d.ts +119 -0
  211. package/dist/types/core/directory/epoch.d.ts +53 -0
  212. package/dist/types/core/directory/handle.d.ts +11 -0
  213. package/dist/types/core/directory/jelly-device.d.ts +88 -0
  214. package/dist/types/core/directory/jelly-issuer.d.ts +8 -0
  215. package/dist/types/core/directory/jelly-token.d.ts +116 -0
  216. package/dist/types/core/directory/keys-statement.d.ts +22 -0
  217. package/dist/types/core/directory/link.d.ts +36 -0
  218. package/dist/types/core/directory/merkle-log.d.ts +40 -0
  219. package/dist/types/core/directory/person-view.d.ts +90 -0
  220. package/dist/types/core/directory/person.d.ts +8 -0
  221. package/dist/types/core/directory/realm.d.ts +23 -0
  222. package/dist/types/core/directory/smt.d.ts +52 -0
  223. package/dist/types/core/envelope.d.ts +68 -0
  224. package/dist/types/core/hash.d.ts +2 -0
  225. package/dist/types/core/head.d.ts +34 -0
  226. package/dist/types/core/identity.d.ts +35 -0
  227. package/dist/types/core/index.d.ts +45 -0
  228. package/dist/types/core/jcs.d.ts +12 -0
  229. package/dist/types/core/jelly-host-double.d.ts +21 -0
  230. package/dist/types/core/jelly-host.d.ts +86 -0
  231. package/dist/types/core/keys.d.ts +16 -0
  232. package/dist/types/core/peer-text.d.ts +87 -0
  233. package/dist/types/core/realm.d.ts +36 -0
  234. package/dist/types/core/roster.d.ts +146 -0
  235. package/dist/types/core/schema/a2a.d.ts +251 -0
  236. package/dist/types/core/schema/common.d.ts +328 -0
  237. package/dist/types/core/schema/consent.d.ts +140 -0
  238. package/dist/types/core/schema/conversation.d.ts +1657 -0
  239. package/dist/types/core/schema/delegation.d.ts +58 -0
  240. package/dist/types/core/schema/directory-frames.d.ts +1301 -0
  241. package/dist/types/core/schema/directory.d.ts +375 -0
  242. package/dist/types/core/schema/envelope.d.ts +756 -0
  243. package/dist/types/core/schema/errors.d.ts +142 -0
  244. package/dist/types/core/schema/index.d.ts +16 -0
  245. package/dist/types/core/schema/ipc/consent.d.ts +555 -0
  246. package/dist/types/core/schema/ipc/device.d.ts +735 -0
  247. package/dist/types/core/schema/ipc/jelly.d.ts +501 -0
  248. package/dist/types/core/schema/ipc/shapes.d.ts +414 -0
  249. package/dist/types/core/schema/ipc/surfaces.d.ts +680 -0
  250. package/dist/types/core/schema/ipc.d.ts +3146 -0
  251. package/dist/types/core/schema/jelly.d.ts +160 -0
  252. package/dist/types/core/schema/realm.d.ts +38 -0
  253. package/dist/types/core/schema/relay.d.ts +1134 -0
  254. package/dist/types/core/schema/roster.d.ts +347 -0
  255. package/dist/types/core/sign.d.ts +13 -0
  256. package/dist/types/core/task.d.ts +6 -0
  257. package/dist/types/core/testing.d.ts +19 -0
  258. package/dist/types/core/ulid.d.ts +5 -0
  259. package/dist/types/core/version.d.ts +6 -0
  260. package/dist/types/core/wire.d.ts +14 -0
  261. package/dist/types/ipc/client.d.ts +85 -0
  262. package/dist/types/ipc/framing.d.ts +12 -0
  263. package/dist/types/ipc/index.d.ts +6 -0
  264. package/dist/types/ipc/paths.d.ts +39 -0
  265. package/dist/types/ipc/pipes.d.ts +16 -0
  266. package/dist/types/ipc/rpc.d.ts +13 -0
  267. package/dist/types/ipc/server.d.ts +94 -0
  268. package/dist/types/ipc/testing.d.ts +89 -0
  269. package/dist/types/ipc/trust.d.ts +49 -0
  270. package/dist/types/ipc/windows-acl.d.ts +56 -0
  271. package/dist/types/testing/jelly-id.d.ts +518 -0
  272. package/dist/types/zod.d.ts +1 -0
  273. package/package.json +77 -4
@@ -0,0 +1,239 @@
1
+ # Third-party notices
2
+
3
+ The files in dist/ include code from these packages, under their own licences.
4
+
5
+ ## @modelcontextprotocol/sdk 1.32.2 (MIT)
6
+
7
+ ```
8
+ MIT License
9
+
10
+ Copyright (c) 2024 Anthropic, PBC
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
29
+ ```
30
+
31
+ ## ajv 8.20.0 (MIT)
32
+
33
+ ```
34
+ The MIT License (MIT)
35
+
36
+ Copyright (c) 2015-2021 Evgeny Poberezkin
37
+
38
+ Permission is hereby granted, free of charge, to any person obtaining a copy
39
+ of this software and associated documentation files (the "Software"), to deal
40
+ in the Software without restriction, including without limitation the rights
41
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
42
+ copies of the Software, and to permit persons to whom the Software is
43
+ furnished to do so, subject to the following conditions:
44
+
45
+ The above copyright notice and this permission notice shall be included in all
46
+ copies or substantial portions of the Software.
47
+
48
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
49
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
51
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
53
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
54
+ SOFTWARE.
55
+ ```
56
+
57
+ ## ajv-formats 3.0.1 (MIT)
58
+
59
+ ```
60
+ MIT License
61
+
62
+ Copyright (c) 2020 Evgeny Poberezkin
63
+
64
+ Permission is hereby granted, free of charge, to any person obtaining a copy
65
+ of this software and associated documentation files (the "Software"), to deal
66
+ in the Software without restriction, including without limitation the rights
67
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
68
+ copies of the Software, and to permit persons to whom the Software is
69
+ furnished to do so, subject to the following conditions:
70
+
71
+ The above copyright notice and this permission notice shall be included in all
72
+ copies or substantial portions of the Software.
73
+
74
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
75
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
76
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
77
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
78
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
79
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
80
+ SOFTWARE.
81
+ ```
82
+
83
+ ## fast-deep-equal 3.1.3 (MIT)
84
+
85
+ ```
86
+ MIT License
87
+
88
+ Copyright (c) 2017 Evgeny Poberezkin
89
+
90
+ Permission is hereby granted, free of charge, to any person obtaining a copy
91
+ of this software and associated documentation files (the "Software"), to deal
92
+ in the Software without restriction, including without limitation the rights
93
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
94
+ copies of the Software, and to permit persons to whom the Software is
95
+ furnished to do so, subject to the following conditions:
96
+
97
+ The above copyright notice and this permission notice shall be included in all
98
+ copies or substantial portions of the Software.
99
+
100
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
101
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
102
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
103
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
104
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
105
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
106
+ SOFTWARE.
107
+ ```
108
+
109
+ ## fast-uri 3.1.9 (BSD-3-Clause)
110
+
111
+ ```
112
+ Copyright (c) 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae
113
+ Copyright (c) 2021-present The Fastify team <https://github.com/fastify/fastify#team>
114
+ All rights reserved.
115
+
116
+ Redistribution and use in source and binary forms, with or without
117
+ modification, are permitted provided that the following conditions are met:
118
+ * Redistributions of source code must retain the above copyright
119
+ notice, this list of conditions and the following disclaimer.
120
+ * Redistributions in binary form must reproduce the above copyright
121
+ notice, this list of conditions and the following disclaimer in the
122
+ documentation and/or other materials provided with the distribution.
123
+ * The names of any contributors may not be used to endorse or promote
124
+ products derived from this software without specific prior written
125
+ permission.
126
+
127
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
128
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
129
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
130
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
131
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
132
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
133
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
134
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
135
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
136
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
137
+
138
+ * * *
139
+
140
+ The complete list of contributors can be found at:
141
+ - https://github.com/garycourt/uri-js/graphs/contributors
142
+ ```
143
+
144
+ ## json-schema-traverse 1.0.0 (MIT)
145
+
146
+ ```
147
+ MIT License
148
+
149
+ Copyright (c) 2017 Evgeny Poberezkin
150
+
151
+ Permission is hereby granted, free of charge, to any person obtaining a copy
152
+ of this software and associated documentation files (the "Software"), to deal
153
+ in the Software without restriction, including without limitation the rights
154
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
155
+ copies of the Software, and to permit persons to whom the Software is
156
+ furnished to do so, subject to the following conditions:
157
+
158
+ The above copyright notice and this permission notice shall be included in all
159
+ copies or substantial portions of the Software.
160
+
161
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
162
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
163
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
164
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
165
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
166
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
167
+ SOFTWARE.
168
+ ```
169
+
170
+ ## ws 8.22.0 (MIT)
171
+
172
+ ```
173
+ Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>
174
+ Copyright (c) 2013 Arnout Kazemier and contributors
175
+ Copyright (c) 2016 Luigi Pinca and contributors
176
+
177
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
178
+ this software and associated documentation files (the "Software"), to deal in
179
+ the Software without restriction, including without limitation the rights to
180
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
181
+ the Software, and to permit persons to whom the Software is furnished to do so,
182
+ subject to the following conditions:
183
+
184
+ The above copyright notice and this permission notice shall be included in all
185
+ copies or substantial portions of the Software.
186
+
187
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
188
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
189
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
190
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
191
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
192
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
193
+ ```
194
+
195
+ ## zod 4.6.7 (MIT)
196
+
197
+ ```
198
+ MIT License
199
+
200
+ Copyright (c) 2025 Colin McDonnell
201
+
202
+ Permission is hereby granted, free of charge, to any person obtaining a copy
203
+ of this software and associated documentation files (the "Software"), to deal
204
+ in the Software without restriction, including without limitation the rights
205
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
206
+ copies of the Software, and to permit persons to whom the Software is
207
+ furnished to do so, subject to the following conditions:
208
+
209
+ The above copyright notice and this permission notice shall be included in all
210
+ copies or substantial portions of the Software.
211
+
212
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
213
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
214
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
215
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
216
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
217
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
218
+ SOFTWARE.
219
+ ```
220
+
221
+ ## zod-to-json-schema 3.25.2 (ISC)
222
+
223
+ ```
224
+ ISC License
225
+
226
+ Copyright (c) 2020, Stefan Terdell
227
+
228
+ Permission to use, copy, modify, and/or distribute this software for any
229
+ purpose with or without fee is hereby granted, provided that the above
230
+ copyright notice and this permission notice appear in all copies.
231
+
232
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
233
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
234
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
235
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
236
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
237
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
238
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
239
+ ```
@@ -0,0 +1,88 @@
1
+ {
2
+ "exports": {
3
+ "./bin/messaging-mcp.js": [
4
+ "@modelcontextprotocol/sdk",
5
+ "ajv",
6
+ "ajv-formats",
7
+ "fast-deep-equal",
8
+ "fast-uri",
9
+ "json-schema-traverse",
10
+ "zod",
11
+ "zod-to-json-schema"
12
+ ],
13
+ "./bin/messaging-relay.js": [
14
+ "ws",
15
+ "zod"
16
+ ],
17
+ "./bin/messaging.js": [
18
+ "zod"
19
+ ],
20
+ "./bin/messagingd.js": [
21
+ "ws",
22
+ "zod"
23
+ ],
24
+ "./core": [
25
+ "zod"
26
+ ],
27
+ "./core/testing": [
28
+ "zod"
29
+ ],
30
+ "./ipc": [
31
+ "zod"
32
+ ],
33
+ "./ipc/testing": [
34
+ "zod"
35
+ ],
36
+ "./testing/jelly-id": [],
37
+ "./zod": [
38
+ "zod"
39
+ ]
40
+ },
41
+ "packages": {
42
+ "@modelcontextprotocol/sdk": {
43
+ "version": "1.32.2",
44
+ "license": "MIT",
45
+ "text": "MIT License\n\nCopyright (c) 2024 Anthropic, PBC\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
46
+ },
47
+ "ajv": {
48
+ "version": "8.20.0",
49
+ "license": "MIT",
50
+ "text": "The MIT License (MIT)\n\nCopyright (c) 2015-2021 Evgeny Poberezkin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
51
+ },
52
+ "ajv-formats": {
53
+ "version": "3.0.1",
54
+ "license": "MIT",
55
+ "text": "MIT License\n\nCopyright (c) 2020 Evgeny Poberezkin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
56
+ },
57
+ "fast-deep-equal": {
58
+ "version": "3.1.3",
59
+ "license": "MIT",
60
+ "text": "MIT License\n\nCopyright (c) 2017 Evgeny Poberezkin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
61
+ },
62
+ "fast-uri": {
63
+ "version": "3.1.9",
64
+ "license": "BSD-3-Clause",
65
+ "text": "Copyright (c) 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae\nCopyright (c) 2021-present The Fastify team <https://github.com/fastify/fastify#team>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * The names of any contributors may not be used to endorse or promote\n products derived from this software without specific prior written\n permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n * * *\n\nThe complete list of contributors can be found at:\n- https://github.com/garycourt/uri-js/graphs/contributors"
66
+ },
67
+ "json-schema-traverse": {
68
+ "version": "1.0.0",
69
+ "license": "MIT",
70
+ "text": "MIT License\n\nCopyright (c) 2017 Evgeny Poberezkin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
71
+ },
72
+ "ws": {
73
+ "version": "8.22.0",
74
+ "license": "MIT",
75
+ "text": "Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\nCopyright (c) 2013 Arnout Kazemier and contributors\nCopyright (c) 2016 Luigi Pinca and contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
76
+ },
77
+ "zod": {
78
+ "version": "4.6.7",
79
+ "license": "MIT",
80
+ "text": "MIT License\n\nCopyright (c) 2025 Colin McDonnell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
81
+ },
82
+ "zod-to-json-schema": {
83
+ "version": "3.25.2",
84
+ "license": "ISC",
85
+ "text": "ISC License\n\nCopyright (c) 2020, Stefan Terdell\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE."
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,16 @@
1
+ import { MachineLabel, PersonId, SessionName } from "./schema/common.js";
2
+ /**
3
+ * One session: `person/session[@label]`. Group forms (`person/*`, `repo:<name>`, `*`) are not
4
+ * addresses (spec §3): an address names one session.
5
+ */
6
+ export type ParsedAddress = {
7
+ kind: "session";
8
+ person: PersonId;
9
+ session: SessionName;
10
+ label?: MachineLabel;
11
+ };
12
+ /** Parses the address grammar in `schema/common.ts`. Anything else is `invalid_request`. */
13
+ export declare function parseAddress(text: string): ParsedAddress;
14
+ /** The inverse of `parseAddress`. */
15
+ export declare function formatAddress(address: ParsedAddress): string;
16
+ export declare function formatAddress(person: PersonId, session: SessionName, label?: MachineLabel): string;
@@ -0,0 +1,129 @@
1
+ import { type ToolAddress, type ToolConsent, type ToolInput, type ToolOutput } from "../agent-tools.js";
2
+ import type * as A2A from "../schema/a2a.js";
3
+ import type { AgentMethod, IpcParams, IpcResult, TaskRecord } from "../schema/ipc.js";
4
+ import { type ToolFramer } from "./text.js";
5
+ /**
6
+ * The eight agent tools' operations (spec §11, "Agent tools"), on the agent IPC methods and
7
+ * `conv.read`, shared by every agent-facing client. Pure: the client injects its daemon link, its
8
+ * fence, what the session may reach, and hooks for what it tracks. A client's tool adapter
9
+ * validates input and hands in `assert`, which asks its permission for a conversation; every
10
+ * operation calls it after its own cheap checks and before any side effect or before any peer text
11
+ * is returned. Failures are `MessagingError`s with plain messages; the client shapes them into
12
+ * `{error: {code, message, remedy}}`.
13
+ */
14
+ /** The daemon calls an operation makes: the agent methods only. */
15
+ export interface ToolLink {
16
+ call<M extends AgentMethod>(method: M, params: IpcParams<M>, signal?: AbortSignal): Promise<IpcResult<M>>;
17
+ }
18
+ /** A call's session: its link, key and own address, and the peer when the call runs in a guarded peer turn. */
19
+ export interface CallSession {
20
+ link: ToolLink;
21
+ key: string;
22
+ /** This session's registered address, `person/session@label`. */
23
+ address: string;
24
+ person: string;
25
+ /** Set in a guarded peer turn: only what concerns this person exists. */
26
+ peer?: string;
27
+ }
28
+ /** What a client tracks about what its agent saw. Each is called after the daemon call succeeded. */
29
+ export interface OperationsHooks {
30
+ /** Acknowledge a preview shown to the agent as `handed_to_agent`; never throws. */
31
+ ack(link: ToolLink, key: string, id: string): Promise<void>;
32
+ /** The agent was shown this item's preview. */
33
+ shown(id: string): void;
34
+ /** The agent read this item in full (`item.read`). */
35
+ read(id: string): void;
36
+ /** The agent saw this task as it is now. */
37
+ sawTask(record: TaskRecord): void;
38
+ }
39
+ /**
40
+ * What the session's agent may reach through chats (spec §11). `dms`: conversations with persons
41
+ * (DM lines). `channels`: only these channels (local names); absent, every channel the person is in.
42
+ */
43
+ export interface ChatAccess {
44
+ dms: boolean;
45
+ channels?: ReadonlySet<string>;
46
+ }
47
+ export interface OperationsContext {
48
+ session(sessionID: string, signal?: AbortSignal): Promise<CallSession>;
49
+ hooks: OperationsHooks;
50
+ framer: ToolFramer;
51
+ /**
52
+ * How a request from `person` runs here when the daemon has not said (a task record, or an item stored before
53
+ * consent); `self` is the session's own person. An inbox item's own `consent`, the daemon's decision (spec §6.9),
54
+ * always wins.
55
+ */
56
+ consent(person: string, self: string): ToolConsent;
57
+ access: ChatAccess;
58
+ }
59
+ /** What a send will do, checked before the permission prompt. */
60
+ export type SendPlan = {
61
+ kind: "line" | "post";
62
+ to: ToolAddress;
63
+ conversation: string;
64
+ target: string;
65
+ text: string;
66
+ thread?: string;
67
+ request?: {
68
+ contact: string;
69
+ };
70
+ } | {
71
+ kind: "mail" | "task";
72
+ to: ToolAddress;
73
+ conversation: string;
74
+ params: Omit<IpcParams<"msg.send">, "key" | "idempotencyKey">;
75
+ delegation?: string;
76
+ };
77
+ export declare class Operations {
78
+ private readonly ctx;
79
+ constructor(ctx: OperationsContext);
80
+ private get framer();
81
+ private consent;
82
+ /** Refuses a chat conversation this client may not reach, before any daemon call. */
83
+ private reachable;
84
+ contacts(sessionID: string, input: ToolInput<"contacts">, signal?: AbortSignal): Promise<ToolOutput<"contacts">>;
85
+ /**
86
+ * Checks a send without side effects: the address, the peer-turn allowance, what may go to whom,
87
+ * what `replyTo` and `onBehalfOf` name. Returns what the send will do, for the permission prompt.
88
+ */
89
+ planSend(sessionID: string, input: ToolInput<"send">, signal?: AbortSignal): Promise<SendPlan>;
90
+ send(sessionID: string, plan: SendPlan, idempotencyKey: string, signal?: AbortSignal): Promise<ToolOutput<"send">>;
91
+ /**
92
+ * What `replyTo` names, for a send to the agent `to`: a message it sent this session (the reply
93
+ * joins its conversation), or a task this session asked it to run (the text is input for it).
94
+ */
95
+ private replyOf;
96
+ /** The task a send `onBehalfOf` delegates for: this session runs it and it is not finished (spec §6.7). */
97
+ private delegationParent;
98
+ /** Lists items; previews put in front of the agent are acknowledged `handed_to_agent` (spec §8.2). */
99
+ inbox(sessionID: string, input: ToolInput<"inbox">, signal?: AbortSignal): Promise<ToolOutput<"inbox">>;
100
+ /**
101
+ * One item: a message or task request this session received (marks it read and sends a read
102
+ * receipt), a task this session asked for or runs, or something it sent (how far it got).
103
+ * `assert` gets the item's conversation before anything changes or is shown.
104
+ */
105
+ readItem(sessionID: string, id: string, assert: (conversation: string) => Promise<void>, signal?: AbortSignal): Promise<ToolOutput<"read">>;
106
+ /**
107
+ * A page of one conversation, oldest first: the chat lines with a person or in a channel, or the
108
+ * mail and tasks with an agent. Mail previews shown here count as handed to the agent.
109
+ */
110
+ readConversation(sessionID: string, input: Pick<ToolInput<"read">, "before" | "after" | "limit"> & {
111
+ with: string;
112
+ }, assert: (conversation: string) => Promise<void>, signal?: AbortSignal): Promise<ToolOutput<"read">>;
113
+ private page;
114
+ /** Chat lines with persons and in channels. Each conversation in the hits is asserted; `allowed` false drops it. */
115
+ search(sessionID: string, input: ToolInput<"search">, allowed: (conversation: string) => Promise<boolean>, signal?: AbortSignal): Promise<ToolOutput<"search">>;
116
+ tasks(sessionID: string, input: ToolInput<"tasks">, signal?: AbortSignal): Promise<ToolOutput<"tasks">>;
117
+ /**
118
+ * The task an update or a cancel names, checked locally before any permission prompt: this
119
+ * session holds `role`, and for an update the task is not finished and `next` is legal.
120
+ */
121
+ taskTarget(sessionID: string, id: string, role: "requester" | "executor", next?: A2A.TaskState, signal?: AbortSignal): Promise<{
122
+ record: TaskRecord;
123
+ to: ToolAddress;
124
+ }>;
125
+ updateTask(sessionID: string, record: TaskRecord, input: ToolInput<"task_update">, signal?: AbortSignal): Promise<ToolOutput<"task_update">>;
126
+ cancelTask(sessionID: string, record: TaskRecord, reason: string | undefined, signal?: AbortSignal): Promise<ToolOutput<"task_cancel">>;
127
+ /** A task of this session, in its peer scope; `field` names the input for the error. */
128
+ private ownTask;
129
+ }
@@ -0,0 +1,57 @@
1
+ import { type ToolConsent, type ToolOutput, type ToolTask } from "../agent-tools.js";
2
+ import type { ChatLine, ConvEntry, DirectoryEntry, InboxItem, IpcResult, TaskFollowUp, TaskRecord } from "../schema/ipc.js";
3
+ import { type ToolFramer as Framer } from "./text.js";
4
+ /**
5
+ * Daemon results → agent tool outputs (`AgentTool`, spec §11). Pure. Every string another person
6
+ * or agent wrote passes through the client's framer. Peer-chosen ids are fenced unless they are
7
+ * plain identifiers, so no peer text reaches the model unfenced through a tool output.
8
+ *
9
+ * Who wrote each text of a task (spec §11, "Authors"): every part, title, status and artifact names
10
+ * its author, `ours` (this side: the session, its person or its daemon) or `peer`. The peer's is
11
+ * fenced with `from` naming the peer; ours is shown without a fence, cleaned, so it is never
12
+ * presented as peer input. Authorship follows the record's role and the field, never a role the
13
+ * peer could choose: a requester's own request and follow-ups are ours, the executor's status and
14
+ * artifacts the peer's; an executor's history is all the requester's (the peer's), whatever its
15
+ * messages' A2A `role` says, and its own status and artifacts are ours.
16
+ */
17
+ type Contact = ToolOutput<"contacts">["contacts"][number];
18
+ type ContactAgent = NonNullable<Contact["agents"]>[number];
19
+ type InboxOutputItem = ToolOutput<"inbox">["items"][number];
20
+ type ReadItem = Extract<ToolOutput<"read">, {
21
+ item: unknown;
22
+ }>["item"];
23
+ type PageEntry = Extract<ToolOutput<"read">, {
24
+ entries: unknown;
25
+ }>["entries"][number];
26
+ type TaskSummary = ToolOutput<"tasks">["tasks"][number];
27
+ export declare const isoOf: (millis: number) => string;
28
+ /** How a request from `person` runs here (spec §11): your own person, a trusted teammate, or a guarded peer turn. */
29
+ export declare function consentOf(person: string, self: string | undefined, trusted: ReadonlySet<string>): ToolConsent;
30
+ export declare function presentAgent(framer: Framer, entry: DirectoryEntry): ContactAgent;
31
+ /**
32
+ * What an agent session accepts under today's team policy (spec §8.3): a `cli` session takes mail
33
+ * but not tasks. Nothing is granted or narrowed per person yet.
34
+ */
35
+ export declare function agentCan(entry: Pick<DirectoryEntry, "client">): Contact["can"];
36
+ export declare function presentInboxItem(framer: Framer, item: InboxItem, consent: ToolConsent): InboxOutputItem;
37
+ /** The agent conversation with a peer: `agent:<person>/<agent>`, or `person:<person>` for the person's own. */
38
+ export declare function conversationOfPeer(peer: {
39
+ person: string;
40
+ agent?: string;
41
+ }): string;
42
+ export declare function presentMail(framer: Framer, result: Extract<IpcResult<"item.read">, {
43
+ kind: "received";
44
+ }>, task?: ToolTask): ReadItem;
45
+ /** A task as a read item: its request, with the whole task. */
46
+ export declare function presentTaskItem(framer: Framer, record: TaskRecord, self: string, consent: ToolConsent | undefined): ReadItem;
47
+ /** Something this session sent: no copy is kept, so only how far it got. */
48
+ export declare function presentSent(result: Extract<IpcResult<"item.read">, {
49
+ kind: "sent";
50
+ }>, self: string): ReadItem;
51
+ export declare function presentLine(framer: Framer, line: ChatLine, kind: "line" | "post", conversation: string): PageEntry;
52
+ export declare function presentConvEntry(framer: Framer, entry: ConvEntry, self: string): PageEntry;
53
+ export declare function presentTask(framer: Framer, record: TaskRecord, consent?: ToolConsent): TaskSummary;
54
+ /** A follow-up's stage says the executor read it. */
55
+ export declare function followUpRead(stage: TaskFollowUp["stage"]): boolean;
56
+ export declare function presentTaskView(framer: Framer, record: TaskRecord, consent?: ToolConsent): ToolTask;
57
+ export {};
@@ -0,0 +1,62 @@
1
+ import type { DelegationSummary } from "../schema/delegation.js";
2
+ import type { SendExpect } from "../schema/ipc.js";
3
+ /**
4
+ * Fixed text and small helpers the agent tools of every client share (spec §11, "Agent tools").
5
+ * Pure. Peer-derived values here are raw: callers fence or clean them.
6
+ */
7
+ /**
8
+ * What a send's `expect` (spec §8.2) means for the agent: fixed text, never peer text. A hint from
9
+ * the recipient's last presence, not a promise.
10
+ */
11
+ export declare const EXPECT_TEXT: Readonly<Record<SendExpect, string>>;
12
+ /** What a fenced value is wrapped in; each client brings its own fence. */
13
+ export interface ToolFramer {
14
+ /** Inline fence for one field: `<tag-nonce attrs>text</tag-nonce>`, cut to `maxChars`. */
15
+ wrap(text: string, attributes?: Readonly<Record<string, string | number | boolean | undefined>>, maxChars?: number): string;
16
+ /** One line for outputs that carry fenced fields. */
17
+ notice(): string;
18
+ }
19
+ /** True for opaque identifiers that are safe to show outside a fence (ULIDs, UUIDs, slugs). */
20
+ export declare function isSafeId(value: string): boolean;
21
+ export interface SessionAddressParts {
22
+ person: string;
23
+ session: string;
24
+ label?: string;
25
+ }
26
+ /** A peer reference reduced to a validated address, or undefined when any part fails its schema. */
27
+ export declare function validatedAddress(peer: {
28
+ person: string;
29
+ agent?: string;
30
+ label: string;
31
+ }): Required<SessionAddressParts> | undefined;
32
+ /**
33
+ * Whether a chain says more than the item's `from` (spec §6.7): a hop before the sender, or a scope. A
34
+ * direct request from the sender's own session says nothing more.
35
+ */
36
+ export declare function delegated(chain: DelegationSummary): boolean;
37
+ /** Who asked whom, root first, as raw peer-derived text: callers fence or clean it. */
38
+ export declare function chainPath(chain: DelegationSummary): string;
39
+ /**
40
+ * The `delegation` field of a task send's permission prompt. It is shown to the user in the
41
+ * approval UI, not to the model, so the chain is cleaned (hidden characters made visible, one line)
42
+ * rather than fenced.
43
+ */
44
+ export declare function delegationPrompt(chain: DelegationSummary | undefined): string;
45
+ /**
46
+ * Fence attributes for a message: the sender's address, the envelope id, and the verification the
47
+ * daemon performed. Inbox items exist only after the daemon verified the envelope signature (spec
48
+ * §5), so an item without a full message is still `verified="signature"`. A message whose
49
+ * provenance is missing, malformed or for another envelope is shown as `verified="none"`.
50
+ */
51
+ export declare function messageAttributes(item: {
52
+ id: string;
53
+ kind: string;
54
+ from: {
55
+ address: string;
56
+ };
57
+ chain?: DelegationSummary;
58
+ }, message?: {
59
+ metadata?: Readonly<Record<string, unknown>>;
60
+ }): Record<string, string | undefined>;
61
+ /** Drop undefined members so optional IPC params and output keys stay absent. */
62
+ export declare function compact<T extends Record<string, unknown>>(record: T): T;