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