@hraness/ghostget 0.17.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 (500) hide show
  1. package/CHANGELOG.md +458 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1359 -0
  4. package/bunfig.toml +2 -0
  5. package/dist/apple-photos-client.js +704 -0
  6. package/dist/beeper-client.js +4602 -0
  7. package/dist/client.js +1605 -0
  8. package/dist/index-26yq8q16.js +31 -0
  9. package/dist/index-9t13b4k7.js +508 -0
  10. package/dist/index-axwm9b3v.js +5 -0
  11. package/dist/index-gwk7rbyj.js +30 -0
  12. package/dist/index.js +701 -0
  13. package/dist/messaging.js +1130 -0
  14. package/dist/omni-client.js +1406 -0
  15. package/dist/whatsapp-client.js +355 -0
  16. package/docs/imessage-direct-provider.md +106 -0
  17. package/docs/rental-listings.md +94 -0
  18. package/package.json +600 -0
  19. package/skills/ghostget/SKILL.md +251 -0
  20. package/skills/ghostget/agents/openai.yaml +4 -0
  21. package/skills/ghostget/references/adapter-contract.md +181 -0
  22. package/skills/ghostget/references/apple-photos.md +115 -0
  23. package/skills/ghostget/references/article-drafts.md +235 -0
  24. package/skills/ghostget/references/code-owned-provider-scaffold.md +134 -0
  25. package/skills/ghostget/references/cross-posting-video.md +139 -0
  26. package/skills/ghostget/references/cross-posting.md +82 -0
  27. package/skills/ghostget/references/derivation.md +390 -0
  28. package/skills/ghostget/references/hraness-social-profile-stats.json +269 -0
  29. package/skills/ghostget/references/install.md +66 -0
  30. package/skills/ghostget/references/linkedin-adapter.md +442 -0
  31. package/skills/ghostget/references/messaging.md +168 -0
  32. package/skills/ghostget/references/meta-comet-contract.md +153 -0
  33. package/skills/ghostget/references/platform-patterns.md +122 -0
  34. package/skills/ghostget/references/provider-plugins.md +496 -0
  35. package/skills/ghostget/references/reddit-flair.md +78 -0
  36. package/skills/ghostget/references/safety-and-state.md +214 -0
  37. package/skills/ghostget/references/settlement-and-duplicate-cleanup.md +79 -0
  38. package/skills/ghostget/references/social-platform-routing.md +66 -0
  39. package/skills/ghostget/references/social-profile-stats.md +195 -0
  40. package/skills/ghostget/references/social-video-platform-routing.md +89 -0
  41. package/skills/ghostget/references/whatsapp-adapter.md +101 -0
  42. package/skills/ghostget/references/x-adapter.md +332 -0
  43. package/skills/ghostget/references/x-ai-disclosure.md +71 -0
  44. package/src/apple-photos-cli.ts +639 -0
  45. package/src/apple-photos-client-types.ts +168 -0
  46. package/src/apple-photos-client.ts +201 -0
  47. package/src/apple-photos-contact-evidence.ts +838 -0
  48. package/src/apple-photos-local-source.ts +1131 -0
  49. package/src/args.ts +2053 -0
  50. package/src/article-draft-document.ts +417 -0
  51. package/src/article-draft-embeds.ts +123 -0
  52. package/src/article-draft-images.ts +214 -0
  53. package/src/assets/adapter-template/wrench-adapter.json +40 -0
  54. package/src/assets/adapters/beeper/wrench-web-adapter.json +1500 -0
  55. package/src/assets/adapters/beeper/wrench-web-adapter.v1.0.0.json +129 -0
  56. package/src/assets/adapters/beeper/wrench-web-adapter.v1.1.0.json +207 -0
  57. package/src/assets/adapters/beeper/wrench-web-adapter.v2.0.0.json +1463 -0
  58. package/src/assets/adapters/beeper/wrench-web-adapter.v2.1.0.json +1463 -0
  59. package/src/assets/adapters/beeper/wrench-web-adapter.v2.2.0.json +1475 -0
  60. package/src/assets/adapters/beeper/wrench-web-adapter.v2.3.0.json +1488 -0
  61. package/src/assets/adapters/bluesky/wrench-web-adapter.json +684 -0
  62. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.0.0.json +581 -0
  63. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.1.0.json +581 -0
  64. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.2.0.json +581 -0
  65. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.3.0.json +615 -0
  66. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.4.0.json +684 -0
  67. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.5.0.json +684 -0
  68. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.6.0.json +684 -0
  69. package/src/assets/adapters/clasificados/wrench-web-adapter.json +54 -0
  70. package/src/assets/adapters/facebook/wrench-web-adapter.json +750 -0
  71. package/src/assets/adapters/facebook/wrench-web-adapter.v1.0.0.json +706 -0
  72. package/src/assets/adapters/facebook/wrench-web-adapter.v1.1.0.json +703 -0
  73. package/src/assets/adapters/facebook/wrench-web-adapter.v1.2.0.json +750 -0
  74. package/src/assets/adapters/facebook-group/wrench-web-adapter.json +682 -0
  75. package/src/assets/adapters/facebook-group/wrench-web-adapter.v1.0.0.json +583 -0
  76. package/src/assets/adapters/facebook-group/wrench-web-adapter.v1.1.0.json +682 -0
  77. package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.json +437 -0
  78. package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.0.0.json +383 -0
  79. package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.1.0.json +437 -0
  80. package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.1.1.json +437 -0
  81. package/src/assets/adapters/facebook-page/wrench-web-adapter.json +880 -0
  82. package/src/assets/adapters/facebook-page/wrench-web-adapter.v1.0.0.json +740 -0
  83. package/src/assets/adapters/facebook-page/wrench-web-adapter.v1.1.0.json +880 -0
  84. package/src/assets/adapters/github/wrench-web-adapter.json +69 -0
  85. package/src/assets/adapters/github/wrench-web-adapter.v1.0.0.json +42 -0
  86. package/src/assets/adapters/github/wrench-web-adapter.v1.1.0.json +69 -0
  87. package/src/assets/adapters/gmail/wrench-adapter.json +161 -0
  88. package/src/assets/adapters/gmail/wrench-adapter.v1.2.0.json +157 -0
  89. package/src/assets/adapters/hacker-news/wrench-web-adapter.json +315 -0
  90. package/src/assets/adapters/hacker-news/wrench-web-adapter.v1.0.0.json +315 -0
  91. package/src/assets/adapters/imessage/wrench-web-adapter.json +236 -0
  92. package/src/assets/adapters/instagram/wrench-web-adapter.json +719 -0
  93. package/src/assets/adapters/instagram/wrench-web-adapter.v1.0.0.json +627 -0
  94. package/src/assets/adapters/instagram/wrench-web-adapter.v1.1.0.json +609 -0
  95. package/src/assets/adapters/instagram/wrench-web-adapter.v1.2.0.json +640 -0
  96. package/src/assets/adapters/instagram/wrench-web-adapter.v1.3.0.json +671 -0
  97. package/src/assets/adapters/instagram/wrench-web-adapter.v1.4.0.json +710 -0
  98. package/src/assets/adapters/instagram/wrench-web-adapter.v1.5.0.json +710 -0
  99. package/src/assets/adapters/instagram/wrench-web-adapter.v1.6.0.json +719 -0
  100. package/src/assets/adapters/instagram/wrench-web-adapter.v1.7.0.json +719 -0
  101. package/src/assets/adapters/linkedin/wrench-adapter.json +442 -0
  102. package/src/assets/adapters/linkedin/wrench-adapter.v0.4.0.json +124 -0
  103. package/src/assets/adapters/linkedin/wrench-adapter.v1.0.0.json +411 -0
  104. package/src/assets/adapters/linkedin/wrench-web-adapter.json +914 -0
  105. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.0.0.json +604 -0
  106. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.1.0.json +604 -0
  107. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.10.0.json +809 -0
  108. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.11.0.json +809 -0
  109. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.12.0.json +820 -0
  110. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.13.0.json +819 -0
  111. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.14.0.json +819 -0
  112. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.15.0.json +819 -0
  113. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.16.0.json +874 -0
  114. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.17.0.json +874 -0
  115. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.18.0.json +874 -0
  116. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.19.0.json +874 -0
  117. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.2.0.json +731 -0
  118. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.3.0.json +768 -0
  119. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.4.0.json +808 -0
  120. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.5.0.json +808 -0
  121. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.6.0.json +808 -0
  122. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.7.0.json +825 -0
  123. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.8.0.json +792 -0
  124. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.9.0.json +809 -0
  125. package/src/assets/adapters/reddit/wrench-web-adapter.json +855 -0
  126. package/src/assets/adapters/reddit/wrench-web-adapter.v1.0.0.json +577 -0
  127. package/src/assets/adapters/reddit/wrench-web-adapter.v1.1.0.json +604 -0
  128. package/src/assets/adapters/reddit/wrench-web-adapter.v1.10.0.json +712 -0
  129. package/src/assets/adapters/reddit/wrench-web-adapter.v1.11.0.json +712 -0
  130. package/src/assets/adapters/reddit/wrench-web-adapter.v1.12.0.json +712 -0
  131. package/src/assets/adapters/reddit/wrench-web-adapter.v1.2.0.json +653 -0
  132. package/src/assets/adapters/reddit/wrench-web-adapter.v1.3.0.json +712 -0
  133. package/src/assets/adapters/reddit/wrench-web-adapter.v1.4.0.json +713 -0
  134. package/src/assets/adapters/reddit/wrench-web-adapter.v1.5.0.json +712 -0
  135. package/src/assets/adapters/reddit/wrench-web-adapter.v1.6.0.json +713 -0
  136. package/src/assets/adapters/reddit/wrench-web-adapter.v1.7.0.json +713 -0
  137. package/src/assets/adapters/reddit/wrench-web-adapter.v1.8.0.json +713 -0
  138. package/src/assets/adapters/reddit/wrench-web-adapter.v1.9.0.json +713 -0
  139. package/src/assets/adapters/substack/wrench-web-adapter.json +936 -0
  140. package/src/assets/adapters/substack/wrench-web-adapter.v1.0.0.json +817 -0
  141. package/src/assets/adapters/substack/wrench-web-adapter.v1.1.0.json +812 -0
  142. package/src/assets/adapters/substack/wrench-web-adapter.v1.2.0.json +812 -0
  143. package/src/assets/adapters/substack/wrench-web-adapter.v1.3.0.json +902 -0
  144. package/src/assets/adapters/substack/wrench-web-adapter.v1.4.0.json +936 -0
  145. package/src/assets/adapters/substack/wrench-web-adapter.v1.5.0.json +936 -0
  146. package/src/assets/adapters/substack/wrench-web-adapter.v1.6.0.json +936 -0
  147. package/src/assets/adapters/threads/wrench-web-adapter.json +692 -0
  148. package/src/assets/adapters/threads/wrench-web-adapter.v1.0.0.json +629 -0
  149. package/src/assets/adapters/threads/wrench-web-adapter.v1.1.0.json +623 -0
  150. package/src/assets/adapters/threads/wrench-web-adapter.v1.2.0.json +622 -0
  151. package/src/assets/adapters/threads/wrench-web-adapter.v1.3.0.json +622 -0
  152. package/src/assets/adapters/threads/wrench-web-adapter.v1.4.0.json +622 -0
  153. package/src/assets/adapters/threads/wrench-web-adapter.v1.5.0.json +699 -0
  154. package/src/assets/adapters/threads/wrench-web-adapter.v1.6.0.json +693 -0
  155. package/src/assets/adapters/threads/wrench-web-adapter.v1.7.0.json +692 -0
  156. package/src/assets/adapters/tiktok/wrench-web-adapter.json +762 -0
  157. package/src/assets/adapters/tiktok/wrench-web-adapter.v1.0.0.json +681 -0
  158. package/src/assets/adapters/tiktok/wrench-web-adapter.v1.1.0.json +708 -0
  159. package/src/assets/adapters/tiktok/wrench-web-adapter.v1.2.0.json +762 -0
  160. package/src/assets/adapters/tiktok/wrench-web-adapter.v1.3.0.json +762 -0
  161. package/src/assets/adapters/twitch/wrench-web-adapter.json +42 -0
  162. package/src/assets/adapters/twitch/wrench-web-adapter.v1.0.0.json +42 -0
  163. package/src/assets/adapters/whatsapp/wrench-web-adapter.json +400 -0
  164. package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.0.0.json +355 -0
  165. package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.1.0.json +386 -0
  166. package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.2.0.json +386 -0
  167. package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.3.0.json +400 -0
  168. package/src/assets/adapters/x/wrench-adapter.json +749 -0
  169. package/src/assets/adapters/x/wrench-adapter.v1.0.0.json +700 -0
  170. package/src/assets/adapters/x/wrench-adapter.v1.1.0.json +707 -0
  171. package/src/assets/adapters/x/wrench-web-adapter.json +712 -0
  172. package/src/assets/adapters/x/wrench-web-adapter.v1.1.0.json +579 -0
  173. package/src/assets/adapters/x/wrench-web-adapter.v1.10.0.json +685 -0
  174. package/src/assets/adapters/x/wrench-web-adapter.v1.11.0.json +712 -0
  175. package/src/assets/adapters/x/wrench-web-adapter.v1.12.0.json +712 -0
  176. package/src/assets/adapters/x/wrench-web-adapter.v1.13.0.json +712 -0
  177. package/src/assets/adapters/x/wrench-web-adapter.v1.2.0.json +578 -0
  178. package/src/assets/adapters/x/wrench-web-adapter.v1.3.0.json +610 -0
  179. package/src/assets/adapters/x/wrench-web-adapter.v1.4.0.json +617 -0
  180. package/src/assets/adapters/x/wrench-web-adapter.v1.5.0.json +634 -0
  181. package/src/assets/adapters/x/wrench-web-adapter.v1.6.0.json +632 -0
  182. package/src/assets/adapters/x/wrench-web-adapter.v1.7.0.json +649 -0
  183. package/src/assets/adapters/x/wrench-web-adapter.v1.8.0.json +649 -0
  184. package/src/assets/adapters/x/wrench-web-adapter.v1.9.0.json +683 -0
  185. package/src/assets/adapters/youtube/wrench-web-adapter.json +561 -0
  186. package/src/assets/adapters/youtube/wrench-web-adapter.v1.0.0.json +465 -0
  187. package/src/assets/adapters/youtube/wrench-web-adapter.v1.1.0.json +519 -0
  188. package/src/assets/adapters/youtube/wrench-web-adapter.v1.2.0.json +561 -0
  189. package/src/assets/adapters/youtube/wrench-web-adapter.v1.3.0.json +561 -0
  190. package/src/assets/code-owned-provider-template/plugin.test.ts.template +54 -0
  191. package/src/assets/code-owned-provider-template/plugin.ts.template +102 -0
  192. package/src/assets/code-owned-provider-template/runtime.internal.test.ts.template +44 -0
  193. package/src/assets/code-owned-provider-template/runtime.ts.template +59 -0
  194. package/src/assets/code-owned-provider-template/wrench-adapter.json.template +33 -0
  195. package/src/assets/fonts/nebula-sans/LICENSE.txt +96 -0
  196. package/src/assets/fonts/nebula-sans/NebulaSans-Book.woff2 +0 -0
  197. package/src/assets/fonts/nebula-sans/PROVENANCE.md +14 -0
  198. package/src/assets.d.ts +4 -0
  199. package/src/auth.ts +1157 -0
  200. package/src/beeper-client-types.ts +169 -0
  201. package/src/beeper-client.ts +250 -0
  202. package/src/beeper-contact-interactions-cli.ts +180 -0
  203. package/src/beeper-contact-interactions.ts +1612 -0
  204. package/src/beeper-message-bundle-v1.ts +257 -0
  205. package/src/beeper-message-like-me-cli.ts +84 -0
  206. package/src/beeper-message-like-me-export.ts +2274 -0
  207. package/src/beeper-message-like-me-recovery.ts +931 -0
  208. package/src/beeper-message-like-me-source.ts +4034 -0
  209. package/src/browser-admission.ts +928 -0
  210. package/src/browser-snapshots.ts +260 -0
  211. package/src/browser.ts +3873 -0
  212. package/src/canonical-json.ts +60 -0
  213. package/src/catalog-cli.ts +638 -0
  214. package/src/cli.ts +208 -0
  215. package/src/client-types.ts +301 -0
  216. package/src/client.ts +2726 -0
  217. package/src/confirmed-write-failure.ts +44 -0
  218. package/src/confirmed-write-model.ts +72 -0
  219. package/src/confirmed-write-platform.ts +1055 -0
  220. package/src/confirmed-write-program.ts +224 -0
  221. package/src/confirmed-write-runtime.ts +16 -0
  222. package/src/cursor-token.ts +228 -0
  223. package/src/derivation-dnr-readiness.ts +367 -0
  224. package/src/derivation-file-chooser.ts +384 -0
  225. package/src/derivation-network-boundary.ts +835 -0
  226. package/src/derivation-network-guard.ts +782 -0
  227. package/src/derivation-network-proxy-helper.ts +440 -0
  228. package/src/derivation-network-proxy.ts +385 -0
  229. package/src/derive-command-helper.ts +693 -0
  230. package/src/derive-fixtures.ts +343 -0
  231. package/src/derive-review.ts +980 -0
  232. package/src/derive.ts +4754 -0
  233. package/src/fixtures/beeper-message-like-me-v1/accounts.ndjson +2 -0
  234. package/src/fixtures/beeper-message-like-me-v1/conversations.ndjson +1 -0
  235. package/src/fixtures/beeper-message-like-me-v1/manifest.json +1 -0
  236. package/src/fixtures/beeper-message-like-me-v1/messages.ndjson +2 -0
  237. package/src/fixtures/beeper-message-like-me-v1/participants.ndjson +3 -0
  238. package/src/fixtures/beeper-message-like-me-v1/reactions.ndjson +1 -0
  239. package/src/fixtures/beeper-message-like-me-v1/tombstones.ndjson +1 -0
  240. package/src/ghostget.ts +3672 -0
  241. package/src/gmail-capture.ts +1244 -0
  242. package/src/har-internal.ts +1242 -0
  243. package/src/har.ts +743 -0
  244. package/src/index.ts +218 -0
  245. package/src/invocation-read-platform.ts +55 -0
  246. package/src/invocation-read-program.ts +93 -0
  247. package/src/invocation-read-runtime.ts +11 -0
  248. package/src/linked-device-lifecycle-admission.ts +450 -0
  249. package/src/linked-device-lifecycle-journal.ts +1560 -0
  250. package/src/linked-device-lifecycle-runtime.ts +1602 -0
  251. package/src/local-cli-admission.ts +135 -0
  252. package/src/local-cli-contracts.ts +271 -0
  253. package/src/local-cli-execution.ts +98 -0
  254. package/src/local-cli-surface-contract.ts +1510 -0
  255. package/src/local-cli-tool-identity.ts +336 -0
  256. package/src/media/archive.ts +2325 -0
  257. package/src/media/args.ts +303 -0
  258. package/src/media/cli.ts +287 -0
  259. package/src/media/doctor.ts +475 -0
  260. package/src/media/ffmpeg.ts +1330 -0
  261. package/src/media/http-capture.ts +711 -0
  262. package/src/media/http-probe.ts +593 -0
  263. package/src/media/http.ts +387 -0
  264. package/src/media/index.ts +10 -0
  265. package/src/media/local-transcription.ts +613 -0
  266. package/src/media/lock.ts +321 -0
  267. package/src/media/manifest.ts +1712 -0
  268. package/src/media/metadata.ts +906 -0
  269. package/src/media/process.ts +723 -0
  270. package/src/media/revision.ts +166 -0
  271. package/src/media/runtime-closure.ts +1063 -0
  272. package/src/media/source-router.ts +187 -0
  273. package/src/media/transcriber-config.ts +1122 -0
  274. package/src/media/transcript-persistence-model.ts +15 -0
  275. package/src/media/transcript-persistence-platform.ts +89 -0
  276. package/src/media/transcript-persistence-program.ts +39 -0
  277. package/src/media/transcript-persistence-runtime.ts +24 -0
  278. package/src/media/transcript.ts +616 -0
  279. package/src/media/utf8-order.ts +30 -0
  280. package/src/media/whisper-cpp.ts +464 -0
  281. package/src/media/whisper-language.ts +58 -0
  282. package/src/media/yt-dlp.ts +439 -0
  283. package/src/message-like-me-agentic-messaging.ts +882 -0
  284. package/src/messaging-action-store.ts +793 -0
  285. package/src/messaging-runtime.ts +2136 -0
  286. package/src/messaging-store.ts +539 -0
  287. package/src/messaging-types.ts +1663 -0
  288. package/src/messaging.ts +334 -0
  289. package/src/model.ts +2671 -0
  290. package/src/oauth-google.ts +888 -0
  291. package/src/omni-client-types.ts +306 -0
  292. package/src/omni-client.ts +2225 -0
  293. package/src/omni-limits.ts +34 -0
  294. package/src/omni-model.ts +1614 -0
  295. package/src/omni-request.ts +379 -0
  296. package/src/omni-runtime.ts +1632 -0
  297. package/src/operation-deadline.ts +189 -0
  298. package/src/path-helper.ts +1656 -0
  299. package/src/pinned-https.ts +194 -0
  300. package/src/plan-assets.ts +832 -0
  301. package/src/platform-catalog.ts +1832 -0
  302. package/src/plugins/beeper-linked-device/plugin.ts +310 -0
  303. package/src/plugins/bluesky-web/plugin.ts +178 -0
  304. package/src/plugins/clasificados-web/plugin.ts +66 -0
  305. package/src/plugins/github-web/plugin.ts +80 -0
  306. package/src/plugins/gmail-official/plugin.ts +110 -0
  307. package/src/plugins/hacker-news-web/plugin.ts +52 -0
  308. package/src/plugins/imessage-direct/plugin.ts +195 -0
  309. package/src/plugins/imessage-direct/vendor/0001-fix-keep-AppleScript-send-payloads-out-of-child-argv.patch +1430 -0
  310. package/src/plugins/imessage-direct/vendor/0002-feat-rpc-add-exact-chat-lookup.patch +225 -0
  311. package/src/plugins/imessage-direct/vendor/provenance.json +80 -0
  312. package/src/plugins/linkedin-official/plugin.ts +84 -0
  313. package/src/plugins/linkedin-web/plugin.ts +412 -0
  314. package/src/plugins/meta-web/plugin.ts +317 -0
  315. package/src/plugins/reddit-web/flair.ts +492 -0
  316. package/src/plugins/reddit-web/plugin.ts +477 -0
  317. package/src/plugins/substack-web/plugin.ts +124 -0
  318. package/src/plugins/tiktok-web/plugin.ts +67 -0
  319. package/src/plugins/twitch-web/plugin.ts +54 -0
  320. package/src/plugins/whatsapp-linked-device/plugin.ts +105 -0
  321. package/src/plugins/x-official/plugin.ts +64 -0
  322. package/src/plugins/x-web/plugin.ts +488 -0
  323. package/src/plugins/youtube-web/plugin.ts +101 -0
  324. package/src/portable-run-recovery.ts +466 -0
  325. package/src/process-identity.ts +501 -0
  326. package/src/profile-clone-helper.ts +104 -0
  327. package/src/provider-catalog-views.ts +51 -0
  328. package/src/provider-context.ts +69 -0
  329. package/src/provider-contract-definitions-x.ts +45 -0
  330. package/src/provider-contract-definitions.ts +948 -0
  331. package/src/provider-contract-input-gmail.ts +176 -0
  332. package/src/provider-contract-input-linkedin.ts +77 -0
  333. package/src/provider-contract-input-x.ts +304 -0
  334. package/src/provider-contract-planning.ts +23 -0
  335. package/src/provider-contract-semantic-identity.ts +54 -0
  336. package/src/provider-contracts.ts +251 -0
  337. package/src/provider-http.ts +723 -0
  338. package/src/provider-plugin-auth.ts +36 -0
  339. package/src/provider-plugin-builtins.ts +229 -0
  340. package/src/provider-plugin-cleanup-barrier.ts +229 -0
  341. package/src/provider-plugin-cleanup-execution.ts +79 -0
  342. package/src/provider-plugin-cleanup-resource.ts +470 -0
  343. package/src/provider-plugin-contract-identity.ts +707 -0
  344. package/src/provider-plugin-host.ts +1972 -0
  345. package/src/provider-plugin-identifiers.ts +60 -0
  346. package/src/provider-plugin-invocation-lease.ts +889 -0
  347. package/src/provider-plugin-lifecycle-kernel.ts +566 -0
  348. package/src/provider-plugin-lifecycle.ts +1455 -0
  349. package/src/provider-plugin-module-analysis.ts +336 -0
  350. package/src/provider-plugin-package.ts +2530 -0
  351. package/src/provider-plugin-portable-authority.ts +106 -0
  352. package/src/provider-plugin-portable-catalog.ts +94 -0
  353. package/src/provider-plugin-portable-identity.ts +315 -0
  354. package/src/provider-plugin-portable-runtime.ts +2057 -0
  355. package/src/provider-plugin-protocol.ts +1625 -0
  356. package/src/provider-plugin-registry.ts +3342 -0
  357. package/src/provider-plugin-store.ts +2155 -0
  358. package/src/provider-plugin-test-fixture.ts +5 -0
  359. package/src/provider-plugin.ts +4907 -0
  360. package/src/provider-plugins.generated.ts +43 -0
  361. package/src/provider-plugins.ts +8 -0
  362. package/src/provider-subject.ts +41 -0
  363. package/src/provider.ts +315 -0
  364. package/src/providers/beeper-local-runtime.ts +5426 -0
  365. package/src/providers/beeper-local.ts +2739 -0
  366. package/src/providers/beeper-messaging.ts +462 -0
  367. package/src/providers/beeper-omni.ts +1159 -0
  368. package/src/providers/bluesky-web-runtime.ts +2895 -0
  369. package/src/providers/bluesky-web.ts +1614 -0
  370. package/src/providers/clasificados-web-runtime.ts +255 -0
  371. package/src/providers/clasificados-web.ts +503 -0
  372. package/src/providers/contact-projection.ts +301 -0
  373. package/src/providers/github-read-model.ts +94 -0
  374. package/src/providers/github-read-platform.ts +165 -0
  375. package/src/providers/github-read-program.ts +97 -0
  376. package/src/providers/github-web-runtime.ts +320 -0
  377. package/src/providers/github-web.ts +403 -0
  378. package/src/providers/gmail-api.ts +2834 -0
  379. package/src/providers/gmail-omni.ts +830 -0
  380. package/src/providers/gmail.ts +1130 -0
  381. package/src/providers/hacker-news-web-runtime.ts +220 -0
  382. package/src/providers/hacker-news-web.ts +809 -0
  383. package/src/providers/imessage-direct-install.ts +354 -0
  384. package/src/providers/imessage-direct-messaging.ts +532 -0
  385. package/src/providers/imessage-direct-omni.ts +400 -0
  386. package/src/providers/imessage-direct-runtime.ts +1498 -0
  387. package/src/providers/imessage-direct.ts +351 -0
  388. package/src/providers/instagram-video-foundations.ts +913 -0
  389. package/src/providers/instagram-web-profile-browser.ts +600 -0
  390. package/src/providers/iso-bmff.ts +338 -0
  391. package/src/providers/linkedin-company-platform.ts +42 -0
  392. package/src/providers/linkedin-company-program.ts +88 -0
  393. package/src/providers/linkedin-contact-failure.ts +84 -0
  394. package/src/providers/linkedin-contact-platform.ts +45 -0
  395. package/src/providers/linkedin-contact-program.ts +91 -0
  396. package/src/providers/linkedin-profile-activity-failure.ts +76 -0
  397. package/src/providers/linkedin-profile-activity-platform.ts +41 -0
  398. package/src/providers/linkedin-profile-activity-program.ts +67 -0
  399. package/src/providers/linkedin-read-failure.ts +52 -0
  400. package/src/providers/linkedin-self-platform.ts +53 -0
  401. package/src/providers/linkedin-self-program.ts +122 -0
  402. package/src/providers/linkedin-web-article-browser.ts +794 -0
  403. package/src/providers/linkedin-web-bootstrap.ts +146 -0
  404. package/src/providers/linkedin-web-contact.ts +830 -0
  405. package/src/providers/linkedin-web-feed-browser.ts +832 -0
  406. package/src/providers/linkedin-web-feed.ts +864 -0
  407. package/src/providers/linkedin-web-post-browser.ts +653 -0
  408. package/src/providers/linkedin-web-profile-browser.ts +683 -0
  409. package/src/providers/linkedin-web-runtime.ts +2388 -0
  410. package/src/providers/linkedin-web.ts +3305 -0
  411. package/src/providers/linkedin.ts +1885 -0
  412. package/src/providers/meta-bootstrap.ts +1043 -0
  413. package/src/providers/meta-facebook-group.ts +690 -0
  414. package/src/providers/meta-marketplace-relay.ts +747 -0
  415. package/src/providers/meta-omni.ts +373 -0
  416. package/src/providers/meta-relay-bundle.ts +1049 -0
  417. package/src/providers/meta-web-descriptors.ts +1740 -0
  418. package/src/providers/meta-web-runtime.ts +3388 -0
  419. package/src/providers/meta-web.ts +2931 -0
  420. package/src/providers/read-failure.ts +139 -0
  421. package/src/providers/reddit-omni.ts +462 -0
  422. package/src/providers/reddit-web-runtime.ts +1929 -0
  423. package/src/providers/reddit-web.ts +1611 -0
  424. package/src/providers/rental-listings.ts +460 -0
  425. package/src/providers/substack-omni.ts +406 -0
  426. package/src/providers/substack-video-mp4.ts +33 -0
  427. package/src/providers/substack-web-runtime.ts +2812 -0
  428. package/src/providers/substack-web.ts +1502 -0
  429. package/src/providers/tiktok-video-mp4.ts +33 -0
  430. package/src/providers/tiktok-web-runtime.ts +770 -0
  431. package/src/providers/tiktok-web.ts +2786 -0
  432. package/src/providers/twitch-web-runtime.ts +226 -0
  433. package/src/providers/twitch-web.ts +274 -0
  434. package/src/providers/whatsapp-account-identity.ts +55 -0
  435. package/src/providers/whatsapp-contact-projection-helper.ts +874 -0
  436. package/src/providers/whatsapp-contact-projection-protocol.ts +403 -0
  437. package/src/providers/whatsapp-interaction-projection-helper.ts +1452 -0
  438. package/src/providers/whatsapp-interaction-projection-protocol.ts +462 -0
  439. package/src/providers/whatsapp-message-export-projection-protocol.ts +532 -0
  440. package/src/providers/whatsapp-messaging.ts +132 -0
  441. package/src/providers/whatsapp-omni.ts +586 -0
  442. package/src/providers/whatsapp-web-runtime.ts +3108 -0
  443. package/src/providers/whatsapp-web.ts +1037 -0
  444. package/src/providers/x-image-provenance.ts +523 -0
  445. package/src/providers/x-made-with-ai.ts +106 -0
  446. package/src/providers/x-transaction-id.ts +413 -0
  447. package/src/providers/x-web-runtime.ts +3485 -0
  448. package/src/providers/x-web.ts +2332 -0
  449. package/src/providers/x.ts +1889 -0
  450. package/src/providers/youtube-web-runtime.ts +1400 -0
  451. package/src/providers/youtube-web.ts +1221 -0
  452. package/src/read-admission-runtime.ts +91 -0
  453. package/src/read-client.ts +521 -0
  454. package/src/read-effect-platform.ts +7 -0
  455. package/src/read-effect-runtime.ts +14 -0
  456. package/src/read-effect.ts +52 -0
  457. package/src/read-projection-admission.ts +866 -0
  458. package/src/read-projections.ts +3151 -0
  459. package/src/recovery.ts +1492 -0
  460. package/src/reviewed-template.ts +146 -0
  461. package/src/run-journal.ts +1272 -0
  462. package/src/runtime.ts +5116 -0
  463. package/src/scripts/generate-provider-plugin-catalog.ts +121 -0
  464. package/src/scripts/install-whatsapp-protocol.sh +232 -0
  465. package/src/scripts/recover-install-stages.ts +1491 -0
  466. package/src/scripts/resolve-state-home.ts +30 -0
  467. package/src/scripts/scaffold-web-provider.ts +973 -0
  468. package/src/scripts/sync-bundled-adapters.ts +695 -0
  469. package/src/session-secrets.ts +1183 -0
  470. package/src/state-helper.bunfig.toml +2 -0
  471. package/src/state-helper.ts +2914 -0
  472. package/src/storage.ts +3842 -0
  473. package/src/transport-policy.ts +2 -0
  474. package/src/usage.ts +182 -0
  475. package/src/version.ts +2 -0
  476. package/src/web-session-authentication-policy.ts +136 -0
  477. package/src/web-session-cleanup-admission.ts +2344 -0
  478. package/src/web-session-cleanup-join.ts +99 -0
  479. package/src/web-session-client.ts +996 -0
  480. package/src/web-session-contract-definitions.ts +820 -0
  481. package/src/web-session-contract-planning.ts +42 -0
  482. package/src/web-session-contracts.ts +228 -0
  483. package/src/web-session-cookies.ts +500 -0
  484. package/src/web-session-execution.ts +385 -0
  485. package/src/web-session-http.ts +373 -0
  486. package/src/web-session-read-errors.ts +19 -0
  487. package/src/web-session-read-runtime.ts +124 -0
  488. package/src/web-session-recovery.ts +818 -0
  489. package/src/web-session-sites.ts +58 -0
  490. package/src/web-session-template.ts +994 -0
  491. package/src/web-session.ts +93 -0
  492. package/src/whatsapp-client-binding.ts +21 -0
  493. package/src/whatsapp-client-types.ts +75 -0
  494. package/src/whatsapp-client.ts +395 -0
  495. package/src/whatsapp-export-coordinate.ts +17 -0
  496. package/src/whatsapp-message-bundle-v2.ts +195 -0
  497. package/src/whatsapp-message-like-me-cli.ts +195 -0
  498. package/src/whatsapp-message-like-me-export.ts +1072 -0
  499. package/src/whatsapp-message-like-me-source.ts +1012 -0
  500. package/tsconfig.json +67 -0
@@ -0,0 +1,1463 @@
1
+ {
2
+ "browserDomains": [
3
+ "www.beeper.com"
4
+ ],
5
+ "displayName": "Beeper (Pinned Local CLI)",
6
+ "id": "beeper-local",
7
+ "operations": {
8
+ "accounts.list": {
9
+ "dedupeWindowMs": 0,
10
+ "description": "List the exact account realm bound to the fixed local Beeper Desktop target.",
11
+ "idempotency": "none",
12
+ "input": {
13
+ "properties": {},
14
+ "required": []
15
+ },
16
+ "localCli": {
17
+ "action": "accounts.list",
18
+ "contractVersion": 2,
19
+ "maxOutputBytes": 10485760,
20
+ "surface": "beeper",
21
+ "timeoutMs": 120000
22
+ },
23
+ "risk": "R1",
24
+ "sideEffect": "none"
25
+ },
26
+ "accounts.read": {
27
+ "dedupeWindowMs": 0,
28
+ "description": "Read one exact connected Beeper account.",
29
+ "idempotency": "none",
30
+ "input": {
31
+ "properties": {
32
+ "account_id": {
33
+ "description": "Exact Beeper account ID returned by this adapter",
34
+ "maxLength": 512,
35
+ "minLength": 1,
36
+ "type": "string"
37
+ }
38
+ },
39
+ "required": [
40
+ "account_id"
41
+ ]
42
+ },
43
+ "localCli": {
44
+ "action": "accounts.read",
45
+ "contractVersion": 1,
46
+ "maxOutputBytes": 10485760,
47
+ "surface": "beeper",
48
+ "timeoutMs": 120000
49
+ },
50
+ "risk": "R1",
51
+ "sideEffect": "none"
52
+ },
53
+ "bridges.list": {
54
+ "dedupeWindowMs": 0,
55
+ "description": "List one bounded, secret-free bridge capability catalog.",
56
+ "idempotency": "none",
57
+ "input": {
58
+ "properties": {
59
+ "available": {
60
+ "description": "Optionally require current availability",
61
+ "type": "boolean"
62
+ },
63
+ "limit": {
64
+ "description": "Maximum projected bridges",
65
+ "maximum": 128,
66
+ "minimum": 1,
67
+ "type": "number"
68
+ },
69
+ "provider": {
70
+ "description": "Optional exact bridge provider class",
71
+ "enum": [
72
+ "local",
73
+ "cloud",
74
+ "self-hosted"
75
+ ],
76
+ "maxLength": 32,
77
+ "minLength": 1,
78
+ "type": "string"
79
+ }
80
+ },
81
+ "required": []
82
+ },
83
+ "localCli": {
84
+ "action": "bridges.list",
85
+ "contractVersion": 1,
86
+ "maxOutputBytes": 10485760,
87
+ "surface": "beeper",
88
+ "timeoutMs": 120000
89
+ },
90
+ "risk": "R1",
91
+ "sideEffect": "none"
92
+ },
93
+ "bridges.read": {
94
+ "dedupeWindowMs": 0,
95
+ "description": "Read one exact bridge and its secret-free capabilities.",
96
+ "idempotency": "none",
97
+ "input": {
98
+ "properties": {
99
+ "bridge_id": {
100
+ "description": "Exact bridge ID returned by this adapter",
101
+ "maxLength": 512,
102
+ "minLength": 1,
103
+ "type": "string"
104
+ }
105
+ },
106
+ "required": [
107
+ "bridge_id"
108
+ ]
109
+ },
110
+ "localCli": {
111
+ "action": "bridges.read",
112
+ "contractVersion": 1,
113
+ "maxOutputBytes": 10485760,
114
+ "surface": "beeper",
115
+ "timeoutMs": 120000
116
+ },
117
+ "risk": "R1",
118
+ "sideEffect": "none"
119
+ },
120
+ "contacts.list": {
121
+ "dedupeWindowMs": 0,
122
+ "description": "List one bounded account-aware contact projection.",
123
+ "idempotency": "none",
124
+ "input": {
125
+ "properties": {
126
+ "account_id": {
127
+ "description": "Exact Beeper account ID returned by this adapter",
128
+ "maxLength": 512,
129
+ "minLength": 1,
130
+ "type": "string"
131
+ },
132
+ "limit": {
133
+ "description": "Maximum projected contacts",
134
+ "maximum": 200,
135
+ "minimum": 1,
136
+ "type": "number"
137
+ }
138
+ },
139
+ "required": []
140
+ },
141
+ "localCli": {
142
+ "action": "contacts.list",
143
+ "contractVersion": 1,
144
+ "maxOutputBytes": 10485760,
145
+ "surface": "beeper",
146
+ "timeoutMs": 120000
147
+ },
148
+ "risk": "R1",
149
+ "sideEffect": "none"
150
+ },
151
+ "contacts.read": {
152
+ "dedupeWindowMs": 0,
153
+ "description": "Read one exact account-bound contact identity.",
154
+ "idempotency": "none",
155
+ "input": {
156
+ "properties": {
157
+ "account_id": {
158
+ "description": "Exact Beeper account ID returned by this adapter",
159
+ "maxLength": 512,
160
+ "minLength": 1,
161
+ "type": "string"
162
+ },
163
+ "contact_id": {
164
+ "description": "Exact contact ID returned by this adapter",
165
+ "maxLength": 2048,
166
+ "minLength": 1,
167
+ "type": "string"
168
+ }
169
+ },
170
+ "required": [
171
+ "account_id",
172
+ "contact_id"
173
+ ]
174
+ },
175
+ "localCli": {
176
+ "action": "contacts.read",
177
+ "contractVersion": 1,
178
+ "maxOutputBytes": 10485760,
179
+ "surface": "beeper",
180
+ "timeoutMs": 120000
181
+ },
182
+ "risk": "R1",
183
+ "sideEffect": "none"
184
+ },
185
+ "contacts.search": {
186
+ "dedupeWindowMs": 0,
187
+ "description": "Search one bounded contact candidate window.",
188
+ "idempotency": "none",
189
+ "input": {
190
+ "properties": {
191
+ "account_id": {
192
+ "description": "Exact Beeper account ID returned by this adapter",
193
+ "maxLength": 512,
194
+ "minLength": 1,
195
+ "type": "string"
196
+ },
197
+ "limit": {
198
+ "description": "Maximum candidate contacts",
199
+ "maximum": 20,
200
+ "minimum": 1,
201
+ "type": "number"
202
+ },
203
+ "query": {
204
+ "description": "Normalized bounded contact lookup text",
205
+ "maxLength": 256,
206
+ "minLength": 1,
207
+ "type": "string"
208
+ }
209
+ },
210
+ "required": [
211
+ "query"
212
+ ]
213
+ },
214
+ "localCli": {
215
+ "action": "contacts.search",
216
+ "contractVersion": 1,
217
+ "maxOutputBytes": 10485760,
218
+ "surface": "beeper",
219
+ "timeoutMs": 120000
220
+ },
221
+ "risk": "R1",
222
+ "sideEffect": "none"
223
+ },
224
+ "conversations.archive.set": {
225
+ "dedupeWindowMs": 86400000,
226
+ "description": "Set one conversation archive desired state.",
227
+ "idempotency": "local-at-most-once",
228
+ "input": {
229
+ "properties": {
230
+ "account_id": {
231
+ "description": "Exact Beeper account ID returned by this adapter",
232
+ "maxLength": 512,
233
+ "minLength": 1,
234
+ "type": "string"
235
+ },
236
+ "conversation_id": {
237
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
238
+ "maxLength": 2048,
239
+ "minLength": 3,
240
+ "type": "string"
241
+ },
242
+ "enabled": {
243
+ "description": "Desired archived state",
244
+ "type": "boolean"
245
+ }
246
+ },
247
+ "required": [
248
+ "account_id",
249
+ "conversation_id",
250
+ "enabled"
251
+ ]
252
+ },
253
+ "localCli": {
254
+ "action": "conversations.archive.set",
255
+ "contractVersion": 1,
256
+ "maxOutputBytes": 10485760,
257
+ "surface": "beeper",
258
+ "timeoutMs": 120000
259
+ },
260
+ "risk": "R2",
261
+ "sideEffect": "reversible provider or private desired-state mutation"
262
+ },
263
+ "conversations.avatar.set": {
264
+ "dedupeWindowMs": 86400000,
265
+ "description": "Set or clear one exact group-conversation avatar.",
266
+ "idempotency": "local-at-most-once",
267
+ "input": {
268
+ "properties": {
269
+ "account_id": {
270
+ "description": "Exact Beeper account ID returned by this adapter",
271
+ "maxLength": 512,
272
+ "minLength": 1,
273
+ "type": "string"
274
+ },
275
+ "avatar": {
276
+ "description": "Plan-bound replacement avatar bytes",
277
+ "maxBytes": 16777216,
278
+ "type": "file"
279
+ },
280
+ "clear": {
281
+ "description": "Clear the avatar",
282
+ "type": "boolean"
283
+ },
284
+ "conversation_id": {
285
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
286
+ "maxLength": 2048,
287
+ "minLength": 3,
288
+ "type": "string"
289
+ }
290
+ },
291
+ "required": [
292
+ "account_id",
293
+ "conversation_id",
294
+ "clear"
295
+ ]
296
+ },
297
+ "localCli": {
298
+ "action": "conversations.avatar.set",
299
+ "contractVersion": 1,
300
+ "maxOutputBytes": 10485760,
301
+ "surface": "beeper",
302
+ "timeoutMs": 120000
303
+ },
304
+ "risk": "R3",
305
+ "sideEffect": "externally visible provider or Desktop mutation"
306
+ },
307
+ "conversations.description.set": {
308
+ "dedupeWindowMs": 86400000,
309
+ "description": "Set or clear one exact group-conversation description.",
310
+ "idempotency": "local-at-most-once",
311
+ "input": {
312
+ "properties": {
313
+ "account_id": {
314
+ "description": "Exact Beeper account ID returned by this adapter",
315
+ "maxLength": 512,
316
+ "minLength": 1,
317
+ "type": "string"
318
+ },
319
+ "clear": {
320
+ "description": "Clear the description",
321
+ "type": "boolean"
322
+ },
323
+ "conversation_id": {
324
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
325
+ "maxLength": 2048,
326
+ "minLength": 3,
327
+ "type": "string"
328
+ },
329
+ "description": {
330
+ "description": "Replacement group description",
331
+ "maxLength": 65536,
332
+ "minLength": 1,
333
+ "type": "string"
334
+ }
335
+ },
336
+ "required": [
337
+ "account_id",
338
+ "conversation_id",
339
+ "clear"
340
+ ]
341
+ },
342
+ "localCli": {
343
+ "action": "conversations.description.set",
344
+ "contractVersion": 1,
345
+ "maxOutputBytes": 10485760,
346
+ "surface": "beeper",
347
+ "timeoutMs": 120000
348
+ },
349
+ "risk": "R3",
350
+ "sideEffect": "externally visible provider or Desktop mutation"
351
+ },
352
+ "conversations.disappearing.set": {
353
+ "dedupeWindowMs": 86400000,
354
+ "description": "Set one disappearing-message retention interval.",
355
+ "idempotency": "local-at-most-once",
356
+ "input": {
357
+ "properties": {
358
+ "account_id": {
359
+ "description": "Exact Beeper account ID returned by this adapter",
360
+ "maxLength": 512,
361
+ "minLength": 1,
362
+ "type": "string"
363
+ },
364
+ "conversation_id": {
365
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
366
+ "maxLength": 2048,
367
+ "minLength": 3,
368
+ "type": "string"
369
+ },
370
+ "seconds": {
371
+ "description": "Desired disappearing-message interval; zero disables",
372
+ "maximum": 31536000,
373
+ "minimum": 0,
374
+ "type": "number"
375
+ }
376
+ },
377
+ "required": [
378
+ "account_id",
379
+ "conversation_id",
380
+ "seconds"
381
+ ]
382
+ },
383
+ "localCli": {
384
+ "action": "conversations.disappearing.set",
385
+ "contractVersion": 1,
386
+ "maxOutputBytes": 10485760,
387
+ "surface": "beeper",
388
+ "timeoutMs": 120000
389
+ },
390
+ "risk": "R3",
391
+ "sideEffect": "externally visible provider or Desktop mutation"
392
+ },
393
+ "conversations.draft.set": {
394
+ "dedupeWindowMs": 86400000,
395
+ "description": "Set or clear one private Desktop draft.",
396
+ "idempotency": "local-at-most-once",
397
+ "input": {
398
+ "properties": {
399
+ "account_id": {
400
+ "description": "Exact Beeper account ID returned by this adapter",
401
+ "maxLength": 512,
402
+ "minLength": 1,
403
+ "type": "string"
404
+ },
405
+ "attachment": {
406
+ "description": "Plan-bound private draft attachment",
407
+ "maxBytes": 524288000,
408
+ "type": "file"
409
+ },
410
+ "clear": {
411
+ "description": "Clear the draft",
412
+ "type": "boolean"
413
+ },
414
+ "conversation_id": {
415
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
416
+ "maxLength": 2048,
417
+ "minLength": 3,
418
+ "type": "string"
419
+ },
420
+ "filename": {
421
+ "description": "Attachment filename",
422
+ "maxLength": 512,
423
+ "minLength": 1,
424
+ "type": "string"
425
+ },
426
+ "mime_type": {
427
+ "description": "Attachment media type",
428
+ "maxLength": 128,
429
+ "minLength": 1,
430
+ "type": "string"
431
+ },
432
+ "text": {
433
+ "description": "Replacement private draft text",
434
+ "maxLength": 65536,
435
+ "minLength": 0,
436
+ "type": "string"
437
+ }
438
+ },
439
+ "required": [
440
+ "account_id",
441
+ "conversation_id",
442
+ "clear"
443
+ ]
444
+ },
445
+ "localCli": {
446
+ "action": "conversations.draft.set",
447
+ "contractVersion": 1,
448
+ "maxOutputBytes": 10485760,
449
+ "surface": "beeper",
450
+ "timeoutMs": 120000
451
+ },
452
+ "risk": "R2",
453
+ "sideEffect": "reversible provider or private desired-state mutation"
454
+ },
455
+ "conversations.focus": {
456
+ "dedupeWindowMs": 86400000,
457
+ "description": "Focus one exact Desktop conversation with optional plan-bound draft state.",
458
+ "idempotency": "local-at-most-once",
459
+ "input": {
460
+ "properties": {
461
+ "account_id": {
462
+ "description": "Exact Beeper account ID returned by this adapter",
463
+ "maxLength": 512,
464
+ "minLength": 1,
465
+ "type": "string"
466
+ },
467
+ "attachment": {
468
+ "description": "Plan-bound Desktop draft attachment",
469
+ "maxBytes": 524288000,
470
+ "type": "file"
471
+ },
472
+ "conversation_id": {
473
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
474
+ "maxLength": 2048,
475
+ "minLength": 3,
476
+ "type": "string"
477
+ },
478
+ "draft": {
479
+ "description": "Plan-bound Desktop draft text",
480
+ "maxLength": 65536,
481
+ "minLength": 0,
482
+ "type": "string"
483
+ },
484
+ "message_id": {
485
+ "description": "Exact message ID returned by this adapter",
486
+ "maxLength": 2048,
487
+ "minLength": 1,
488
+ "type": "string"
489
+ }
490
+ },
491
+ "required": [
492
+ "account_id",
493
+ "conversation_id"
494
+ ]
495
+ },
496
+ "localCli": {
497
+ "action": "conversations.focus",
498
+ "contractVersion": 1,
499
+ "maxOutputBytes": 10485760,
500
+ "surface": "beeper",
501
+ "timeoutMs": 120000
502
+ },
503
+ "risk": "R2",
504
+ "sideEffect": "reversible provider or private desired-state mutation"
505
+ },
506
+ "conversations.mute.set": {
507
+ "dedupeWindowMs": 86400000,
508
+ "description": "Set one conversation mute desired state.",
509
+ "idempotency": "local-at-most-once",
510
+ "input": {
511
+ "properties": {
512
+ "account_id": {
513
+ "description": "Exact Beeper account ID returned by this adapter",
514
+ "maxLength": 512,
515
+ "minLength": 1,
516
+ "type": "string"
517
+ },
518
+ "conversation_id": {
519
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
520
+ "maxLength": 2048,
521
+ "minLength": 3,
522
+ "type": "string"
523
+ },
524
+ "enabled": {
525
+ "description": "Desired muted state",
526
+ "type": "boolean"
527
+ }
528
+ },
529
+ "required": [
530
+ "account_id",
531
+ "conversation_id",
532
+ "enabled"
533
+ ]
534
+ },
535
+ "localCli": {
536
+ "action": "conversations.mute.set",
537
+ "contractVersion": 1,
538
+ "maxOutputBytes": 10485760,
539
+ "surface": "beeper",
540
+ "timeoutMs": 120000
541
+ },
542
+ "risk": "R2",
543
+ "sideEffect": "reversible provider or private desired-state mutation"
544
+ },
545
+ "conversations.notify": {
546
+ "dedupeWindowMs": 86400000,
547
+ "description": "Send one explicit iMessage Notify Anyway alert.",
548
+ "idempotency": "local-at-most-once",
549
+ "input": {
550
+ "properties": {
551
+ "account_id": {
552
+ "description": "Exact Beeper account ID returned by this adapter",
553
+ "maxLength": 512,
554
+ "minLength": 1,
555
+ "type": "string"
556
+ },
557
+ "conversation_id": {
558
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
559
+ "maxLength": 2048,
560
+ "minLength": 3,
561
+ "type": "string"
562
+ }
563
+ },
564
+ "required": [
565
+ "account_id",
566
+ "conversation_id"
567
+ ]
568
+ },
569
+ "localCli": {
570
+ "action": "conversations.notify",
571
+ "contractVersion": 1,
572
+ "maxOutputBytes": 10485760,
573
+ "surface": "beeper",
574
+ "timeoutMs": 120000
575
+ },
576
+ "risk": "R3",
577
+ "sideEffect": "externally visible provider or Desktop mutation"
578
+ },
579
+ "conversations.pin.set": {
580
+ "dedupeWindowMs": 86400000,
581
+ "description": "Set one conversation pin desired state.",
582
+ "idempotency": "local-at-most-once",
583
+ "input": {
584
+ "properties": {
585
+ "account_id": {
586
+ "description": "Exact Beeper account ID returned by this adapter",
587
+ "maxLength": 512,
588
+ "minLength": 1,
589
+ "type": "string"
590
+ },
591
+ "conversation_id": {
592
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
593
+ "maxLength": 2048,
594
+ "minLength": 3,
595
+ "type": "string"
596
+ },
597
+ "enabled": {
598
+ "description": "Desired pinned state",
599
+ "type": "boolean"
600
+ }
601
+ },
602
+ "required": [
603
+ "account_id",
604
+ "conversation_id",
605
+ "enabled"
606
+ ]
607
+ },
608
+ "localCli": {
609
+ "action": "conversations.pin.set",
610
+ "contractVersion": 1,
611
+ "maxOutputBytes": 10485760,
612
+ "surface": "beeper",
613
+ "timeoutMs": 120000
614
+ },
615
+ "risk": "R2",
616
+ "sideEffect": "reversible provider or private desired-state mutation"
617
+ },
618
+ "conversations.priority.set": {
619
+ "dedupeWindowMs": 86400000,
620
+ "description": "Set one conversation inbox priority desired state.",
621
+ "idempotency": "local-at-most-once",
622
+ "input": {
623
+ "properties": {
624
+ "account_id": {
625
+ "description": "Exact Beeper account ID returned by this adapter",
626
+ "maxLength": 512,
627
+ "minLength": 1,
628
+ "type": "string"
629
+ },
630
+ "conversation_id": {
631
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
632
+ "maxLength": 2048,
633
+ "minLength": 3,
634
+ "type": "string"
635
+ },
636
+ "level": {
637
+ "description": "Desired inbox priority",
638
+ "enum": [
639
+ "inbox",
640
+ "low"
641
+ ],
642
+ "maxLength": 16,
643
+ "minLength": 1,
644
+ "type": "string"
645
+ }
646
+ },
647
+ "required": [
648
+ "account_id",
649
+ "conversation_id",
650
+ "level"
651
+ ]
652
+ },
653
+ "localCli": {
654
+ "action": "conversations.priority.set",
655
+ "contractVersion": 1,
656
+ "maxOutputBytes": 10485760,
657
+ "surface": "beeper",
658
+ "timeoutMs": 120000
659
+ },
660
+ "risk": "R2",
661
+ "sideEffect": "reversible provider or private desired-state mutation"
662
+ },
663
+ "conversations.read": {
664
+ "dedupeWindowMs": 0,
665
+ "description": "Read one exact account-bound conversation.",
666
+ "idempotency": "none",
667
+ "input": {
668
+ "properties": {
669
+ "account_id": {
670
+ "description": "Exact Beeper account ID returned by this adapter",
671
+ "maxLength": 512,
672
+ "minLength": 1,
673
+ "type": "string"
674
+ },
675
+ "conversation_id": {
676
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
677
+ "maxLength": 2048,
678
+ "minLength": 3,
679
+ "type": "string"
680
+ },
681
+ "max_participants": {
682
+ "description": "Maximum projected participants",
683
+ "maximum": 500,
684
+ "minimum": 1,
685
+ "type": "number"
686
+ }
687
+ },
688
+ "required": [
689
+ "account_id",
690
+ "conversation_id"
691
+ ]
692
+ },
693
+ "localCli": {
694
+ "action": "conversations.read",
695
+ "contractVersion": 2,
696
+ "maxOutputBytes": 10485760,
697
+ "surface": "beeper",
698
+ "timeoutMs": 120000
699
+ },
700
+ "risk": "R1",
701
+ "sideEffect": "none"
702
+ },
703
+ "conversations.read-state.set": {
704
+ "dedupeWindowMs": 86400000,
705
+ "description": "Set one conversation read marker, potentially emitting a network receipt.",
706
+ "idempotency": "local-at-most-once",
707
+ "input": {
708
+ "properties": {
709
+ "account_id": {
710
+ "description": "Exact Beeper account ID returned by this adapter",
711
+ "maxLength": 512,
712
+ "minLength": 1,
713
+ "type": "string"
714
+ },
715
+ "conversation_id": {
716
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
717
+ "maxLength": 2048,
718
+ "minLength": 3,
719
+ "type": "string"
720
+ },
721
+ "message_id": {
722
+ "description": "Exact message ID returned by this adapter",
723
+ "maxLength": 2048,
724
+ "minLength": 1,
725
+ "type": "string"
726
+ },
727
+ "unread": {
728
+ "description": "Desired marked-unread state",
729
+ "type": "boolean"
730
+ }
731
+ },
732
+ "required": [
733
+ "account_id",
734
+ "conversation_id",
735
+ "unread"
736
+ ]
737
+ },
738
+ "localCli": {
739
+ "action": "conversations.read-state.set",
740
+ "contractVersion": 1,
741
+ "maxOutputBytes": 10485760,
742
+ "surface": "beeper",
743
+ "timeoutMs": 120000
744
+ },
745
+ "risk": "R3",
746
+ "sideEffect": "externally visible provider or Desktop mutation"
747
+ },
748
+ "conversations.reminder.set": {
749
+ "dedupeWindowMs": 86400000,
750
+ "description": "Set or clear one private Desktop reminder.",
751
+ "idempotency": "local-at-most-once",
752
+ "input": {
753
+ "properties": {
754
+ "account_id": {
755
+ "description": "Exact Beeper account ID returned by this adapter",
756
+ "maxLength": 512,
757
+ "minLength": 1,
758
+ "type": "string"
759
+ },
760
+ "clear": {
761
+ "description": "Clear the reminder",
762
+ "type": "boolean"
763
+ },
764
+ "conversation_id": {
765
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
766
+ "maxLength": 2048,
767
+ "minLength": 3,
768
+ "type": "string"
769
+ },
770
+ "dismiss_on_message": {
771
+ "description": "Dismiss when a message arrives",
772
+ "type": "boolean"
773
+ },
774
+ "when": {
775
+ "description": "Canonical UTC ISO timestamp",
776
+ "maxLength": 64,
777
+ "minLength": 20,
778
+ "type": "string"
779
+ }
780
+ },
781
+ "required": [
782
+ "account_id",
783
+ "conversation_id",
784
+ "clear"
785
+ ]
786
+ },
787
+ "localCli": {
788
+ "action": "conversations.reminder.set",
789
+ "contractVersion": 1,
790
+ "maxOutputBytes": 10485760,
791
+ "surface": "beeper",
792
+ "timeoutMs": 120000
793
+ },
794
+ "risk": "R2",
795
+ "sideEffect": "reversible provider or private desired-state mutation"
796
+ },
797
+ "conversations.start": {
798
+ "dedupeWindowMs": 86400000,
799
+ "description": "Start one conversation with one exact account-bound user.",
800
+ "idempotency": "local-at-most-once",
801
+ "input": {
802
+ "properties": {
803
+ "account_id": {
804
+ "description": "Exact Beeper account ID returned by this adapter",
805
+ "maxLength": 512,
806
+ "minLength": 1,
807
+ "type": "string"
808
+ },
809
+ "user_id": {
810
+ "description": "Canonical Matrix/Beeper user ID",
811
+ "maxLength": 2048,
812
+ "minLength": 3,
813
+ "type": "string"
814
+ }
815
+ },
816
+ "required": [
817
+ "account_id",
818
+ "user_id"
819
+ ]
820
+ },
821
+ "localCli": {
822
+ "action": "conversations.start",
823
+ "contractVersion": 1,
824
+ "maxOutputBytes": 10485760,
825
+ "surface": "beeper",
826
+ "timeoutMs": 120000
827
+ },
828
+ "risk": "R3",
829
+ "sideEffect": "externally visible provider or Desktop mutation"
830
+ },
831
+ "conversations.title.set": {
832
+ "dedupeWindowMs": 86400000,
833
+ "description": "Set one exact group-conversation title.",
834
+ "idempotency": "local-at-most-once",
835
+ "input": {
836
+ "properties": {
837
+ "account_id": {
838
+ "description": "Exact Beeper account ID returned by this adapter",
839
+ "maxLength": 512,
840
+ "minLength": 1,
841
+ "type": "string"
842
+ },
843
+ "conversation_id": {
844
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
845
+ "maxLength": 2048,
846
+ "minLength": 3,
847
+ "type": "string"
848
+ },
849
+ "title": {
850
+ "description": "Replacement group title",
851
+ "maxLength": 1024,
852
+ "minLength": 1,
853
+ "type": "string"
854
+ }
855
+ },
856
+ "required": [
857
+ "account_id",
858
+ "conversation_id",
859
+ "title"
860
+ ]
861
+ },
862
+ "localCli": {
863
+ "action": "conversations.title.set",
864
+ "contractVersion": 1,
865
+ "maxOutputBytes": 10485760,
866
+ "surface": "beeper",
867
+ "timeoutMs": 120000
868
+ },
869
+ "risk": "R3",
870
+ "sideEffect": "externally visible provider or Desktop mutation"
871
+ },
872
+ "messaging.content.search": {
873
+ "dedupeWindowMs": 0,
874
+ "description": "Search one bounded message-content candidate window.",
875
+ "idempotency": "none",
876
+ "input": {
877
+ "properties": {
878
+ "account_id": {
879
+ "description": "Exact Beeper account ID returned by this adapter",
880
+ "maxLength": 512,
881
+ "minLength": 1,
882
+ "type": "string"
883
+ },
884
+ "after": {
885
+ "description": "Canonical UTC ISO timestamp",
886
+ "maxLength": 64,
887
+ "minLength": 20,
888
+ "type": "string"
889
+ },
890
+ "before": {
891
+ "description": "Canonical UTC ISO timestamp",
892
+ "maxLength": 64,
893
+ "minLength": 20,
894
+ "type": "string"
895
+ },
896
+ "chat_type": {
897
+ "description": "Exact chat type filter",
898
+ "enum": [
899
+ "group",
900
+ "single"
901
+ ],
902
+ "maxLength": 16,
903
+ "minLength": 1,
904
+ "type": "string"
905
+ },
906
+ "conversation_id": {
907
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
908
+ "maxLength": 2048,
909
+ "minLength": 3,
910
+ "type": "string"
911
+ },
912
+ "exclude_low_priority": {
913
+ "description": "Exclude low-priority chats",
914
+ "type": "boolean"
915
+ },
916
+ "include_muted": {
917
+ "description": "Include muted chats",
918
+ "type": "boolean"
919
+ },
920
+ "limit": {
921
+ "description": "Maximum projected message candidates",
922
+ "maximum": 200,
923
+ "minimum": 1,
924
+ "type": "number"
925
+ },
926
+ "media": {
927
+ "description": "Exact media-kind filters",
928
+ "items": {
929
+ "description": "One exact media kind",
930
+ "enum": [
931
+ "any",
932
+ "video",
933
+ "image",
934
+ "link",
935
+ "file"
936
+ ],
937
+ "maxLength": 16,
938
+ "minLength": 1,
939
+ "type": "string"
940
+ },
941
+ "maxItems": 5,
942
+ "minItems": 0,
943
+ "type": "array"
944
+ },
945
+ "query": {
946
+ "description": "Normalized bounded message lookup text",
947
+ "maxLength": 256,
948
+ "minLength": 1,
949
+ "type": "string"
950
+ },
951
+ "sender": {
952
+ "description": "Exact sender selector returned by this adapter",
953
+ "maxLength": 2048,
954
+ "minLength": 1,
955
+ "type": "string"
956
+ }
957
+ },
958
+ "required": []
959
+ },
960
+ "localCli": {
961
+ "action": "messaging.content.search",
962
+ "contractVersion": 1,
963
+ "maxOutputBytes": 10485760,
964
+ "surface": "beeper",
965
+ "timeoutMs": 120000
966
+ },
967
+ "risk": "R1",
968
+ "sideEffect": "none"
969
+ },
970
+ "messaging.context.read": {
971
+ "dedupeWindowMs": 0,
972
+ "description": "Read bounded context around one exact message.",
973
+ "idempotency": "none",
974
+ "input": {
975
+ "properties": {
976
+ "account_id": {
977
+ "description": "Exact Beeper account ID returned by this adapter",
978
+ "maxLength": 512,
979
+ "minLength": 1,
980
+ "type": "string"
981
+ },
982
+ "after": {
983
+ "description": "Messages after the exact target",
984
+ "maximum": 100,
985
+ "minimum": 0,
986
+ "type": "number"
987
+ },
988
+ "before": {
989
+ "description": "Messages before the exact target",
990
+ "maximum": 100,
991
+ "minimum": 0,
992
+ "type": "number"
993
+ },
994
+ "conversation_id": {
995
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
996
+ "maxLength": 2048,
997
+ "minLength": 3,
998
+ "type": "string"
999
+ },
1000
+ "message_id": {
1001
+ "description": "Exact message ID returned by this adapter",
1002
+ "maxLength": 2048,
1003
+ "minLength": 1,
1004
+ "type": "string"
1005
+ }
1006
+ },
1007
+ "required": [
1008
+ "account_id",
1009
+ "conversation_id",
1010
+ "message_id"
1011
+ ]
1012
+ },
1013
+ "localCli": {
1014
+ "action": "messaging.context.read",
1015
+ "contractVersion": 1,
1016
+ "maxOutputBytes": 10485760,
1017
+ "surface": "beeper",
1018
+ "timeoutMs": 120000
1019
+ },
1020
+ "risk": "R1",
1021
+ "sideEffect": "none"
1022
+ },
1023
+ "messaging.edit": {
1024
+ "dedupeWindowMs": 86400000,
1025
+ "description": "Edit one exact message authored by the bound account.",
1026
+ "idempotency": "local-at-most-once",
1027
+ "input": {
1028
+ "properties": {
1029
+ "account_id": {
1030
+ "description": "Exact Beeper account ID returned by this adapter",
1031
+ "maxLength": 512,
1032
+ "minLength": 1,
1033
+ "type": "string"
1034
+ },
1035
+ "conversation_id": {
1036
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
1037
+ "maxLength": 2048,
1038
+ "minLength": 3,
1039
+ "type": "string"
1040
+ },
1041
+ "message_id": {
1042
+ "description": "Exact message ID returned by this adapter",
1043
+ "maxLength": 2048,
1044
+ "minLength": 1,
1045
+ "type": "string"
1046
+ },
1047
+ "text": {
1048
+ "description": "Replacement message text",
1049
+ "maxLength": 65536,
1050
+ "minLength": 1,
1051
+ "type": "string"
1052
+ }
1053
+ },
1054
+ "required": [
1055
+ "account_id",
1056
+ "conversation_id",
1057
+ "message_id",
1058
+ "text"
1059
+ ]
1060
+ },
1061
+ "localCli": {
1062
+ "action": "messaging.edit",
1063
+ "contractVersion": 1,
1064
+ "maxOutputBytes": 10485760,
1065
+ "surface": "beeper",
1066
+ "timeoutMs": 120000
1067
+ },
1068
+ "risk": "R3",
1069
+ "sideEffect": "externally visible provider or Desktop mutation"
1070
+ },
1071
+ "messaging.list": {
1072
+ "dedupeWindowMs": 0,
1073
+ "description": "List one bounded account-aware conversation projection.",
1074
+ "idempotency": "none",
1075
+ "input": {
1076
+ "properties": {
1077
+ "account_id": {
1078
+ "description": "Exact Beeper account ID returned by this adapter",
1079
+ "maxLength": 512,
1080
+ "minLength": 1,
1081
+ "type": "string"
1082
+ },
1083
+ "archived": {
1084
+ "description": "Filter by archived state",
1085
+ "type": "boolean"
1086
+ },
1087
+ "limit": {
1088
+ "description": "Maximum projected conversations",
1089
+ "maximum": 200,
1090
+ "minimum": 1,
1091
+ "type": "number"
1092
+ },
1093
+ "low_priority": {
1094
+ "description": "Filter by low-priority state",
1095
+ "type": "boolean"
1096
+ },
1097
+ "muted": {
1098
+ "description": "Filter by muted state",
1099
+ "type": "boolean"
1100
+ },
1101
+ "pinned": {
1102
+ "description": "Filter by pinned state",
1103
+ "type": "boolean"
1104
+ },
1105
+ "unread": {
1106
+ "description": "Filter by unread state",
1107
+ "type": "boolean"
1108
+ }
1109
+ },
1110
+ "required": []
1111
+ },
1112
+ "localCli": {
1113
+ "action": "messaging.list",
1114
+ "contractVersion": 1,
1115
+ "maxOutputBytes": 10485760,
1116
+ "surface": "beeper",
1117
+ "timeoutMs": 120000
1118
+ },
1119
+ "risk": "R1",
1120
+ "sideEffect": "none"
1121
+ },
1122
+ "messaging.message.read": {
1123
+ "dedupeWindowMs": 0,
1124
+ "description": "Read one exact message from one exact conversation.",
1125
+ "idempotency": "none",
1126
+ "input": {
1127
+ "properties": {
1128
+ "account_id": {
1129
+ "description": "Exact Beeper account ID returned by this adapter",
1130
+ "maxLength": 512,
1131
+ "minLength": 1,
1132
+ "type": "string"
1133
+ },
1134
+ "conversation_id": {
1135
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
1136
+ "maxLength": 2048,
1137
+ "minLength": 3,
1138
+ "type": "string"
1139
+ },
1140
+ "message_id": {
1141
+ "description": "Exact message ID returned by this adapter",
1142
+ "maxLength": 2048,
1143
+ "minLength": 1,
1144
+ "type": "string"
1145
+ }
1146
+ },
1147
+ "required": [
1148
+ "account_id",
1149
+ "conversation_id",
1150
+ "message_id"
1151
+ ]
1152
+ },
1153
+ "localCli": {
1154
+ "action": "messaging.message.read",
1155
+ "contractVersion": 1,
1156
+ "maxOutputBytes": 10485760,
1157
+ "surface": "beeper",
1158
+ "timeoutMs": 120000
1159
+ },
1160
+ "risk": "R1",
1161
+ "sideEffect": "none"
1162
+ },
1163
+ "messaging.read": {
1164
+ "dedupeWindowMs": 0,
1165
+ "description": "Read one bounded page from one exact conversation.",
1166
+ "idempotency": "none",
1167
+ "input": {
1168
+ "properties": {
1169
+ "account_id": {
1170
+ "description": "Exact Beeper account ID returned by this adapter",
1171
+ "maxLength": 512,
1172
+ "minLength": 1,
1173
+ "type": "string"
1174
+ },
1175
+ "after_cursor": {
1176
+ "description": "Exact provider cursor returned by a prior page",
1177
+ "maxLength": 2048,
1178
+ "minLength": 1,
1179
+ "type": "string"
1180
+ },
1181
+ "before_cursor": {
1182
+ "description": "Exact provider cursor returned by a prior page",
1183
+ "maxLength": 2048,
1184
+ "minLength": 1,
1185
+ "type": "string"
1186
+ },
1187
+ "conversation_id": {
1188
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
1189
+ "maxLength": 2048,
1190
+ "minLength": 3,
1191
+ "type": "string"
1192
+ },
1193
+ "limit": {
1194
+ "description": "Maximum projected messages",
1195
+ "maximum": 200,
1196
+ "minimum": 1,
1197
+ "type": "number"
1198
+ }
1199
+ },
1200
+ "required": [
1201
+ "account_id",
1202
+ "conversation_id"
1203
+ ]
1204
+ },
1205
+ "localCli": {
1206
+ "action": "messaging.read",
1207
+ "contractVersion": 2,
1208
+ "maxOutputBytes": 10485760,
1209
+ "surface": "beeper",
1210
+ "timeoutMs": 120000
1211
+ },
1212
+ "risk": "R1",
1213
+ "sideEffect": "none"
1214
+ },
1215
+ "messaging.search": {
1216
+ "dedupeWindowMs": 0,
1217
+ "description": "Search one bounded conversation candidate window.",
1218
+ "idempotency": "none",
1219
+ "input": {
1220
+ "properties": {
1221
+ "account_id": {
1222
+ "description": "Exact Beeper account ID returned by this adapter",
1223
+ "maxLength": 512,
1224
+ "minLength": 1,
1225
+ "type": "string"
1226
+ },
1227
+ "limit": {
1228
+ "description": "Maximum candidate conversations",
1229
+ "maximum": 20,
1230
+ "minimum": 1,
1231
+ "type": "number"
1232
+ },
1233
+ "query": {
1234
+ "description": "Normalized bounded conversation lookup text",
1235
+ "maxLength": 256,
1236
+ "minLength": 1,
1237
+ "type": "string"
1238
+ }
1239
+ },
1240
+ "required": [
1241
+ "query"
1242
+ ]
1243
+ },
1244
+ "localCli": {
1245
+ "action": "messaging.search",
1246
+ "contractVersion": 2,
1247
+ "maxOutputBytes": 10485760,
1248
+ "surface": "beeper",
1249
+ "timeoutMs": 120000
1250
+ },
1251
+ "risk": "R1",
1252
+ "sideEffect": "none"
1253
+ },
1254
+ "messaging.send": {
1255
+ "dedupeWindowMs": 86400000,
1256
+ "description": "Submit one confirmed text, file, sticker, or voice request to Beeper Desktop; network delivery is not asserted.",
1257
+ "idempotency": "local-at-most-once",
1258
+ "input": {
1259
+ "properties": {
1260
+ "account_id": {
1261
+ "description": "Exact Beeper account ID returned by this adapter",
1262
+ "maxLength": 512,
1263
+ "minLength": 1,
1264
+ "type": "string"
1265
+ },
1266
+ "conversation_id": {
1267
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
1268
+ "maxLength": 2048,
1269
+ "minLength": 3,
1270
+ "type": "string"
1271
+ },
1272
+ "duration_seconds": {
1273
+ "description": "Voice-note duration in seconds",
1274
+ "maximum": 86400,
1275
+ "minimum": 1,
1276
+ "type": "number"
1277
+ },
1278
+ "file": {
1279
+ "description": "Plan-bound file, sticker, or voice-note bytes",
1280
+ "maxBytes": 524288000,
1281
+ "type": "file"
1282
+ },
1283
+ "filename": {
1284
+ "description": "Provider-visible filename",
1285
+ "maxLength": 512,
1286
+ "minLength": 1,
1287
+ "type": "string"
1288
+ },
1289
+ "kind": {
1290
+ "description": "Exact bounded send kind",
1291
+ "enum": [
1292
+ "text",
1293
+ "file",
1294
+ "sticker",
1295
+ "voice"
1296
+ ],
1297
+ "maxLength": 16,
1298
+ "minLength": 1,
1299
+ "type": "string"
1300
+ },
1301
+ "mentions": {
1302
+ "description": "Canonical Matrix/Beeper participant IDs",
1303
+ "items": {
1304
+ "description": "Canonical Matrix/Beeper user ID",
1305
+ "maxLength": 2048,
1306
+ "minLength": 3,
1307
+ "type": "string"
1308
+ },
1309
+ "maxItems": 25,
1310
+ "minItems": 0,
1311
+ "type": "array"
1312
+ },
1313
+ "mime_type": {
1314
+ "description": "Exact media type",
1315
+ "maxLength": 128,
1316
+ "minLength": 1,
1317
+ "type": "string"
1318
+ },
1319
+ "no_preview": {
1320
+ "description": "Disable link previews for text",
1321
+ "type": "boolean"
1322
+ },
1323
+ "reply_to": {
1324
+ "description": "Exact message ID returned by this adapter",
1325
+ "maxLength": 2048,
1326
+ "minLength": 1,
1327
+ "type": "string"
1328
+ },
1329
+ "text": {
1330
+ "description": "Message text or optional file caption",
1331
+ "maxLength": 65536,
1332
+ "minLength": 0,
1333
+ "type": "string"
1334
+ }
1335
+ },
1336
+ "required": [
1337
+ "account_id",
1338
+ "conversation_id",
1339
+ "kind"
1340
+ ]
1341
+ },
1342
+ "localCli": {
1343
+ "action": "messaging.send",
1344
+ "contractVersion": 1,
1345
+ "maxOutputBytes": 10485760,
1346
+ "surface": "beeper",
1347
+ "timeoutMs": 300000
1348
+ },
1349
+ "risk": "R3",
1350
+ "sideEffect": "externally visible provider or Desktop mutation"
1351
+ },
1352
+ "presence.set": {
1353
+ "dedupeWindowMs": 86400000,
1354
+ "description": "Send one bounded typing or paused presence indication.",
1355
+ "idempotency": "local-at-most-once",
1356
+ "input": {
1357
+ "properties": {
1358
+ "account_id": {
1359
+ "description": "Exact Beeper account ID returned by this adapter",
1360
+ "maxLength": 512,
1361
+ "minLength": 1,
1362
+ "type": "string"
1363
+ },
1364
+ "conversation_id": {
1365
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
1366
+ "maxLength": 2048,
1367
+ "minLength": 3,
1368
+ "type": "string"
1369
+ },
1370
+ "duration_seconds": {
1371
+ "description": "Bounded typing duration before a separately journaled paused dispatch",
1372
+ "maximum": 30,
1373
+ "minimum": 1,
1374
+ "type": "number"
1375
+ },
1376
+ "state": {
1377
+ "description": "Exact presence state",
1378
+ "enum": [
1379
+ "typing",
1380
+ "paused"
1381
+ ],
1382
+ "maxLength": 16,
1383
+ "minLength": 1,
1384
+ "type": "string"
1385
+ }
1386
+ },
1387
+ "required": [
1388
+ "account_id",
1389
+ "conversation_id",
1390
+ "state"
1391
+ ]
1392
+ },
1393
+ "localCli": {
1394
+ "action": "presence.set",
1395
+ "contractVersion": 1,
1396
+ "maxOutputBytes": 10485760,
1397
+ "surface": "beeper",
1398
+ "timeoutMs": 120000
1399
+ },
1400
+ "risk": "R3",
1401
+ "sideEffect": "externally visible provider or Desktop mutation"
1402
+ },
1403
+ "reactions.set": {
1404
+ "dedupeWindowMs": 86400000,
1405
+ "description": "Set one exact reaction desired state.",
1406
+ "idempotency": "local-at-most-once",
1407
+ "input": {
1408
+ "properties": {
1409
+ "account_id": {
1410
+ "description": "Exact Beeper account ID returned by this adapter",
1411
+ "maxLength": 512,
1412
+ "minLength": 1,
1413
+ "type": "string"
1414
+ },
1415
+ "conversation_id": {
1416
+ "description": "Canonical full Beeper/Matrix chat ID returned by this adapter",
1417
+ "maxLength": 2048,
1418
+ "minLength": 3,
1419
+ "type": "string"
1420
+ },
1421
+ "enabled": {
1422
+ "description": "Desired reaction presence",
1423
+ "type": "boolean"
1424
+ },
1425
+ "message_id": {
1426
+ "description": "Exact message ID returned by this adapter",
1427
+ "maxLength": 2048,
1428
+ "minLength": 1,
1429
+ "type": "string"
1430
+ },
1431
+ "reaction": {
1432
+ "description": "Exact reaction text",
1433
+ "maxLength": 256,
1434
+ "minLength": 1,
1435
+ "type": "string"
1436
+ }
1437
+ },
1438
+ "required": [
1439
+ "account_id",
1440
+ "conversation_id",
1441
+ "message_id",
1442
+ "reaction",
1443
+ "enabled"
1444
+ ]
1445
+ },
1446
+ "localCli": {
1447
+ "action": "reactions.set",
1448
+ "contractVersion": 1,
1449
+ "maxOutputBytes": 10485760,
1450
+ "surface": "beeper",
1451
+ "timeoutMs": 120000
1452
+ },
1453
+ "risk": "R2",
1454
+ "sideEffect": "reversible provider or private desired-state mutation"
1455
+ }
1456
+ },
1457
+ "origins": [
1458
+ "https://www.beeper.com"
1459
+ ],
1460
+ "schemaVersion": 6,
1461
+ "surfaceId": "beeper",
1462
+ "version": "2.1.0"
1463
+ }