@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,825 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"id": "linkedin-web",
|
|
4
|
+
"version": "1.7.0",
|
|
5
|
+
"displayName": "LinkedIn (Authenticated Web API)",
|
|
6
|
+
"surfaceId": "linkedin",
|
|
7
|
+
"origins": [
|
|
8
|
+
"https://www.linkedin.com"
|
|
9
|
+
],
|
|
10
|
+
"browserDomains": [
|
|
11
|
+
"www.linkedin.com"
|
|
12
|
+
],
|
|
13
|
+
"operations": {
|
|
14
|
+
"articles.draft.save": {
|
|
15
|
+
"description": "Create or replace one private native LinkedIn Article draft from ArticleDraftDocument schemaVersion 2 with ordered local inline images, alt text, and captions using the reviewed current-member-bound autosave and exact unpublished readback contract.",
|
|
16
|
+
"risk": "R2",
|
|
17
|
+
"sideEffect": "Creates one private native LinkedIn Article draft, or replaces the exact confirmed existing private draft, including the confirmed inline image bytes, alt text, and captions; it never publishes the draft.",
|
|
18
|
+
"idempotency": "local-at-most-once",
|
|
19
|
+
"dedupeWindowMs": 86400000,
|
|
20
|
+
"input": {
|
|
21
|
+
"properties": {
|
|
22
|
+
"document": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Canonical JSON for ArticleDraftDocument schemaVersion 2; this reviewed LinkedIn contract supports bounded paragraphs, H1/H2 headings, native HTTPS links, and ordered inline image blocks with required alt text and optional captions",
|
|
25
|
+
"minLength": 1,
|
|
26
|
+
"maxLength": 524288
|
|
27
|
+
},
|
|
28
|
+
"draft_id": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "Optional exact existing private LinkedIn Article draft to replace in place",
|
|
31
|
+
"minLength": 1,
|
|
32
|
+
"maxLength": 512
|
|
33
|
+
},
|
|
34
|
+
"inline_images": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"description": "Ordered plan-bound local image files referenced by document imageIndex",
|
|
37
|
+
"items": {
|
|
38
|
+
"type": "file",
|
|
39
|
+
"description": "One exact JPEG, PNG, or WebP inline image",
|
|
40
|
+
"maxBytes": 5242880,
|
|
41
|
+
"mediaTypes": [
|
|
42
|
+
"image/jpeg",
|
|
43
|
+
"image/png",
|
|
44
|
+
"image/webp"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"minItems": 1,
|
|
48
|
+
"maxItems": 20
|
|
49
|
+
},
|
|
50
|
+
"title": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Exact native article title",
|
|
53
|
+
"minLength": 1,
|
|
54
|
+
"maxLength": 150
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"required": [
|
|
58
|
+
"title",
|
|
59
|
+
"document",
|
|
60
|
+
"inline_images"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"webSession": {
|
|
64
|
+
"site": "linkedin",
|
|
65
|
+
"action": "articles.draft.save",
|
|
66
|
+
"contractVersion": 3,
|
|
67
|
+
"timeoutMs": 600000,
|
|
68
|
+
"maxOutputBytes": 2097152
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"articles.publish": {
|
|
72
|
+
"description": "Capture-required contract reservation: publish one confirmed native LinkedIn article only after its draft, optional cover upload, and publish sequence is captured and response-bound.",
|
|
73
|
+
"risk": "R3",
|
|
74
|
+
"sideEffect": "Publishes one externally visible native LinkedIn article with the exact confirmed title, body, cover, and audience.",
|
|
75
|
+
"idempotency": "local-at-most-once",
|
|
76
|
+
"dedupeWindowMs": 86400000,
|
|
77
|
+
"input": {
|
|
78
|
+
"properties": {
|
|
79
|
+
"body": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"description": "Exact native article body",
|
|
82
|
+
"minLength": 1,
|
|
83
|
+
"maxLength": 125000
|
|
84
|
+
},
|
|
85
|
+
"cover_image": {
|
|
86
|
+
"type": "file",
|
|
87
|
+
"description": "Optional reviewed article cover image",
|
|
88
|
+
"maxBytes": 20971520,
|
|
89
|
+
"mediaTypes": [
|
|
90
|
+
"image/jpeg",
|
|
91
|
+
"image/png"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"title": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "Exact article title",
|
|
97
|
+
"minLength": 1,
|
|
98
|
+
"maxLength": 150
|
|
99
|
+
},
|
|
100
|
+
"visibility": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"description": "Confirmed article audience",
|
|
103
|
+
"enum": [
|
|
104
|
+
"public",
|
|
105
|
+
"connections"
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"required": [
|
|
110
|
+
"title",
|
|
111
|
+
"body",
|
|
112
|
+
"visibility"
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
"webSession": {
|
|
116
|
+
"site": "linkedin",
|
|
117
|
+
"action": "articles.publish",
|
|
118
|
+
"contractVersion": 1,
|
|
119
|
+
"timeoutMs": 600000,
|
|
120
|
+
"maxOutputBytes": 2097152
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"articles.read": {
|
|
124
|
+
"description": "Capture-required contract reservation: list LinkedIn first-party article records only after a fresh capture proves exact author, article identity, and paging response bindings.",
|
|
125
|
+
"risk": "R1",
|
|
126
|
+
"sideEffect": "none",
|
|
127
|
+
"idempotency": "none",
|
|
128
|
+
"dedupeWindowMs": 0,
|
|
129
|
+
"input": {
|
|
130
|
+
"properties": {
|
|
131
|
+
"author_urn": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"description": "Exact LinkedIn person or organization author URN",
|
|
134
|
+
"minLength": 1,
|
|
135
|
+
"maxLength": 500
|
|
136
|
+
},
|
|
137
|
+
"limit": {
|
|
138
|
+
"type": "number",
|
|
139
|
+
"description": "Maximum article records to project",
|
|
140
|
+
"minimum": 1,
|
|
141
|
+
"maximum": 100
|
|
142
|
+
},
|
|
143
|
+
"start": {
|
|
144
|
+
"type": "number",
|
|
145
|
+
"description": "Zero-based article offset",
|
|
146
|
+
"minimum": 0,
|
|
147
|
+
"maximum": 100000
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"required": [
|
|
151
|
+
"author_urn"
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
"webSession": {
|
|
155
|
+
"site": "linkedin",
|
|
156
|
+
"action": "articles.read",
|
|
157
|
+
"contractVersion": 1,
|
|
158
|
+
"timeoutMs": 60000,
|
|
159
|
+
"maxOutputBytes": 4194304
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"comments.create": {
|
|
163
|
+
"description": "Capture-required contract reservation: create one confirmed top-level LinkedIn comment after exact actor, post, and returned-comment bindings are captured and reviewed.",
|
|
164
|
+
"risk": "R3",
|
|
165
|
+
"sideEffect": "Publishes one externally visible comment on the exact confirmed LinkedIn post.",
|
|
166
|
+
"idempotency": "local-at-most-once",
|
|
167
|
+
"dedupeWindowMs": 86400000,
|
|
168
|
+
"input": {
|
|
169
|
+
"properties": {
|
|
170
|
+
"body": {
|
|
171
|
+
"type": "string",
|
|
172
|
+
"description": "Exact comment text",
|
|
173
|
+
"minLength": 1,
|
|
174
|
+
"maxLength": 500
|
|
175
|
+
},
|
|
176
|
+
"post_urn": {
|
|
177
|
+
"type": "string",
|
|
178
|
+
"description": "Exact LinkedIn share or UGC-post URN",
|
|
179
|
+
"minLength": 1,
|
|
180
|
+
"maxLength": 500
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"required": [
|
|
184
|
+
"post_urn",
|
|
185
|
+
"body"
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
"webSession": {
|
|
189
|
+
"site": "linkedin",
|
|
190
|
+
"action": "comments.create",
|
|
191
|
+
"contractVersion": 1,
|
|
192
|
+
"timeoutMs": 60000,
|
|
193
|
+
"maxOutputBytes": 2097152
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"comments.read": {
|
|
197
|
+
"description": "Capture-required contract reservation: list one bounded page of comments for an exact LinkedIn post after the consumer-web collection request is captured and reviewed.",
|
|
198
|
+
"risk": "R1",
|
|
199
|
+
"sideEffect": "none",
|
|
200
|
+
"idempotency": "none",
|
|
201
|
+
"dedupeWindowMs": 0,
|
|
202
|
+
"input": {
|
|
203
|
+
"properties": {
|
|
204
|
+
"cursor": {
|
|
205
|
+
"type": "string",
|
|
206
|
+
"description": "Opaque cursor returned by the preceding page",
|
|
207
|
+
"minLength": 1,
|
|
208
|
+
"maxLength": 4096
|
|
209
|
+
},
|
|
210
|
+
"limit": {
|
|
211
|
+
"type": "number",
|
|
212
|
+
"description": "Maximum comments to project",
|
|
213
|
+
"minimum": 1,
|
|
214
|
+
"maximum": 100
|
|
215
|
+
},
|
|
216
|
+
"post_urn": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"description": "Exact LinkedIn share or UGC-post URN",
|
|
219
|
+
"minLength": 1,
|
|
220
|
+
"maxLength": 500
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"required": [
|
|
224
|
+
"post_urn"
|
|
225
|
+
]
|
|
226
|
+
},
|
|
227
|
+
"webSession": {
|
|
228
|
+
"site": "linkedin",
|
|
229
|
+
"action": "comments.read",
|
|
230
|
+
"contractVersion": 1,
|
|
231
|
+
"timeoutMs": 60000,
|
|
232
|
+
"maxOutputBytes": 4194304
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"contacts.list": {
|
|
236
|
+
"description": "Capture-required contract reservation: list bounded LinkedIn messaging participants with statistics only after current viewer binding, real conversation and message pagination, group attribution, completeness, and acknowledgement-free behavior are reviewed.",
|
|
237
|
+
"risk": "R1",
|
|
238
|
+
"sideEffect": "none",
|
|
239
|
+
"idempotency": "none",
|
|
240
|
+
"dedupeWindowMs": 0,
|
|
241
|
+
"input": {
|
|
242
|
+
"properties": {
|
|
243
|
+
"cursor": {
|
|
244
|
+
"type": "string",
|
|
245
|
+
"description": "Opaque cursor returned by the preceding reviewed conversation page",
|
|
246
|
+
"minLength": 1,
|
|
247
|
+
"maxLength": 4096
|
|
248
|
+
},
|
|
249
|
+
"limit": {
|
|
250
|
+
"type": "number",
|
|
251
|
+
"description": "Maximum projected messaging participants",
|
|
252
|
+
"minimum": 1,
|
|
253
|
+
"maximum": 100
|
|
254
|
+
},
|
|
255
|
+
"stats_scan_limit": {
|
|
256
|
+
"type": "number",
|
|
257
|
+
"description": "Maximum reviewed messages scanned per contact and direction",
|
|
258
|
+
"minimum": 1,
|
|
259
|
+
"maximum": 2000
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"required": []
|
|
263
|
+
},
|
|
264
|
+
"webSession": {
|
|
265
|
+
"site": "linkedin",
|
|
266
|
+
"action": "contacts.list",
|
|
267
|
+
"contractVersion": 1,
|
|
268
|
+
"timeoutMs": 60000,
|
|
269
|
+
"maxOutputBytes": 4194304
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"feeds.read": {
|
|
273
|
+
"description": "Capture-required contract reservation: the LinkedIn home-feed query revision is known, but execution remains disabled until exact current variables and a bounded response projection are captured and reviewed.",
|
|
274
|
+
"risk": "R1",
|
|
275
|
+
"sideEffect": "none",
|
|
276
|
+
"idempotency": "none",
|
|
277
|
+
"dedupeWindowMs": 0,
|
|
278
|
+
"input": {
|
|
279
|
+
"properties": {
|
|
280
|
+
"cursor": {
|
|
281
|
+
"type": "string",
|
|
282
|
+
"description": "Opaque cursor returned by the preceding page",
|
|
283
|
+
"minLength": 1,
|
|
284
|
+
"maxLength": 4096
|
|
285
|
+
},
|
|
286
|
+
"feed": {
|
|
287
|
+
"type": "string",
|
|
288
|
+
"description": "Captured feed surface",
|
|
289
|
+
"enum": [
|
|
290
|
+
"home"
|
|
291
|
+
]
|
|
292
|
+
},
|
|
293
|
+
"limit": {
|
|
294
|
+
"type": "number",
|
|
295
|
+
"description": "Maximum feed entries to project",
|
|
296
|
+
"minimum": 1,
|
|
297
|
+
"maximum": 100
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"required": [
|
|
301
|
+
"feed"
|
|
302
|
+
]
|
|
303
|
+
},
|
|
304
|
+
"webSession": {
|
|
305
|
+
"site": "linkedin",
|
|
306
|
+
"action": "feeds.read",
|
|
307
|
+
"contractVersion": 1,
|
|
308
|
+
"timeoutMs": 60000,
|
|
309
|
+
"maxOutputBytes": 4194304
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
"messaging.list": {
|
|
313
|
+
"description": "Capture-required contract reservation: list one bounded LinkedIn inbox page only after the current-account mailbox projection, registered query, paging, completeness, and acknowledgement-free behavior are recaptured and reviewed.",
|
|
314
|
+
"risk": "R1",
|
|
315
|
+
"sideEffect": "none",
|
|
316
|
+
"idempotency": "none",
|
|
317
|
+
"dedupeWindowMs": 0,
|
|
318
|
+
"input": {
|
|
319
|
+
"properties": {
|
|
320
|
+
"cursor": {
|
|
321
|
+
"type": "string",
|
|
322
|
+
"description": "Opaque cursor returned by the preceding page",
|
|
323
|
+
"minLength": 1,
|
|
324
|
+
"maxLength": 4096
|
|
325
|
+
},
|
|
326
|
+
"folder": {
|
|
327
|
+
"type": "string",
|
|
328
|
+
"description": "Exact LinkedIn inbox folder",
|
|
329
|
+
"enum": [
|
|
330
|
+
"focused",
|
|
331
|
+
"other",
|
|
332
|
+
"requests",
|
|
333
|
+
"archive",
|
|
334
|
+
"spam",
|
|
335
|
+
"all"
|
|
336
|
+
]
|
|
337
|
+
},
|
|
338
|
+
"limit": {
|
|
339
|
+
"type": "number",
|
|
340
|
+
"description": "Maximum conversations to project",
|
|
341
|
+
"minimum": 1,
|
|
342
|
+
"maximum": 100
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
"required": [
|
|
346
|
+
"folder"
|
|
347
|
+
]
|
|
348
|
+
},
|
|
349
|
+
"webSession": {
|
|
350
|
+
"site": "linkedin",
|
|
351
|
+
"action": "messaging.list",
|
|
352
|
+
"contractVersion": 1,
|
|
353
|
+
"timeoutMs": 60000,
|
|
354
|
+
"maxOutputBytes": 4194304
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
"messaging.read": {
|
|
358
|
+
"description": "Capture-required contract reservation: the LinkedIn message query revision is known, but execution remains disabled until exact current variables and acknowledgement-free response handling are captured and reviewed.",
|
|
359
|
+
"risk": "R1",
|
|
360
|
+
"sideEffect": "none",
|
|
361
|
+
"idempotency": "none",
|
|
362
|
+
"dedupeWindowMs": 0,
|
|
363
|
+
"input": {
|
|
364
|
+
"properties": {
|
|
365
|
+
"conversation_id": {
|
|
366
|
+
"type": "string",
|
|
367
|
+
"description": "Exact opaque conversation identifier returned by messaging.list",
|
|
368
|
+
"minLength": 1,
|
|
369
|
+
"maxLength": 512
|
|
370
|
+
},
|
|
371
|
+
"cursor": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"description": "Opaque cursor returned by the preceding page",
|
|
374
|
+
"minLength": 1,
|
|
375
|
+
"maxLength": 4096
|
|
376
|
+
},
|
|
377
|
+
"limit": {
|
|
378
|
+
"type": "number",
|
|
379
|
+
"description": "Maximum messages to project",
|
|
380
|
+
"minimum": 1,
|
|
381
|
+
"maximum": 100
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
"required": [
|
|
385
|
+
"conversation_id"
|
|
386
|
+
]
|
|
387
|
+
},
|
|
388
|
+
"webSession": {
|
|
389
|
+
"site": "linkedin",
|
|
390
|
+
"action": "messaging.read",
|
|
391
|
+
"contractVersion": 1,
|
|
392
|
+
"timeoutMs": 60000,
|
|
393
|
+
"maxOutputBytes": 4194304
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
"messaging.send": {
|
|
397
|
+
"description": "Capture-required contract reservation: send one confirmed LinkedIn message, optionally with one reviewed attachment, only after createMessage request and response bindings are captured and reviewed.",
|
|
398
|
+
"risk": "R3",
|
|
399
|
+
"sideEffect": "Sends one externally visible LinkedIn message to the exact confirmed conversation.",
|
|
400
|
+
"idempotency": "local-at-most-once",
|
|
401
|
+
"dedupeWindowMs": 86400000,
|
|
402
|
+
"input": {
|
|
403
|
+
"properties": {
|
|
404
|
+
"body": {
|
|
405
|
+
"type": "string",
|
|
406
|
+
"description": "Exact message text",
|
|
407
|
+
"minLength": 1,
|
|
408
|
+
"maxLength": 8000
|
|
409
|
+
},
|
|
410
|
+
"conversation_id": {
|
|
411
|
+
"type": "string",
|
|
412
|
+
"description": "Exact opaque conversation identifier returned by messaging.list",
|
|
413
|
+
"minLength": 1,
|
|
414
|
+
"maxLength": 512
|
|
415
|
+
},
|
|
416
|
+
"media": {
|
|
417
|
+
"type": "file",
|
|
418
|
+
"description": "Optional reviewed image, video, or document attachment",
|
|
419
|
+
"maxBytes": 536870912,
|
|
420
|
+
"mediaTypes": [
|
|
421
|
+
"image/jpeg",
|
|
422
|
+
"image/png",
|
|
423
|
+
"image/gif",
|
|
424
|
+
"video/mp4",
|
|
425
|
+
"application/pdf",
|
|
426
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
427
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
428
|
+
]
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
"required": [
|
|
432
|
+
"conversation_id",
|
|
433
|
+
"body"
|
|
434
|
+
]
|
|
435
|
+
},
|
|
436
|
+
"webSession": {
|
|
437
|
+
"site": "linkedin",
|
|
438
|
+
"action": "messaging.send",
|
|
439
|
+
"contractVersion": 1,
|
|
440
|
+
"timeoutMs": 600000,
|
|
441
|
+
"maxOutputBytes": 2097152
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
"organizations.read": {
|
|
445
|
+
"description": "Capture-required contract reservation: read one exact LinkedIn organization Page only after public-identifier or organization-URN lookup, viewer binding, and the bounded response projection are captured and reviewed.",
|
|
446
|
+
"risk": "R1",
|
|
447
|
+
"sideEffect": "none",
|
|
448
|
+
"idempotency": "none",
|
|
449
|
+
"dedupeWindowMs": 0,
|
|
450
|
+
"input": {
|
|
451
|
+
"properties": {
|
|
452
|
+
"organization": {
|
|
453
|
+
"type": "string",
|
|
454
|
+
"description": "Exact LinkedIn organization public identifier or provider organization URN",
|
|
455
|
+
"minLength": 1,
|
|
456
|
+
"maxLength": 512
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
"required": [
|
|
460
|
+
"organization"
|
|
461
|
+
]
|
|
462
|
+
},
|
|
463
|
+
"webSession": {
|
|
464
|
+
"site": "linkedin",
|
|
465
|
+
"action": "organizations.read",
|
|
466
|
+
"contractVersion": 1,
|
|
467
|
+
"timeoutMs": 60000,
|
|
468
|
+
"maxOutputBytes": 2097152
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
"posts.publish": {
|
|
472
|
+
"description": "Capture-required contract reservation: publish one confirmed LinkedIn post with optional reviewed media or link after each sharebox and upload request shape is captured and response-bound.",
|
|
473
|
+
"risk": "R3",
|
|
474
|
+
"sideEffect": "Publishes one externally visible LinkedIn post with the exact confirmed audience and content.",
|
|
475
|
+
"idempotency": "local-at-most-once",
|
|
476
|
+
"dedupeWindowMs": 86400000,
|
|
477
|
+
"input": {
|
|
478
|
+
"properties": {
|
|
479
|
+
"alt_text": {
|
|
480
|
+
"type": "string",
|
|
481
|
+
"description": "Optional image alternative text",
|
|
482
|
+
"minLength": 1,
|
|
483
|
+
"maxLength": 4000
|
|
484
|
+
},
|
|
485
|
+
"body": {
|
|
486
|
+
"type": "string",
|
|
487
|
+
"description": "Exact post commentary",
|
|
488
|
+
"minLength": 1,
|
|
489
|
+
"maxLength": 3000
|
|
490
|
+
},
|
|
491
|
+
"link_url": {
|
|
492
|
+
"type": "string",
|
|
493
|
+
"description": "Optional exact HTTPS link-card source",
|
|
494
|
+
"minLength": 1,
|
|
495
|
+
"maxLength": 8192
|
|
496
|
+
},
|
|
497
|
+
"media": {
|
|
498
|
+
"type": "array",
|
|
499
|
+
"description": "Optional reviewed images, or one reviewed video or document",
|
|
500
|
+
"items": {
|
|
501
|
+
"type": "file",
|
|
502
|
+
"description": "One exact post attachment",
|
|
503
|
+
"maxBytes": 536870912,
|
|
504
|
+
"mediaTypes": [
|
|
505
|
+
"image/jpeg",
|
|
506
|
+
"image/png",
|
|
507
|
+
"image/gif",
|
|
508
|
+
"video/mp4",
|
|
509
|
+
"application/pdf",
|
|
510
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
511
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
512
|
+
]
|
|
513
|
+
},
|
|
514
|
+
"minItems": 1,
|
|
515
|
+
"maxItems": 20
|
|
516
|
+
},
|
|
517
|
+
"media_title": {
|
|
518
|
+
"type": "string",
|
|
519
|
+
"description": "Optional document or video title",
|
|
520
|
+
"minLength": 1,
|
|
521
|
+
"maxLength": 200
|
|
522
|
+
},
|
|
523
|
+
"visibility": {
|
|
524
|
+
"type": "string",
|
|
525
|
+
"description": "Confirmed post audience",
|
|
526
|
+
"enum": [
|
|
527
|
+
"public",
|
|
528
|
+
"connections"
|
|
529
|
+
]
|
|
530
|
+
}
|
|
531
|
+
},
|
|
532
|
+
"required": [
|
|
533
|
+
"body",
|
|
534
|
+
"visibility"
|
|
535
|
+
]
|
|
536
|
+
},
|
|
537
|
+
"webSession": {
|
|
538
|
+
"site": "linkedin",
|
|
539
|
+
"action": "posts.publish",
|
|
540
|
+
"contractVersion": 1,
|
|
541
|
+
"timeoutMs": 600000,
|
|
542
|
+
"maxOutputBytes": 2097152
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
"posts.quote": {
|
|
546
|
+
"description": "Capture-required contract reservation: publish one confirmed LinkedIn quote repost after its exact mutation and returned post identity are captured and reviewed.",
|
|
547
|
+
"risk": "R3",
|
|
548
|
+
"sideEffect": "Publishes one externally visible LinkedIn quote repost with the exact confirmed commentary.",
|
|
549
|
+
"idempotency": "local-at-most-once",
|
|
550
|
+
"dedupeWindowMs": 86400000,
|
|
551
|
+
"input": {
|
|
552
|
+
"properties": {
|
|
553
|
+
"body": {
|
|
554
|
+
"type": "string",
|
|
555
|
+
"description": "Exact quote commentary",
|
|
556
|
+
"minLength": 1,
|
|
557
|
+
"maxLength": 3000
|
|
558
|
+
},
|
|
559
|
+
"post_urn": {
|
|
560
|
+
"type": "string",
|
|
561
|
+
"description": "Exact LinkedIn share or UGC-post URN to quote",
|
|
562
|
+
"minLength": 1,
|
|
563
|
+
"maxLength": 500
|
|
564
|
+
},
|
|
565
|
+
"visibility": {
|
|
566
|
+
"type": "string",
|
|
567
|
+
"description": "Confirmed quote-post audience",
|
|
568
|
+
"enum": [
|
|
569
|
+
"public",
|
|
570
|
+
"connections"
|
|
571
|
+
]
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
"required": [
|
|
575
|
+
"post_urn",
|
|
576
|
+
"body",
|
|
577
|
+
"visibility"
|
|
578
|
+
]
|
|
579
|
+
},
|
|
580
|
+
"webSession": {
|
|
581
|
+
"site": "linkedin",
|
|
582
|
+
"action": "posts.quote",
|
|
583
|
+
"contractVersion": 1,
|
|
584
|
+
"timeoutMs": 60000,
|
|
585
|
+
"maxOutputBytes": 2097152
|
|
586
|
+
}
|
|
587
|
+
},
|
|
588
|
+
"posts.read": {
|
|
589
|
+
"description": "Capture-required contract reservation: read one LinkedIn consumer-web post after its exact first-party post-detail query and bounded projection are captured and reviewed.",
|
|
590
|
+
"risk": "R1",
|
|
591
|
+
"sideEffect": "none",
|
|
592
|
+
"idempotency": "none",
|
|
593
|
+
"dedupeWindowMs": 0,
|
|
594
|
+
"input": {
|
|
595
|
+
"properties": {
|
|
596
|
+
"post_urn": {
|
|
597
|
+
"type": "string",
|
|
598
|
+
"description": "Exact LinkedIn share or UGC-post URN",
|
|
599
|
+
"minLength": 1,
|
|
600
|
+
"maxLength": 500
|
|
601
|
+
}
|
|
602
|
+
},
|
|
603
|
+
"required": [
|
|
604
|
+
"post_urn"
|
|
605
|
+
]
|
|
606
|
+
},
|
|
607
|
+
"webSession": {
|
|
608
|
+
"site": "linkedin",
|
|
609
|
+
"action": "posts.read",
|
|
610
|
+
"contractVersion": 1,
|
|
611
|
+
"timeoutMs": 60000,
|
|
612
|
+
"maxOutputBytes": 2097152
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
"posts.repost": {
|
|
616
|
+
"description": "Capture-required contract reservation: create one confirmed LinkedIn repost after the exact repost mutation and returned post identity are captured and reviewed.",
|
|
617
|
+
"risk": "R3",
|
|
618
|
+
"sideEffect": "Creates one externally visible LinkedIn repost of the exact confirmed post.",
|
|
619
|
+
"idempotency": "local-at-most-once",
|
|
620
|
+
"dedupeWindowMs": 86400000,
|
|
621
|
+
"input": {
|
|
622
|
+
"properties": {
|
|
623
|
+
"post_urn": {
|
|
624
|
+
"type": "string",
|
|
625
|
+
"description": "Exact LinkedIn share or UGC-post URN to repost",
|
|
626
|
+
"minLength": 1,
|
|
627
|
+
"maxLength": 500
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
"required": [
|
|
631
|
+
"post_urn"
|
|
632
|
+
]
|
|
633
|
+
},
|
|
634
|
+
"webSession": {
|
|
635
|
+
"site": "linkedin",
|
|
636
|
+
"action": "posts.repost",
|
|
637
|
+
"contractVersion": 1,
|
|
638
|
+
"timeoutMs": 60000,
|
|
639
|
+
"maxOutputBytes": 2097152
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
"profiles.read": {
|
|
643
|
+
"description": "Capture-required contract reservation: read one exact LinkedIn member profile only after public-identifier or profile-URN lookup, viewer binding, and the bounded response projection are captured and reviewed.",
|
|
644
|
+
"risk": "R1",
|
|
645
|
+
"sideEffect": "none",
|
|
646
|
+
"idempotency": "none",
|
|
647
|
+
"dedupeWindowMs": 0,
|
|
648
|
+
"input": {
|
|
649
|
+
"properties": {
|
|
650
|
+
"profile": {
|
|
651
|
+
"type": "string",
|
|
652
|
+
"description": "Exact LinkedIn public profile identifier or provider profile URN",
|
|
653
|
+
"minLength": 1,
|
|
654
|
+
"maxLength": 512
|
|
655
|
+
}
|
|
656
|
+
},
|
|
657
|
+
"required": [
|
|
658
|
+
"profile"
|
|
659
|
+
]
|
|
660
|
+
},
|
|
661
|
+
"webSession": {
|
|
662
|
+
"site": "linkedin",
|
|
663
|
+
"action": "profiles.read",
|
|
664
|
+
"contractVersion": 1,
|
|
665
|
+
"timeoutMs": 60000,
|
|
666
|
+
"maxOutputBytes": 2097152
|
|
667
|
+
}
|
|
668
|
+
},
|
|
669
|
+
"reactions.set": {
|
|
670
|
+
"description": "Capture-required contract reservation: set the exact desired LinkedIn reaction after reviewed create and delete mutations can bind the actor, target post, and resulting state.",
|
|
671
|
+
"risk": "R2",
|
|
672
|
+
"sideEffect": "Sets or clears the authenticated account's reaction on the exact confirmed LinkedIn post.",
|
|
673
|
+
"idempotency": "local-at-most-once",
|
|
674
|
+
"dedupeWindowMs": 86400000,
|
|
675
|
+
"input": {
|
|
676
|
+
"properties": {
|
|
677
|
+
"post_urn": {
|
|
678
|
+
"type": "string",
|
|
679
|
+
"description": "Exact LinkedIn share or UGC-post URN",
|
|
680
|
+
"minLength": 1,
|
|
681
|
+
"maxLength": 500
|
|
682
|
+
},
|
|
683
|
+
"reaction": {
|
|
684
|
+
"type": "string",
|
|
685
|
+
"description": "Exact desired reaction, or none to clear it",
|
|
686
|
+
"enum": [
|
|
687
|
+
"like",
|
|
688
|
+
"celebrate",
|
|
689
|
+
"support",
|
|
690
|
+
"love",
|
|
691
|
+
"insightful",
|
|
692
|
+
"funny",
|
|
693
|
+
"none"
|
|
694
|
+
]
|
|
695
|
+
}
|
|
696
|
+
},
|
|
697
|
+
"required": [
|
|
698
|
+
"post_urn",
|
|
699
|
+
"reaction"
|
|
700
|
+
]
|
|
701
|
+
},
|
|
702
|
+
"webSession": {
|
|
703
|
+
"site": "linkedin",
|
|
704
|
+
"action": "reactions.set",
|
|
705
|
+
"contractVersion": 1,
|
|
706
|
+
"timeoutMs": 60000,
|
|
707
|
+
"maxOutputBytes": 2097152
|
|
708
|
+
}
|
|
709
|
+
},
|
|
710
|
+
"relationships.connect": {
|
|
711
|
+
"description": "Capture-required contract reservation: send one confirmed LinkedIn connection invitation only after the exact viewer, target profile, optional note, duplicate state, request, and response bindings are captured and reviewed.",
|
|
712
|
+
"risk": "R3",
|
|
713
|
+
"sideEffect": "Sends one externally visible LinkedIn connection invitation to the exact confirmed profile.",
|
|
714
|
+
"idempotency": "local-at-most-once",
|
|
715
|
+
"dedupeWindowMs": 86400000,
|
|
716
|
+
"input": {
|
|
717
|
+
"properties": {
|
|
718
|
+
"note": {
|
|
719
|
+
"type": "string",
|
|
720
|
+
"description": "Optional exact invitation note",
|
|
721
|
+
"minLength": 1,
|
|
722
|
+
"maxLength": 300
|
|
723
|
+
},
|
|
724
|
+
"target_profile_urn": {
|
|
725
|
+
"type": "string",
|
|
726
|
+
"description": "Exact LinkedIn profile URN returned by a reviewed profile or recommendation read",
|
|
727
|
+
"minLength": 1,
|
|
728
|
+
"maxLength": 512
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
"required": [
|
|
732
|
+
"target_profile_urn"
|
|
733
|
+
]
|
|
734
|
+
},
|
|
735
|
+
"webSession": {
|
|
736
|
+
"site": "linkedin",
|
|
737
|
+
"action": "relationships.connect",
|
|
738
|
+
"contractVersion": 1,
|
|
739
|
+
"timeoutMs": 60000,
|
|
740
|
+
"maxOutputBytes": 2097152
|
|
741
|
+
}
|
|
742
|
+
},
|
|
743
|
+
"relationships.recommendations.read": {
|
|
744
|
+
"description": "Capture-required contract reservation: list one bounded page of LinkedIn recommended connections only after the exact viewer-bound collection, paging variables, and completeness projection are captured and reviewed.",
|
|
745
|
+
"risk": "R1",
|
|
746
|
+
"sideEffect": "none",
|
|
747
|
+
"idempotency": "none",
|
|
748
|
+
"dedupeWindowMs": 0,
|
|
749
|
+
"input": {
|
|
750
|
+
"properties": {
|
|
751
|
+
"cursor": {
|
|
752
|
+
"type": "string",
|
|
753
|
+
"description": "Opaque cursor returned by the preceding recommendations page",
|
|
754
|
+
"minLength": 1,
|
|
755
|
+
"maxLength": 4096
|
|
756
|
+
},
|
|
757
|
+
"limit": {
|
|
758
|
+
"type": "number",
|
|
759
|
+
"description": "Maximum recommended profiles to project",
|
|
760
|
+
"minimum": 1,
|
|
761
|
+
"maximum": 100
|
|
762
|
+
},
|
|
763
|
+
"source": {
|
|
764
|
+
"type": "string",
|
|
765
|
+
"description": "Exact recommended-connections surface",
|
|
766
|
+
"enum": [
|
|
767
|
+
"all"
|
|
768
|
+
]
|
|
769
|
+
}
|
|
770
|
+
},
|
|
771
|
+
"required": [
|
|
772
|
+
"source"
|
|
773
|
+
]
|
|
774
|
+
},
|
|
775
|
+
"webSession": {
|
|
776
|
+
"site": "linkedin",
|
|
777
|
+
"action": "relationships.recommendations.read",
|
|
778
|
+
"contractVersion": 1,
|
|
779
|
+
"timeoutMs": 60000,
|
|
780
|
+
"maxOutputBytes": 4194304
|
|
781
|
+
}
|
|
782
|
+
},
|
|
783
|
+
"replies.create": {
|
|
784
|
+
"description": "Capture-required contract reservation: create one confirmed LinkedIn comment reply after exact actor, root, parent, and returned-reply bindings are captured and reviewed.",
|
|
785
|
+
"risk": "R3",
|
|
786
|
+
"sideEffect": "Publishes one externally visible reply to the exact confirmed LinkedIn comment.",
|
|
787
|
+
"idempotency": "local-at-most-once",
|
|
788
|
+
"dedupeWindowMs": 86400000,
|
|
789
|
+
"input": {
|
|
790
|
+
"properties": {
|
|
791
|
+
"body": {
|
|
792
|
+
"type": "string",
|
|
793
|
+
"description": "Exact reply text",
|
|
794
|
+
"minLength": 1,
|
|
795
|
+
"maxLength": 500
|
|
796
|
+
},
|
|
797
|
+
"comment_urn": {
|
|
798
|
+
"type": "string",
|
|
799
|
+
"description": "Exact parent comment URN",
|
|
800
|
+
"minLength": 1,
|
|
801
|
+
"maxLength": 1000
|
|
802
|
+
},
|
|
803
|
+
"post_urn": {
|
|
804
|
+
"type": "string",
|
|
805
|
+
"description": "Exact root LinkedIn share or UGC-post URN",
|
|
806
|
+
"minLength": 1,
|
|
807
|
+
"maxLength": 500
|
|
808
|
+
}
|
|
809
|
+
},
|
|
810
|
+
"required": [
|
|
811
|
+
"post_urn",
|
|
812
|
+
"comment_urn",
|
|
813
|
+
"body"
|
|
814
|
+
]
|
|
815
|
+
},
|
|
816
|
+
"webSession": {
|
|
817
|
+
"site": "linkedin",
|
|
818
|
+
"action": "replies.create",
|
|
819
|
+
"contractVersion": 1,
|
|
820
|
+
"timeoutMs": 60000,
|
|
821
|
+
"maxOutputBytes": 2097152
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
}
|