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