@framers/agentos 0.1.39 → 0.1.41
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/README.md +10 -8
- package/dist/channels/types.d.ts +1 -1
- package/dist/channels/types.d.ts.map +1 -1
- package/dist/config/extension-secrets.json +216 -0
- package/dist/core/llm/auth/FacebookOAuthFlow.d.ts +31 -0
- package/dist/core/llm/auth/FacebookOAuthFlow.d.ts.map +1 -0
- package/dist/core/llm/auth/FacebookOAuthFlow.js +123 -0
- package/dist/core/llm/auth/FacebookOAuthFlow.js.map +1 -0
- package/dist/core/llm/auth/LinkedInOAuthFlow.d.ts +28 -0
- package/dist/core/llm/auth/LinkedInOAuthFlow.d.ts.map +1 -0
- package/dist/core/llm/auth/LinkedInOAuthFlow.js +83 -0
- package/dist/core/llm/auth/LinkedInOAuthFlow.js.map +1 -0
- package/dist/core/llm/auth/OpenAIOAuthFlow.d.ts.map +1 -1
- package/dist/core/llm/auth/OpenAIOAuthFlow.js +9 -4
- package/dist/core/llm/auth/OpenAIOAuthFlow.js.map +1 -1
- package/dist/core/llm/auth/index.d.ts +4 -0
- package/dist/core/llm/auth/index.d.ts.map +1 -1
- package/dist/core/llm/auth/index.js +2 -0
- package/dist/core/llm/auth/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -212,7 +212,7 @@ for await (const chunk of agent.processRequest({
|
|
|
212
212
|
| |
|
|
213
213
|
| +-------------------+ +-------------------+ +----------------+ |
|
|
214
214
|
| | Extension Manager | | Channel Router | | Call Manager | |
|
|
215
|
-
| | (12+ kinds) | | (
|
|
215
|
+
| | (12+ kinds) | | (40 platforms) | | (Voice/Tel.) | |
|
|
216
216
|
| +-------------------+ +-------------------+ +----------------+ |
|
|
217
217
|
| |
|
|
218
218
|
| +-------------------+ +-------------------+ +----------------+ |
|
|
@@ -761,18 +761,18 @@ See [`docs/HUMAN_IN_THE_LOOP.md`](docs/HUMAN_IN_THE_LOOP.md) for the full HITL s
|
|
|
761
761
|
|
|
762
762
|
**Location:** `src/channels/`
|
|
763
763
|
|
|
764
|
-
Unified adapters for
|
|
764
|
+
Unified adapters for 40 external messaging and social platforms.
|
|
765
765
|
|
|
766
|
-
**
|
|
766
|
+
**40 supported platforms:**
|
|
767
767
|
|
|
768
768
|
| Priority | Platforms |
|
|
769
769
|
|----------|-----------|
|
|
770
|
-
| **P0** (Core) | Telegram, WhatsApp, Discord, Slack, Webchat |
|
|
771
|
-
| **P1** | Signal, iMessage, Google Chat, Microsoft Teams |
|
|
772
|
-
| **P2** | Matrix, Zalo, Email, SMS |
|
|
773
|
-
| **P3** | Nostr, Twitch, Line, Feishu, Mattermost, Nextcloud Talk, Tlon |
|
|
770
|
+
| **P0** (Core + Social) | Telegram, WhatsApp, Discord, Slack, Webchat, Twitter/X, Instagram, Reddit, YouTube, LinkedIn, Facebook, Threads, Bluesky |
|
|
771
|
+
| **P1** | Signal, iMessage, Google Chat, Microsoft Teams, Pinterest, TikTok, Mastodon, Dev.to, Hashnode, Medium, WordPress |
|
|
772
|
+
| **P2** | Matrix, Zalo, Email, SMS, Farcaster, Lemmy, Google Business |
|
|
773
|
+
| **P3** | Nostr, Twitch, Line, Feishu, Mattermost, Nextcloud Talk, Tlon, IRC, Zalo Personal |
|
|
774
774
|
|
|
775
|
-
**
|
|
775
|
+
**29 capability flags:**
|
|
776
776
|
|
|
777
777
|
Each adapter declares its capabilities, allowing consumers to check before attempting unsupported actions:
|
|
778
778
|
|
|
@@ -781,6 +781,8 @@ text, rich_text, images, video, audio, voice_notes, documents,
|
|
|
781
781
|
stickers, reactions, threads, typing_indicator, read_receipts,
|
|
782
782
|
group_chat, channels, buttons, inline_keyboard, embeds,
|
|
783
783
|
mentions, editing, deletion
|
|
784
|
+
stories, reels, hashtags, polls, carousel,
|
|
785
|
+
engagement_metrics, scheduling, dm_automation, content_discovery
|
|
784
786
|
```
|
|
785
787
|
|
|
786
788
|
**IChannelAdapter** -- Unified interface for bidirectional messaging:
|
package/dist/channels/types.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* concrete adapters can use any string, but well-known platforms get
|
|
14
14
|
* first-class type support.
|
|
15
15
|
*/
|
|
16
|
-
export type ChannelPlatform = 'telegram' | 'whatsapp' | 'discord' | 'slack' | 'webchat' | 'signal' | 'imessage' | 'google-chat' | 'teams' | 'matrix' | 'zalo' | 'email' | 'sms' | 'nostr' | 'twitch' | 'line' | 'feishu' | 'mattermost' | 'nextcloud-talk' | 'tlon' | 'irc' | 'zalouser' | 'twitter' | 'instagram' | 'reddit' | 'pinterest' | 'tiktok' | 'youtube' | (string & {});
|
|
16
|
+
export type ChannelPlatform = 'telegram' | 'whatsapp' | 'discord' | 'slack' | 'webchat' | 'signal' | 'imessage' | 'google-chat' | 'teams' | 'matrix' | 'zalo' | 'email' | 'sms' | 'nostr' | 'twitch' | 'line' | 'feishu' | 'mattermost' | 'nextcloud-talk' | 'tlon' | 'irc' | 'zalouser' | 'twitter' | 'instagram' | 'reddit' | 'pinterest' | 'tiktok' | 'youtube' | 'linkedin' | 'facebook' | 'threads' | 'bluesky' | 'mastodon' | 'devto' | 'hashnode' | 'medium' | 'wordpress' | 'farcaster' | 'lemmy' | 'google-business' | (string & {});
|
|
17
17
|
/**
|
|
18
18
|
* Capabilities that a channel adapter can declare. Consumers can check
|
|
19
19
|
* capabilities before attempting actions that not all platforms support.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -878,5 +878,221 @@
|
|
|
878
878
|
"docsUrl": "https://developers.facebook.com/apps/",
|
|
879
879
|
"providers": ["instagram"],
|
|
880
880
|
"optional": true
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"id": "linkedin.accessToken",
|
|
884
|
+
"label": "LinkedIn Access Token",
|
|
885
|
+
"description": "Access token for LinkedIn API calls (post, comment, analytics).",
|
|
886
|
+
"envVar": "LINKEDIN_ACCESS_TOKEN",
|
|
887
|
+
"docsUrl": "https://www.linkedin.com/developers/apps",
|
|
888
|
+
"providers": ["linkedin"],
|
|
889
|
+
"optional": true
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"id": "linkedin.clientId",
|
|
893
|
+
"label": "LinkedIn OAuth Client ID",
|
|
894
|
+
"description": "Client ID for LinkedIn OAuth login flow.",
|
|
895
|
+
"envVar": "LINKEDIN_CLIENT_ID",
|
|
896
|
+
"docsUrl": "https://www.linkedin.com/developers/apps",
|
|
897
|
+
"providers": ["linkedin"],
|
|
898
|
+
"optional": true
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"id": "linkedin.clientSecret",
|
|
902
|
+
"label": "LinkedIn OAuth Client Secret",
|
|
903
|
+
"description": "Client secret for LinkedIn OAuth login flow.",
|
|
904
|
+
"envVar": "LINKEDIN_CLIENT_SECRET",
|
|
905
|
+
"docsUrl": "https://www.linkedin.com/developers/apps",
|
|
906
|
+
"providers": ["linkedin"],
|
|
907
|
+
"optional": true
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
"id": "facebook.accessToken",
|
|
911
|
+
"label": "Facebook Access Token",
|
|
912
|
+
"description": "Page/user access token for Facebook Graph API calls.",
|
|
913
|
+
"envVar": "FACEBOOK_ACCESS_TOKEN",
|
|
914
|
+
"docsUrl": "https://developers.facebook.com/tools/explorer/",
|
|
915
|
+
"providers": ["facebook"],
|
|
916
|
+
"optional": true
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"id": "threads.accessToken",
|
|
920
|
+
"label": "Threads Access Token",
|
|
921
|
+
"description": "Access token for Threads API (via Meta Graph).",
|
|
922
|
+
"envVar": "THREADS_ACCESS_TOKEN",
|
|
923
|
+
"docsUrl": "https://developers.facebook.com/docs/threads",
|
|
924
|
+
"providers": ["threads"],
|
|
925
|
+
"optional": true
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
"id": "bluesky.handle",
|
|
929
|
+
"label": "Bluesky Handle",
|
|
930
|
+
"description": "AT Protocol handle (for example, yourname.bsky.social).",
|
|
931
|
+
"envVar": "BLUESKY_HANDLE",
|
|
932
|
+
"docsUrl": "https://bsky.app/settings/account",
|
|
933
|
+
"providers": ["bluesky"],
|
|
934
|
+
"optional": true
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"id": "bluesky.appPassword",
|
|
938
|
+
"label": "Bluesky App Password",
|
|
939
|
+
"description": "App-specific password for Bluesky API authentication.",
|
|
940
|
+
"envVar": "BLUESKY_APP_PASSWORD",
|
|
941
|
+
"docsUrl": "https://bsky.app/settings/app-passwords",
|
|
942
|
+
"providers": ["bluesky"],
|
|
943
|
+
"optional": true
|
|
944
|
+
},
|
|
945
|
+
{
|
|
946
|
+
"id": "mastodon.accessToken",
|
|
947
|
+
"label": "Mastodon Access Token",
|
|
948
|
+
"description": "Access token for Mastodon API calls.",
|
|
949
|
+
"envVar": "MASTODON_ACCESS_TOKEN",
|
|
950
|
+
"docsUrl": "https://docs.joinmastodon.org/client/token/",
|
|
951
|
+
"providers": ["mastodon"],
|
|
952
|
+
"optional": true
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"id": "mastodon.instanceUrl",
|
|
956
|
+
"label": "Mastodon Instance URL",
|
|
957
|
+
"description": "Mastodon instance URL (for example, https://mastodon.social).",
|
|
958
|
+
"envVar": "MASTODON_INSTANCE_URL",
|
|
959
|
+
"docsUrl": "https://docs.joinmastodon.org/",
|
|
960
|
+
"providers": ["mastodon"],
|
|
961
|
+
"optional": true
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
"id": "farcaster.neynarApiKey",
|
|
965
|
+
"label": "Farcaster Neynar API Key",
|
|
966
|
+
"description": "API key for Neynar Farcaster API.",
|
|
967
|
+
"envVar": "FARCASTER_NEYNAR_API_KEY",
|
|
968
|
+
"docsUrl": "https://docs.neynar.com/docs/introduction",
|
|
969
|
+
"providers": ["farcaster"],
|
|
970
|
+
"optional": true
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"id": "farcaster.signerUuid",
|
|
974
|
+
"label": "Farcaster Signer UUID",
|
|
975
|
+
"description": "Signer UUID used for authenticated cast publishing via Neynar.",
|
|
976
|
+
"envVar": "FARCASTER_SIGNER_UUID",
|
|
977
|
+
"docsUrl": "https://docs.neynar.com/docs/post-a-cast",
|
|
978
|
+
"providers": ["farcaster"],
|
|
979
|
+
"optional": true
|
|
980
|
+
},
|
|
981
|
+
{
|
|
982
|
+
"id": "farcaster.fid",
|
|
983
|
+
"label": "Farcaster FID",
|
|
984
|
+
"description": "Optional Farcaster user FID for account-scoped operations.",
|
|
985
|
+
"envVar": "FARCASTER_FID",
|
|
986
|
+
"docsUrl": "https://docs.neynar.com/docs/farcaster-user-profile",
|
|
987
|
+
"providers": ["farcaster"],
|
|
988
|
+
"optional": true
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
"id": "lemmy.instanceUrl",
|
|
992
|
+
"label": "Lemmy Instance URL",
|
|
993
|
+
"description": "Base URL for the Lemmy instance.",
|
|
994
|
+
"envVar": "LEMMY_INSTANCE_URL",
|
|
995
|
+
"docsUrl": "https://join-lemmy.org/docs",
|
|
996
|
+
"providers": ["lemmy"],
|
|
997
|
+
"optional": true
|
|
998
|
+
},
|
|
999
|
+
{
|
|
1000
|
+
"id": "lemmy.username",
|
|
1001
|
+
"label": "Lemmy Username",
|
|
1002
|
+
"description": "Username for Lemmy account authentication.",
|
|
1003
|
+
"envVar": "LEMMY_USERNAME",
|
|
1004
|
+
"docsUrl": "https://join-lemmy.org/",
|
|
1005
|
+
"providers": ["lemmy"],
|
|
1006
|
+
"optional": true
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"id": "lemmy.password",
|
|
1010
|
+
"label": "Lemmy Password",
|
|
1011
|
+
"description": "Password for Lemmy account authentication.",
|
|
1012
|
+
"envVar": "LEMMY_PASSWORD",
|
|
1013
|
+
"docsUrl": "https://join-lemmy.org/",
|
|
1014
|
+
"providers": ["lemmy"],
|
|
1015
|
+
"optional": true
|
|
1016
|
+
},
|
|
1017
|
+
{
|
|
1018
|
+
"id": "google.accessToken",
|
|
1019
|
+
"label": "Google OAuth Access Token",
|
|
1020
|
+
"description": "OAuth access token for Google Business Profile API calls.",
|
|
1021
|
+
"envVar": "GOOGLE_ACCESS_TOKEN",
|
|
1022
|
+
"docsUrl": "https://developers.google.com/my-business/content/prereqs",
|
|
1023
|
+
"providers": ["google-business"],
|
|
1024
|
+
"optional": true
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"id": "google.businessAccountId",
|
|
1028
|
+
"label": "Google Business Account ID",
|
|
1029
|
+
"description": "Optional account ID used to scope Google Business operations.",
|
|
1030
|
+
"envVar": "GOOGLE_BUSINESS_ACCOUNT_ID",
|
|
1031
|
+
"docsUrl": "https://developers.google.com/my-business/content/location-data",
|
|
1032
|
+
"providers": ["google-business"],
|
|
1033
|
+
"optional": true
|
|
1034
|
+
},
|
|
1035
|
+
{
|
|
1036
|
+
"id": "google.businessLocationId",
|
|
1037
|
+
"label": "Google Business Location ID",
|
|
1038
|
+
"description": "Optional location ID used to scope Google Business operations.",
|
|
1039
|
+
"envVar": "GOOGLE_BUSINESS_LOCATION_ID",
|
|
1040
|
+
"docsUrl": "https://developers.google.com/my-business/content/location-data",
|
|
1041
|
+
"providers": ["google-business"],
|
|
1042
|
+
"optional": true
|
|
1043
|
+
},
|
|
1044
|
+
{
|
|
1045
|
+
"id": "devto.apiKey",
|
|
1046
|
+
"label": "Dev.to API Key",
|
|
1047
|
+
"description": "API key for Dev.to publishing via blog-publisher.",
|
|
1048
|
+
"envVar": "DEVTO_API_KEY",
|
|
1049
|
+
"docsUrl": "https://developers.forem.com/api",
|
|
1050
|
+
"providers": ["devto"],
|
|
1051
|
+
"optional": true
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"id": "hashnode.apiKey",
|
|
1055
|
+
"label": "Hashnode Personal Access Token",
|
|
1056
|
+
"description": "Personal access token for Hashnode publishing via blog-publisher.",
|
|
1057
|
+
"envVar": "HASHNODE_API_KEY",
|
|
1058
|
+
"docsUrl": "https://hashnode.com/settings/developer",
|
|
1059
|
+
"providers": ["devto"],
|
|
1060
|
+
"optional": true
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"id": "medium.accessToken",
|
|
1064
|
+
"label": "Medium Integration Token",
|
|
1065
|
+
"description": "Integration token for Medium publishing via blog-publisher.",
|
|
1066
|
+
"envVar": "MEDIUM_ACCESS_TOKEN",
|
|
1067
|
+
"docsUrl": "https://github.com/Medium/medium-api-docs",
|
|
1068
|
+
"providers": ["devto"],
|
|
1069
|
+
"optional": true
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
"id": "wordpress.apiUrl",
|
|
1073
|
+
"label": "WordPress API URL",
|
|
1074
|
+
"description": "WordPress REST API base URL (for example, https://example.com/wp-json/wp/v2).",
|
|
1075
|
+
"envVar": "WORDPRESS_API_URL",
|
|
1076
|
+
"docsUrl": "https://developer.wordpress.org/rest-api/",
|
|
1077
|
+
"providers": ["devto"],
|
|
1078
|
+
"optional": true
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
"id": "wordpress.username",
|
|
1082
|
+
"label": "WordPress Username",
|
|
1083
|
+
"description": "Username used for WordPress application-password authentication.",
|
|
1084
|
+
"envVar": "WORDPRESS_USERNAME",
|
|
1085
|
+
"docsUrl": "https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/",
|
|
1086
|
+
"providers": ["devto"],
|
|
1087
|
+
"optional": true
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
"id": "wordpress.appPassword",
|
|
1091
|
+
"label": "WordPress App Password",
|
|
1092
|
+
"description": "Application password for WordPress REST API authentication.",
|
|
1093
|
+
"envVar": "WORDPRESS_APP_PASSWORD",
|
|
1094
|
+
"docsUrl": "https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/",
|
|
1095
|
+
"providers": ["devto"],
|
|
1096
|
+
"optional": true
|
|
881
1097
|
}
|
|
882
1098
|
]
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Facebook/Meta OAuth 2.0 authorization code flow.
|
|
3
|
+
*
|
|
4
|
+
* Exchanges short-lived user tokens for long-lived tokens and stores page
|
|
5
|
+
* metadata when available to simplify page-posting setup.
|
|
6
|
+
*
|
|
7
|
+
* @module agentos/core/llm/auth/FacebookOAuthFlow
|
|
8
|
+
*/
|
|
9
|
+
import { BrowserOAuthFlow, type BrowserOAuthConfig, type BrowserOAuthFlowOptions } from './BrowserOAuthFlow.js';
|
|
10
|
+
import type { OAuthTokenSet } from './types.js';
|
|
11
|
+
export interface FacebookOAuthFlowOptions extends BrowserOAuthFlowOptions {
|
|
12
|
+
/** Meta/Facebook App ID. Falls back to META_APP_ID or FACEBOOK_APP_ID. */
|
|
13
|
+
appId?: string;
|
|
14
|
+
/** Meta/Facebook App Secret. Falls back to META_APP_SECRET or FACEBOOK_APP_SECRET. */
|
|
15
|
+
appSecret?: string;
|
|
16
|
+
/** Override requested scopes. */
|
|
17
|
+
scopes?: string[];
|
|
18
|
+
}
|
|
19
|
+
export declare class FacebookOAuthFlow extends BrowserOAuthFlow {
|
|
20
|
+
readonly providerId = "facebook";
|
|
21
|
+
private readonly appId;
|
|
22
|
+
private readonly appSecret;
|
|
23
|
+
private readonly scopes;
|
|
24
|
+
constructor(opts?: FacebookOAuthFlowOptions);
|
|
25
|
+
protected getConfig(): BrowserOAuthConfig;
|
|
26
|
+
protected exchangeCode(code: string, redirectUri: string, _codeVerifier: string): Promise<OAuthTokenSet>;
|
|
27
|
+
protected postExchange(tokens: OAuthTokenSet): Promise<OAuthTokenSet>;
|
|
28
|
+
protected refreshTokens(refreshToken: string): Promise<OAuthTokenSet>;
|
|
29
|
+
private resolvePrimaryPage;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=FacebookOAuthFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FacebookOAuthFlow.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/auth/FacebookOAuthFlow.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAchD,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,QAAQ,CAAC,UAAU,cAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEtB,IAAI,CAAC,EAAE,wBAAwB;IAmB3C,SAAS,CAAC,SAAS,IAAI,kBAAkB;cAWzB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC;cA2BA,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;cAkCpE,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YA2B7D,kBAAkB;CAiBjC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Facebook/Meta OAuth 2.0 authorization code flow.
|
|
3
|
+
*
|
|
4
|
+
* Exchanges short-lived user tokens for long-lived tokens and stores page
|
|
5
|
+
* metadata when available to simplify page-posting setup.
|
|
6
|
+
*
|
|
7
|
+
* @module agentos/core/llm/auth/FacebookOAuthFlow
|
|
8
|
+
*/
|
|
9
|
+
import { BrowserOAuthFlow, } from './BrowserOAuthFlow.js';
|
|
10
|
+
const META_AUTH_URL = 'https://www.facebook.com/v21.0/dialog/oauth';
|
|
11
|
+
const META_TOKEN_URL = 'https://graph.facebook.com/v21.0/oauth/access_token';
|
|
12
|
+
const GRAPH_API = 'https://graph.facebook.com/v21.0';
|
|
13
|
+
const DEFAULT_SCOPES = [
|
|
14
|
+
'pages_show_list',
|
|
15
|
+
'pages_read_engagement',
|
|
16
|
+
'pages_manage_posts',
|
|
17
|
+
'public_profile',
|
|
18
|
+
'email',
|
|
19
|
+
];
|
|
20
|
+
export class FacebookOAuthFlow extends BrowserOAuthFlow {
|
|
21
|
+
constructor(opts) {
|
|
22
|
+
super(opts);
|
|
23
|
+
this.providerId = 'facebook';
|
|
24
|
+
this.appId = opts?.appId ?? process.env.META_APP_ID ?? process.env.FACEBOOK_APP_ID ?? '';
|
|
25
|
+
this.appSecret =
|
|
26
|
+
opts?.appSecret ?? process.env.META_APP_SECRET ?? process.env.FACEBOOK_APP_SECRET ?? '';
|
|
27
|
+
this.scopes = opts?.scopes ?? DEFAULT_SCOPES;
|
|
28
|
+
if (!this.appId) {
|
|
29
|
+
throw new Error('Meta/Facebook App ID is required. Pass --app-id or set META_APP_ID.');
|
|
30
|
+
}
|
|
31
|
+
if (!this.appSecret) {
|
|
32
|
+
throw new Error('Meta/Facebook App Secret is required. Pass --app-secret or set META_APP_SECRET.');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
getConfig() {
|
|
36
|
+
return {
|
|
37
|
+
displayName: 'Facebook',
|
|
38
|
+
authorizationEndpoint: META_AUTH_URL,
|
|
39
|
+
tokenEndpoint: META_TOKEN_URL,
|
|
40
|
+
scopes: this.scopes,
|
|
41
|
+
clientId: this.appId,
|
|
42
|
+
clientSecret: this.appSecret,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async exchangeCode(code, redirectUri, _codeVerifier) {
|
|
46
|
+
const params = new URLSearchParams({
|
|
47
|
+
client_id: this.appId,
|
|
48
|
+
client_secret: this.appSecret,
|
|
49
|
+
redirect_uri: redirectUri,
|
|
50
|
+
code,
|
|
51
|
+
});
|
|
52
|
+
const res = await fetch(`${META_TOKEN_URL}?${params.toString()}`);
|
|
53
|
+
if (!res.ok) {
|
|
54
|
+
const body = await res.text();
|
|
55
|
+
throw new Error(`Facebook token exchange failed: ${res.status} ${body}`);
|
|
56
|
+
}
|
|
57
|
+
const data = (await res.json());
|
|
58
|
+
return {
|
|
59
|
+
accessToken: data.access_token,
|
|
60
|
+
expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async postExchange(tokens) {
|
|
64
|
+
const params = new URLSearchParams({
|
|
65
|
+
grant_type: 'fb_exchange_token',
|
|
66
|
+
client_id: this.appId,
|
|
67
|
+
client_secret: this.appSecret,
|
|
68
|
+
fb_exchange_token: tokens.accessToken,
|
|
69
|
+
});
|
|
70
|
+
const res = await fetch(`${META_TOKEN_URL}?${params.toString()}`);
|
|
71
|
+
if (res.ok) {
|
|
72
|
+
const data = (await res.json());
|
|
73
|
+
tokens = {
|
|
74
|
+
accessToken: data.access_token,
|
|
75
|
+
refreshToken: data.access_token,
|
|
76
|
+
expiresAt: Date.now() + (data.expires_in ?? 5184000) * 1000,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
const page = await this.resolvePrimaryPage(tokens.accessToken);
|
|
80
|
+
if (page) {
|
|
81
|
+
tokens.metadata = {
|
|
82
|
+
...tokens.metadata,
|
|
83
|
+
pageId: page.id,
|
|
84
|
+
pageName: page.name,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return tokens;
|
|
88
|
+
}
|
|
89
|
+
async refreshTokens(refreshToken) {
|
|
90
|
+
const params = new URLSearchParams({
|
|
91
|
+
grant_type: 'fb_exchange_token',
|
|
92
|
+
client_id: this.appId,
|
|
93
|
+
client_secret: this.appSecret,
|
|
94
|
+
fb_exchange_token: refreshToken,
|
|
95
|
+
});
|
|
96
|
+
const res = await fetch(`${META_TOKEN_URL}?${params.toString()}`);
|
|
97
|
+
if (!res.ok) {
|
|
98
|
+
const body = await res.text();
|
|
99
|
+
throw new Error(`Facebook token refresh failed: ${res.status} ${body}`);
|
|
100
|
+
}
|
|
101
|
+
const data = (await res.json());
|
|
102
|
+
return {
|
|
103
|
+
accessToken: data.access_token,
|
|
104
|
+
refreshToken: data.access_token,
|
|
105
|
+
expiresAt: Date.now() + (data.expires_in ?? 5184000) * 1000,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
async resolvePrimaryPage(accessToken) {
|
|
109
|
+
try {
|
|
110
|
+
const res = await fetch(`${GRAPH_API}/me/accounts?fields=id,name&access_token=${encodeURIComponent(accessToken)}`);
|
|
111
|
+
if (!res.ok)
|
|
112
|
+
return undefined;
|
|
113
|
+
const data = (await res.json());
|
|
114
|
+
if (!Array.isArray(data.data) || data.data.length === 0)
|
|
115
|
+
return undefined;
|
|
116
|
+
return data.data[0];
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=FacebookOAuthFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FacebookOAuthFlow.js","sourceRoot":"","sources":["../../../../src/core/llm/auth/FacebookOAuthFlow.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,aAAa,GAAG,6CAA6C,CAAC;AACpE,MAAM,cAAc,GAAG,qDAAqD,CAAC;AAC7E,MAAM,SAAS,GAAG,kCAAkC,CAAC;AAErD,MAAM,cAAc,GAAG;IACrB,iBAAiB;IACjB,uBAAuB;IACvB,oBAAoB;IACpB,gBAAgB;IAChB,OAAO;CACR,CAAC;AAWF,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IAMrD,YAAY,IAA+B;QACzC,KAAK,CAAC,IAAI,CAAC,CAAC;QANL,eAAU,GAAG,UAAU,CAAC;QAO/B,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QACzF,IAAI,CAAC,SAAS;YACZ,IAAI,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAC1F,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,cAAc,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;IACH,CAAC;IAES,SAAS;QACjB,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,qBAAqB,EAAE,aAAa;YACpC,aAAa,EAAE,cAAc;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,YAAY,EAAE,IAAI,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,IAAY,EACZ,WAAmB,EACnB,aAAqB;QAErB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,YAAY,EAAE,WAAW;YACzB,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAI7B,CAAC;QAEF,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,IAAI;SACzD,CAAC;IACJ,CAAC;IAEkB,KAAK,CAAC,YAAY,CAAC,MAAqB;QACzD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,UAAU,EAAE,mBAAmB;YAC/B,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,iBAAiB,EAAE,MAAM,CAAC,WAAW;SACtC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAI7B,CAAC;YACF,MAAM,GAAG;gBACP,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,IAAI;aAC5D,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,QAAQ,GAAG;gBAChB,GAAG,MAAM,CAAC,QAAQ;gBAClB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;aACpB,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,YAAoB;QAChD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,UAAU,EAAE,mBAAmB;YAC/B,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAI7B,CAAC;QAEF,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,IAAI;SAC5D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,WAAmB;QAEnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,SAAS,4CAA4C,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAC1F,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,SAAS,CAAC;YAC9B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE7B,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview LinkedIn OAuth 2.0 authorization code flow with PKCE.
|
|
3
|
+
*
|
|
4
|
+
* Supports token refresh when a refresh token is issued for the app/scopes.
|
|
5
|
+
*
|
|
6
|
+
* @module agentos/core/llm/auth/LinkedInOAuthFlow
|
|
7
|
+
*/
|
|
8
|
+
import { BrowserOAuthFlow, type BrowserOAuthConfig, type BrowserOAuthFlowOptions } from './BrowserOAuthFlow.js';
|
|
9
|
+
import type { OAuthTokenSet } from './types.js';
|
|
10
|
+
export interface LinkedInOAuthFlowOptions extends BrowserOAuthFlowOptions {
|
|
11
|
+
/** LinkedIn OAuth Client ID. Falls back to LINKEDIN_CLIENT_ID env var. */
|
|
12
|
+
clientId?: string;
|
|
13
|
+
/** LinkedIn OAuth Client Secret. Falls back to LINKEDIN_CLIENT_SECRET env var. */
|
|
14
|
+
clientSecret?: string;
|
|
15
|
+
/** Override requested scopes. */
|
|
16
|
+
scopes?: string[];
|
|
17
|
+
}
|
|
18
|
+
export declare class LinkedInOAuthFlow extends BrowserOAuthFlow {
|
|
19
|
+
readonly providerId = "linkedin";
|
|
20
|
+
private readonly clientId;
|
|
21
|
+
private readonly clientSecret;
|
|
22
|
+
private readonly scopes;
|
|
23
|
+
constructor(opts?: LinkedInOAuthFlowOptions);
|
|
24
|
+
protected getConfig(): BrowserOAuthConfig;
|
|
25
|
+
protected exchangeCode(code: string, redirectUri: string, codeVerifier: string): Promise<OAuthTokenSet>;
|
|
26
|
+
protected refreshTokens(refreshToken: string): Promise<OAuthTokenSet>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=LinkedInOAuthFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkedInOAuthFlow.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/auth/LinkedInOAuthFlow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,QAAQ,CAAC,UAAU,cAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEtB,IAAI,CAAC,EAAE,wBAAwB;IAkB3C,SAAS,CAAC,SAAS,IAAI,kBAAkB;cAWzB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC;cAgCT,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CA6B5E"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview LinkedIn OAuth 2.0 authorization code flow with PKCE.
|
|
3
|
+
*
|
|
4
|
+
* Supports token refresh when a refresh token is issued for the app/scopes.
|
|
5
|
+
*
|
|
6
|
+
* @module agentos/core/llm/auth/LinkedInOAuthFlow
|
|
7
|
+
*/
|
|
8
|
+
import { BrowserOAuthFlow, } from './BrowserOAuthFlow.js';
|
|
9
|
+
const LINKEDIN_AUTH_URL = 'https://www.linkedin.com/oauth/v2/authorization';
|
|
10
|
+
const LINKEDIN_TOKEN_URL = 'https://www.linkedin.com/oauth/v2/accessToken';
|
|
11
|
+
const DEFAULT_SCOPES = ['openid', 'profile', 'email', 'w_member_social'];
|
|
12
|
+
export class LinkedInOAuthFlow extends BrowserOAuthFlow {
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
super(opts);
|
|
15
|
+
this.providerId = 'linkedin';
|
|
16
|
+
this.clientId = opts?.clientId ?? process.env.LINKEDIN_CLIENT_ID ?? '';
|
|
17
|
+
this.clientSecret = opts?.clientSecret ?? process.env.LINKEDIN_CLIENT_SECRET ?? '';
|
|
18
|
+
this.scopes = opts?.scopes ?? DEFAULT_SCOPES;
|
|
19
|
+
if (!this.clientId) {
|
|
20
|
+
throw new Error('LinkedIn OAuth Client ID is required. Pass --client-id or set LINKEDIN_CLIENT_ID.');
|
|
21
|
+
}
|
|
22
|
+
if (!this.clientSecret) {
|
|
23
|
+
throw new Error('LinkedIn OAuth Client Secret is required. Pass --client-secret or set LINKEDIN_CLIENT_SECRET.');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
getConfig() {
|
|
27
|
+
return {
|
|
28
|
+
displayName: 'LinkedIn',
|
|
29
|
+
authorizationEndpoint: LINKEDIN_AUTH_URL,
|
|
30
|
+
tokenEndpoint: LINKEDIN_TOKEN_URL,
|
|
31
|
+
scopes: this.scopes,
|
|
32
|
+
clientId: this.clientId,
|
|
33
|
+
clientSecret: this.clientSecret,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async exchangeCode(code, redirectUri, codeVerifier) {
|
|
37
|
+
const res = await fetch(LINKEDIN_TOKEN_URL, {
|
|
38
|
+
method: 'POST',
|
|
39
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
40
|
+
body: new URLSearchParams({
|
|
41
|
+
grant_type: 'authorization_code',
|
|
42
|
+
code,
|
|
43
|
+
redirect_uri: redirectUri,
|
|
44
|
+
client_id: this.clientId,
|
|
45
|
+
client_secret: this.clientSecret,
|
|
46
|
+
code_verifier: codeVerifier,
|
|
47
|
+
}).toString(),
|
|
48
|
+
});
|
|
49
|
+
if (!res.ok) {
|
|
50
|
+
const body = await res.text();
|
|
51
|
+
throw new Error(`LinkedIn token exchange failed: ${res.status} ${body}`);
|
|
52
|
+
}
|
|
53
|
+
const data = (await res.json());
|
|
54
|
+
return {
|
|
55
|
+
accessToken: data.access_token,
|
|
56
|
+
refreshToken: data.refresh_token,
|
|
57
|
+
expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async refreshTokens(refreshToken) {
|
|
61
|
+
const res = await fetch(LINKEDIN_TOKEN_URL, {
|
|
62
|
+
method: 'POST',
|
|
63
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
64
|
+
body: new URLSearchParams({
|
|
65
|
+
grant_type: 'refresh_token',
|
|
66
|
+
refresh_token: refreshToken,
|
|
67
|
+
client_id: this.clientId,
|
|
68
|
+
client_secret: this.clientSecret,
|
|
69
|
+
}).toString(),
|
|
70
|
+
});
|
|
71
|
+
if (!res.ok) {
|
|
72
|
+
const body = await res.text();
|
|
73
|
+
throw new Error(`LinkedIn token refresh failed: ${res.status} ${body}`);
|
|
74
|
+
}
|
|
75
|
+
const data = (await res.json());
|
|
76
|
+
return {
|
|
77
|
+
accessToken: data.access_token,
|
|
78
|
+
refreshToken: data.refresh_token,
|
|
79
|
+
expiresAt: Date.now() + (data.expires_in ?? 3600) * 1000,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=LinkedInOAuthFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkedInOAuthFlow.js","sourceRoot":"","sources":["../../../../src/core/llm/auth/LinkedInOAuthFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIOAuthFlow.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/auth/OpenAIOAuthFlow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenAIOAuthFlow.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/auth/OpenAIOAuthFlow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAC;AA2BpB,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,qBAAa,eAAgB,YAAW,UAAU;IAChD,QAAQ,CAAC,UAAU,YAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsD;IACjF,OAAO,CAAC,cAAc,CAAuC;gBAEjD,IAAI,CAAC,EAAE,sBAAsB;IAMzC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IAsG5C;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAoC5D;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIvC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAsBxC"}
|
|
@@ -21,6 +21,11 @@ const AUTH_BASE_URL = 'https://auth.openai.com';
|
|
|
21
21
|
const REDIRECT_URI = 'http://localhost:1455/auth/callback';
|
|
22
22
|
/** Verification URL shown to the user. */
|
|
23
23
|
const VERIFICATION_URL = 'https://platform.openai.com/device';
|
|
24
|
+
/** Common headers for all auth requests — User-Agent required to bypass Cloudflare. */
|
|
25
|
+
const AUTH_HEADERS = {
|
|
26
|
+
'User-Agent': 'wunderland-cli/1.0 (OpenAI OAuth; +https://wunderland.sh)',
|
|
27
|
+
'Accept': 'application/json',
|
|
28
|
+
};
|
|
24
29
|
/** Buffer in ms before expiry to trigger refresh (5 minutes). */
|
|
25
30
|
const REFRESH_BUFFER_MS = 5 * 60 * 1000;
|
|
26
31
|
/** Maximum time to wait for user to authorize (15 minutes). */
|
|
@@ -41,7 +46,7 @@ export class OpenAIOAuthFlow {
|
|
|
41
46
|
// Step 1: Request device code
|
|
42
47
|
const deviceRes = await fetch(`${AUTH_BASE_URL}/deviceauth/usercode`, {
|
|
43
48
|
method: 'POST',
|
|
44
|
-
headers: { 'Content-Type': 'application/json' },
|
|
49
|
+
headers: { ...AUTH_HEADERS, 'Content-Type': 'application/json' },
|
|
45
50
|
body: JSON.stringify({ client_id: this.clientId }),
|
|
46
51
|
});
|
|
47
52
|
if (!deviceRes.ok) {
|
|
@@ -61,7 +66,7 @@ export class OpenAIOAuthFlow {
|
|
|
61
66
|
await sleep(pollIntervalMs);
|
|
62
67
|
const pollRes = await fetch(`${AUTH_BASE_URL}/deviceauth/token`, {
|
|
63
68
|
method: 'POST',
|
|
64
|
-
headers: { 'Content-Type': 'application/json' },
|
|
69
|
+
headers: { ...AUTH_HEADERS, 'Content-Type': 'application/json' },
|
|
65
70
|
body: JSON.stringify({ device_auth_id, user_code }),
|
|
66
71
|
});
|
|
67
72
|
if (pollRes.ok) {
|
|
@@ -88,7 +93,7 @@ export class OpenAIOAuthFlow {
|
|
|
88
93
|
// Step 3: Exchange authorization code for tokens
|
|
89
94
|
const tokenRes = await fetch(`${AUTH_BASE_URL}/oauth/token`, {
|
|
90
95
|
method: 'POST',
|
|
91
|
-
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
96
|
+
headers: { ...AUTH_HEADERS, 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
92
97
|
body: new URLSearchParams({
|
|
93
98
|
grant_type: 'authorization_code',
|
|
94
99
|
code: authCode,
|
|
@@ -119,7 +124,7 @@ export class OpenAIOAuthFlow {
|
|
|
119
124
|
}
|
|
120
125
|
const res = await fetch(`${AUTH_BASE_URL}/oauth/token`, {
|
|
121
126
|
method: 'POST',
|
|
122
|
-
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
127
|
+
headers: { ...AUTH_HEADERS, 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
123
128
|
body: new URLSearchParams({
|
|
124
129
|
grant_type: 'refresh_token',
|
|
125
130
|
refresh_token: tokens.refreshToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIOAuthFlow.js","sourceRoot":"","sources":["../../../../src/core/llm/auth/OpenAIOAuthFlow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,2CAA2C;AAC3C,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;AAExD,4BAA4B;AAC5B,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEhD,mDAAmD;AACnD,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAE3D,0CAA0C;AAC1C,MAAM,gBAAgB,GAAG,oCAAoC,CAAC;AAE9D,iEAAiE;AACjE,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,+DAA+D;AAC/D,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAS5C,MAAM,OAAO,eAAe;IAO1B,YAAY,IAA6B;QANhC,eAAU,GAAG,QAAQ,CAAC;QAIvB,mBAAc,GAAkC,IAAI,CAAC;QAG3D,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,cAAc,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,gBAAgB,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,iBAAiB,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY;QAChB,8BAA8B;QAC9B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,sBAAsB,EAAE;YACpE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;
|
|
1
|
+
{"version":3,"file":"OpenAIOAuthFlow.js","sourceRoot":"","sources":["../../../../src/core/llm/auth/OpenAIOAuthFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ export { TwitterOAuthFlow } from './TwitterOAuthFlow.js';
|
|
|
12
12
|
export type { TwitterOAuthFlowOptions } from './TwitterOAuthFlow.js';
|
|
13
13
|
export { InstagramOAuthFlow } from './InstagramOAuthFlow.js';
|
|
14
14
|
export type { InstagramOAuthFlowOptions } from './InstagramOAuthFlow.js';
|
|
15
|
+
export { LinkedInOAuthFlow } from './LinkedInOAuthFlow.js';
|
|
16
|
+
export type { LinkedInOAuthFlowOptions } from './LinkedInOAuthFlow.js';
|
|
17
|
+
export { FacebookOAuthFlow } from './FacebookOAuthFlow.js';
|
|
18
|
+
export type { FacebookOAuthFlowOptions } from './FacebookOAuthFlow.js';
|
|
15
19
|
export { isTokenValid, openBrowser } from './utils.js';
|
|
16
20
|
export { startCallbackServer } from './callback-server.js';
|
|
17
21
|
export type { CallbackResult, CallbackServerOptions } from './callback-server.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/auth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/auth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -8,6 +8,8 @@ export { OpenAIOAuthFlow } from './OpenAIOAuthFlow.js';
|
|
|
8
8
|
export { BrowserOAuthFlow } from './BrowserOAuthFlow.js';
|
|
9
9
|
export { TwitterOAuthFlow } from './TwitterOAuthFlow.js';
|
|
10
10
|
export { InstagramOAuthFlow } from './InstagramOAuthFlow.js';
|
|
11
|
+
export { LinkedInOAuthFlow } from './LinkedInOAuthFlow.js';
|
|
12
|
+
export { FacebookOAuthFlow } from './FacebookOAuthFlow.js';
|
|
11
13
|
// Utilities
|
|
12
14
|
export { isTokenValid, openBrowser } from './utils.js';
|
|
13
15
|
export { startCallbackServer } from './callback-server.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/llm/auth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,gCAAgC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/llm/auth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,gCAAgC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
|