managed-deepagents 0.5.3-dev.111 → 0.5.3-dev.112
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 +1 -12
- package/dist/channels/slack/http.d.ts.map +1 -1
- package/dist/channels/slack/http.js +3 -48
- package/dist/channels/slack/http.js.map +1 -1
- package/dist/channels/slack/index.d.ts +2 -3
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +2 -3
- package/dist/channels/slack/index.js.map +1 -1
- package/dist/connectors/mcp/index.d.ts.map +1 -1
- package/dist/connectors/mcp/index.js +5 -1
- package/dist/connectors/mcp/index.js.map +1 -1
- package/dist/connectors/mcp/load.js +3 -0
- package/dist/connectors/mcp/load.js.map +1 -1
- package/dist/connectors/tool-selection.d.ts +13 -18
- package/dist/connectors/tool-selection.d.ts.map +1 -1
- package/dist/connectors/tool-selection.js +10 -13
- package/dist/connectors/tool-selection.js.map +1 -1
- package/dist/extension.d.ts +5 -5
- package/dist/extension.js +5 -5
- package/dist/identity/credential-resolvers.d.ts +1 -13
- package/dist/identity/credential-resolvers.d.ts.map +1 -1
- package/dist/identity/credential-resolvers.js +1 -32
- package/dist/identity/credential-resolvers.js.map +1 -1
- package/dist/identity/github/credentials-store.d.ts +3 -3
- package/dist/identity/github/credentials-store.js +4 -4
- package/dist/identity/github/credentials-store.js.map +1 -1
- package/dist/identity/github/credentials.d.ts +7 -9
- package/dist/identity/github/credentials.d.ts.map +1 -1
- package/dist/identity/github/credentials.js +4 -22
- package/dist/identity/github/credentials.js.map +1 -1
- package/dist/identity/github/index.d.ts +1 -3
- package/dist/identity/github/index.d.ts.map +1 -1
- package/dist/identity/github/index.js +1 -2
- package/dist/identity/github/index.js.map +1 -1
- package/dist/identity/index.d.ts +1 -8
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +0 -11
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/options.d.ts +3 -3
- package/dist/identity/options.js +3 -9
- package/dist/identity/options.js.map +1 -1
- package/dist/identity/slack/links.d.ts +1 -2
- package/dist/identity/slack/links.d.ts.map +1 -1
- package/dist/identity/slack/links.js +1 -2
- package/dist/identity/slack/links.js.map +1 -1
- package/dist/identity/types.d.ts +8 -29
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/namespaces.d.ts +5 -177
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +1 -57
- package/dist/namespaces.js.map +1 -1
- package/dist/runtime/auth.d.ts +1 -1
- package/dist/runtime/auth.js +1 -1
- package/dist/runtime/cors.d.ts +1 -0
- package/dist/runtime/cors.d.ts.map +1 -1
- package/dist/runtime/cors.js +1 -1
- package/dist/runtime/cors.js.map +1 -1
- package/dist/runtime/credentials.d.ts +1 -1
- package/dist/runtime/credentials.js +1 -1
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +0 -69
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/index.d.ts +0 -8
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +0 -35
- package/dist/runtime/index.js.map +1 -1
- package/package.json +12 -14
- package/dist/connectors/marketplace/catalog.d.ts +0 -96
- package/dist/connectors/marketplace/catalog.d.ts.map +0 -1
- package/dist/connectors/marketplace/catalog.js +0 -213
- package/dist/connectors/marketplace/catalog.js.map +0 -1
- package/dist/connectors/marketplace/fleet-mcp.d.ts +0 -62
- package/dist/connectors/marketplace/fleet-mcp.d.ts.map +0 -1
- package/dist/connectors/marketplace/fleet-mcp.js +0 -215
- package/dist/connectors/marketplace/fleet-mcp.js.map +0 -1
- package/dist/connectors/marketplace/index.d.ts +0 -31
- package/dist/connectors/marketplace/index.d.ts.map +0 -1
- package/dist/connectors/marketplace/index.js +0 -39
- package/dist/connectors/marketplace/index.js.map +0 -1
- package/dist/connectors/marketplace/load.d.ts +0 -14
- package/dist/connectors/marketplace/load.d.ts.map +0 -1
- package/dist/connectors/marketplace/load.js +0 -206
- package/dist/connectors/marketplace/load.js.map +0 -1
- package/dist/connectors/slack/index.d.ts +0 -24
- package/dist/connectors/slack/index.d.ts.map +0 -1
- package/dist/connectors/slack/index.js +0 -64
- package/dist/connectors/slack/index.js.map +0 -1
- package/dist/connectors/toolserver/catalog.d.ts +0 -326
- package/dist/connectors/toolserver/catalog.d.ts.map +0 -1
- package/dist/connectors/toolserver/catalog.js +0 -415
- package/dist/connectors/toolserver/catalog.js.map +0 -1
- package/dist/connectors/toolserver/connectors.d.ts +0 -698
- package/dist/connectors/toolserver/connectors.d.ts.map +0 -1
- package/dist/connectors/toolserver/connectors.js +0 -13
- package/dist/connectors/toolserver/connectors.js.map +0 -1
- package/dist/connectors/toolserver/index.d.ts +0 -142
- package/dist/connectors/toolserver/index.d.ts.map +0 -1
- package/dist/connectors/toolserver/index.js +0 -105
- package/dist/connectors/toolserver/index.js.map +0 -1
- package/dist/connectors/toolserver/integrations.d.ts +0 -103
- package/dist/connectors/toolserver/integrations.d.ts.map +0 -1
- package/dist/connectors/toolserver/integrations.js +0 -288
- package/dist/connectors/toolserver/integrations.js.map +0 -1
- package/dist/connectors/toolserver/load.d.ts +0 -55
- package/dist/connectors/toolserver/load.d.ts.map +0 -1
- package/dist/connectors/toolserver/load.js +0 -289
- package/dist/connectors/toolserver/load.js.map +0 -1
- package/dist/identity/actor-subject.d.ts +0 -60
- package/dist/identity/actor-subject.d.ts.map +0 -1
- package/dist/identity/actor-subject.js +0 -107
- package/dist/identity/actor-subject.js.map +0 -1
- package/dist/identity/byo-oauth.d.ts +0 -105
- package/dist/identity/byo-oauth.d.ts.map +0 -1
- package/dist/identity/byo-oauth.js +0 -190
- package/dist/identity/byo-oauth.js.map +0 -1
- package/dist/identity/connect-inference.d.ts +0 -37
- package/dist/identity/connect-inference.d.ts.map +0 -1
- package/dist/identity/connect-inference.js +0 -53
- package/dist/identity/connect-inference.js.map +0 -1
- package/dist/identity/connect-paths.d.ts +0 -8
- package/dist/identity/connect-paths.d.ts.map +0 -1
- package/dist/identity/connect-paths.js +0 -11
- package/dist/identity/connect-paths.js.map +0 -1
- package/dist/identity/connect-provider-types.d.ts +0 -97
- package/dist/identity/connect-provider-types.d.ts.map +0 -1
- package/dist/identity/connect-provider-types.js +0 -10
- package/dist/identity/connect-provider-types.js.map +0 -1
- package/dist/identity/connect-provider.d.ts +0 -35
- package/dist/identity/connect-provider.d.ts.map +0 -1
- package/dist/identity/connect-provider.js +0 -148
- package/dist/identity/connect-provider.js.map +0 -1
- package/dist/identity/define-fleet-connect.d.ts +0 -53
- package/dist/identity/define-fleet-connect.d.ts.map +0 -1
- package/dist/identity/define-fleet-connect.js +0 -76
- package/dist/identity/define-fleet-connect.js.map +0 -1
- package/dist/identity/fleet-connect-hint.d.ts +0 -41
- package/dist/identity/fleet-connect-hint.d.ts.map +0 -1
- package/dist/identity/fleet-connect-hint.js +0 -190
- package/dist/identity/fleet-connect-hint.js.map +0 -1
- package/dist/identity/fleet-connect.d.ts +0 -93
- package/dist/identity/fleet-connect.d.ts.map +0 -1
- package/dist/identity/fleet-connect.js +0 -256
- package/dist/identity/fleet-connect.js.map +0 -1
- package/dist/identity/fleet-integration-connect.d.ts +0 -32
- package/dist/identity/fleet-integration-connect.d.ts.map +0 -1
- package/dist/identity/fleet-integration-connect.js +0 -35
- package/dist/identity/fleet-integration-connect.js.map +0 -1
- package/dist/identity/fleet.d.ts +0 -56
- package/dist/identity/fleet.d.ts.map +0 -1
- package/dist/identity/fleet.js +0 -131
- package/dist/identity/fleet.js.map +0 -1
- package/dist/identity/github/connect-http.d.ts +0 -37
- package/dist/identity/github/connect-http.d.ts.map +0 -1
- package/dist/identity/github/connect-http.js +0 -128
- package/dist/identity/github/connect-http.js.map +0 -1
- package/dist/identity/github/oauth.d.ts +0 -47
- package/dist/identity/github/oauth.d.ts.map +0 -1
- package/dist/identity/github/oauth.js +0 -124
- package/dist/identity/github/oauth.js.map +0 -1
- package/dist/identity/google/connect-http.d.ts +0 -37
- package/dist/identity/google/connect-http.d.ts.map +0 -1
- package/dist/identity/google/connect-http.js +0 -42
- package/dist/identity/google/connect-http.js.map +0 -1
- package/dist/identity/google/index.d.ts +0 -7
- package/dist/identity/google/index.d.ts.map +0 -1
- package/dist/identity/google/index.js +0 -6
- package/dist/identity/google/index.js.map +0 -1
- package/dist/identity/google/oauth.d.ts +0 -22
- package/dist/identity/google/oauth.d.ts.map +0 -1
- package/dist/identity/google/oauth.js +0 -48
- package/dist/identity/google/oauth.js.map +0 -1
- package/dist/identity/linkedin/connect-http.d.ts +0 -37
- package/dist/identity/linkedin/connect-http.d.ts.map +0 -1
- package/dist/identity/linkedin/connect-http.js +0 -41
- package/dist/identity/linkedin/connect-http.js.map +0 -1
- package/dist/identity/linkedin/index.d.ts +0 -7
- package/dist/identity/linkedin/index.d.ts.map +0 -1
- package/dist/identity/linkedin/index.js +0 -6
- package/dist/identity/linkedin/index.js.map +0 -1
- package/dist/identity/linkedin/oauth.d.ts +0 -22
- package/dist/identity/linkedin/oauth.d.ts.map +0 -1
- package/dist/identity/linkedin/oauth.js +0 -47
- package/dist/identity/linkedin/oauth.js.map +0 -1
- package/dist/identity/marketplace/connect-hint.d.ts +0 -31
- package/dist/identity/marketplace/connect-hint.d.ts.map +0 -1
- package/dist/identity/marketplace/connect-hint.js +0 -59
- package/dist/identity/marketplace/connect-hint.js.map +0 -1
- package/dist/identity/marketplace/connect.d.ts +0 -51
- package/dist/identity/marketplace/connect.d.ts.map +0 -1
- package/dist/identity/marketplace/connect.js +0 -88
- package/dist/identity/marketplace/connect.js.map +0 -1
- package/dist/identity/marketplace/index.d.ts +0 -9
- package/dist/identity/marketplace/index.d.ts.map +0 -1
- package/dist/identity/marketplace/index.js +0 -9
- package/dist/identity/marketplace/index.js.map +0 -1
- package/dist/identity/microsoft/connect-http.d.ts +0 -38
- package/dist/identity/microsoft/connect-http.d.ts.map +0 -1
- package/dist/identity/microsoft/connect-http.js +0 -42
- package/dist/identity/microsoft/connect-http.js.map +0 -1
- package/dist/identity/microsoft/index.d.ts +0 -7
- package/dist/identity/microsoft/index.d.ts.map +0 -1
- package/dist/identity/microsoft/index.js +0 -6
- package/dist/identity/microsoft/index.js.map +0 -1
- package/dist/identity/microsoft/oauth.d.ts +0 -24
- package/dist/identity/microsoft/oauth.d.ts.map +0 -1
- package/dist/identity/microsoft/oauth.js +0 -65
- package/dist/identity/microsoft/oauth.js.map +0 -1
- package/dist/identity/oauth-env.d.ts +0 -43
- package/dist/identity/oauth-env.d.ts.map +0 -1
- package/dist/identity/oauth-env.js +0 -66
- package/dist/identity/oauth-env.js.map +0 -1
- package/dist/identity/oauth-tickets.d.ts +0 -37
- package/dist/identity/oauth-tickets.d.ts.map +0 -1
- package/dist/identity/oauth-tickets.js +0 -114
- package/dist/identity/oauth-tickets.js.map +0 -1
- package/dist/identity/slack/connect-http.d.ts +0 -35
- package/dist/identity/slack/connect-http.d.ts.map +0 -1
- package/dist/identity/slack/connect-http.js +0 -115
- package/dist/identity/slack/connect-http.js.map +0 -1
- package/dist/identity/slack/index.d.ts +0 -8
- package/dist/identity/slack/index.d.ts.map +0 -1
- package/dist/identity/slack/index.js +0 -7
- package/dist/identity/slack/index.js.map +0 -1
- package/dist/identity/slack/oauth.d.ts +0 -28
- package/dist/identity/slack/oauth.d.ts.map +0 -1
- package/dist/identity/slack/oauth.js +0 -87
- package/dist/identity/slack/oauth.js.map +0 -1
- package/dist/identity/x/connect-http.d.ts +0 -38
- package/dist/identity/x/connect-http.d.ts.map +0 -1
- package/dist/identity/x/connect-http.js +0 -41
- package/dist/identity/x/connect-http.js.map +0 -1
- package/dist/identity/x/index.d.ts +0 -6
- package/dist/identity/x/index.d.ts.map +0 -1
- package/dist/identity/x/index.js +0 -5
- package/dist/identity/x/index.js.map +0 -1
- package/types/index.d.ts +0 -6
- package/types/markdown-md.d.ts +0 -14
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-integration-connect.js","sourceRoot":"","sources":["../../src/identity/fleet-integration-connect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,2BAA2B,GAE5B,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,+BAA+B,EAC/B,eAAe,EACf,6BAA6B,GAE9B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAmBpB,4EAA4E;AAC5E,MAAM,UAAU,8BAA8B,CAC5C,WAAkC,EAClC,SAAyB,EACzB,OAAO,GAA2C,EAAE,EACpD,cAAkC;IAElC,OAAO;QACL,WAAW;QACX,YAAY,EACV,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,2BAA2B,CAAC,WAAW,CAAC;QAC1E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;QAClD,mBAAmB;YACjB,OAAO,CACL,SAAS,CAAC,mBAAmB,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CACxD,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,cAAc,EAAE,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,qCAAqC,CACnD,WAAkC,EAClC,SAAyB,EACzB,OAAO,GAA2C,EAAE,EACpD,cAAkC;IAElC,OAAO,+BAA+B,CACpC,8BAA8B,CAC5B,WAAW,EACX,SAAS,EACT,OAAO,EACP,cAAc,CACf,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,SAAyB,EACzB,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,OAAO,6BAA6B,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAAkC,EAClC,YAAoB;IAEpB,OAAO,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACpD,CAAC"}
|
package/dist/identity/fleet.d.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LangSmith Fleet client for agent-subject vault connections.
|
|
3
|
-
*
|
|
4
|
-
* Shared by Connect providers (Google today; other toolserver OAuth providers
|
|
5
|
-
* later). Source of truth for Connect status is Fleet agent connections — not
|
|
6
|
-
* a local Store cache.
|
|
7
|
-
*/
|
|
8
|
-
export interface FleetConnection {
|
|
9
|
-
id: string;
|
|
10
|
-
agent_id: string;
|
|
11
|
-
auth_token_id?: string;
|
|
12
|
-
provider_id: string;
|
|
13
|
-
provider_account_label?: string;
|
|
14
|
-
scopes?: string[];
|
|
15
|
-
expires_at?: string | null;
|
|
16
|
-
}
|
|
17
|
-
export interface UpsertAgentProviderTokenBody {
|
|
18
|
-
access_token: string;
|
|
19
|
-
refresh_token?: string;
|
|
20
|
-
expires_in_seconds?: number;
|
|
21
|
-
scopes?: string[];
|
|
22
|
-
provider_account_label?: string;
|
|
23
|
-
metadata?: Record<string, unknown>;
|
|
24
|
-
}
|
|
25
|
-
export interface FleetClientOptions {
|
|
26
|
-
apiKey?: string;
|
|
27
|
-
apiUrl?: string;
|
|
28
|
-
workspaceId?: string;
|
|
29
|
-
fetchImpl?: typeof fetch;
|
|
30
|
-
}
|
|
31
|
-
export interface CreateFleetAuthSessionBody {
|
|
32
|
-
providerSlug: string;
|
|
33
|
-
scopes: string[];
|
|
34
|
-
agentId: string;
|
|
35
|
-
strategy?: "create" | "reuse";
|
|
36
|
-
}
|
|
37
|
-
export interface FleetAuthSession {
|
|
38
|
-
id?: string;
|
|
39
|
-
status: string;
|
|
40
|
-
provider_slug?: string;
|
|
41
|
-
verification_url?: string;
|
|
42
|
-
token?: string;
|
|
43
|
-
}
|
|
44
|
-
export declare function resolveFleetApiUrl(env?: NodeJS.ProcessEnv): string;
|
|
45
|
-
export declare function resolveFleetHeaders(label: string, env?: NodeJS.ProcessEnv): Record<string, string>;
|
|
46
|
-
export declare function listAgentConnections(agentId: string, options?: FleetClientOptions): Promise<FleetConnection[]>;
|
|
47
|
-
export declare function upsertAgentProviderToken(agentId: string, providerSlug: string, body: UpsertAgentProviderTokenBody, options?: FleetClientOptions): Promise<FleetConnection>;
|
|
48
|
-
/**
|
|
49
|
-
* Start a Fleet OAuth session for an agent subject (platform OAuth provider).
|
|
50
|
-
* Returns a verification_url the browser should open.
|
|
51
|
-
*/
|
|
52
|
-
export declare function createFleetAuthSession(body: CreateFleetAuthSessionBody, options?: FleetClientOptions): Promise<FleetAuthSession>;
|
|
53
|
-
/** True when LANGSMITH_API_KEY is set so Fleet APIs can be called. */
|
|
54
|
-
export declare function hasFleetAuthCredentials(env?: NodeJS.ProcessEnv): boolean;
|
|
55
|
-
export declare function deleteAgentConnection(agentId: string, connectionId: string, options?: FleetClientOptions): Promise<void>;
|
|
56
|
-
//# sourceMappingURL=fleet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fleet.d.ts","sourceRoot":"","sources":["../../src/identity/fleet.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBxB;AAiBD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,eAAe,EAAE,CAAC,CAsB5B;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,EAClC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAwB1B;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,0BAA0B,EAChC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CA2B3B;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
package/dist/identity/fleet.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LangSmith Fleet client for agent-subject vault connections.
|
|
3
|
-
*
|
|
4
|
-
* Shared by Connect providers (Google today; other toolserver OAuth providers
|
|
5
|
-
* later). Source of truth for Connect status is Fleet agent connections — not
|
|
6
|
-
* a local Store cache.
|
|
7
|
-
*/
|
|
8
|
-
import { fetchWithTimeout, PROVIDER_HTTP_TIMEOUT_MS } from "../runtime/http.js";
|
|
9
|
-
const DEFAULT_API_URL = "https://api.smith.langchain.com";
|
|
10
|
-
export function resolveFleetApiUrl(env = process.env) {
|
|
11
|
-
const base = trimmed(env.LANGSMITH_ENDPOINT) ?? DEFAULT_API_URL;
|
|
12
|
-
return stripTrailingSlashes(withScheme(base));
|
|
13
|
-
}
|
|
14
|
-
export function resolveFleetHeaders(label, env = process.env) {
|
|
15
|
-
const apiKey = trimmed(env.LANGSMITH_API_KEY);
|
|
16
|
-
if (!apiKey) {
|
|
17
|
-
throw new Error(`${label} needs LANGSMITH_API_KEY to reach the LangSmith Fleet API.`);
|
|
18
|
-
}
|
|
19
|
-
const headers = {
|
|
20
|
-
"x-api-key": apiKey,
|
|
21
|
-
"Content-Type": "application/json",
|
|
22
|
-
};
|
|
23
|
-
const workspaceId = trimmed(env.LANGSMITH_WORKSPACE_ID);
|
|
24
|
-
if (workspaceId) {
|
|
25
|
-
headers["x-tenant-id"] = workspaceId;
|
|
26
|
-
}
|
|
27
|
-
return headers;
|
|
28
|
-
}
|
|
29
|
-
function fleetHeaders(label, options, env = process.env) {
|
|
30
|
-
if (options.apiKey || options.workspaceId) {
|
|
31
|
-
return {
|
|
32
|
-
"x-api-key": options.apiKey ?? trimmed(env.LANGSMITH_API_KEY) ?? "",
|
|
33
|
-
"Content-Type": "application/json",
|
|
34
|
-
...(options.workspaceId ? { "x-tenant-id": options.workspaceId } : {}),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return resolveFleetHeaders(label, env);
|
|
38
|
-
}
|
|
39
|
-
export async function listAgentConnections(agentId, options = {}) {
|
|
40
|
-
const env = process.env;
|
|
41
|
-
const base = options.apiUrl ?? resolveFleetApiUrl(env);
|
|
42
|
-
const headers = fleetHeaders("fleet list connections", options, env);
|
|
43
|
-
const url = `${base}/v1/fleet/agents/${encodeURIComponent(agentId)}/connections`;
|
|
44
|
-
const response = await fetchWithTimeout(url, { method: "GET", headers }, PROVIDER_HTTP_TIMEOUT_MS, options.fetchImpl ?? fetch);
|
|
45
|
-
if (!response.ok) {
|
|
46
|
-
const text = await response.text().catch(() => "");
|
|
47
|
-
throw new Error(`Fleet list connections failed (${response.status}): ${text || response.statusText}`);
|
|
48
|
-
}
|
|
49
|
-
const json = (await response.json());
|
|
50
|
-
return json.items ?? json.data ?? [];
|
|
51
|
-
}
|
|
52
|
-
export async function upsertAgentProviderToken(agentId, providerSlug, body, options = {}) {
|
|
53
|
-
const env = process.env;
|
|
54
|
-
const base = options.apiUrl ?? resolveFleetApiUrl(env);
|
|
55
|
-
const headers = fleetHeaders("fleet upsert provider token", options, env);
|
|
56
|
-
const url = `${base}/v1/fleet/agents/${encodeURIComponent(agentId)}` +
|
|
57
|
-
`/providers/${encodeURIComponent(providerSlug)}/tokens`;
|
|
58
|
-
const response = await fetchWithTimeout(url, {
|
|
59
|
-
method: "POST",
|
|
60
|
-
headers,
|
|
61
|
-
body: JSON.stringify(body),
|
|
62
|
-
}, PROVIDER_HTTP_TIMEOUT_MS, options.fetchImpl ?? fetch);
|
|
63
|
-
if (!response.ok) {
|
|
64
|
-
const text = await response.text().catch(() => "");
|
|
65
|
-
throw new Error(`Fleet upsert agent provider token failed (${response.status}): ${text || response.statusText}`);
|
|
66
|
-
}
|
|
67
|
-
return (await response.json());
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Start a Fleet OAuth session for an agent subject (platform OAuth provider).
|
|
71
|
-
* Returns a verification_url the browser should open.
|
|
72
|
-
*/
|
|
73
|
-
export async function createFleetAuthSession(body, options = {}) {
|
|
74
|
-
const env = process.env;
|
|
75
|
-
const base = options.apiUrl ?? resolveFleetApiUrl(env);
|
|
76
|
-
const headers = fleetHeaders("fleet auth-session", options, env);
|
|
77
|
-
const url = `${base}/v1/fleet/auth-sessions`;
|
|
78
|
-
const response = await fetchWithTimeout(url, {
|
|
79
|
-
method: "POST",
|
|
80
|
-
headers,
|
|
81
|
-
body: JSON.stringify({
|
|
82
|
-
provider_slug: body.providerSlug,
|
|
83
|
-
scopes: body.scopes,
|
|
84
|
-
agent_id: body.agentId,
|
|
85
|
-
strategy: body.strategy ?? "create",
|
|
86
|
-
}),
|
|
87
|
-
}, PROVIDER_HTTP_TIMEOUT_MS, options.fetchImpl ?? fetch);
|
|
88
|
-
if (!response.ok) {
|
|
89
|
-
const text = await response.text().catch(() => "");
|
|
90
|
-
throw new Error(`Fleet auth-session failed (${response.status}): ${text || response.statusText}`);
|
|
91
|
-
}
|
|
92
|
-
return (await response.json());
|
|
93
|
-
}
|
|
94
|
-
/** True when LANGSMITH_API_KEY is set so Fleet APIs can be called. */
|
|
95
|
-
export function hasFleetAuthCredentials(env = process.env) {
|
|
96
|
-
return Boolean(trimmed(env.LANGSMITH_API_KEY));
|
|
97
|
-
}
|
|
98
|
-
export async function deleteAgentConnection(agentId, connectionId, options = {}) {
|
|
99
|
-
const env = process.env;
|
|
100
|
-
const base = options.apiUrl ?? resolveFleetApiUrl(env);
|
|
101
|
-
const headers = fleetHeaders("fleet delete connection", options, env);
|
|
102
|
-
const url = `${base}/v1/fleet/agents/${encodeURIComponent(agentId)}` +
|
|
103
|
-
`/connections/${encodeURIComponent(connectionId)}`;
|
|
104
|
-
const response = await fetchWithTimeout(url, { method: "DELETE", headers }, PROVIDER_HTTP_TIMEOUT_MS, options.fetchImpl ?? fetch);
|
|
105
|
-
if (!response.ok && response.status !== 404) {
|
|
106
|
-
const text = await response.text().catch(() => "");
|
|
107
|
-
throw new Error(`Fleet delete connection failed (${response.status}): ${text || response.statusText}`);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
function withScheme(base) {
|
|
111
|
-
const separator = base.indexOf("://");
|
|
112
|
-
if (separator > 0) {
|
|
113
|
-
const scheme = base.slice(0, separator);
|
|
114
|
-
if (/^[a-z][a-z0-9+.-]*$/i.test(scheme)) {
|
|
115
|
-
return base;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return `https://${base}`;
|
|
119
|
-
}
|
|
120
|
-
function stripTrailingSlashes(value) {
|
|
121
|
-
let end = value.length;
|
|
122
|
-
while (end > 0 && value.charCodeAt(end - 1) === 47 /* / */) {
|
|
123
|
-
end -= 1;
|
|
124
|
-
}
|
|
125
|
-
return end === value.length ? value : value.slice(0, end);
|
|
126
|
-
}
|
|
127
|
-
function trimmed(value) {
|
|
128
|
-
const v = value?.trim();
|
|
129
|
-
return v ? v : undefined;
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=fleet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../src/identity/fleet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Connect-with-GitHub — {@link IdentityConnectProvider} for actor OAuth tokens.
|
|
3
|
-
*
|
|
4
|
-
* Mounted under `/identity/github/*` when listed on `identity.connect`, or when
|
|
5
|
-
* a user-scoped deployment declares a GitHub connector.
|
|
6
|
-
*/
|
|
7
|
-
import type { IdentityConnectProvider } from "../connect-provider-types.js";
|
|
8
|
-
import { type GitHubCredentialStore } from "./credentials-store.js";
|
|
9
|
-
export declare const GITHUB_CONNECT_STATUS_PATH: string;
|
|
10
|
-
export declare const GITHUB_CONNECT_START_PATH: string;
|
|
11
|
-
export declare const GITHUB_CONNECT_CALLBACK_PATH: string;
|
|
12
|
-
export declare const GITHUB_CONNECT_LINK_PATH: string;
|
|
13
|
-
/** Options for {@link createGitHubIdentityConnectProvider}. */
|
|
14
|
-
export interface GitHubIdentityConnectProviderOptions {
|
|
15
|
-
credentialStore?: GitHubCredentialStore;
|
|
16
|
-
}
|
|
17
|
-
/** Build a GitHub connect provider (injectable store for tests). */
|
|
18
|
-
export declare function createGitHubIdentityConnectProvider(options?: GitHubIdentityConnectProviderOptions): IdentityConnectProvider;
|
|
19
|
-
/** Default GitHub connect provider used by the identity-connect registry. */
|
|
20
|
-
export declare const githubIdentityConnectProvider: IdentityConnectProvider;
|
|
21
|
-
/**
|
|
22
|
-
* Opt into Connect-with-GitHub on `defineIdentity({ connect: […] })`.
|
|
23
|
-
*
|
|
24
|
-
* Usually unnecessary: `credentials.github(...)` on a user-scoped deployment
|
|
25
|
-
* mounts these routes by inference.
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```ts
|
|
29
|
-
* import { connect, defineIdentity } from "managed-deepagents";
|
|
30
|
-
*
|
|
31
|
-
* export const identity = defineIdentity({
|
|
32
|
-
* connect: [connect.github()],
|
|
33
|
-
* });
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export declare function connect(options?: GitHubIdentityConnectProviderOptions): IdentityConnectProvider;
|
|
37
|
-
//# sourceMappingURL=connect-http.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect-http.d.ts","sourceRoot":"","sources":["../../../src/identity/github/connect-http.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAKV,uBAAuB,EAExB,MAAM,8BAA8B,CAAC;AAWtC,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAWhC,eAAO,MAAM,0BAA0B,QAAe,CAAC;AACvD,eAAO,MAAM,yBAAyB,QAAgB,CAAC;AACvD,eAAO,MAAM,4BAA4B,QAAiB,CAAC;AAC3D,eAAO,MAAM,wBAAwB,QAAa,CAAC;AAEnD,+DAA+D;AAC/D,MAAM,WAAW,oCAAoC;IACnD,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED,oEAAoE;AACpE,wBAAgB,mCAAmC,CACjD,OAAO,GAAE,oCAAyC,GACjD,uBAAuB,CAiGzB;AAED,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,EAAE,uBACL,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,OAAO,CAAC,EAAE,oCAAoC,GAC7C,uBAAuB,CAIzB"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Connect-with-GitHub — {@link IdentityConnectProvider} for actor OAuth tokens.
|
|
3
|
-
*
|
|
4
|
-
* Mounted under `/identity/github/*` when listed on `identity.connect`, or when
|
|
5
|
-
* a user-scoped deployment declares a GitHub connector.
|
|
6
|
-
*/
|
|
7
|
-
import { identityConnectPaths } from "../connect-paths.js";
|
|
8
|
-
import { hasGithubConnector, isUserScopedDeployment, } from "../connect-inference.js";
|
|
9
|
-
import { MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, } from "../oauth-env.js";
|
|
10
|
-
import { buildGitHubCredentialRecord, getGitHubCredentialStore, } from "./credentials-store.js";
|
|
11
|
-
import { buildGitHubAuthorizeUrl, exchangeGitHubOauthCode, githubOauthTickets, readGitHubOauthConfig, resolveGitHubOauthRedirectBase, } from "./oauth.js";
|
|
12
|
-
const PATHS = identityConnectPaths("github");
|
|
13
|
-
export const GITHUB_CONNECT_STATUS_PATH = PATHS.status;
|
|
14
|
-
export const GITHUB_CONNECT_START_PATH = PATHS.connect;
|
|
15
|
-
export const GITHUB_CONNECT_CALLBACK_PATH = PATHS.callback;
|
|
16
|
-
export const GITHUB_CONNECT_LINK_PATH = PATHS.link;
|
|
17
|
-
/** Build a GitHub connect provider (injectable store for tests). */
|
|
18
|
-
export function createGitHubIdentityConnectProvider(options = {}) {
|
|
19
|
-
const store = () => options.credentialStore ?? getGitHubCredentialStore();
|
|
20
|
-
return {
|
|
21
|
-
id: "github",
|
|
22
|
-
shouldMount(ctx) {
|
|
23
|
-
if (!ctx.hasIdentity) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
// Listed on `identity.connect` — the author already opted in.
|
|
27
|
-
if (ctx.declared) {
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
// Otherwise mirror Google/Microsoft: a GitHub connector on a user-scoped
|
|
31
|
-
// deployment needs somewhere for the caller to grant an actor OAuth token.
|
|
32
|
-
if (!isUserScopedDeployment(ctx.scope)) {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
return hasGithubConnector(ctx.connectorKinds);
|
|
36
|
-
},
|
|
37
|
-
async status(userId) {
|
|
38
|
-
const configured = Boolean(readGitHubOauthConfig());
|
|
39
|
-
const record = await store().getByUserId(userId);
|
|
40
|
-
return {
|
|
41
|
-
configured,
|
|
42
|
-
linked: Boolean(record),
|
|
43
|
-
...(record
|
|
44
|
-
? {
|
|
45
|
-
githubLogin: record.githubLogin,
|
|
46
|
-
githubUserId: record.githubUserId,
|
|
47
|
-
linkedAt: record.linkedAt,
|
|
48
|
-
scope: record.scope,
|
|
49
|
-
}
|
|
50
|
-
: {}),
|
|
51
|
-
};
|
|
52
|
-
},
|
|
53
|
-
async startAuthorize(userId, redirectUri) {
|
|
54
|
-
const oauth = readGitHubOauthConfig();
|
|
55
|
-
const stateKey = readOauthStateSigningKey();
|
|
56
|
-
if (!oauth || !stateKey) {
|
|
57
|
-
return {
|
|
58
|
-
notConfigured: true,
|
|
59
|
-
error: `GitHub connect is not configured (set GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, MDA_PUBLIC_APP_URL, ${OAUTH_STATE_SIGNING_KEY_ENV})`,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
const state = await githubOauthTickets.createState(userId, stateKey);
|
|
63
|
-
return {
|
|
64
|
-
authorizeUrl: buildGitHubAuthorizeUrl(oauth, state, redirectUri),
|
|
65
|
-
};
|
|
66
|
-
},
|
|
67
|
-
async completeCallback(code, state, redirectUri) {
|
|
68
|
-
const oauth = readGitHubOauthConfig();
|
|
69
|
-
if (!oauth) {
|
|
70
|
-
throw new Error("GitHub OAuth is not configured");
|
|
71
|
-
}
|
|
72
|
-
const stateKey = readOauthStateSigningKey();
|
|
73
|
-
if (!stateKey) {
|
|
74
|
-
throw new Error(`${OAUTH_STATE_SIGNING_KEY_ENV} is not configured`);
|
|
75
|
-
}
|
|
76
|
-
const { userId } = await githubOauthTickets.verifyState(state, stateKey);
|
|
77
|
-
const token = await exchangeGitHubOauthCode(oauth, code, redirectUri);
|
|
78
|
-
const record = buildGitHubCredentialRecord({
|
|
79
|
-
userId,
|
|
80
|
-
githubUserId: token.userId,
|
|
81
|
-
githubLogin: token.login,
|
|
82
|
-
accessToken: token.accessToken,
|
|
83
|
-
...(token.refreshToken ? { refreshToken: token.refreshToken } : {}),
|
|
84
|
-
...(token.tokenType ? { tokenType: token.tokenType } : {}),
|
|
85
|
-
...(token.scope ? { scope: token.scope } : {}),
|
|
86
|
-
...(token.email ? { email: token.email } : {}),
|
|
87
|
-
});
|
|
88
|
-
await store().upsert(record);
|
|
89
|
-
return {
|
|
90
|
-
successRedirect: `${oauth.publicAppUrl}/settings?github=connected`,
|
|
91
|
-
};
|
|
92
|
-
},
|
|
93
|
-
async unlink(userId) {
|
|
94
|
-
await store().removeByUserId(userId);
|
|
95
|
-
},
|
|
96
|
-
resolveRedirectBase(options) {
|
|
97
|
-
return resolveGitHubOauthRedirectBase(options);
|
|
98
|
-
},
|
|
99
|
-
resolvePublicAppUrl() {
|
|
100
|
-
const oauth = readGitHubOauthConfig();
|
|
101
|
-
return (oauth?.publicAppUrl ??
|
|
102
|
-
process.env[MDA_PUBLIC_APP_URL_ENV]?.replace(/\/$/, ""));
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
/** Default GitHub connect provider used by the identity-connect registry. */
|
|
107
|
-
export const githubIdentityConnectProvider = createGitHubIdentityConnectProvider();
|
|
108
|
-
/**
|
|
109
|
-
* Opt into Connect-with-GitHub on `defineIdentity({ connect: […] })`.
|
|
110
|
-
*
|
|
111
|
-
* Usually unnecessary: `credentials.github(...)` on a user-scoped deployment
|
|
112
|
-
* mounts these routes by inference.
|
|
113
|
-
*
|
|
114
|
-
* @example
|
|
115
|
-
* ```ts
|
|
116
|
-
* import { connect, defineIdentity } from "managed-deepagents";
|
|
117
|
-
*
|
|
118
|
-
* export const identity = defineIdentity({
|
|
119
|
-
* connect: [connect.github()],
|
|
120
|
-
* });
|
|
121
|
-
* ```
|
|
122
|
-
*/
|
|
123
|
-
export function connect(options) {
|
|
124
|
-
return options
|
|
125
|
-
? createGitHubIdentityConnectProvider(options)
|
|
126
|
-
: githubIdentityConnectProvider;
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=connect-http.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/github/connect-http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub OAuth helpers for Connect-with-GitHub credential binding.
|
|
3
|
-
*
|
|
4
|
-
* Unlike Slack Connect (channel identity remap only), GitHub Connect stores a
|
|
5
|
-
* per-actor OAuth access token so `credentials.github({ write: ["actor"] })`
|
|
6
|
-
* can act as the signed-in user (e.g. open pull requests).
|
|
7
|
-
*
|
|
8
|
-
* Implemented as a {@link createByoOauthClient} descriptor with GitHub-specific
|
|
9
|
-
* token (JSON body) and userinfo (API headers) quirks.
|
|
10
|
-
*/
|
|
11
|
-
import { type ByoOauthClient, type ByoOauthConfig } from "../byo-oauth.js";
|
|
12
|
-
export declare const GITHUB_CLIENT_ID_ENV = "GITHUB_CLIENT_ID";
|
|
13
|
-
export declare const GITHUB_CLIENT_SECRET_ENV = "GITHUB_CLIENT_SECRET";
|
|
14
|
-
/** Space-separated OAuth scopes. Defaults to `repo read:user`. */
|
|
15
|
-
export declare const GITHUB_OAUTH_SCOPES_ENV = "GITHUB_OAUTH_SCOPES";
|
|
16
|
-
/** Override GitHub OAuth/API base (tests). */
|
|
17
|
-
export declare const GITHUB_OAUTH_BASE_ENV = "GITHUB_OAUTH_BASE";
|
|
18
|
-
export type GitHubOauthConfig = ByoOauthConfig;
|
|
19
|
-
export interface GitHubOauthTokenResult {
|
|
20
|
-
accessToken: string;
|
|
21
|
-
tokenType?: string;
|
|
22
|
-
scope?: string;
|
|
23
|
-
refreshToken?: string;
|
|
24
|
-
userId: string;
|
|
25
|
-
login: string;
|
|
26
|
-
email?: string;
|
|
27
|
-
}
|
|
28
|
-
/** GitHub BYO OAuth client (config, authorize, exchange). */
|
|
29
|
-
export declare const githubByoOauth: ByoOauthClient;
|
|
30
|
-
/** GitHub-bound OAuth state / connect-ticket helpers. */
|
|
31
|
-
export declare const githubOauthTickets: import("../oauth-tickets.js").OauthTickets;
|
|
32
|
-
export declare const resolveGitHubOauthRedirectBase: typeof import("../oauth-env.js").resolveOauthRedirectBase;
|
|
33
|
-
/**
|
|
34
|
-
* Requires `MDA_PUBLIC_APP_URL` — unlike Fleet BYO readers, do not fall back
|
|
35
|
-
* to `MDA_PUBLIC_API_URL`; post-OAuth redirect targets the managed app
|
|
36
|
-
* (`/settings?github=connected`).
|
|
37
|
-
*/
|
|
38
|
-
export declare function readGitHubOauthConfig(env?: NodeJS.ProcessEnv): GitHubOauthConfig | null;
|
|
39
|
-
export declare const buildGitHubAuthorizeUrl: (config: ByoOauthConfig, state: string, redirectUri: string, scopes?: string) => string;
|
|
40
|
-
/**
|
|
41
|
-
* Exchange an authorization code for a user access token and profile.
|
|
42
|
-
*
|
|
43
|
-
* GitHub returns `application/x-www-form-urlencoded` unless `Accept:
|
|
44
|
-
* application/json` is set — handled by the BYO tokenRequest config.
|
|
45
|
-
*/
|
|
46
|
-
export declare function exchangeGitHubOauthCode(config: GitHubOauthConfig, code: string, redirectUri: string, fetchImpl?: typeof fetch): Promise<GitHubOauthTokenResult>;
|
|
47
|
-
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/identity/github/oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAC7D,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAQzD,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAE/C,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyBD,6DAA6D;AAC7D,eAAO,MAAM,cAAc,EAAE,cAkD3B,CAAC;AAEH,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,4CAAyB,CAAC;AAEzD,eAAO,MAAM,8BAA8B,2DACP,CAAC;AAErC;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,iBAAiB,GAAG,IAAI,CAK1B;AAED,eAAO,MAAM,uBAAuB,yFAAmC,CAAC;AAExE;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAqBjC"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub OAuth helpers for Connect-with-GitHub credential binding.
|
|
3
|
-
*
|
|
4
|
-
* Unlike Slack Connect (channel identity remap only), GitHub Connect stores a
|
|
5
|
-
* per-actor OAuth access token so `credentials.github({ write: ["actor"] })`
|
|
6
|
-
* can act as the signed-in user (e.g. open pull requests).
|
|
7
|
-
*
|
|
8
|
-
* Implemented as a {@link createByoOauthClient} descriptor with GitHub-specific
|
|
9
|
-
* token (JSON body) and userinfo (API headers) quirks.
|
|
10
|
-
*/
|
|
11
|
-
import { createByoOauthClient, } from "../byo-oauth.js";
|
|
12
|
-
import { MDA_PUBLIC_APP_URL_ENV } from "../oauth-env.js";
|
|
13
|
-
export const GITHUB_CLIENT_ID_ENV = "GITHUB_CLIENT_ID";
|
|
14
|
-
export const GITHUB_CLIENT_SECRET_ENV = "GITHUB_CLIENT_SECRET";
|
|
15
|
-
/** Space-separated OAuth scopes. Defaults to `repo read:user`. */
|
|
16
|
-
export const GITHUB_OAUTH_SCOPES_ENV = "GITHUB_OAUTH_SCOPES";
|
|
17
|
-
/** Override GitHub OAuth/API base (tests). */
|
|
18
|
-
export const GITHUB_OAUTH_BASE_ENV = "GITHUB_OAUTH_BASE";
|
|
19
|
-
const DEFAULT_OAUTH_BASE = "https://github.com";
|
|
20
|
-
const DEFAULT_API_BASE = "https://api.github.com";
|
|
21
|
-
const DEFAULT_SCOPES = "repo read:user";
|
|
22
|
-
const SUBJECT_METADATA_KEY = "github_user_id";
|
|
23
|
-
const LOGIN_METADATA_KEY = "github_login";
|
|
24
|
-
function githubEndpoints(env) {
|
|
25
|
-
const oauthBase = (env[GITHUB_OAUTH_BASE_ENV]?.trim() || DEFAULT_OAUTH_BASE).replace(/\/$/, "");
|
|
26
|
-
const apiBase = oauthBase === DEFAULT_OAUTH_BASE ? DEFAULT_API_BASE : `${oauthBase}/api/v3`;
|
|
27
|
-
return {
|
|
28
|
-
oauthBase,
|
|
29
|
-
apiBase,
|
|
30
|
-
authUrl: `${oauthBase}/login/oauth/authorize`,
|
|
31
|
-
tokenUrl: `${oauthBase}/login/oauth/access_token`,
|
|
32
|
-
userInfoUrl: `${apiBase}/user`,
|
|
33
|
-
defaultScopes: DEFAULT_SCOPES,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
/** GitHub BYO OAuth client (config, authorize, exchange). */
|
|
37
|
-
export const githubByoOauth = createByoOauthClient({
|
|
38
|
-
providerId: "github",
|
|
39
|
-
displayName: "GitHub",
|
|
40
|
-
envPrefix: "GITHUB",
|
|
41
|
-
envKeys: {
|
|
42
|
-
scopes: GITHUB_OAUTH_SCOPES_ENV,
|
|
43
|
-
},
|
|
44
|
-
defaultPrompt: false,
|
|
45
|
-
tokenRequest: {
|
|
46
|
-
format: "json",
|
|
47
|
-
headers: { Accept: "application/json" },
|
|
48
|
-
},
|
|
49
|
-
userInfoRequest: {
|
|
50
|
-
required: true,
|
|
51
|
-
headers: {
|
|
52
|
-
Accept: "application/vnd.github+json",
|
|
53
|
-
"User-Agent": "managed-deepagents",
|
|
54
|
-
"X-GitHub-Api-Version": "2022-11-28",
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
defaultEndpoints(env) {
|
|
58
|
-
const endpoints = githubEndpoints(env);
|
|
59
|
-
return {
|
|
60
|
-
authUrl: endpoints.authUrl,
|
|
61
|
-
tokenUrl: endpoints.tokenUrl,
|
|
62
|
-
userInfoUrl: endpoints.userInfoUrl,
|
|
63
|
-
defaultScopes: endpoints.defaultScopes,
|
|
64
|
-
};
|
|
65
|
-
},
|
|
66
|
-
parseUserInfo(json) {
|
|
67
|
-
const id = json.id;
|
|
68
|
-
const login = typeof json.login === "string" ? json.login : undefined;
|
|
69
|
-
if (id === undefined || !login) {
|
|
70
|
-
throw new Error(typeof json.message === "string"
|
|
71
|
-
? json.message
|
|
72
|
-
: "GitHub /user lookup failed");
|
|
73
|
-
}
|
|
74
|
-
return {
|
|
75
|
-
...(typeof json.email === "string" && json.email
|
|
76
|
-
? { email: json.email }
|
|
77
|
-
: {}),
|
|
78
|
-
subject: String(id),
|
|
79
|
-
metadata: {
|
|
80
|
-
[LOGIN_METADATA_KEY]: login,
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
},
|
|
84
|
-
subjectMetadataKey: SUBJECT_METADATA_KEY,
|
|
85
|
-
});
|
|
86
|
-
/** GitHub-bound OAuth state / connect-ticket helpers. */
|
|
87
|
-
export const githubOauthTickets = githubByoOauth.tickets;
|
|
88
|
-
export const resolveGitHubOauthRedirectBase = githubByoOauth.resolveRedirectBase;
|
|
89
|
-
/**
|
|
90
|
-
* Requires `MDA_PUBLIC_APP_URL` — unlike Fleet BYO readers, do not fall back
|
|
91
|
-
* to `MDA_PUBLIC_API_URL`; post-OAuth redirect targets the managed app
|
|
92
|
-
* (`/settings?github=connected`).
|
|
93
|
-
*/
|
|
94
|
-
export function readGitHubOauthConfig(env = process.env) {
|
|
95
|
-
if (!env[MDA_PUBLIC_APP_URL_ENV]?.trim()) {
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
return githubByoOauth.readConfig(env);
|
|
99
|
-
}
|
|
100
|
-
export const buildGitHubAuthorizeUrl = githubByoOauth.buildAuthorizeUrl;
|
|
101
|
-
/**
|
|
102
|
-
* Exchange an authorization code for a user access token and profile.
|
|
103
|
-
*
|
|
104
|
-
* GitHub returns `application/x-www-form-urlencoded` unless `Accept:
|
|
105
|
-
* application/json` is set — handled by the BYO tokenRequest config.
|
|
106
|
-
*/
|
|
107
|
-
export async function exchangeGitHubOauthCode(config, code, redirectUri, fetchImpl = fetch) {
|
|
108
|
-
const result = await githubByoOauth.exchangeCode(config, code, redirectUri, fetchImpl);
|
|
109
|
-
const userId = result.metadata?.[SUBJECT_METADATA_KEY];
|
|
110
|
-
const login = result.metadata?.[LOGIN_METADATA_KEY];
|
|
111
|
-
if (typeof userId !== "string" || typeof login !== "string" || !login) {
|
|
112
|
-
throw new Error("GitHub /user lookup failed");
|
|
113
|
-
}
|
|
114
|
-
return {
|
|
115
|
-
accessToken: result.accessToken,
|
|
116
|
-
...(result.tokenType ? { tokenType: result.tokenType } : {}),
|
|
117
|
-
...(result.scope ? { scope: result.scope } : {}),
|
|
118
|
-
...(result.refreshToken ? { refreshToken: result.refreshToken } : {}),
|
|
119
|
-
userId,
|
|
120
|
-
login,
|
|
121
|
-
...(result.accountLabel ? { email: result.accountLabel } : {}),
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=oauth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/identity/github/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Connect-with-Google — thin adapter over {@link defineFleetIntegrationConnect}.
|
|
3
|
-
*
|
|
4
|
-
* Mounted under `/identity/google/*` when listed on `identity.connect`, or
|
|
5
|
-
* inferred from declared Google toolserver connectors on a user-scoped
|
|
6
|
-
* deployment.
|
|
7
|
-
*/
|
|
8
|
-
import type { FleetIntegrationConnectProviderOptions } from "../fleet-integration-connect.js";
|
|
9
|
-
export declare const GOOGLE_CONNECT_STATUS_PATH: string;
|
|
10
|
-
export declare const GOOGLE_CONNECT_START_PATH: string;
|
|
11
|
-
export declare const GOOGLE_CONNECT_CALLBACK_PATH: string;
|
|
12
|
-
export declare const GOOGLE_CONNECT_LINK_PATH: string;
|
|
13
|
-
export declare const isGoogleActorSubjectEnabled: () => boolean;
|
|
14
|
-
export declare const enableGoogleActorSubject: () => void;
|
|
15
|
-
/**
|
|
16
|
-
* Enable actor-subject mode when Google connectors imply per-user vault subjects.
|
|
17
|
-
*
|
|
18
|
-
* Prefer {@link enableActorSubjectIntegrationsFromConnectors} at compile seams.
|
|
19
|
-
*/
|
|
20
|
-
export declare const enableGoogleActorSubjectFromConnectors: (connectorKinds: readonly (string | undefined)[] | undefined, scope?: import("../connect-provider-types.js").IdentityConnectMountContext["scope"]) => void;
|
|
21
|
-
export declare const resetGoogleActorSubjectEnabledForTests: () => void;
|
|
22
|
-
export declare const isGoogleConnectConfigured: (env?: NodeJS.ProcessEnv) => boolean;
|
|
23
|
-
export declare const googleConnectUrl: (publicAppUrl: string) => string;
|
|
24
|
-
/** Options for {@link createGoogleIdentityConnectProvider}. */
|
|
25
|
-
export type GoogleIdentityConnectProviderOptions = FleetIntegrationConnectProviderOptions;
|
|
26
|
-
/** Build a Google connect provider. */
|
|
27
|
-
export declare const createGoogleIdentityConnectProvider: (options?: FleetIntegrationConnectProviderOptions) => import("../connect-provider-types.js").IdentityConnectProvider;
|
|
28
|
-
/** Default Google connect provider used as a built-in mount candidate. */
|
|
29
|
-
export declare const googleIdentityConnectProvider: import("../connect-provider-types.js").IdentityConnectProvider;
|
|
30
|
-
/**
|
|
31
|
-
* Opt into Connect-with-Google on `defineIdentity({ connect: […] })`.
|
|
32
|
-
*
|
|
33
|
-
* Usually unnecessary: declaring Google toolserver connectors on a user-scoped
|
|
34
|
-
* identity deployment mounts this provider and derives OAuth scopes automatically.
|
|
35
|
-
*/
|
|
36
|
-
export declare const connect: (options?: FleetIntegrationConnectProviderOptions) => import("../connect-provider-types.js").IdentityConnectProvider;
|
|
37
|
-
//# sourceMappingURL=connect-http.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect-http.d.ts","sourceRoot":"","sources":["../../../src/identity/google/connect-http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,iCAAiC,CAAC;AAS9F,eAAO,MAAM,0BAA0B,QAAsB,CAAC;AAC9D,eAAO,MAAM,yBAAyB,QAAuB,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAwB,CAAC;AAClE,eAAO,MAAM,wBAAwB,QAAoB,CAAC;AAE1D,eAAO,MAAM,2BAA2B,eAA+B,CAAC;AACxE,eAAO,MAAM,wBAAwB,YAA4B,CAAC;AAClE;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,4JACV,CAAC;AAC1C,eAAO,MAAM,sCAAsC,YACV,CAAC;AAC1C,eAAO,MAAM,yBAAyB,sCAA6B,CAAC;AACpE,eAAO,MAAM,gBAAgB,kCAAoB,CAAC;AAElD,+DAA+D;AAC/D,MAAM,MAAM,oCAAoC,GAC9C,sCAAsC,CAAC;AAEzC,uCAAuC;AACvC,eAAO,MAAM,mCAAmC,sHAAwB,CAAC;AAEzE,0EAA0E;AAC1E,eAAO,MAAM,6BAA6B,gEAAkB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,OAAO,sHAAiB,CAAC"}
|