@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.
- package/CHANGELOG.md +458 -0
- package/LICENSE +21 -0
- package/README.md +1359 -0
- package/bunfig.toml +2 -0
- package/dist/apple-photos-client.js +704 -0
- package/dist/beeper-client.js +4602 -0
- package/dist/client.js +1605 -0
- package/dist/index-26yq8q16.js +31 -0
- package/dist/index-9t13b4k7.js +508 -0
- package/dist/index-axwm9b3v.js +5 -0
- package/dist/index-gwk7rbyj.js +30 -0
- package/dist/index.js +701 -0
- package/dist/messaging.js +1130 -0
- package/dist/omni-client.js +1406 -0
- package/dist/whatsapp-client.js +355 -0
- package/docs/imessage-direct-provider.md +106 -0
- package/docs/rental-listings.md +94 -0
- package/package.json +600 -0
- package/skills/ghostget/SKILL.md +251 -0
- package/skills/ghostget/agents/openai.yaml +4 -0
- package/skills/ghostget/references/adapter-contract.md +181 -0
- package/skills/ghostget/references/apple-photos.md +115 -0
- package/skills/ghostget/references/article-drafts.md +235 -0
- package/skills/ghostget/references/code-owned-provider-scaffold.md +134 -0
- package/skills/ghostget/references/cross-posting-video.md +139 -0
- package/skills/ghostget/references/cross-posting.md +82 -0
- package/skills/ghostget/references/derivation.md +390 -0
- package/skills/ghostget/references/hraness-social-profile-stats.json +269 -0
- package/skills/ghostget/references/install.md +66 -0
- package/skills/ghostget/references/linkedin-adapter.md +442 -0
- package/skills/ghostget/references/messaging.md +168 -0
- package/skills/ghostget/references/meta-comet-contract.md +153 -0
- package/skills/ghostget/references/platform-patterns.md +122 -0
- package/skills/ghostget/references/provider-plugins.md +496 -0
- package/skills/ghostget/references/reddit-flair.md +78 -0
- package/skills/ghostget/references/safety-and-state.md +214 -0
- package/skills/ghostget/references/settlement-and-duplicate-cleanup.md +79 -0
- package/skills/ghostget/references/social-platform-routing.md +66 -0
- package/skills/ghostget/references/social-profile-stats.md +195 -0
- package/skills/ghostget/references/social-video-platform-routing.md +89 -0
- package/skills/ghostget/references/whatsapp-adapter.md +101 -0
- package/skills/ghostget/references/x-adapter.md +332 -0
- package/skills/ghostget/references/x-ai-disclosure.md +71 -0
- package/src/apple-photos-cli.ts +639 -0
- package/src/apple-photos-client-types.ts +168 -0
- package/src/apple-photos-client.ts +201 -0
- package/src/apple-photos-contact-evidence.ts +838 -0
- package/src/apple-photos-local-source.ts +1131 -0
- package/src/args.ts +2053 -0
- package/src/article-draft-document.ts +417 -0
- package/src/article-draft-embeds.ts +123 -0
- package/src/article-draft-images.ts +214 -0
- package/src/assets/adapter-template/wrench-adapter.json +40 -0
- package/src/assets/adapters/beeper/wrench-web-adapter.json +1500 -0
- package/src/assets/adapters/beeper/wrench-web-adapter.v1.0.0.json +129 -0
- package/src/assets/adapters/beeper/wrench-web-adapter.v1.1.0.json +207 -0
- package/src/assets/adapters/beeper/wrench-web-adapter.v2.0.0.json +1463 -0
- package/src/assets/adapters/beeper/wrench-web-adapter.v2.1.0.json +1463 -0
- package/src/assets/adapters/beeper/wrench-web-adapter.v2.2.0.json +1475 -0
- package/src/assets/adapters/beeper/wrench-web-adapter.v2.3.0.json +1488 -0
- package/src/assets/adapters/bluesky/wrench-web-adapter.json +684 -0
- package/src/assets/adapters/bluesky/wrench-web-adapter.v1.0.0.json +581 -0
- package/src/assets/adapters/bluesky/wrench-web-adapter.v1.1.0.json +581 -0
- package/src/assets/adapters/bluesky/wrench-web-adapter.v1.2.0.json +581 -0
- package/src/assets/adapters/bluesky/wrench-web-adapter.v1.3.0.json +615 -0
- package/src/assets/adapters/bluesky/wrench-web-adapter.v1.4.0.json +684 -0
- package/src/assets/adapters/bluesky/wrench-web-adapter.v1.5.0.json +684 -0
- package/src/assets/adapters/bluesky/wrench-web-adapter.v1.6.0.json +684 -0
- package/src/assets/adapters/clasificados/wrench-web-adapter.json +54 -0
- package/src/assets/adapters/facebook/wrench-web-adapter.json +750 -0
- package/src/assets/adapters/facebook/wrench-web-adapter.v1.0.0.json +706 -0
- package/src/assets/adapters/facebook/wrench-web-adapter.v1.1.0.json +703 -0
- package/src/assets/adapters/facebook/wrench-web-adapter.v1.2.0.json +750 -0
- package/src/assets/adapters/facebook-group/wrench-web-adapter.json +682 -0
- package/src/assets/adapters/facebook-group/wrench-web-adapter.v1.0.0.json +583 -0
- package/src/assets/adapters/facebook-group/wrench-web-adapter.v1.1.0.json +682 -0
- package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.json +437 -0
- package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.0.0.json +383 -0
- package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.1.0.json +437 -0
- package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.1.1.json +437 -0
- package/src/assets/adapters/facebook-page/wrench-web-adapter.json +880 -0
- package/src/assets/adapters/facebook-page/wrench-web-adapter.v1.0.0.json +740 -0
- package/src/assets/adapters/facebook-page/wrench-web-adapter.v1.1.0.json +880 -0
- package/src/assets/adapters/github/wrench-web-adapter.json +69 -0
- package/src/assets/adapters/github/wrench-web-adapter.v1.0.0.json +42 -0
- package/src/assets/adapters/github/wrench-web-adapter.v1.1.0.json +69 -0
- package/src/assets/adapters/gmail/wrench-adapter.json +161 -0
- package/src/assets/adapters/gmail/wrench-adapter.v1.2.0.json +157 -0
- package/src/assets/adapters/hacker-news/wrench-web-adapter.json +315 -0
- package/src/assets/adapters/hacker-news/wrench-web-adapter.v1.0.0.json +315 -0
- package/src/assets/adapters/imessage/wrench-web-adapter.json +236 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.json +719 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.v1.0.0.json +627 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.v1.1.0.json +609 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.v1.2.0.json +640 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.v1.3.0.json +671 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.v1.4.0.json +710 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.v1.5.0.json +710 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.v1.6.0.json +719 -0
- package/src/assets/adapters/instagram/wrench-web-adapter.v1.7.0.json +719 -0
- package/src/assets/adapters/linkedin/wrench-adapter.json +442 -0
- package/src/assets/adapters/linkedin/wrench-adapter.v0.4.0.json +124 -0
- package/src/assets/adapters/linkedin/wrench-adapter.v1.0.0.json +411 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.json +914 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.0.0.json +604 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.1.0.json +604 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.10.0.json +809 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.11.0.json +809 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.12.0.json +820 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.13.0.json +819 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.14.0.json +819 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.15.0.json +819 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.16.0.json +874 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.17.0.json +874 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.18.0.json +874 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.19.0.json +874 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.2.0.json +731 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.3.0.json +768 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.4.0.json +808 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.5.0.json +808 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.6.0.json +808 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.7.0.json +825 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.8.0.json +792 -0
- package/src/assets/adapters/linkedin/wrench-web-adapter.v1.9.0.json +809 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.json +855 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.0.0.json +577 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.1.0.json +604 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.10.0.json +712 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.11.0.json +712 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.12.0.json +712 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.2.0.json +653 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.3.0.json +712 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.4.0.json +713 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.5.0.json +712 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.6.0.json +713 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.7.0.json +713 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.8.0.json +713 -0
- package/src/assets/adapters/reddit/wrench-web-adapter.v1.9.0.json +713 -0
- package/src/assets/adapters/substack/wrench-web-adapter.json +936 -0
- package/src/assets/adapters/substack/wrench-web-adapter.v1.0.0.json +817 -0
- package/src/assets/adapters/substack/wrench-web-adapter.v1.1.0.json +812 -0
- package/src/assets/adapters/substack/wrench-web-adapter.v1.2.0.json +812 -0
- package/src/assets/adapters/substack/wrench-web-adapter.v1.3.0.json +902 -0
- package/src/assets/adapters/substack/wrench-web-adapter.v1.4.0.json +936 -0
- package/src/assets/adapters/substack/wrench-web-adapter.v1.5.0.json +936 -0
- package/src/assets/adapters/substack/wrench-web-adapter.v1.6.0.json +936 -0
- package/src/assets/adapters/threads/wrench-web-adapter.json +692 -0
- package/src/assets/adapters/threads/wrench-web-adapter.v1.0.0.json +629 -0
- package/src/assets/adapters/threads/wrench-web-adapter.v1.1.0.json +623 -0
- package/src/assets/adapters/threads/wrench-web-adapter.v1.2.0.json +622 -0
- package/src/assets/adapters/threads/wrench-web-adapter.v1.3.0.json +622 -0
- package/src/assets/adapters/threads/wrench-web-adapter.v1.4.0.json +622 -0
- package/src/assets/adapters/threads/wrench-web-adapter.v1.5.0.json +699 -0
- package/src/assets/adapters/threads/wrench-web-adapter.v1.6.0.json +693 -0
- package/src/assets/adapters/threads/wrench-web-adapter.v1.7.0.json +692 -0
- package/src/assets/adapters/tiktok/wrench-web-adapter.json +762 -0
- package/src/assets/adapters/tiktok/wrench-web-adapter.v1.0.0.json +681 -0
- package/src/assets/adapters/tiktok/wrench-web-adapter.v1.1.0.json +708 -0
- package/src/assets/adapters/tiktok/wrench-web-adapter.v1.2.0.json +762 -0
- package/src/assets/adapters/tiktok/wrench-web-adapter.v1.3.0.json +762 -0
- package/src/assets/adapters/twitch/wrench-web-adapter.json +42 -0
- package/src/assets/adapters/twitch/wrench-web-adapter.v1.0.0.json +42 -0
- package/src/assets/adapters/whatsapp/wrench-web-adapter.json +400 -0
- package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.0.0.json +355 -0
- package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.1.0.json +386 -0
- package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.2.0.json +386 -0
- package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.3.0.json +400 -0
- package/src/assets/adapters/x/wrench-adapter.json +749 -0
- package/src/assets/adapters/x/wrench-adapter.v1.0.0.json +700 -0
- package/src/assets/adapters/x/wrench-adapter.v1.1.0.json +707 -0
- package/src/assets/adapters/x/wrench-web-adapter.json +712 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.1.0.json +579 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.10.0.json +685 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.11.0.json +712 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.12.0.json +712 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.13.0.json +712 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.2.0.json +578 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.3.0.json +610 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.4.0.json +617 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.5.0.json +634 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.6.0.json +632 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.7.0.json +649 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.8.0.json +649 -0
- package/src/assets/adapters/x/wrench-web-adapter.v1.9.0.json +683 -0
- package/src/assets/adapters/youtube/wrench-web-adapter.json +561 -0
- package/src/assets/adapters/youtube/wrench-web-adapter.v1.0.0.json +465 -0
- package/src/assets/adapters/youtube/wrench-web-adapter.v1.1.0.json +519 -0
- package/src/assets/adapters/youtube/wrench-web-adapter.v1.2.0.json +561 -0
- package/src/assets/adapters/youtube/wrench-web-adapter.v1.3.0.json +561 -0
- package/src/assets/code-owned-provider-template/plugin.test.ts.template +54 -0
- package/src/assets/code-owned-provider-template/plugin.ts.template +102 -0
- package/src/assets/code-owned-provider-template/runtime.internal.test.ts.template +44 -0
- package/src/assets/code-owned-provider-template/runtime.ts.template +59 -0
- package/src/assets/code-owned-provider-template/wrench-adapter.json.template +33 -0
- package/src/assets/fonts/nebula-sans/LICENSE.txt +96 -0
- package/src/assets/fonts/nebula-sans/NebulaSans-Book.woff2 +0 -0
- package/src/assets/fonts/nebula-sans/PROVENANCE.md +14 -0
- package/src/assets.d.ts +4 -0
- package/src/auth.ts +1157 -0
- package/src/beeper-client-types.ts +169 -0
- package/src/beeper-client.ts +250 -0
- package/src/beeper-contact-interactions-cli.ts +180 -0
- package/src/beeper-contact-interactions.ts +1612 -0
- package/src/beeper-message-bundle-v1.ts +257 -0
- package/src/beeper-message-like-me-cli.ts +84 -0
- package/src/beeper-message-like-me-export.ts +2274 -0
- package/src/beeper-message-like-me-recovery.ts +931 -0
- package/src/beeper-message-like-me-source.ts +4034 -0
- package/src/browser-admission.ts +928 -0
- package/src/browser-snapshots.ts +260 -0
- package/src/browser.ts +3873 -0
- package/src/canonical-json.ts +60 -0
- package/src/catalog-cli.ts +638 -0
- package/src/cli.ts +208 -0
- package/src/client-types.ts +301 -0
- package/src/client.ts +2726 -0
- package/src/confirmed-write-failure.ts +44 -0
- package/src/confirmed-write-model.ts +72 -0
- package/src/confirmed-write-platform.ts +1055 -0
- package/src/confirmed-write-program.ts +224 -0
- package/src/confirmed-write-runtime.ts +16 -0
- package/src/cursor-token.ts +228 -0
- package/src/derivation-dnr-readiness.ts +367 -0
- package/src/derivation-file-chooser.ts +384 -0
- package/src/derivation-network-boundary.ts +835 -0
- package/src/derivation-network-guard.ts +782 -0
- package/src/derivation-network-proxy-helper.ts +440 -0
- package/src/derivation-network-proxy.ts +385 -0
- package/src/derive-command-helper.ts +693 -0
- package/src/derive-fixtures.ts +343 -0
- package/src/derive-review.ts +980 -0
- package/src/derive.ts +4754 -0
- package/src/fixtures/beeper-message-like-me-v1/accounts.ndjson +2 -0
- package/src/fixtures/beeper-message-like-me-v1/conversations.ndjson +1 -0
- package/src/fixtures/beeper-message-like-me-v1/manifest.json +1 -0
- package/src/fixtures/beeper-message-like-me-v1/messages.ndjson +2 -0
- package/src/fixtures/beeper-message-like-me-v1/participants.ndjson +3 -0
- package/src/fixtures/beeper-message-like-me-v1/reactions.ndjson +1 -0
- package/src/fixtures/beeper-message-like-me-v1/tombstones.ndjson +1 -0
- package/src/ghostget.ts +3672 -0
- package/src/gmail-capture.ts +1244 -0
- package/src/har-internal.ts +1242 -0
- package/src/har.ts +743 -0
- package/src/index.ts +218 -0
- package/src/invocation-read-platform.ts +55 -0
- package/src/invocation-read-program.ts +93 -0
- package/src/invocation-read-runtime.ts +11 -0
- package/src/linked-device-lifecycle-admission.ts +450 -0
- package/src/linked-device-lifecycle-journal.ts +1560 -0
- package/src/linked-device-lifecycle-runtime.ts +1602 -0
- package/src/local-cli-admission.ts +135 -0
- package/src/local-cli-contracts.ts +271 -0
- package/src/local-cli-execution.ts +98 -0
- package/src/local-cli-surface-contract.ts +1510 -0
- package/src/local-cli-tool-identity.ts +336 -0
- package/src/media/archive.ts +2325 -0
- package/src/media/args.ts +303 -0
- package/src/media/cli.ts +287 -0
- package/src/media/doctor.ts +475 -0
- package/src/media/ffmpeg.ts +1330 -0
- package/src/media/http-capture.ts +711 -0
- package/src/media/http-probe.ts +593 -0
- package/src/media/http.ts +387 -0
- package/src/media/index.ts +10 -0
- package/src/media/local-transcription.ts +613 -0
- package/src/media/lock.ts +321 -0
- package/src/media/manifest.ts +1712 -0
- package/src/media/metadata.ts +906 -0
- package/src/media/process.ts +723 -0
- package/src/media/revision.ts +166 -0
- package/src/media/runtime-closure.ts +1063 -0
- package/src/media/source-router.ts +187 -0
- package/src/media/transcriber-config.ts +1122 -0
- package/src/media/transcript-persistence-model.ts +15 -0
- package/src/media/transcript-persistence-platform.ts +89 -0
- package/src/media/transcript-persistence-program.ts +39 -0
- package/src/media/transcript-persistence-runtime.ts +24 -0
- package/src/media/transcript.ts +616 -0
- package/src/media/utf8-order.ts +30 -0
- package/src/media/whisper-cpp.ts +464 -0
- package/src/media/whisper-language.ts +58 -0
- package/src/media/yt-dlp.ts +439 -0
- package/src/message-like-me-agentic-messaging.ts +882 -0
- package/src/messaging-action-store.ts +793 -0
- package/src/messaging-runtime.ts +2136 -0
- package/src/messaging-store.ts +539 -0
- package/src/messaging-types.ts +1663 -0
- package/src/messaging.ts +334 -0
- package/src/model.ts +2671 -0
- package/src/oauth-google.ts +888 -0
- package/src/omni-client-types.ts +306 -0
- package/src/omni-client.ts +2225 -0
- package/src/omni-limits.ts +34 -0
- package/src/omni-model.ts +1614 -0
- package/src/omni-request.ts +379 -0
- package/src/omni-runtime.ts +1632 -0
- package/src/operation-deadline.ts +189 -0
- package/src/path-helper.ts +1656 -0
- package/src/pinned-https.ts +194 -0
- package/src/plan-assets.ts +832 -0
- package/src/platform-catalog.ts +1832 -0
- package/src/plugins/beeper-linked-device/plugin.ts +310 -0
- package/src/plugins/bluesky-web/plugin.ts +178 -0
- package/src/plugins/clasificados-web/plugin.ts +66 -0
- package/src/plugins/github-web/plugin.ts +80 -0
- package/src/plugins/gmail-official/plugin.ts +110 -0
- package/src/plugins/hacker-news-web/plugin.ts +52 -0
- package/src/plugins/imessage-direct/plugin.ts +195 -0
- package/src/plugins/imessage-direct/vendor/0001-fix-keep-AppleScript-send-payloads-out-of-child-argv.patch +1430 -0
- package/src/plugins/imessage-direct/vendor/0002-feat-rpc-add-exact-chat-lookup.patch +225 -0
- package/src/plugins/imessage-direct/vendor/provenance.json +80 -0
- package/src/plugins/linkedin-official/plugin.ts +84 -0
- package/src/plugins/linkedin-web/plugin.ts +412 -0
- package/src/plugins/meta-web/plugin.ts +317 -0
- package/src/plugins/reddit-web/flair.ts +492 -0
- package/src/plugins/reddit-web/plugin.ts +477 -0
- package/src/plugins/substack-web/plugin.ts +124 -0
- package/src/plugins/tiktok-web/plugin.ts +67 -0
- package/src/plugins/twitch-web/plugin.ts +54 -0
- package/src/plugins/whatsapp-linked-device/plugin.ts +105 -0
- package/src/plugins/x-official/plugin.ts +64 -0
- package/src/plugins/x-web/plugin.ts +488 -0
- package/src/plugins/youtube-web/plugin.ts +101 -0
- package/src/portable-run-recovery.ts +466 -0
- package/src/process-identity.ts +501 -0
- package/src/profile-clone-helper.ts +104 -0
- package/src/provider-catalog-views.ts +51 -0
- package/src/provider-context.ts +69 -0
- package/src/provider-contract-definitions-x.ts +45 -0
- package/src/provider-contract-definitions.ts +948 -0
- package/src/provider-contract-input-gmail.ts +176 -0
- package/src/provider-contract-input-linkedin.ts +77 -0
- package/src/provider-contract-input-x.ts +304 -0
- package/src/provider-contract-planning.ts +23 -0
- package/src/provider-contract-semantic-identity.ts +54 -0
- package/src/provider-contracts.ts +251 -0
- package/src/provider-http.ts +723 -0
- package/src/provider-plugin-auth.ts +36 -0
- package/src/provider-plugin-builtins.ts +229 -0
- package/src/provider-plugin-cleanup-barrier.ts +229 -0
- package/src/provider-plugin-cleanup-execution.ts +79 -0
- package/src/provider-plugin-cleanup-resource.ts +470 -0
- package/src/provider-plugin-contract-identity.ts +707 -0
- package/src/provider-plugin-host.ts +1972 -0
- package/src/provider-plugin-identifiers.ts +60 -0
- package/src/provider-plugin-invocation-lease.ts +889 -0
- package/src/provider-plugin-lifecycle-kernel.ts +566 -0
- package/src/provider-plugin-lifecycle.ts +1455 -0
- package/src/provider-plugin-module-analysis.ts +336 -0
- package/src/provider-plugin-package.ts +2530 -0
- package/src/provider-plugin-portable-authority.ts +106 -0
- package/src/provider-plugin-portable-catalog.ts +94 -0
- package/src/provider-plugin-portable-identity.ts +315 -0
- package/src/provider-plugin-portable-runtime.ts +2057 -0
- package/src/provider-plugin-protocol.ts +1625 -0
- package/src/provider-plugin-registry.ts +3342 -0
- package/src/provider-plugin-store.ts +2155 -0
- package/src/provider-plugin-test-fixture.ts +5 -0
- package/src/provider-plugin.ts +4907 -0
- package/src/provider-plugins.generated.ts +43 -0
- package/src/provider-plugins.ts +8 -0
- package/src/provider-subject.ts +41 -0
- package/src/provider.ts +315 -0
- package/src/providers/beeper-local-runtime.ts +5426 -0
- package/src/providers/beeper-local.ts +2739 -0
- package/src/providers/beeper-messaging.ts +462 -0
- package/src/providers/beeper-omni.ts +1159 -0
- package/src/providers/bluesky-web-runtime.ts +2895 -0
- package/src/providers/bluesky-web.ts +1614 -0
- package/src/providers/clasificados-web-runtime.ts +255 -0
- package/src/providers/clasificados-web.ts +503 -0
- package/src/providers/contact-projection.ts +301 -0
- package/src/providers/github-read-model.ts +94 -0
- package/src/providers/github-read-platform.ts +165 -0
- package/src/providers/github-read-program.ts +97 -0
- package/src/providers/github-web-runtime.ts +320 -0
- package/src/providers/github-web.ts +403 -0
- package/src/providers/gmail-api.ts +2834 -0
- package/src/providers/gmail-omni.ts +830 -0
- package/src/providers/gmail.ts +1130 -0
- package/src/providers/hacker-news-web-runtime.ts +220 -0
- package/src/providers/hacker-news-web.ts +809 -0
- package/src/providers/imessage-direct-install.ts +354 -0
- package/src/providers/imessage-direct-messaging.ts +532 -0
- package/src/providers/imessage-direct-omni.ts +400 -0
- package/src/providers/imessage-direct-runtime.ts +1498 -0
- package/src/providers/imessage-direct.ts +351 -0
- package/src/providers/instagram-video-foundations.ts +913 -0
- package/src/providers/instagram-web-profile-browser.ts +600 -0
- package/src/providers/iso-bmff.ts +338 -0
- package/src/providers/linkedin-company-platform.ts +42 -0
- package/src/providers/linkedin-company-program.ts +88 -0
- package/src/providers/linkedin-contact-failure.ts +84 -0
- package/src/providers/linkedin-contact-platform.ts +45 -0
- package/src/providers/linkedin-contact-program.ts +91 -0
- package/src/providers/linkedin-profile-activity-failure.ts +76 -0
- package/src/providers/linkedin-profile-activity-platform.ts +41 -0
- package/src/providers/linkedin-profile-activity-program.ts +67 -0
- package/src/providers/linkedin-read-failure.ts +52 -0
- package/src/providers/linkedin-self-platform.ts +53 -0
- package/src/providers/linkedin-self-program.ts +122 -0
- package/src/providers/linkedin-web-article-browser.ts +794 -0
- package/src/providers/linkedin-web-bootstrap.ts +146 -0
- package/src/providers/linkedin-web-contact.ts +830 -0
- package/src/providers/linkedin-web-feed-browser.ts +832 -0
- package/src/providers/linkedin-web-feed.ts +864 -0
- package/src/providers/linkedin-web-post-browser.ts +653 -0
- package/src/providers/linkedin-web-profile-browser.ts +683 -0
- package/src/providers/linkedin-web-runtime.ts +2388 -0
- package/src/providers/linkedin-web.ts +3305 -0
- package/src/providers/linkedin.ts +1885 -0
- package/src/providers/meta-bootstrap.ts +1043 -0
- package/src/providers/meta-facebook-group.ts +690 -0
- package/src/providers/meta-marketplace-relay.ts +747 -0
- package/src/providers/meta-omni.ts +373 -0
- package/src/providers/meta-relay-bundle.ts +1049 -0
- package/src/providers/meta-web-descriptors.ts +1740 -0
- package/src/providers/meta-web-runtime.ts +3388 -0
- package/src/providers/meta-web.ts +2931 -0
- package/src/providers/read-failure.ts +139 -0
- package/src/providers/reddit-omni.ts +462 -0
- package/src/providers/reddit-web-runtime.ts +1929 -0
- package/src/providers/reddit-web.ts +1611 -0
- package/src/providers/rental-listings.ts +460 -0
- package/src/providers/substack-omni.ts +406 -0
- package/src/providers/substack-video-mp4.ts +33 -0
- package/src/providers/substack-web-runtime.ts +2812 -0
- package/src/providers/substack-web.ts +1502 -0
- package/src/providers/tiktok-video-mp4.ts +33 -0
- package/src/providers/tiktok-web-runtime.ts +770 -0
- package/src/providers/tiktok-web.ts +2786 -0
- package/src/providers/twitch-web-runtime.ts +226 -0
- package/src/providers/twitch-web.ts +274 -0
- package/src/providers/whatsapp-account-identity.ts +55 -0
- package/src/providers/whatsapp-contact-projection-helper.ts +874 -0
- package/src/providers/whatsapp-contact-projection-protocol.ts +403 -0
- package/src/providers/whatsapp-interaction-projection-helper.ts +1452 -0
- package/src/providers/whatsapp-interaction-projection-protocol.ts +462 -0
- package/src/providers/whatsapp-message-export-projection-protocol.ts +532 -0
- package/src/providers/whatsapp-messaging.ts +132 -0
- package/src/providers/whatsapp-omni.ts +586 -0
- package/src/providers/whatsapp-web-runtime.ts +3108 -0
- package/src/providers/whatsapp-web.ts +1037 -0
- package/src/providers/x-image-provenance.ts +523 -0
- package/src/providers/x-made-with-ai.ts +106 -0
- package/src/providers/x-transaction-id.ts +413 -0
- package/src/providers/x-web-runtime.ts +3485 -0
- package/src/providers/x-web.ts +2332 -0
- package/src/providers/x.ts +1889 -0
- package/src/providers/youtube-web-runtime.ts +1400 -0
- package/src/providers/youtube-web.ts +1221 -0
- package/src/read-admission-runtime.ts +91 -0
- package/src/read-client.ts +521 -0
- package/src/read-effect-platform.ts +7 -0
- package/src/read-effect-runtime.ts +14 -0
- package/src/read-effect.ts +52 -0
- package/src/read-projection-admission.ts +866 -0
- package/src/read-projections.ts +3151 -0
- package/src/recovery.ts +1492 -0
- package/src/reviewed-template.ts +146 -0
- package/src/run-journal.ts +1272 -0
- package/src/runtime.ts +5116 -0
- package/src/scripts/generate-provider-plugin-catalog.ts +121 -0
- package/src/scripts/install-whatsapp-protocol.sh +232 -0
- package/src/scripts/recover-install-stages.ts +1491 -0
- package/src/scripts/resolve-state-home.ts +30 -0
- package/src/scripts/scaffold-web-provider.ts +973 -0
- package/src/scripts/sync-bundled-adapters.ts +695 -0
- package/src/session-secrets.ts +1183 -0
- package/src/state-helper.bunfig.toml +2 -0
- package/src/state-helper.ts +2914 -0
- package/src/storage.ts +3842 -0
- package/src/transport-policy.ts +2 -0
- package/src/usage.ts +182 -0
- package/src/version.ts +2 -0
- package/src/web-session-authentication-policy.ts +136 -0
- package/src/web-session-cleanup-admission.ts +2344 -0
- package/src/web-session-cleanup-join.ts +99 -0
- package/src/web-session-client.ts +996 -0
- package/src/web-session-contract-definitions.ts +820 -0
- package/src/web-session-contract-planning.ts +42 -0
- package/src/web-session-contracts.ts +228 -0
- package/src/web-session-cookies.ts +500 -0
- package/src/web-session-execution.ts +385 -0
- package/src/web-session-http.ts +373 -0
- package/src/web-session-read-errors.ts +19 -0
- package/src/web-session-read-runtime.ts +124 -0
- package/src/web-session-recovery.ts +818 -0
- package/src/web-session-sites.ts +58 -0
- package/src/web-session-template.ts +994 -0
- package/src/web-session.ts +93 -0
- package/src/whatsapp-client-binding.ts +21 -0
- package/src/whatsapp-client-types.ts +75 -0
- package/src/whatsapp-client.ts +395 -0
- package/src/whatsapp-export-coordinate.ts +17 -0
- package/src/whatsapp-message-bundle-v2.ts +195 -0
- package/src/whatsapp-message-like-me-cli.ts +195 -0
- package/src/whatsapp-message-like-me-export.ts +1072 -0
- package/src/whatsapp-message-like-me-source.ts +1012 -0
- package/tsconfig.json +67 -0
|
@@ -0,0 +1,880 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"id": "facebook-page-web",
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"displayName": "Facebook Page (Authenticated Internal API)",
|
|
6
|
+
"surfaceId": "facebook-page",
|
|
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-page state only after exact preview confirmation and reviewed dispatch.",
|
|
18
|
+
"idempotency": "local-at-most-once",
|
|
19
|
+
"dedupeWindowMs": 86400000,
|
|
20
|
+
"input": {
|
|
21
|
+
"properties": {
|
|
22
|
+
"page_id": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Exact Facebook Page ID",
|
|
25
|
+
"minLength": 1,
|
|
26
|
+
"maxLength": 80
|
|
27
|
+
},
|
|
28
|
+
"post_id": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "Exact Facebook post ID",
|
|
31
|
+
"minLength": 1,
|
|
32
|
+
"maxLength": 256
|
|
33
|
+
},
|
|
34
|
+
"body": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Comment body",
|
|
37
|
+
"minLength": 1,
|
|
38
|
+
"maxLength": 500
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"required": [
|
|
42
|
+
"page_id",
|
|
43
|
+
"post_id",
|
|
44
|
+
"body"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"webSession": {
|
|
48
|
+
"site": "facebook-page",
|
|
49
|
+
"action": "comments.create",
|
|
50
|
+
"contractVersion": 1,
|
|
51
|
+
"timeoutMs": 60000,
|
|
52
|
+
"maxOutputBytes": 10485760
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"comments.read": {
|
|
56
|
+
"description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
|
|
57
|
+
"risk": "R1",
|
|
58
|
+
"sideEffect": "none",
|
|
59
|
+
"idempotency": "none",
|
|
60
|
+
"dedupeWindowMs": 0,
|
|
61
|
+
"input": {
|
|
62
|
+
"properties": {
|
|
63
|
+
"page_id": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"description": "Exact Facebook Page ID",
|
|
66
|
+
"minLength": 1,
|
|
67
|
+
"maxLength": 80
|
|
68
|
+
},
|
|
69
|
+
"post_id": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"description": "Exact Facebook post ID",
|
|
72
|
+
"minLength": 1,
|
|
73
|
+
"maxLength": 256
|
|
74
|
+
},
|
|
75
|
+
"cursor": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"description": "Opaque cursor returned by the preceding page",
|
|
78
|
+
"minLength": 1,
|
|
79
|
+
"maxLength": 4096
|
|
80
|
+
},
|
|
81
|
+
"limit": {
|
|
82
|
+
"type": "number",
|
|
83
|
+
"description": "Maximum comments",
|
|
84
|
+
"minimum": 1,
|
|
85
|
+
"maximum": 100
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"required": [
|
|
89
|
+
"page_id",
|
|
90
|
+
"post_id"
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
"webSession": {
|
|
94
|
+
"site": "facebook-page",
|
|
95
|
+
"action": "comments.read",
|
|
96
|
+
"contractVersion": 1,
|
|
97
|
+
"timeoutMs": 60000,
|
|
98
|
+
"maxOutputBytes": 10485760
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"content.edit": {
|
|
102
|
+
"description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
|
|
103
|
+
"risk": "R3",
|
|
104
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
105
|
+
"idempotency": "local-at-most-once",
|
|
106
|
+
"dedupeWindowMs": 86400000,
|
|
107
|
+
"input": {
|
|
108
|
+
"properties": {
|
|
109
|
+
"page_id": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"description": "Exact Facebook Page ID",
|
|
112
|
+
"minLength": 1,
|
|
113
|
+
"maxLength": 80
|
|
114
|
+
},
|
|
115
|
+
"post_id": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"description": "Exact Facebook post ID",
|
|
118
|
+
"minLength": 1,
|
|
119
|
+
"maxLength": 256
|
|
120
|
+
},
|
|
121
|
+
"body": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"description": "Replacement text",
|
|
124
|
+
"minLength": 1,
|
|
125
|
+
"maxLength": 1000
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"required": [
|
|
129
|
+
"page_id",
|
|
130
|
+
"post_id",
|
|
131
|
+
"body"
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"webSession": {
|
|
135
|
+
"site": "facebook-page",
|
|
136
|
+
"action": "content.edit",
|
|
137
|
+
"contractVersion": 1,
|
|
138
|
+
"timeoutMs": 60000,
|
|
139
|
+
"maxOutputBytes": 10485760
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"content.save": {
|
|
143
|
+
"description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
|
|
144
|
+
"risk": "R2",
|
|
145
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
146
|
+
"idempotency": "local-at-most-once",
|
|
147
|
+
"dedupeWindowMs": 86400000,
|
|
148
|
+
"input": {
|
|
149
|
+
"properties": {
|
|
150
|
+
"page_id": {
|
|
151
|
+
"type": "string",
|
|
152
|
+
"description": "Exact Facebook Page ID",
|
|
153
|
+
"minLength": 1,
|
|
154
|
+
"maxLength": 80
|
|
155
|
+
},
|
|
156
|
+
"post_id": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"description": "Exact Facebook post ID",
|
|
159
|
+
"minLength": 1,
|
|
160
|
+
"maxLength": 256
|
|
161
|
+
},
|
|
162
|
+
"saved": {
|
|
163
|
+
"type": "boolean",
|
|
164
|
+
"description": "Exact desired saved state"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"required": [
|
|
168
|
+
"page_id",
|
|
169
|
+
"post_id",
|
|
170
|
+
"saved"
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
"webSession": {
|
|
174
|
+
"site": "facebook-page",
|
|
175
|
+
"action": "content.save",
|
|
176
|
+
"contractVersion": 1,
|
|
177
|
+
"timeoutMs": 60000,
|
|
178
|
+
"maxOutputBytes": 10485760
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"content.schedule": {
|
|
182
|
+
"description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
|
|
183
|
+
"risk": "R3",
|
|
184
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
185
|
+
"idempotency": "local-at-most-once",
|
|
186
|
+
"dedupeWindowMs": 86400000,
|
|
187
|
+
"input": {
|
|
188
|
+
"properties": {
|
|
189
|
+
"page_id": {
|
|
190
|
+
"type": "string",
|
|
191
|
+
"description": "Exact Facebook Page ID",
|
|
192
|
+
"minLength": 1,
|
|
193
|
+
"maxLength": 80
|
|
194
|
+
},
|
|
195
|
+
"post_id": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"description": "Exact Facebook post ID",
|
|
198
|
+
"minLength": 1,
|
|
199
|
+
"maxLength": 256
|
|
200
|
+
},
|
|
201
|
+
"scheduled_at": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"description": "Exact scheduled timestamp",
|
|
204
|
+
"minLength": 1,
|
|
205
|
+
"maxLength": 64
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"required": [
|
|
209
|
+
"page_id",
|
|
210
|
+
"post_id",
|
|
211
|
+
"scheduled_at"
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"webSession": {
|
|
215
|
+
"site": "facebook-page",
|
|
216
|
+
"action": "content.schedule",
|
|
217
|
+
"contractVersion": 1,
|
|
218
|
+
"timeoutMs": 60000,
|
|
219
|
+
"maxOutputBytes": 10485760
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
"content.share": {
|
|
223
|
+
"description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
|
|
224
|
+
"risk": "R3",
|
|
225
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
226
|
+
"idempotency": "local-at-most-once",
|
|
227
|
+
"dedupeWindowMs": 86400000,
|
|
228
|
+
"input": {
|
|
229
|
+
"properties": {
|
|
230
|
+
"page_id": {
|
|
231
|
+
"type": "string",
|
|
232
|
+
"description": "Exact Facebook Page ID",
|
|
233
|
+
"minLength": 1,
|
|
234
|
+
"maxLength": 80
|
|
235
|
+
},
|
|
236
|
+
"post_id": {
|
|
237
|
+
"type": "string",
|
|
238
|
+
"description": "Exact Facebook post ID",
|
|
239
|
+
"minLength": 1,
|
|
240
|
+
"maxLength": 256
|
|
241
|
+
},
|
|
242
|
+
"destination": {
|
|
243
|
+
"type": "string",
|
|
244
|
+
"description": "Reviewed share destination",
|
|
245
|
+
"enum": [
|
|
246
|
+
"capture-required"
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
"required": [
|
|
251
|
+
"page_id",
|
|
252
|
+
"post_id",
|
|
253
|
+
"destination"
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
"webSession": {
|
|
257
|
+
"site": "facebook-page",
|
|
258
|
+
"action": "content.share",
|
|
259
|
+
"contractVersion": 1,
|
|
260
|
+
"timeoutMs": 60000,
|
|
261
|
+
"maxOutputBytes": 10485760
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"feeds.read": {
|
|
265
|
+
"description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
|
|
266
|
+
"risk": "R1",
|
|
267
|
+
"sideEffect": "none",
|
|
268
|
+
"idempotency": "none",
|
|
269
|
+
"dedupeWindowMs": 0,
|
|
270
|
+
"input": {
|
|
271
|
+
"properties": {
|
|
272
|
+
"page_id": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"description": "Exact Facebook Page ID",
|
|
275
|
+
"minLength": 1,
|
|
276
|
+
"maxLength": 80
|
|
277
|
+
},
|
|
278
|
+
"feed": {
|
|
279
|
+
"type": "string",
|
|
280
|
+
"description": "Reviewed feed",
|
|
281
|
+
"enum": [
|
|
282
|
+
"home"
|
|
283
|
+
]
|
|
284
|
+
},
|
|
285
|
+
"cursor": {
|
|
286
|
+
"type": "string",
|
|
287
|
+
"description": "Opaque cursor returned by the preceding page",
|
|
288
|
+
"minLength": 1,
|
|
289
|
+
"maxLength": 4096
|
|
290
|
+
},
|
|
291
|
+
"limit": {
|
|
292
|
+
"type": "number",
|
|
293
|
+
"description": "Maximum results",
|
|
294
|
+
"minimum": 1,
|
|
295
|
+
"maximum": 30
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"required": [
|
|
299
|
+
"page_id",
|
|
300
|
+
"feed"
|
|
301
|
+
]
|
|
302
|
+
},
|
|
303
|
+
"webSession": {
|
|
304
|
+
"site": "facebook-page",
|
|
305
|
+
"action": "feeds.read",
|
|
306
|
+
"contractVersion": 1,
|
|
307
|
+
"timeoutMs": 60000,
|
|
308
|
+
"maxOutputBytes": 10485760
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"likes.set": {
|
|
312
|
+
"description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
|
|
313
|
+
"risk": "R2",
|
|
314
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
315
|
+
"idempotency": "local-at-most-once",
|
|
316
|
+
"dedupeWindowMs": 86400000,
|
|
317
|
+
"input": {
|
|
318
|
+
"properties": {
|
|
319
|
+
"page_id": {
|
|
320
|
+
"type": "string",
|
|
321
|
+
"description": "Exact Facebook Page ID",
|
|
322
|
+
"minLength": 1,
|
|
323
|
+
"maxLength": 80
|
|
324
|
+
},
|
|
325
|
+
"post_id": {
|
|
326
|
+
"type": "string",
|
|
327
|
+
"description": "Exact Facebook post ID",
|
|
328
|
+
"minLength": 1,
|
|
329
|
+
"maxLength": 256
|
|
330
|
+
},
|
|
331
|
+
"liked": {
|
|
332
|
+
"type": "boolean",
|
|
333
|
+
"description": "Exact desired like state"
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
"required": [
|
|
337
|
+
"page_id",
|
|
338
|
+
"post_id",
|
|
339
|
+
"liked"
|
|
340
|
+
]
|
|
341
|
+
},
|
|
342
|
+
"webSession": {
|
|
343
|
+
"site": "facebook-page",
|
|
344
|
+
"action": "likes.set",
|
|
345
|
+
"contractVersion": 1,
|
|
346
|
+
"timeoutMs": 60000,
|
|
347
|
+
"maxOutputBytes": 10485760
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
"media.publish": {
|
|
351
|
+
"description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
|
|
352
|
+
"risk": "R3",
|
|
353
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
354
|
+
"idempotency": "local-at-most-once",
|
|
355
|
+
"dedupeWindowMs": 86400000,
|
|
356
|
+
"input": {
|
|
357
|
+
"properties": {
|
|
358
|
+
"page_id": {
|
|
359
|
+
"type": "string",
|
|
360
|
+
"description": "Exact Facebook Page ID",
|
|
361
|
+
"minLength": 1,
|
|
362
|
+
"maxLength": 80
|
|
363
|
+
},
|
|
364
|
+
"media": {
|
|
365
|
+
"type": "file",
|
|
366
|
+
"description": "Exact media file",
|
|
367
|
+
"maxBytes": 1073741824,
|
|
368
|
+
"mediaTypes": [
|
|
369
|
+
"image/*",
|
|
370
|
+
"video/*"
|
|
371
|
+
]
|
|
372
|
+
},
|
|
373
|
+
"caption": {
|
|
374
|
+
"type": "string",
|
|
375
|
+
"description": "Optional media caption",
|
|
376
|
+
"minLength": 1,
|
|
377
|
+
"maxLength": 1000
|
|
378
|
+
},
|
|
379
|
+
"audience": {
|
|
380
|
+
"type": "string",
|
|
381
|
+
"description": "Explicit audience",
|
|
382
|
+
"enum": [
|
|
383
|
+
"default"
|
|
384
|
+
]
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
"required": [
|
|
388
|
+
"page_id",
|
|
389
|
+
"media"
|
|
390
|
+
]
|
|
391
|
+
},
|
|
392
|
+
"webSession": {
|
|
393
|
+
"site": "facebook-page",
|
|
394
|
+
"action": "media.publish",
|
|
395
|
+
"contractVersion": 1,
|
|
396
|
+
"timeoutMs": 60000,
|
|
397
|
+
"maxOutputBytes": 10485760
|
|
398
|
+
}
|
|
399
|
+
},
|
|
400
|
+
"media.read": {
|
|
401
|
+
"description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
|
|
402
|
+
"risk": "R1",
|
|
403
|
+
"sideEffect": "none",
|
|
404
|
+
"idempotency": "none",
|
|
405
|
+
"dedupeWindowMs": 0,
|
|
406
|
+
"input": {
|
|
407
|
+
"properties": {
|
|
408
|
+
"page_id": {
|
|
409
|
+
"type": "string",
|
|
410
|
+
"description": "Exact Facebook Page ID",
|
|
411
|
+
"minLength": 1,
|
|
412
|
+
"maxLength": 80
|
|
413
|
+
},
|
|
414
|
+
"post_id": {
|
|
415
|
+
"type": "string",
|
|
416
|
+
"description": "Exact Facebook post ID",
|
|
417
|
+
"minLength": 1,
|
|
418
|
+
"maxLength": 256
|
|
419
|
+
}
|
|
420
|
+
},
|
|
421
|
+
"required": [
|
|
422
|
+
"page_id",
|
|
423
|
+
"post_id"
|
|
424
|
+
]
|
|
425
|
+
},
|
|
426
|
+
"webSession": {
|
|
427
|
+
"site": "facebook-page",
|
|
428
|
+
"action": "media.read",
|
|
429
|
+
"contractVersion": 1,
|
|
430
|
+
"timeoutMs": 60000,
|
|
431
|
+
"maxOutputBytes": 10485760
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
"messaging.list": {
|
|
435
|
+
"description": "Capture-required contract reservation: Page inbox actor switching and Page-vs-person recipient binding require a reviewed business-inbox capture.",
|
|
436
|
+
"risk": "R1",
|
|
437
|
+
"sideEffect": "none",
|
|
438
|
+
"idempotency": "none",
|
|
439
|
+
"dedupeWindowMs": 0,
|
|
440
|
+
"input": {
|
|
441
|
+
"properties": {
|
|
442
|
+
"page_id": {
|
|
443
|
+
"type": "string",
|
|
444
|
+
"description": "Exact Facebook Page ID",
|
|
445
|
+
"minLength": 1,
|
|
446
|
+
"maxLength": 80
|
|
447
|
+
},
|
|
448
|
+
"folder": {
|
|
449
|
+
"type": "string",
|
|
450
|
+
"description": "Reviewed inbox folder",
|
|
451
|
+
"enum": [
|
|
452
|
+
"inbox"
|
|
453
|
+
]
|
|
454
|
+
},
|
|
455
|
+
"cursor": {
|
|
456
|
+
"type": "string",
|
|
457
|
+
"description": "Opaque cursor returned by the preceding page",
|
|
458
|
+
"minLength": 1,
|
|
459
|
+
"maxLength": 4096
|
|
460
|
+
},
|
|
461
|
+
"limit": {
|
|
462
|
+
"type": "number",
|
|
463
|
+
"description": "Maximum thread summaries",
|
|
464
|
+
"minimum": 1,
|
|
465
|
+
"maximum": 50
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"required": [
|
|
469
|
+
"page_id",
|
|
470
|
+
"folder"
|
|
471
|
+
]
|
|
472
|
+
},
|
|
473
|
+
"webSession": {
|
|
474
|
+
"site": "facebook-page",
|
|
475
|
+
"action": "messaging.list",
|
|
476
|
+
"contractVersion": 1,
|
|
477
|
+
"timeoutMs": 60000,
|
|
478
|
+
"maxOutputBytes": 10485760
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
"messaging.read": {
|
|
482
|
+
"description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
|
|
483
|
+
"risk": "R1",
|
|
484
|
+
"sideEffect": "none",
|
|
485
|
+
"idempotency": "none",
|
|
486
|
+
"dedupeWindowMs": 0,
|
|
487
|
+
"input": {
|
|
488
|
+
"properties": {
|
|
489
|
+
"page_id": {
|
|
490
|
+
"type": "string",
|
|
491
|
+
"description": "Exact Facebook Page ID",
|
|
492
|
+
"minLength": 1,
|
|
493
|
+
"maxLength": 80
|
|
494
|
+
},
|
|
495
|
+
"conversation_id": {
|
|
496
|
+
"type": "string",
|
|
497
|
+
"description": "Exact conversation ID",
|
|
498
|
+
"minLength": 1,
|
|
499
|
+
"maxLength": 512
|
|
500
|
+
},
|
|
501
|
+
"cursor": {
|
|
502
|
+
"type": "string",
|
|
503
|
+
"description": "Opaque cursor returned by the preceding page",
|
|
504
|
+
"minLength": 1,
|
|
505
|
+
"maxLength": 4096
|
|
506
|
+
},
|
|
507
|
+
"limit": {
|
|
508
|
+
"type": "number",
|
|
509
|
+
"description": "Maximum messages",
|
|
510
|
+
"minimum": 1,
|
|
511
|
+
"maximum": 100
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
"required": [
|
|
515
|
+
"page_id",
|
|
516
|
+
"conversation_id"
|
|
517
|
+
]
|
|
518
|
+
},
|
|
519
|
+
"webSession": {
|
|
520
|
+
"site": "facebook-page",
|
|
521
|
+
"action": "messaging.read",
|
|
522
|
+
"contractVersion": 1,
|
|
523
|
+
"timeoutMs": 60000,
|
|
524
|
+
"maxOutputBytes": 10485760
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
"messaging.send": {
|
|
528
|
+
"description": "Capture-required contract reservation: Page messaging requires exact Page actor proof plus protocol-correct inbox transport.",
|
|
529
|
+
"risk": "R3",
|
|
530
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
531
|
+
"idempotency": "local-at-most-once",
|
|
532
|
+
"dedupeWindowMs": 86400000,
|
|
533
|
+
"input": {
|
|
534
|
+
"properties": {
|
|
535
|
+
"page_id": {
|
|
536
|
+
"type": "string",
|
|
537
|
+
"description": "Exact Facebook Page ID",
|
|
538
|
+
"minLength": 1,
|
|
539
|
+
"maxLength": 80
|
|
540
|
+
},
|
|
541
|
+
"conversation_id": {
|
|
542
|
+
"type": "string",
|
|
543
|
+
"description": "Exact conversation ID",
|
|
544
|
+
"minLength": 1,
|
|
545
|
+
"maxLength": 512
|
|
546
|
+
},
|
|
547
|
+
"body": {
|
|
548
|
+
"type": "string",
|
|
549
|
+
"description": "Message body",
|
|
550
|
+
"minLength": 1,
|
|
551
|
+
"maxLength": 1000
|
|
552
|
+
},
|
|
553
|
+
"attachment": {
|
|
554
|
+
"type": "file",
|
|
555
|
+
"description": "Optional exact message attachment",
|
|
556
|
+
"maxBytes": 1073741824,
|
|
557
|
+
"mediaTypes": [
|
|
558
|
+
"image/*",
|
|
559
|
+
"video/*",
|
|
560
|
+
"application/pdf"
|
|
561
|
+
]
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
"required": [
|
|
565
|
+
"page_id",
|
|
566
|
+
"conversation_id",
|
|
567
|
+
"body"
|
|
568
|
+
]
|
|
569
|
+
},
|
|
570
|
+
"webSession": {
|
|
571
|
+
"site": "facebook-page",
|
|
572
|
+
"action": "messaging.send",
|
|
573
|
+
"contractVersion": 1,
|
|
574
|
+
"timeoutMs": 60000,
|
|
575
|
+
"maxOutputBytes": 10485760
|
|
576
|
+
}
|
|
577
|
+
},
|
|
578
|
+
"posts.publish": {
|
|
579
|
+
"description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
|
|
580
|
+
"risk": "R3",
|
|
581
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
582
|
+
"idempotency": "local-at-most-once",
|
|
583
|
+
"dedupeWindowMs": 86400000,
|
|
584
|
+
"input": {
|
|
585
|
+
"properties": {
|
|
586
|
+
"page_id": {
|
|
587
|
+
"type": "string",
|
|
588
|
+
"description": "Exact Facebook Page ID",
|
|
589
|
+
"minLength": 1,
|
|
590
|
+
"maxLength": 80
|
|
591
|
+
},
|
|
592
|
+
"body": {
|
|
593
|
+
"type": "string",
|
|
594
|
+
"description": "Post body",
|
|
595
|
+
"minLength": 1,
|
|
596
|
+
"maxLength": 1000
|
|
597
|
+
},
|
|
598
|
+
"attachment": {
|
|
599
|
+
"type": "file",
|
|
600
|
+
"description": "Optional exact post attachment",
|
|
601
|
+
"maxBytes": 1073741824,
|
|
602
|
+
"mediaTypes": [
|
|
603
|
+
"image/*",
|
|
604
|
+
"video/*",
|
|
605
|
+
"image/gif"
|
|
606
|
+
]
|
|
607
|
+
},
|
|
608
|
+
"audience": {
|
|
609
|
+
"type": "string",
|
|
610
|
+
"description": "Explicit audience",
|
|
611
|
+
"enum": [
|
|
612
|
+
"default"
|
|
613
|
+
]
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
"required": [
|
|
617
|
+
"page_id",
|
|
618
|
+
"body"
|
|
619
|
+
]
|
|
620
|
+
},
|
|
621
|
+
"webSession": {
|
|
622
|
+
"site": "facebook-page",
|
|
623
|
+
"action": "posts.publish",
|
|
624
|
+
"contractVersion": 1,
|
|
625
|
+
"timeoutMs": 60000,
|
|
626
|
+
"maxOutputBytes": 10485760
|
|
627
|
+
}
|
|
628
|
+
},
|
|
629
|
+
"posts.quote": {
|
|
630
|
+
"description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
|
|
631
|
+
"risk": "R3",
|
|
632
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
633
|
+
"idempotency": "local-at-most-once",
|
|
634
|
+
"dedupeWindowMs": 86400000,
|
|
635
|
+
"input": {
|
|
636
|
+
"properties": {
|
|
637
|
+
"page_id": {
|
|
638
|
+
"type": "string",
|
|
639
|
+
"description": "Exact Facebook Page ID",
|
|
640
|
+
"minLength": 1,
|
|
641
|
+
"maxLength": 80
|
|
642
|
+
},
|
|
643
|
+
"post_id": {
|
|
644
|
+
"type": "string",
|
|
645
|
+
"description": "Exact Facebook post ID",
|
|
646
|
+
"minLength": 1,
|
|
647
|
+
"maxLength": 256
|
|
648
|
+
},
|
|
649
|
+
"body": {
|
|
650
|
+
"type": "string",
|
|
651
|
+
"description": "Quote text",
|
|
652
|
+
"minLength": 1,
|
|
653
|
+
"maxLength": 1000
|
|
654
|
+
}
|
|
655
|
+
},
|
|
656
|
+
"required": [
|
|
657
|
+
"page_id",
|
|
658
|
+
"post_id",
|
|
659
|
+
"body"
|
|
660
|
+
]
|
|
661
|
+
},
|
|
662
|
+
"webSession": {
|
|
663
|
+
"site": "facebook-page",
|
|
664
|
+
"action": "posts.quote",
|
|
665
|
+
"contractVersion": 1,
|
|
666
|
+
"timeoutMs": 60000,
|
|
667
|
+
"maxOutputBytes": 10485760
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
"posts.read": {
|
|
671
|
+
"description": "Capture-required contract reservation: the exact acknowledgement-free response and target binding still require a reviewed live capture.",
|
|
672
|
+
"risk": "R1",
|
|
673
|
+
"sideEffect": "none",
|
|
674
|
+
"idempotency": "none",
|
|
675
|
+
"dedupeWindowMs": 0,
|
|
676
|
+
"input": {
|
|
677
|
+
"properties": {
|
|
678
|
+
"page_id": {
|
|
679
|
+
"type": "string",
|
|
680
|
+
"description": "Exact Facebook Page ID",
|
|
681
|
+
"minLength": 1,
|
|
682
|
+
"maxLength": 80
|
|
683
|
+
},
|
|
684
|
+
"post_id": {
|
|
685
|
+
"type": "string",
|
|
686
|
+
"description": "Exact Facebook post ID",
|
|
687
|
+
"minLength": 1,
|
|
688
|
+
"maxLength": 256
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
"required": [
|
|
692
|
+
"page_id",
|
|
693
|
+
"post_id"
|
|
694
|
+
]
|
|
695
|
+
},
|
|
696
|
+
"webSession": {
|
|
697
|
+
"site": "facebook-page",
|
|
698
|
+
"action": "posts.read",
|
|
699
|
+
"contractVersion": 1,
|
|
700
|
+
"timeoutMs": 60000,
|
|
701
|
+
"maxOutputBytes": 10485760
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
"posts.repost": {
|
|
705
|
+
"description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
|
|
706
|
+
"risk": "R3",
|
|
707
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
708
|
+
"idempotency": "local-at-most-once",
|
|
709
|
+
"dedupeWindowMs": 86400000,
|
|
710
|
+
"input": {
|
|
711
|
+
"properties": {
|
|
712
|
+
"page_id": {
|
|
713
|
+
"type": "string",
|
|
714
|
+
"description": "Exact Facebook Page ID",
|
|
715
|
+
"minLength": 1,
|
|
716
|
+
"maxLength": 80
|
|
717
|
+
},
|
|
718
|
+
"post_id": {
|
|
719
|
+
"type": "string",
|
|
720
|
+
"description": "Exact Facebook post ID",
|
|
721
|
+
"minLength": 1,
|
|
722
|
+
"maxLength": 256
|
|
723
|
+
},
|
|
724
|
+
"reposted": {
|
|
725
|
+
"type": "boolean",
|
|
726
|
+
"description": "Exact desired repost state"
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
"required": [
|
|
730
|
+
"page_id",
|
|
731
|
+
"post_id",
|
|
732
|
+
"reposted"
|
|
733
|
+
]
|
|
734
|
+
},
|
|
735
|
+
"webSession": {
|
|
736
|
+
"site": "facebook-page",
|
|
737
|
+
"action": "posts.repost",
|
|
738
|
+
"contractVersion": 1,
|
|
739
|
+
"timeoutMs": 60000,
|
|
740
|
+
"maxOutputBytes": 10485760
|
|
741
|
+
}
|
|
742
|
+
},
|
|
743
|
+
"reactions.set": {
|
|
744
|
+
"description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
|
|
745
|
+
"risk": "R2",
|
|
746
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
747
|
+
"idempotency": "local-at-most-once",
|
|
748
|
+
"dedupeWindowMs": 86400000,
|
|
749
|
+
"input": {
|
|
750
|
+
"properties": {
|
|
751
|
+
"page_id": {
|
|
752
|
+
"type": "string",
|
|
753
|
+
"description": "Exact Facebook Page ID",
|
|
754
|
+
"minLength": 1,
|
|
755
|
+
"maxLength": 80
|
|
756
|
+
},
|
|
757
|
+
"post_id": {
|
|
758
|
+
"type": "string",
|
|
759
|
+
"description": "Exact Facebook post ID",
|
|
760
|
+
"minLength": 1,
|
|
761
|
+
"maxLength": 256
|
|
762
|
+
},
|
|
763
|
+
"reaction": {
|
|
764
|
+
"type": "string",
|
|
765
|
+
"description": "Exact desired reaction",
|
|
766
|
+
"enum": [
|
|
767
|
+
"none",
|
|
768
|
+
"like",
|
|
769
|
+
"love",
|
|
770
|
+
"care",
|
|
771
|
+
"haha",
|
|
772
|
+
"wow",
|
|
773
|
+
"sad",
|
|
774
|
+
"angry"
|
|
775
|
+
]
|
|
776
|
+
}
|
|
777
|
+
},
|
|
778
|
+
"required": [
|
|
779
|
+
"page_id",
|
|
780
|
+
"post_id",
|
|
781
|
+
"reaction"
|
|
782
|
+
]
|
|
783
|
+
},
|
|
784
|
+
"webSession": {
|
|
785
|
+
"site": "facebook-page",
|
|
786
|
+
"action": "reactions.set",
|
|
787
|
+
"contractVersion": 1,
|
|
788
|
+
"timeoutMs": 60000,
|
|
789
|
+
"maxOutputBytes": 10485760
|
|
790
|
+
}
|
|
791
|
+
},
|
|
792
|
+
"relationships.follow.set": {
|
|
793
|
+
"description": "Capture-required contract reservation: the exact actor, target, mutation response, and independent desired-state readback require an authorized fixture.",
|
|
794
|
+
"risk": "R2",
|
|
795
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
796
|
+
"idempotency": "local-at-most-once",
|
|
797
|
+
"dedupeWindowMs": 86400000,
|
|
798
|
+
"input": {
|
|
799
|
+
"properties": {
|
|
800
|
+
"page_id": {
|
|
801
|
+
"type": "string",
|
|
802
|
+
"description": "Exact Facebook Page ID",
|
|
803
|
+
"minLength": 1,
|
|
804
|
+
"maxLength": 80
|
|
805
|
+
},
|
|
806
|
+
"user_id": {
|
|
807
|
+
"type": "string",
|
|
808
|
+
"description": "Exact target account ID",
|
|
809
|
+
"minLength": 1,
|
|
810
|
+
"maxLength": 80
|
|
811
|
+
},
|
|
812
|
+
"following": {
|
|
813
|
+
"type": "boolean",
|
|
814
|
+
"description": "Exact desired following state"
|
|
815
|
+
}
|
|
816
|
+
},
|
|
817
|
+
"required": [
|
|
818
|
+
"page_id",
|
|
819
|
+
"user_id",
|
|
820
|
+
"following"
|
|
821
|
+
]
|
|
822
|
+
},
|
|
823
|
+
"webSession": {
|
|
824
|
+
"site": "facebook-page",
|
|
825
|
+
"action": "relationships.follow.set",
|
|
826
|
+
"contractVersion": 1,
|
|
827
|
+
"timeoutMs": 60000,
|
|
828
|
+
"maxOutputBytes": 10485760
|
|
829
|
+
}
|
|
830
|
+
},
|
|
831
|
+
"replies.create": {
|
|
832
|
+
"description": "Capture-required contract reservation: the exact actor, audience, attachment transport, dispatch response, and independent publication readback require an authorized fixture.",
|
|
833
|
+
"risk": "R3",
|
|
834
|
+
"sideEffect": "Changes remote facebook-page state only after exact preview confirmation and reviewed dispatch.",
|
|
835
|
+
"idempotency": "local-at-most-once",
|
|
836
|
+
"dedupeWindowMs": 86400000,
|
|
837
|
+
"input": {
|
|
838
|
+
"properties": {
|
|
839
|
+
"page_id": {
|
|
840
|
+
"type": "string",
|
|
841
|
+
"description": "Exact Facebook Page ID",
|
|
842
|
+
"minLength": 1,
|
|
843
|
+
"maxLength": 80
|
|
844
|
+
},
|
|
845
|
+
"post_id": {
|
|
846
|
+
"type": "string",
|
|
847
|
+
"description": "Exact Facebook post ID",
|
|
848
|
+
"minLength": 1,
|
|
849
|
+
"maxLength": 256
|
|
850
|
+
},
|
|
851
|
+
"comment_id": {
|
|
852
|
+
"type": "string",
|
|
853
|
+
"description": "Exact parent comment ID",
|
|
854
|
+
"minLength": 1,
|
|
855
|
+
"maxLength": 256
|
|
856
|
+
},
|
|
857
|
+
"body": {
|
|
858
|
+
"type": "string",
|
|
859
|
+
"description": "Reply body",
|
|
860
|
+
"minLength": 1,
|
|
861
|
+
"maxLength": 500
|
|
862
|
+
}
|
|
863
|
+
},
|
|
864
|
+
"required": [
|
|
865
|
+
"page_id",
|
|
866
|
+
"post_id",
|
|
867
|
+
"comment_id",
|
|
868
|
+
"body"
|
|
869
|
+
]
|
|
870
|
+
},
|
|
871
|
+
"webSession": {
|
|
872
|
+
"site": "facebook-page",
|
|
873
|
+
"action": "replies.create",
|
|
874
|
+
"contractVersion": 1,
|
|
875
|
+
"timeoutMs": 60000,
|
|
876
|
+
"maxOutputBytes": 10485760
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
}
|