@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,684 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"id": "bluesky-web",
|
|
4
|
+
"version": "1.4.0",
|
|
5
|
+
"displayName": "Bluesky (Authenticated AT Protocol API)",
|
|
6
|
+
"surfaceId": "bluesky",
|
|
7
|
+
"origins": [
|
|
8
|
+
"https://bsky.app"
|
|
9
|
+
],
|
|
10
|
+
"browserDomains": [
|
|
11
|
+
"bsky.app"
|
|
12
|
+
],
|
|
13
|
+
"operations": {
|
|
14
|
+
"profiles.read": {
|
|
15
|
+
"description": "Observed contract: read one exact Bluesky profile through the fixed public AppView getProfile query with DID and handle binding plus exact follower, following, and post counts.",
|
|
16
|
+
"risk": "R1",
|
|
17
|
+
"sideEffect": "none",
|
|
18
|
+
"idempotency": "none",
|
|
19
|
+
"dedupeWindowMs": 0,
|
|
20
|
+
"input": {
|
|
21
|
+
"properties": {
|
|
22
|
+
"handle": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Exact fully qualified Bluesky handle",
|
|
25
|
+
"minLength": 3,
|
|
26
|
+
"maxLength": 253
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"required": [
|
|
30
|
+
"handle"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"webSession": {
|
|
34
|
+
"site": "bluesky",
|
|
35
|
+
"action": "profiles.read",
|
|
36
|
+
"contractVersion": 1,
|
|
37
|
+
"timeoutMs": 60000,
|
|
38
|
+
"maxOutputBytes": 2097152
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"feeds.read": {
|
|
42
|
+
"description": "Read one bounded authenticated Bluesky home timeline, notification feed, or private bookmark feed through fixed account-bound XRPC queries.",
|
|
43
|
+
"risk": "R1",
|
|
44
|
+
"sideEffect": "none",
|
|
45
|
+
"idempotency": "none",
|
|
46
|
+
"dedupeWindowMs": 0,
|
|
47
|
+
"input": {
|
|
48
|
+
"properties": {
|
|
49
|
+
"feed": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "Exact reviewed Bluesky feed",
|
|
52
|
+
"enum": [
|
|
53
|
+
"home",
|
|
54
|
+
"notifications",
|
|
55
|
+
"bookmarks"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"limit": {
|
|
59
|
+
"type": "number",
|
|
60
|
+
"description": "Maximum projected feed items",
|
|
61
|
+
"minimum": 1,
|
|
62
|
+
"maximum": 100
|
|
63
|
+
},
|
|
64
|
+
"cursor": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"description": "Optional opaque cursor returned by the same feed",
|
|
67
|
+
"minLength": 1,
|
|
68
|
+
"maxLength": 8192
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"required": [
|
|
72
|
+
"feed"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
"webSession": {
|
|
76
|
+
"site": "bluesky",
|
|
77
|
+
"action": "feeds.read",
|
|
78
|
+
"contractVersion": 1,
|
|
79
|
+
"timeoutMs": 60000,
|
|
80
|
+
"maxOutputBytes": 8388608
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"posts.read": {
|
|
84
|
+
"description": "Read one exact Bluesky post through a fixed XRPC query with exact AT URI binding and bounded projection.",
|
|
85
|
+
"risk": "R1",
|
|
86
|
+
"sideEffect": "none",
|
|
87
|
+
"idempotency": "none",
|
|
88
|
+
"dedupeWindowMs": 0,
|
|
89
|
+
"input": {
|
|
90
|
+
"properties": {
|
|
91
|
+
"post_uri": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"description": "Exact app.bsky.feed.post AT URI",
|
|
94
|
+
"minLength": 32,
|
|
95
|
+
"maxLength": 1024
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"required": [
|
|
99
|
+
"post_uri"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"webSession": {
|
|
103
|
+
"site": "bluesky",
|
|
104
|
+
"action": "posts.read",
|
|
105
|
+
"contractVersion": 1,
|
|
106
|
+
"timeoutMs": 60000,
|
|
107
|
+
"maxOutputBytes": 8388608
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"comments.read": {
|
|
111
|
+
"description": "Read one bounded Bluesky reply tree through a fixed XRPC query bound to the exact requested post.",
|
|
112
|
+
"risk": "R1",
|
|
113
|
+
"sideEffect": "none",
|
|
114
|
+
"idempotency": "none",
|
|
115
|
+
"dedupeWindowMs": 0,
|
|
116
|
+
"input": {
|
|
117
|
+
"properties": {
|
|
118
|
+
"post_uri": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"description": "Exact app.bsky.feed.post AT URI",
|
|
121
|
+
"minLength": 32,
|
|
122
|
+
"maxLength": 1024
|
|
123
|
+
},
|
|
124
|
+
"limit": {
|
|
125
|
+
"type": "number",
|
|
126
|
+
"description": "Maximum projected replies",
|
|
127
|
+
"minimum": 1,
|
|
128
|
+
"maximum": 100
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"required": [
|
|
132
|
+
"post_uri"
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
"webSession": {
|
|
136
|
+
"site": "bluesky",
|
|
137
|
+
"action": "comments.read",
|
|
138
|
+
"contractVersion": 1,
|
|
139
|
+
"timeoutMs": 60000,
|
|
140
|
+
"maxOutputBytes": 8388608
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"media.read": {
|
|
144
|
+
"description": "Read metadata-only Bluesky attachments through a fixed XRPC query without returning signed media URLs.",
|
|
145
|
+
"risk": "R1",
|
|
146
|
+
"sideEffect": "none",
|
|
147
|
+
"idempotency": "none",
|
|
148
|
+
"dedupeWindowMs": 0,
|
|
149
|
+
"input": {
|
|
150
|
+
"properties": {
|
|
151
|
+
"post_uri": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"description": "Exact app.bsky.feed.post AT URI",
|
|
154
|
+
"minLength": 32,
|
|
155
|
+
"maxLength": 1024
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"required": [
|
|
159
|
+
"post_uri"
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
"webSession": {
|
|
163
|
+
"site": "bluesky",
|
|
164
|
+
"action": "media.read",
|
|
165
|
+
"contractVersion": 1,
|
|
166
|
+
"timeoutMs": 60000,
|
|
167
|
+
"maxOutputBytes": 8388608
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"media.publish": {
|
|
171
|
+
"description": "Capture-required contract reservation: publish one confirmed Bluesky video post only after the exact video-service upload job, bounded processing poll, response-bound blob, repository record, actor binding, and authoritative record plus AppView readback are reviewed.",
|
|
172
|
+
"risk": "R3",
|
|
173
|
+
"sideEffect": "Uploads one video and publishes one externally visible Bluesky post with the exact confirmed text and accessibility description.",
|
|
174
|
+
"idempotency": "local-at-most-once",
|
|
175
|
+
"dedupeWindowMs": 86400000,
|
|
176
|
+
"input": {
|
|
177
|
+
"properties": {
|
|
178
|
+
"body": {
|
|
179
|
+
"type": "string",
|
|
180
|
+
"description": "Exact plain-text post body",
|
|
181
|
+
"minLength": 1,
|
|
182
|
+
"maxLength": 280
|
|
183
|
+
},
|
|
184
|
+
"media": {
|
|
185
|
+
"type": "file",
|
|
186
|
+
"description": "Exact plan-bound Bluesky MP4",
|
|
187
|
+
"maxBytes": 104857600,
|
|
188
|
+
"mediaTypes": [
|
|
189
|
+
"video/mp4"
|
|
190
|
+
]
|
|
191
|
+
},
|
|
192
|
+
"alt": {
|
|
193
|
+
"type": "string",
|
|
194
|
+
"description": "Optional exact video accessibility text",
|
|
195
|
+
"minLength": 0,
|
|
196
|
+
"maxLength": 10000
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"required": [
|
|
200
|
+
"body",
|
|
201
|
+
"media"
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
"webSession": {
|
|
205
|
+
"site": "bluesky",
|
|
206
|
+
"action": "media.publish",
|
|
207
|
+
"contractVersion": 1,
|
|
208
|
+
"timeoutMs": 600000,
|
|
209
|
+
"maxOutputBytes": 8388608
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"messaging.list": {
|
|
213
|
+
"description": "Capture-required contract reservation: list one bounded page of Bluesky conversations only after a live nonempty fixture proves exact bsky_chat proxy routing and viewer membership projection.",
|
|
214
|
+
"risk": "R1",
|
|
215
|
+
"sideEffect": "none",
|
|
216
|
+
"idempotency": "none",
|
|
217
|
+
"dedupeWindowMs": 0,
|
|
218
|
+
"input": {
|
|
219
|
+
"properties": {
|
|
220
|
+
"limit": {
|
|
221
|
+
"type": "number",
|
|
222
|
+
"description": "Maximum projected conversations",
|
|
223
|
+
"minimum": 1,
|
|
224
|
+
"maximum": 100
|
|
225
|
+
},
|
|
226
|
+
"cursor": {
|
|
227
|
+
"type": "string",
|
|
228
|
+
"description": "Optional opaque conversation cursor",
|
|
229
|
+
"minLength": 1,
|
|
230
|
+
"maxLength": 8192
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"required": []
|
|
234
|
+
},
|
|
235
|
+
"webSession": {
|
|
236
|
+
"site": "bluesky",
|
|
237
|
+
"action": "messaging.list",
|
|
238
|
+
"contractVersion": 1,
|
|
239
|
+
"timeoutMs": 60000,
|
|
240
|
+
"maxOutputBytes": 8388608
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"messaging.read": {
|
|
244
|
+
"description": "Capture-required contract reservation: read one exact Bluesky conversation only after a live fixture proves exact bsky_chat proxy routing, membership, conversation binding, and message projection.",
|
|
245
|
+
"risk": "R1",
|
|
246
|
+
"sideEffect": "none",
|
|
247
|
+
"idempotency": "none",
|
|
248
|
+
"dedupeWindowMs": 0,
|
|
249
|
+
"input": {
|
|
250
|
+
"properties": {
|
|
251
|
+
"convo_id": {
|
|
252
|
+
"type": "string",
|
|
253
|
+
"description": "Exact Bluesky conversation ID",
|
|
254
|
+
"minLength": 1,
|
|
255
|
+
"maxLength": 512
|
|
256
|
+
},
|
|
257
|
+
"limit": {
|
|
258
|
+
"type": "number",
|
|
259
|
+
"description": "Maximum projected messages",
|
|
260
|
+
"minimum": 1,
|
|
261
|
+
"maximum": 100
|
|
262
|
+
},
|
|
263
|
+
"cursor": {
|
|
264
|
+
"type": "string",
|
|
265
|
+
"description": "Optional opaque message cursor",
|
|
266
|
+
"minLength": 1,
|
|
267
|
+
"maxLength": 8192
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
"required": [
|
|
271
|
+
"convo_id"
|
|
272
|
+
]
|
|
273
|
+
},
|
|
274
|
+
"webSession": {
|
|
275
|
+
"site": "bluesky",
|
|
276
|
+
"action": "messaging.read",
|
|
277
|
+
"contractVersion": 1,
|
|
278
|
+
"timeoutMs": 60000,
|
|
279
|
+
"maxOutputBytes": 8388608
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
"likes.set": {
|
|
283
|
+
"description": "Capture-required contract reservation: set or clear one exact like only after an authorized live fixture proves the record exchange and independent post-view readback.",
|
|
284
|
+
"risk": "R2",
|
|
285
|
+
"sideEffect": "Sets or clears the authenticated Bluesky account's like on the exact confirmed post.",
|
|
286
|
+
"idempotency": "local-at-most-once",
|
|
287
|
+
"dedupeWindowMs": 86400000,
|
|
288
|
+
"input": {
|
|
289
|
+
"properties": {
|
|
290
|
+
"post_uri": {
|
|
291
|
+
"type": "string",
|
|
292
|
+
"description": "Exact app.bsky.feed.post AT URI",
|
|
293
|
+
"minLength": 32,
|
|
294
|
+
"maxLength": 1024
|
|
295
|
+
},
|
|
296
|
+
"liked": {
|
|
297
|
+
"type": "boolean",
|
|
298
|
+
"description": "Exact desired like state"
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"required": [
|
|
302
|
+
"post_uri",
|
|
303
|
+
"liked"
|
|
304
|
+
]
|
|
305
|
+
},
|
|
306
|
+
"webSession": {
|
|
307
|
+
"site": "bluesky",
|
|
308
|
+
"action": "likes.set",
|
|
309
|
+
"contractVersion": 1,
|
|
310
|
+
"timeoutMs": 60000,
|
|
311
|
+
"maxOutputBytes": 8388608
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"content.save": {
|
|
315
|
+
"description": "Capture-required contract reservation: set or clear one exact private bookmark only after an authorized live fixture proves the procedure and independent post-view readback.",
|
|
316
|
+
"risk": "R2",
|
|
317
|
+
"sideEffect": "Saves or unsaves the exact confirmed post in the authenticated Bluesky account's private bookmarks.",
|
|
318
|
+
"idempotency": "local-at-most-once",
|
|
319
|
+
"dedupeWindowMs": 86400000,
|
|
320
|
+
"input": {
|
|
321
|
+
"properties": {
|
|
322
|
+
"post_uri": {
|
|
323
|
+
"type": "string",
|
|
324
|
+
"description": "Exact app.bsky.feed.post AT URI",
|
|
325
|
+
"minLength": 32,
|
|
326
|
+
"maxLength": 1024
|
|
327
|
+
},
|
|
328
|
+
"saved": {
|
|
329
|
+
"type": "boolean",
|
|
330
|
+
"description": "Exact desired private bookmark state"
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"required": [
|
|
334
|
+
"post_uri",
|
|
335
|
+
"saved"
|
|
336
|
+
]
|
|
337
|
+
},
|
|
338
|
+
"webSession": {
|
|
339
|
+
"site": "bluesky",
|
|
340
|
+
"action": "content.save",
|
|
341
|
+
"contractVersion": 1,
|
|
342
|
+
"timeoutMs": 60000,
|
|
343
|
+
"maxOutputBytes": 8388608
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
"content.delete": {
|
|
347
|
+
"description": "Delete one exact current-account Bluesky post only after an authoritative PDS pre-read binds its confirmed CID; submit deleteRecord with swapRecord and independently verify authoritative RecordNotFound.",
|
|
348
|
+
"risk": "R3",
|
|
349
|
+
"sideEffect": "Permanently deletes the exact confirmed authored Bluesky post from the authenticated account repository.",
|
|
350
|
+
"idempotency": "local-at-most-once",
|
|
351
|
+
"dedupeWindowMs": 2592000000,
|
|
352
|
+
"input": {
|
|
353
|
+
"properties": {
|
|
354
|
+
"post_uri": {
|
|
355
|
+
"type": "string",
|
|
356
|
+
"description": "Exact current-account app.bsky.feed.post AT URI",
|
|
357
|
+
"minLength": 32,
|
|
358
|
+
"maxLength": 1024
|
|
359
|
+
},
|
|
360
|
+
"expected_cid": {
|
|
361
|
+
"type": "string",
|
|
362
|
+
"description": "Exact confirmed current record CID",
|
|
363
|
+
"minLength": 11,
|
|
364
|
+
"maxLength": 201
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
"required": [
|
|
368
|
+
"post_uri",
|
|
369
|
+
"expected_cid"
|
|
370
|
+
]
|
|
371
|
+
},
|
|
372
|
+
"webSession": {
|
|
373
|
+
"site": "bluesky",
|
|
374
|
+
"action": "content.delete",
|
|
375
|
+
"contractVersion": 1,
|
|
376
|
+
"timeoutMs": 60000,
|
|
377
|
+
"maxOutputBytes": 8388608
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
"relationships.follow.set": {
|
|
381
|
+
"description": "Capture-required contract reservation: follow or unfollow one exact DID only after an authorized live fixture proves record exchange and independent profile readback.",
|
|
382
|
+
"risk": "R2",
|
|
383
|
+
"sideEffect": "Follows or unfollows the exact confirmed Bluesky account as the authenticated viewer.",
|
|
384
|
+
"idempotency": "local-at-most-once",
|
|
385
|
+
"dedupeWindowMs": 86400000,
|
|
386
|
+
"input": {
|
|
387
|
+
"properties": {
|
|
388
|
+
"actor_did": {
|
|
389
|
+
"type": "string",
|
|
390
|
+
"description": "Exact target Bluesky DID",
|
|
391
|
+
"minLength": 32,
|
|
392
|
+
"maxLength": 255
|
|
393
|
+
},
|
|
394
|
+
"followed": {
|
|
395
|
+
"type": "boolean",
|
|
396
|
+
"description": "Exact desired follow state"
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
"required": [
|
|
400
|
+
"actor_did",
|
|
401
|
+
"followed"
|
|
402
|
+
]
|
|
403
|
+
},
|
|
404
|
+
"webSession": {
|
|
405
|
+
"site": "bluesky",
|
|
406
|
+
"action": "relationships.follow.set",
|
|
407
|
+
"contractVersion": 1,
|
|
408
|
+
"timeoutMs": 60000,
|
|
409
|
+
"maxOutputBytes": 8388608
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
"posts.repost": {
|
|
413
|
+
"description": "Capture-required contract reservation: repost or undo one exact post only after an authorized live fixture proves record exchange and independent post-view readback.",
|
|
414
|
+
"risk": "R3",
|
|
415
|
+
"sideEffect": "Reposts or removes the authenticated Bluesky account's repost of the exact confirmed post.",
|
|
416
|
+
"idempotency": "local-at-most-once",
|
|
417
|
+
"dedupeWindowMs": 86400000,
|
|
418
|
+
"input": {
|
|
419
|
+
"properties": {
|
|
420
|
+
"post_uri": {
|
|
421
|
+
"type": "string",
|
|
422
|
+
"description": "Exact app.bsky.feed.post AT URI",
|
|
423
|
+
"minLength": 32,
|
|
424
|
+
"maxLength": 1024
|
|
425
|
+
},
|
|
426
|
+
"reposted": {
|
|
427
|
+
"type": "boolean",
|
|
428
|
+
"description": "Exact desired repost state"
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
"required": [
|
|
432
|
+
"post_uri",
|
|
433
|
+
"reposted"
|
|
434
|
+
]
|
|
435
|
+
},
|
|
436
|
+
"webSession": {
|
|
437
|
+
"site": "bluesky",
|
|
438
|
+
"action": "posts.repost",
|
|
439
|
+
"contractVersion": 1,
|
|
440
|
+
"timeoutMs": 60000,
|
|
441
|
+
"maxOutputBytes": 8388608
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
"posts.publish": {
|
|
445
|
+
"description": "Publish one plain-text or single-image post through the observed uploadBlob/createRecord contract with exact actor, text, attachment, record revision, and independent getPosts readback binding.",
|
|
446
|
+
"risk": "R3",
|
|
447
|
+
"sideEffect": "Publishes one externally visible Bluesky post with the exact confirmed text and optional image.",
|
|
448
|
+
"idempotency": "local-at-most-once",
|
|
449
|
+
"dedupeWindowMs": 86400000,
|
|
450
|
+
"input": {
|
|
451
|
+
"properties": {
|
|
452
|
+
"body": {
|
|
453
|
+
"type": "string",
|
|
454
|
+
"description": "Exact plain-text post body",
|
|
455
|
+
"minLength": 1,
|
|
456
|
+
"maxLength": 280
|
|
457
|
+
},
|
|
458
|
+
"media": {
|
|
459
|
+
"type": "file",
|
|
460
|
+
"description": "Optional single plan-bound image",
|
|
461
|
+
"maxBytes": 2000000,
|
|
462
|
+
"mediaTypes": [
|
|
463
|
+
"image/jpeg",
|
|
464
|
+
"image/png",
|
|
465
|
+
"image/webp"
|
|
466
|
+
]
|
|
467
|
+
},
|
|
468
|
+
"media_type": {
|
|
469
|
+
"type": "string",
|
|
470
|
+
"description": "Exact media type when an image is attached",
|
|
471
|
+
"enum": [
|
|
472
|
+
"image/jpeg",
|
|
473
|
+
"image/png",
|
|
474
|
+
"image/webp"
|
|
475
|
+
]
|
|
476
|
+
},
|
|
477
|
+
"alt": {
|
|
478
|
+
"type": "string",
|
|
479
|
+
"description": "Optional exact image alt text",
|
|
480
|
+
"minLength": 0,
|
|
481
|
+
"maxLength": 10000
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
"required": [
|
|
485
|
+
"body"
|
|
486
|
+
]
|
|
487
|
+
},
|
|
488
|
+
"webSession": {
|
|
489
|
+
"site": "bluesky",
|
|
490
|
+
"action": "posts.publish",
|
|
491
|
+
"contractVersion": 3,
|
|
492
|
+
"timeoutMs": 600000,
|
|
493
|
+
"maxOutputBytes": 8388608
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
"replies.create": {
|
|
497
|
+
"description": "Capture-required contract reservation: publish one plain-text or single-image reply only after an authorized live fixture proves actor, root, parent, response, and readback binding.",
|
|
498
|
+
"risk": "R3",
|
|
499
|
+
"sideEffect": "Publishes one externally visible reply to the exact confirmed Bluesky post.",
|
|
500
|
+
"idempotency": "local-at-most-once",
|
|
501
|
+
"dedupeWindowMs": 86400000,
|
|
502
|
+
"input": {
|
|
503
|
+
"properties": {
|
|
504
|
+
"post_uri": {
|
|
505
|
+
"type": "string",
|
|
506
|
+
"description": "Exact parent app.bsky.feed.post AT URI",
|
|
507
|
+
"minLength": 32,
|
|
508
|
+
"maxLength": 1024
|
|
509
|
+
},
|
|
510
|
+
"body": {
|
|
511
|
+
"type": "string",
|
|
512
|
+
"description": "Exact plain-text reply body",
|
|
513
|
+
"minLength": 1,
|
|
514
|
+
"maxLength": 280
|
|
515
|
+
},
|
|
516
|
+
"media": {
|
|
517
|
+
"type": "file",
|
|
518
|
+
"description": "Optional single plan-bound reply image",
|
|
519
|
+
"maxBytes": 2000000,
|
|
520
|
+
"mediaTypes": [
|
|
521
|
+
"image/jpeg",
|
|
522
|
+
"image/png",
|
|
523
|
+
"image/webp"
|
|
524
|
+
]
|
|
525
|
+
},
|
|
526
|
+
"media_type": {
|
|
527
|
+
"type": "string",
|
|
528
|
+
"description": "Exact media type when an image is attached",
|
|
529
|
+
"enum": [
|
|
530
|
+
"image/jpeg",
|
|
531
|
+
"image/png",
|
|
532
|
+
"image/webp"
|
|
533
|
+
]
|
|
534
|
+
},
|
|
535
|
+
"alt": {
|
|
536
|
+
"type": "string",
|
|
537
|
+
"description": "Optional exact image alt text",
|
|
538
|
+
"minLength": 0,
|
|
539
|
+
"maxLength": 10000
|
|
540
|
+
}
|
|
541
|
+
},
|
|
542
|
+
"required": [
|
|
543
|
+
"post_uri",
|
|
544
|
+
"body"
|
|
545
|
+
]
|
|
546
|
+
},
|
|
547
|
+
"webSession": {
|
|
548
|
+
"site": "bluesky",
|
|
549
|
+
"action": "replies.create",
|
|
550
|
+
"contractVersion": 1,
|
|
551
|
+
"timeoutMs": 600000,
|
|
552
|
+
"maxOutputBytes": 8388608
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
"posts.quote": {
|
|
556
|
+
"description": "Capture-required contract reservation: publish one quoted post only after an authorized live fixture proves the exact embedded strong reference and independent readback.",
|
|
557
|
+
"risk": "R3",
|
|
558
|
+
"sideEffect": "Publishes one externally visible Bluesky quote post for the exact confirmed source post.",
|
|
559
|
+
"idempotency": "local-at-most-once",
|
|
560
|
+
"dedupeWindowMs": 86400000,
|
|
561
|
+
"input": {
|
|
562
|
+
"properties": {
|
|
563
|
+
"post_uri": {
|
|
564
|
+
"type": "string",
|
|
565
|
+
"description": "Exact quoted app.bsky.feed.post AT URI",
|
|
566
|
+
"minLength": 32,
|
|
567
|
+
"maxLength": 1024
|
|
568
|
+
},
|
|
569
|
+
"body": {
|
|
570
|
+
"type": "string",
|
|
571
|
+
"description": "Exact plain-text quote commentary",
|
|
572
|
+
"minLength": 1,
|
|
573
|
+
"maxLength": 280
|
|
574
|
+
}
|
|
575
|
+
},
|
|
576
|
+
"required": [
|
|
577
|
+
"post_uri",
|
|
578
|
+
"body"
|
|
579
|
+
]
|
|
580
|
+
},
|
|
581
|
+
"webSession": {
|
|
582
|
+
"site": "bluesky",
|
|
583
|
+
"action": "posts.quote",
|
|
584
|
+
"contractVersion": 1,
|
|
585
|
+
"timeoutMs": 600000,
|
|
586
|
+
"maxOutputBytes": 8388608
|
|
587
|
+
}
|
|
588
|
+
},
|
|
589
|
+
"threads.publish": {
|
|
590
|
+
"description": "Capture-required contract reservation: publish one ordered one-to-twenty-five-item thread only after an authorized live fixture proves every root/reply dispatch and independent readback.",
|
|
591
|
+
"risk": "R3",
|
|
592
|
+
"sideEffect": "Publishes one externally visible ordered Bluesky thread containing every exact confirmed item.",
|
|
593
|
+
"idempotency": "local-at-most-once",
|
|
594
|
+
"dedupeWindowMs": 86400000,
|
|
595
|
+
"input": {
|
|
596
|
+
"properties": {
|
|
597
|
+
"items": {
|
|
598
|
+
"type": "array",
|
|
599
|
+
"description": "Exact ordered post texts beginning with the thread root",
|
|
600
|
+
"items": {
|
|
601
|
+
"type": "string",
|
|
602
|
+
"description": "One exact Bluesky thread item",
|
|
603
|
+
"minLength": 1,
|
|
604
|
+
"maxLength": 280
|
|
605
|
+
},
|
|
606
|
+
"minItems": 1,
|
|
607
|
+
"maxItems": 25
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
"required": [
|
|
611
|
+
"items"
|
|
612
|
+
]
|
|
613
|
+
},
|
|
614
|
+
"webSession": {
|
|
615
|
+
"site": "bluesky",
|
|
616
|
+
"action": "threads.publish",
|
|
617
|
+
"contractVersion": 1,
|
|
618
|
+
"timeoutMs": 600000,
|
|
619
|
+
"maxOutputBytes": 8388608
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
"messaging.send": {
|
|
623
|
+
"description": "Capture-required contract reservation: send one exact message only after an authorized live fixture proves conversation membership, sender, response, and independent getMessages readback.",
|
|
624
|
+
"risk": "R3",
|
|
625
|
+
"sideEffect": "Sends one message with the exact confirmed text to the exact confirmed Bluesky conversation.",
|
|
626
|
+
"idempotency": "local-at-most-once",
|
|
627
|
+
"dedupeWindowMs": 86400000,
|
|
628
|
+
"input": {
|
|
629
|
+
"properties": {
|
|
630
|
+
"convo_id": {
|
|
631
|
+
"type": "string",
|
|
632
|
+
"description": "Exact Bluesky conversation ID",
|
|
633
|
+
"minLength": 1,
|
|
634
|
+
"maxLength": 512
|
|
635
|
+
},
|
|
636
|
+
"body": {
|
|
637
|
+
"type": "string",
|
|
638
|
+
"description": "Exact message text",
|
|
639
|
+
"minLength": 1,
|
|
640
|
+
"maxLength": 1000
|
|
641
|
+
}
|
|
642
|
+
},
|
|
643
|
+
"required": [
|
|
644
|
+
"convo_id",
|
|
645
|
+
"body"
|
|
646
|
+
]
|
|
647
|
+
},
|
|
648
|
+
"webSession": {
|
|
649
|
+
"site": "bluesky",
|
|
650
|
+
"action": "messaging.send",
|
|
651
|
+
"contractVersion": 1,
|
|
652
|
+
"timeoutMs": 60000,
|
|
653
|
+
"maxOutputBytes": 8388608
|
|
654
|
+
}
|
|
655
|
+
},
|
|
656
|
+
"content.share": {
|
|
657
|
+
"description": "Capture-required contract reservation: no separate native Bluesky share mutation is proven beyond the supported repost and quote operations.",
|
|
658
|
+
"risk": "R3",
|
|
659
|
+
"sideEffect": "Shares the exact confirmed Bluesky post through a distinct provider-visible target if such a native contract is proven.",
|
|
660
|
+
"idempotency": "local-at-most-once",
|
|
661
|
+
"dedupeWindowMs": 86400000,
|
|
662
|
+
"input": {
|
|
663
|
+
"properties": {
|
|
664
|
+
"post_uri": {
|
|
665
|
+
"type": "string",
|
|
666
|
+
"description": "Exact app.bsky.feed.post AT URI",
|
|
667
|
+
"minLength": 32,
|
|
668
|
+
"maxLength": 1024
|
|
669
|
+
}
|
|
670
|
+
},
|
|
671
|
+
"required": [
|
|
672
|
+
"post_uri"
|
|
673
|
+
]
|
|
674
|
+
},
|
|
675
|
+
"webSession": {
|
|
676
|
+
"site": "bluesky",
|
|
677
|
+
"action": "content.share",
|
|
678
|
+
"contractVersion": 1,
|
|
679
|
+
"timeoutMs": 60000,
|
|
680
|
+
"maxOutputBytes": 8388608
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
}
|