@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,706 @@
1
+ {
2
+ "schemaVersion": 4,
3
+ "id": "facebook-web",
4
+ "version": "1.0.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: live direct signed-in Comet Relay news-feed preload JSON with exact current-user binding.",
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
+ "cursor": {
204
+ "type": "string",
205
+ "description": "Opaque cursor returned by the preceding page",
206
+ "minLength": 1,
207
+ "maxLength": 4096
208
+ },
209
+ "limit": {
210
+ "type": "number",
211
+ "description": "Maximum results",
212
+ "minimum": 1,
213
+ "maximum": 30
214
+ }
215
+ },
216
+ "required": [
217
+ "feed"
218
+ ]
219
+ },
220
+ "webSession": {
221
+ "site": "facebook",
222
+ "action": "feeds.read",
223
+ "contractVersion": 1,
224
+ "timeoutMs": 60000,
225
+ "maxOutputBytes": 10485760
226
+ }
227
+ },
228
+ "likes.set": {
229
+ "description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
230
+ "risk": "R2",
231
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
232
+ "idempotency": "local-at-most-once",
233
+ "dedupeWindowMs": 86400000,
234
+ "input": {
235
+ "properties": {
236
+ "post_id": {
237
+ "type": "string",
238
+ "description": "Exact Facebook post ID",
239
+ "minLength": 1,
240
+ "maxLength": 256
241
+ },
242
+ "liked": {
243
+ "type": "boolean",
244
+ "description": "Exact desired like state"
245
+ }
246
+ },
247
+ "required": [
248
+ "post_id",
249
+ "liked"
250
+ ]
251
+ },
252
+ "webSession": {
253
+ "site": "facebook",
254
+ "action": "likes.set",
255
+ "contractVersion": 1,
256
+ "timeoutMs": 60000,
257
+ "maxOutputBytes": 10485760
258
+ }
259
+ },
260
+ "media.publish": {
261
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
262
+ "risk": "R3",
263
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
264
+ "idempotency": "local-at-most-once",
265
+ "dedupeWindowMs": 86400000,
266
+ "input": {
267
+ "properties": {
268
+ "media": {
269
+ "type": "file",
270
+ "description": "Exact media file",
271
+ "maxBytes": 1073741824,
272
+ "mediaTypes": [
273
+ "image/*",
274
+ "video/*"
275
+ ]
276
+ },
277
+ "caption": {
278
+ "type": "string",
279
+ "description": "Optional media caption",
280
+ "minLength": 1,
281
+ "maxLength": 1000
282
+ },
283
+ "audience": {
284
+ "type": "string",
285
+ "description": "Explicit audience",
286
+ "enum": [
287
+ "default"
288
+ ]
289
+ }
290
+ },
291
+ "required": [
292
+ "media"
293
+ ]
294
+ },
295
+ "webSession": {
296
+ "site": "facebook",
297
+ "action": "media.publish",
298
+ "contractVersion": 1,
299
+ "timeoutMs": 60000,
300
+ "maxOutputBytes": 10485760
301
+ }
302
+ },
303
+ "media.read": {
304
+ "description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
305
+ "risk": "R1",
306
+ "sideEffect": "none",
307
+ "idempotency": "none",
308
+ "dedupeWindowMs": 0,
309
+ "input": {
310
+ "properties": {
311
+ "post_id": {
312
+ "type": "string",
313
+ "description": "Exact Facebook post ID",
314
+ "minLength": 1,
315
+ "maxLength": 256
316
+ }
317
+ },
318
+ "required": [
319
+ "post_id"
320
+ ]
321
+ },
322
+ "webSession": {
323
+ "site": "facebook",
324
+ "action": "media.read",
325
+ "contractVersion": 1,
326
+ "timeoutMs": 60000,
327
+ "maxOutputBytes": 10485760
328
+ }
329
+ },
330
+ "messaging.list": {
331
+ "description": "Observed contract: live direct Comet Relay message-thread summaries with no message, seen, delivery, or presence dispatch.",
332
+ "risk": "R1",
333
+ "sideEffect": "none",
334
+ "idempotency": "none",
335
+ "dedupeWindowMs": 0,
336
+ "input": {
337
+ "properties": {
338
+ "folder": {
339
+ "type": "string",
340
+ "description": "Reviewed inbox folder",
341
+ "enum": [
342
+ "inbox"
343
+ ]
344
+ },
345
+ "cursor": {
346
+ "type": "string",
347
+ "description": "Opaque cursor returned by the preceding page",
348
+ "minLength": 1,
349
+ "maxLength": 4096
350
+ },
351
+ "limit": {
352
+ "type": "number",
353
+ "description": "Maximum thread summaries",
354
+ "minimum": 1,
355
+ "maximum": 50
356
+ }
357
+ },
358
+ "required": [
359
+ "folder"
360
+ ]
361
+ },
362
+ "webSession": {
363
+ "site": "facebook",
364
+ "action": "messaging.list",
365
+ "contractVersion": 1,
366
+ "timeoutMs": 60000,
367
+ "maxOutputBytes": 10485760
368
+ }
369
+ },
370
+ "messaging.read": {
371
+ "description": "Capture-required contract reservation: Messenger conversation reads require protocol-correct Lightspeed/Msys acknowledgement analysis.",
372
+ "risk": "R1",
373
+ "sideEffect": "none",
374
+ "idempotency": "none",
375
+ "dedupeWindowMs": 0,
376
+ "input": {
377
+ "properties": {
378
+ "conversation_id": {
379
+ "type": "string",
380
+ "description": "Exact conversation ID",
381
+ "minLength": 1,
382
+ "maxLength": 512
383
+ },
384
+ "cursor": {
385
+ "type": "string",
386
+ "description": "Opaque cursor returned by the preceding page",
387
+ "minLength": 1,
388
+ "maxLength": 4096
389
+ },
390
+ "limit": {
391
+ "type": "number",
392
+ "description": "Maximum messages",
393
+ "minimum": 1,
394
+ "maximum": 100
395
+ }
396
+ },
397
+ "required": [
398
+ "conversation_id"
399
+ ]
400
+ },
401
+ "webSession": {
402
+ "site": "facebook",
403
+ "action": "messaging.read",
404
+ "contractVersion": 1,
405
+ "timeoutMs": 60000,
406
+ "maxOutputBytes": 10485760
407
+ }
408
+ },
409
+ "messaging.send": {
410
+ "description": "Capture-required contract reservation: Messenger send requires protocol-correct Lightspeed/Msys/E2EE and cannot be represented as a plaintext GraphQL replay.",
411
+ "risk": "R3",
412
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
413
+ "idempotency": "local-at-most-once",
414
+ "dedupeWindowMs": 86400000,
415
+ "input": {
416
+ "properties": {
417
+ "conversation_id": {
418
+ "type": "string",
419
+ "description": "Exact conversation ID",
420
+ "minLength": 1,
421
+ "maxLength": 512
422
+ },
423
+ "body": {
424
+ "type": "string",
425
+ "description": "Message body",
426
+ "minLength": 1,
427
+ "maxLength": 1000
428
+ },
429
+ "attachment": {
430
+ "type": "file",
431
+ "description": "Optional exact message attachment",
432
+ "maxBytes": 1073741824,
433
+ "mediaTypes": [
434
+ "image/*",
435
+ "video/*",
436
+ "application/pdf"
437
+ ]
438
+ }
439
+ },
440
+ "required": [
441
+ "conversation_id",
442
+ "body"
443
+ ]
444
+ },
445
+ "webSession": {
446
+ "site": "facebook",
447
+ "action": "messaging.send",
448
+ "contractVersion": 1,
449
+ "timeoutMs": 60000,
450
+ "maxOutputBytes": 10485760
451
+ }
452
+ },
453
+ "posts.publish": {
454
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
455
+ "risk": "R3",
456
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
457
+ "idempotency": "local-at-most-once",
458
+ "dedupeWindowMs": 86400000,
459
+ "input": {
460
+ "properties": {
461
+ "body": {
462
+ "type": "string",
463
+ "description": "Post body",
464
+ "minLength": 1,
465
+ "maxLength": 1000
466
+ },
467
+ "attachment": {
468
+ "type": "file",
469
+ "description": "Optional exact post attachment",
470
+ "maxBytes": 1073741824,
471
+ "mediaTypes": [
472
+ "image/*",
473
+ "video/*",
474
+ "image/gif"
475
+ ]
476
+ },
477
+ "audience": {
478
+ "type": "string",
479
+ "description": "Explicit audience",
480
+ "enum": [
481
+ "default"
482
+ ]
483
+ }
484
+ },
485
+ "required": [
486
+ "body"
487
+ ]
488
+ },
489
+ "webSession": {
490
+ "site": "facebook",
491
+ "action": "posts.publish",
492
+ "contractVersion": 1,
493
+ "timeoutMs": 60000,
494
+ "maxOutputBytes": 10485760
495
+ }
496
+ },
497
+ "posts.quote": {
498
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
499
+ "risk": "R3",
500
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
501
+ "idempotency": "local-at-most-once",
502
+ "dedupeWindowMs": 86400000,
503
+ "input": {
504
+ "properties": {
505
+ "post_id": {
506
+ "type": "string",
507
+ "description": "Exact Facebook post ID",
508
+ "minLength": 1,
509
+ "maxLength": 256
510
+ },
511
+ "body": {
512
+ "type": "string",
513
+ "description": "Quote text",
514
+ "minLength": 1,
515
+ "maxLength": 1000
516
+ }
517
+ },
518
+ "required": [
519
+ "post_id",
520
+ "body"
521
+ ]
522
+ },
523
+ "webSession": {
524
+ "site": "facebook",
525
+ "action": "posts.quote",
526
+ "contractVersion": 1,
527
+ "timeoutMs": 60000,
528
+ "maxOutputBytes": 10485760
529
+ }
530
+ },
531
+ "posts.read": {
532
+ "description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
533
+ "risk": "R1",
534
+ "sideEffect": "none",
535
+ "idempotency": "none",
536
+ "dedupeWindowMs": 0,
537
+ "input": {
538
+ "properties": {
539
+ "post_id": {
540
+ "type": "string",
541
+ "description": "Exact Facebook post ID",
542
+ "minLength": 1,
543
+ "maxLength": 256
544
+ }
545
+ },
546
+ "required": [
547
+ "post_id"
548
+ ]
549
+ },
550
+ "webSession": {
551
+ "site": "facebook",
552
+ "action": "posts.read",
553
+ "contractVersion": 1,
554
+ "timeoutMs": 60000,
555
+ "maxOutputBytes": 10485760
556
+ }
557
+ },
558
+ "posts.repost": {
559
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
560
+ "risk": "R3",
561
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
562
+ "idempotency": "local-at-most-once",
563
+ "dedupeWindowMs": 86400000,
564
+ "input": {
565
+ "properties": {
566
+ "post_id": {
567
+ "type": "string",
568
+ "description": "Exact Facebook post ID",
569
+ "minLength": 1,
570
+ "maxLength": 256
571
+ },
572
+ "reposted": {
573
+ "type": "boolean",
574
+ "description": "Exact desired repost state"
575
+ }
576
+ },
577
+ "required": [
578
+ "post_id",
579
+ "reposted"
580
+ ]
581
+ },
582
+ "webSession": {
583
+ "site": "facebook",
584
+ "action": "posts.repost",
585
+ "contractVersion": 1,
586
+ "timeoutMs": 60000,
587
+ "maxOutputBytes": 10485760
588
+ }
589
+ },
590
+ "reactions.set": {
591
+ "description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
592
+ "risk": "R2",
593
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
594
+ "idempotency": "local-at-most-once",
595
+ "dedupeWindowMs": 86400000,
596
+ "input": {
597
+ "properties": {
598
+ "post_id": {
599
+ "type": "string",
600
+ "description": "Exact Facebook post ID",
601
+ "minLength": 1,
602
+ "maxLength": 256
603
+ },
604
+ "reaction": {
605
+ "type": "string",
606
+ "description": "Exact desired reaction",
607
+ "enum": [
608
+ "none",
609
+ "like",
610
+ "love",
611
+ "care",
612
+ "haha",
613
+ "wow",
614
+ "sad",
615
+ "angry"
616
+ ]
617
+ }
618
+ },
619
+ "required": [
620
+ "post_id",
621
+ "reaction"
622
+ ]
623
+ },
624
+ "webSession": {
625
+ "site": "facebook",
626
+ "action": "reactions.set",
627
+ "contractVersion": 1,
628
+ "timeoutMs": 60000,
629
+ "maxOutputBytes": 10485760
630
+ }
631
+ },
632
+ "relationships.follow.set": {
633
+ "description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
634
+ "risk": "R2",
635
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
636
+ "idempotency": "local-at-most-once",
637
+ "dedupeWindowMs": 86400000,
638
+ "input": {
639
+ "properties": {
640
+ "user_id": {
641
+ "type": "string",
642
+ "description": "Exact target account ID",
643
+ "minLength": 1,
644
+ "maxLength": 80
645
+ },
646
+ "following": {
647
+ "type": "boolean",
648
+ "description": "Exact desired following state"
649
+ }
650
+ },
651
+ "required": [
652
+ "user_id",
653
+ "following"
654
+ ]
655
+ },
656
+ "webSession": {
657
+ "site": "facebook",
658
+ "action": "relationships.follow.set",
659
+ "contractVersion": 1,
660
+ "timeoutMs": 60000,
661
+ "maxOutputBytes": 10485760
662
+ }
663
+ },
664
+ "replies.create": {
665
+ "description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
666
+ "risk": "R3",
667
+ "sideEffect": "Changes remote facebook state only after exact preview confirmation and reviewed dispatch.",
668
+ "idempotency": "local-at-most-once",
669
+ "dedupeWindowMs": 86400000,
670
+ "input": {
671
+ "properties": {
672
+ "post_id": {
673
+ "type": "string",
674
+ "description": "Exact Facebook post ID",
675
+ "minLength": 1,
676
+ "maxLength": 256
677
+ },
678
+ "comment_id": {
679
+ "type": "string",
680
+ "description": "Exact parent comment ID",
681
+ "minLength": 1,
682
+ "maxLength": 256
683
+ },
684
+ "body": {
685
+ "type": "string",
686
+ "description": "Reply body",
687
+ "minLength": 1,
688
+ "maxLength": 500
689
+ }
690
+ },
691
+ "required": [
692
+ "post_id",
693
+ "comment_id",
694
+ "body"
695
+ ]
696
+ },
697
+ "webSession": {
698
+ "site": "facebook",
699
+ "action": "replies.create",
700
+ "contractVersion": 1,
701
+ "timeoutMs": 60000,
702
+ "maxOutputBytes": 10485760
703
+ }
704
+ }
705
+ }
706
+ }