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