@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,703 @@
1
+ {
2
+ "schemaVersion": 4,
3
+ "id": "facebook-web",
4
+ "version": "1.1.0",
5
+ "displayName": "Facebook (Authenticated Internal API)",
6
+ "surfaceId": "facebook",
7
+ "origins": [
8
+ "https://www.facebook.com"
9
+ ],
10
+ "browserDomains": [
11
+ "www.facebook.com"
12
+ ],
13
+ "operations": {
14
+ "comments.create": {
15
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
16
+ "risk": "R3",
17
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
18
+ "idempotency": "local-at-most-once",
19
+ "dedupeWindowMs": 86400000,
20
+ "input": {
21
+ "properties": {
22
+ "post_id": {
23
+ "type": "string",
24
+ "description": "Exact Facebook post ID",
25
+ "minLength": 1,
26
+ "maxLength": 256
27
+ },
28
+ "body": {
29
+ "type": "string",
30
+ "description": "Comment body",
31
+ "minLength": 1,
32
+ "maxLength": 500
33
+ }
34
+ },
35
+ "required": [
36
+ "post_id",
37
+ "body"
38
+ ]
39
+ },
40
+ "webSession": {
41
+ "site": "facebook",
42
+ "action": "comments.create",
43
+ "contractVersion": 1,
44
+ "timeoutMs": 60000,
45
+ "maxOutputBytes": 10485760
46
+ }
47
+ },
48
+ "comments.read": {
49
+ "description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
50
+ "risk": "R1",
51
+ "sideEffect": "none",
52
+ "idempotency": "none",
53
+ "dedupeWindowMs": 0,
54
+ "input": {
55
+ "properties": {
56
+ "post_id": {
57
+ "type": "string",
58
+ "description": "Exact Facebook post ID",
59
+ "minLength": 1,
60
+ "maxLength": 256
61
+ },
62
+ "cursor": {
63
+ "type": "string",
64
+ "description": "Opaque cursor returned by the preceding page",
65
+ "minLength": 1,
66
+ "maxLength": 4096
67
+ },
68
+ "limit": {
69
+ "type": "number",
70
+ "description": "Maximum comments",
71
+ "minimum": 1,
72
+ "maximum": 100
73
+ }
74
+ },
75
+ "required": [
76
+ "post_id"
77
+ ]
78
+ },
79
+ "webSession": {
80
+ "site": "facebook",
81
+ "action": "comments.read",
82
+ "contractVersion": 1,
83
+ "timeoutMs": 60000,
84
+ "maxOutputBytes": 10485760
85
+ }
86
+ },
87
+ "content.edit": {
88
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
89
+ "risk": "R3",
90
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
91
+ "idempotency": "local-at-most-once",
92
+ "dedupeWindowMs": 86400000,
93
+ "input": {
94
+ "properties": {
95
+ "post_id": {
96
+ "type": "string",
97
+ "description": "Exact Facebook post ID",
98
+ "minLength": 1,
99
+ "maxLength": 256
100
+ },
101
+ "body": {
102
+ "type": "string",
103
+ "description": "Replacement text",
104
+ "minLength": 1,
105
+ "maxLength": 1000
106
+ }
107
+ },
108
+ "required": [
109
+ "post_id",
110
+ "body"
111
+ ]
112
+ },
113
+ "webSession": {
114
+ "site": "facebook",
115
+ "action": "content.edit",
116
+ "contractVersion": 1,
117
+ "timeoutMs": 60000,
118
+ "maxOutputBytes": 10485760
119
+ }
120
+ },
121
+ "content.save": {
122
+ "description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
123
+ "risk": "R2",
124
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
125
+ "idempotency": "local-at-most-once",
126
+ "dedupeWindowMs": 86400000,
127
+ "input": {
128
+ "properties": {
129
+ "post_id": {
130
+ "type": "string",
131
+ "description": "Exact Facebook post ID",
132
+ "minLength": 1,
133
+ "maxLength": 256
134
+ },
135
+ "saved": {
136
+ "type": "boolean",
137
+ "description": "Exact desired saved state"
138
+ }
139
+ },
140
+ "required": [
141
+ "post_id",
142
+ "saved"
143
+ ]
144
+ },
145
+ "webSession": {
146
+ "site": "facebook",
147
+ "action": "content.save",
148
+ "contractVersion": 1,
149
+ "timeoutMs": 60000,
150
+ "maxOutputBytes": 10485760
151
+ }
152
+ },
153
+ "content.share": {
154
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
155
+ "risk": "R3",
156
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
157
+ "idempotency": "local-at-most-once",
158
+ "dedupeWindowMs": 86400000,
159
+ "input": {
160
+ "properties": {
161
+ "post_id": {
162
+ "type": "string",
163
+ "description": "Exact Facebook post ID",
164
+ "minLength": 1,
165
+ "maxLength": 256
166
+ },
167
+ "destination": {
168
+ "type": "string",
169
+ "description": "Reviewed share destination",
170
+ "enum": [
171
+ "capture-required"
172
+ ]
173
+ }
174
+ },
175
+ "required": [
176
+ "post_id",
177
+ "destination"
178
+ ]
179
+ },
180
+ "webSession": {
181
+ "site": "facebook",
182
+ "action": "content.share",
183
+ "contractVersion": 1,
184
+ "timeoutMs": 60000,
185
+ "maxOutputBytes": 10485760
186
+ }
187
+ },
188
+ "feeds.read": {
189
+ "description": "Observed contract: bounded initial signed-in Comet homepage preload with exact current-user binding; it makes no completion or pagination claim.",
190
+ "risk": "R1",
191
+ "sideEffect": "none",
192
+ "idempotency": "none",
193
+ "dedupeWindowMs": 0,
194
+ "input": {
195
+ "properties": {
196
+ "feed": {
197
+ "type": "string",
198
+ "description": "Reviewed feed",
199
+ "enum": [
200
+ "home"
201
+ ]
202
+ },
203
+ "limit": {
204
+ "type": "number",
205
+ "description": "Maximum results",
206
+ "minimum": 1,
207
+ "maximum": 30
208
+ }
209
+ },
210
+ "required": [
211
+ "feed"
212
+ ]
213
+ },
214
+ "webSession": {
215
+ "site": "facebook",
216
+ "action": "feeds.read",
217
+ "contractVersion": 2,
218
+ "timeoutMs": 60000,
219
+ "maxOutputBytes": 10485760
220
+ }
221
+ },
222
+ "likes.set": {
223
+ "description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
224
+ "risk": "R2",
225
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
226
+ "idempotency": "local-at-most-once",
227
+ "dedupeWindowMs": 86400000,
228
+ "input": {
229
+ "properties": {
230
+ "post_id": {
231
+ "type": "string",
232
+ "description": "Exact Facebook post ID",
233
+ "minLength": 1,
234
+ "maxLength": 256
235
+ },
236
+ "liked": {
237
+ "type": "boolean",
238
+ "description": "Exact desired like state"
239
+ }
240
+ },
241
+ "required": [
242
+ "post_id",
243
+ "liked"
244
+ ]
245
+ },
246
+ "webSession": {
247
+ "site": "facebook",
248
+ "action": "likes.set",
249
+ "contractVersion": 1,
250
+ "timeoutMs": 60000,
251
+ "maxOutputBytes": 10485760
252
+ }
253
+ },
254
+ "media.publish": {
255
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
256
+ "risk": "R3",
257
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
258
+ "idempotency": "local-at-most-once",
259
+ "dedupeWindowMs": 86400000,
260
+ "input": {
261
+ "properties": {
262
+ "media": {
263
+ "type": "file",
264
+ "description": "Exact media file",
265
+ "maxBytes": 1073741824,
266
+ "mediaTypes": [
267
+ "image/*",
268
+ "video/*"
269
+ ]
270
+ },
271
+ "caption": {
272
+ "type": "string",
273
+ "description": "Optional media caption",
274
+ "minLength": 1,
275
+ "maxLength": 1000
276
+ },
277
+ "audience": {
278
+ "type": "string",
279
+ "description": "Explicit audience",
280
+ "enum": [
281
+ "default"
282
+ ]
283
+ }
284
+ },
285
+ "required": [
286
+ "media"
287
+ ]
288
+ },
289
+ "webSession": {
290
+ "site": "facebook",
291
+ "action": "media.publish",
292
+ "contractVersion": 1,
293
+ "timeoutMs": 60000,
294
+ "maxOutputBytes": 10485760
295
+ }
296
+ },
297
+ "media.read": {
298
+ "description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
299
+ "risk": "R1",
300
+ "sideEffect": "none",
301
+ "idempotency": "none",
302
+ "dedupeWindowMs": 0,
303
+ "input": {
304
+ "properties": {
305
+ "post_id": {
306
+ "type": "string",
307
+ "description": "Exact Facebook post ID",
308
+ "minLength": 1,
309
+ "maxLength": 256
310
+ }
311
+ },
312
+ "required": [
313
+ "post_id"
314
+ ]
315
+ },
316
+ "webSession": {
317
+ "site": "facebook",
318
+ "action": "media.read",
319
+ "contractVersion": 1,
320
+ "timeoutMs": 60000,
321
+ "maxOutputBytes": 10485760
322
+ }
323
+ },
324
+ "messaging.list": {
325
+ "description": "Capture-required contract reservation: a homepage Comet preload does not establish the inbox route or folder, paging or completeness, or acknowledgement/presence behavior; Messenger Msys/E2EE needs its own reviewed transport.",
326
+ "risk": "R1",
327
+ "sideEffect": "none",
328
+ "idempotency": "none",
329
+ "dedupeWindowMs": 0,
330
+ "input": {
331
+ "properties": {
332
+ "folder": {
333
+ "type": "string",
334
+ "description": "Reviewed inbox folder",
335
+ "enum": [
336
+ "inbox",
337
+ "message-requests",
338
+ "archived",
339
+ "spam"
340
+ ]
341
+ },
342
+ "cursor": {
343
+ "type": "string",
344
+ "description": "Opaque cursor returned by the preceding page",
345
+ "minLength": 1,
346
+ "maxLength": 4096
347
+ },
348
+ "limit": {
349
+ "type": "number",
350
+ "description": "Maximum thread summaries",
351
+ "minimum": 1,
352
+ "maximum": 50
353
+ }
354
+ },
355
+ "required": [
356
+ "folder"
357
+ ]
358
+ },
359
+ "webSession": {
360
+ "site": "facebook",
361
+ "action": "messaging.list",
362
+ "contractVersion": 2,
363
+ "timeoutMs": 60000,
364
+ "maxOutputBytes": 10485760
365
+ }
366
+ },
367
+ "messaging.read": {
368
+ "description": "Capture-required contract reservation: Messenger conversation reads require protocol-correct Lightspeed/Msys acknowledgement analysis.",
369
+ "risk": "R1",
370
+ "sideEffect": "none",
371
+ "idempotency": "none",
372
+ "dedupeWindowMs": 0,
373
+ "input": {
374
+ "properties": {
375
+ "conversation_id": {
376
+ "type": "string",
377
+ "description": "Exact conversation ID",
378
+ "minLength": 1,
379
+ "maxLength": 512
380
+ },
381
+ "cursor": {
382
+ "type": "string",
383
+ "description": "Opaque cursor returned by the preceding page",
384
+ "minLength": 1,
385
+ "maxLength": 4096
386
+ },
387
+ "limit": {
388
+ "type": "number",
389
+ "description": "Maximum messages",
390
+ "minimum": 1,
391
+ "maximum": 100
392
+ }
393
+ },
394
+ "required": [
395
+ "conversation_id"
396
+ ]
397
+ },
398
+ "webSession": {
399
+ "site": "facebook",
400
+ "action": "messaging.read",
401
+ "contractVersion": 1,
402
+ "timeoutMs": 60000,
403
+ "maxOutputBytes": 10485760
404
+ }
405
+ },
406
+ "messaging.send": {
407
+ "description": "Capture-required contract reservation: Messenger send requires protocol-correct Lightspeed/Msys/E2EE and cannot be represented as a plaintext GraphQL replay.",
408
+ "risk": "R3",
409
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
410
+ "idempotency": "local-at-most-once",
411
+ "dedupeWindowMs": 86400000,
412
+ "input": {
413
+ "properties": {
414
+ "conversation_id": {
415
+ "type": "string",
416
+ "description": "Exact conversation ID",
417
+ "minLength": 1,
418
+ "maxLength": 512
419
+ },
420
+ "body": {
421
+ "type": "string",
422
+ "description": "Message body",
423
+ "minLength": 1,
424
+ "maxLength": 1000
425
+ },
426
+ "attachment": {
427
+ "type": "file",
428
+ "description": "Optional exact message attachment",
429
+ "maxBytes": 1073741824,
430
+ "mediaTypes": [
431
+ "image/*",
432
+ "video/*",
433
+ "application/pdf"
434
+ ]
435
+ }
436
+ },
437
+ "required": [
438
+ "conversation_id",
439
+ "body"
440
+ ]
441
+ },
442
+ "webSession": {
443
+ "site": "facebook",
444
+ "action": "messaging.send",
445
+ "contractVersion": 1,
446
+ "timeoutMs": 60000,
447
+ "maxOutputBytes": 10485760
448
+ }
449
+ },
450
+ "posts.publish": {
451
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
452
+ "risk": "R3",
453
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
454
+ "idempotency": "local-at-most-once",
455
+ "dedupeWindowMs": 86400000,
456
+ "input": {
457
+ "properties": {
458
+ "body": {
459
+ "type": "string",
460
+ "description": "Post body",
461
+ "minLength": 1,
462
+ "maxLength": 1000
463
+ },
464
+ "attachment": {
465
+ "type": "file",
466
+ "description": "Optional exact post attachment",
467
+ "maxBytes": 1073741824,
468
+ "mediaTypes": [
469
+ "image/*",
470
+ "video/*",
471
+ "image/gif"
472
+ ]
473
+ },
474
+ "audience": {
475
+ "type": "string",
476
+ "description": "Explicit audience",
477
+ "enum": [
478
+ "default"
479
+ ]
480
+ }
481
+ },
482
+ "required": [
483
+ "body"
484
+ ]
485
+ },
486
+ "webSession": {
487
+ "site": "facebook",
488
+ "action": "posts.publish",
489
+ "contractVersion": 1,
490
+ "timeoutMs": 60000,
491
+ "maxOutputBytes": 10485760
492
+ }
493
+ },
494
+ "posts.quote": {
495
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
496
+ "risk": "R3",
497
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
498
+ "idempotency": "local-at-most-once",
499
+ "dedupeWindowMs": 86400000,
500
+ "input": {
501
+ "properties": {
502
+ "post_id": {
503
+ "type": "string",
504
+ "description": "Exact Facebook post ID",
505
+ "minLength": 1,
506
+ "maxLength": 256
507
+ },
508
+ "body": {
509
+ "type": "string",
510
+ "description": "Quote text",
511
+ "minLength": 1,
512
+ "maxLength": 1000
513
+ }
514
+ },
515
+ "required": [
516
+ "post_id",
517
+ "body"
518
+ ]
519
+ },
520
+ "webSession": {
521
+ "site": "facebook",
522
+ "action": "posts.quote",
523
+ "contractVersion": 1,
524
+ "timeoutMs": 60000,
525
+ "maxOutputBytes": 10485760
526
+ }
527
+ },
528
+ "posts.read": {
529
+ "description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
530
+ "risk": "R1",
531
+ "sideEffect": "none",
532
+ "idempotency": "none",
533
+ "dedupeWindowMs": 0,
534
+ "input": {
535
+ "properties": {
536
+ "post_id": {
537
+ "type": "string",
538
+ "description": "Exact Facebook post ID",
539
+ "minLength": 1,
540
+ "maxLength": 256
541
+ }
542
+ },
543
+ "required": [
544
+ "post_id"
545
+ ]
546
+ },
547
+ "webSession": {
548
+ "site": "facebook",
549
+ "action": "posts.read",
550
+ "contractVersion": 1,
551
+ "timeoutMs": 60000,
552
+ "maxOutputBytes": 10485760
553
+ }
554
+ },
555
+ "posts.repost": {
556
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
557
+ "risk": "R3",
558
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
559
+ "idempotency": "local-at-most-once",
560
+ "dedupeWindowMs": 86400000,
561
+ "input": {
562
+ "properties": {
563
+ "post_id": {
564
+ "type": "string",
565
+ "description": "Exact Facebook post ID",
566
+ "minLength": 1,
567
+ "maxLength": 256
568
+ },
569
+ "reposted": {
570
+ "type": "boolean",
571
+ "description": "Exact desired repost state"
572
+ }
573
+ },
574
+ "required": [
575
+ "post_id",
576
+ "reposted"
577
+ ]
578
+ },
579
+ "webSession": {
580
+ "site": "facebook",
581
+ "action": "posts.repost",
582
+ "contractVersion": 1,
583
+ "timeoutMs": 60000,
584
+ "maxOutputBytes": 10485760
585
+ }
586
+ },
587
+ "reactions.set": {
588
+ "description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
589
+ "risk": "R2",
590
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
591
+ "idempotency": "local-at-most-once",
592
+ "dedupeWindowMs": 86400000,
593
+ "input": {
594
+ "properties": {
595
+ "post_id": {
596
+ "type": "string",
597
+ "description": "Exact Facebook post ID",
598
+ "minLength": 1,
599
+ "maxLength": 256
600
+ },
601
+ "reaction": {
602
+ "type": "string",
603
+ "description": "Exact desired reaction",
604
+ "enum": [
605
+ "none",
606
+ "like",
607
+ "love",
608
+ "care",
609
+ "haha",
610
+ "wow",
611
+ "sad",
612
+ "angry"
613
+ ]
614
+ }
615
+ },
616
+ "required": [
617
+ "post_id",
618
+ "reaction"
619
+ ]
620
+ },
621
+ "webSession": {
622
+ "site": "facebook",
623
+ "action": "reactions.set",
624
+ "contractVersion": 1,
625
+ "timeoutMs": 60000,
626
+ "maxOutputBytes": 10485760
627
+ }
628
+ },
629
+ "relationships.follow.set": {
630
+ "description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
631
+ "risk": "R2",
632
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
633
+ "idempotency": "local-at-most-once",
634
+ "dedupeWindowMs": 86400000,
635
+ "input": {
636
+ "properties": {
637
+ "user_id": {
638
+ "type": "string",
639
+ "description": "Exact target account ID",
640
+ "minLength": 1,
641
+ "maxLength": 80
642
+ },
643
+ "following": {
644
+ "type": "boolean",
645
+ "description": "Exact desired following state"
646
+ }
647
+ },
648
+ "required": [
649
+ "user_id",
650
+ "following"
651
+ ]
652
+ },
653
+ "webSession": {
654
+ "site": "facebook",
655
+ "action": "relationships.follow.set",
656
+ "contractVersion": 1,
657
+ "timeoutMs": 60000,
658
+ "maxOutputBytes": 10485760
659
+ }
660
+ },
661
+ "replies.create": {
662
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
663
+ "risk": "R3",
664
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
665
+ "idempotency": "local-at-most-once",
666
+ "dedupeWindowMs": 86400000,
667
+ "input": {
668
+ "properties": {
669
+ "post_id": {
670
+ "type": "string",
671
+ "description": "Exact Facebook post ID",
672
+ "minLength": 1,
673
+ "maxLength": 256
674
+ },
675
+ "comment_id": {
676
+ "type": "string",
677
+ "description": "Exact parent comment ID",
678
+ "minLength": 1,
679
+ "maxLength": 256
680
+ },
681
+ "body": {
682
+ "type": "string",
683
+ "description": "Reply body",
684
+ "minLength": 1,
685
+ "maxLength": 500
686
+ }
687
+ },
688
+ "required": [
689
+ "post_id",
690
+ "comment_id",
691
+ "body"
692
+ ]
693
+ },
694
+ "webSession": {
695
+ "site": "facebook",
696
+ "action": "replies.create",
697
+ "contractVersion": 1,
698
+ "timeoutMs": 60000,
699
+ "maxOutputBytes": 10485760
700
+ }
701
+ }
702
+ }
703
+ }