MCPcopy
hub / github.com/claude-code-best/claude-code / createBridgeSession

Function createBridgeSession

src/bridge/createSession.ts:34–185  ·  view source on GitHub ↗
({
  environmentId,
  title,
  events,
  gitRepoUrl,
  branch,
  signal,
  baseUrl: baseUrlOverride,
  getAccessToken,
  permissionMode,
}: {
  environmentId: string
  title?: string
  events: SessionEvent[]
  gitRepoUrl: string | null
  branch: string
  signal: AbortSignal
  baseUrl?: string
  getAccessToken?: () => string | undefined
  permissionMode?: string
})

Source from the content-addressed store, hash-verified

32 * Returns the session ID on success, or null if creation fails (non-fatal).
33 */
34export async function createBridgeSession({
35 environmentId,
36 title,
37 events,
38 gitRepoUrl,
39 branch,
40 signal,
41 baseUrl: baseUrlOverride,
42 getAccessToken,
43 permissionMode,
44}: {
45 environmentId: string
46 title?: string
47 events: SessionEvent[]
48 gitRepoUrl: string | null
49 branch: string
50 signal: AbortSignal
51 baseUrl?: string
52 getAccessToken?: () => string | undefined
53 permissionMode?: string
54}): Promise<string | null> {
55 const { getClaudeAIOAuthTokens } = await import('../utils/auth.js')
56 const { getOrganizationUUID } = await import('../services/oauth/client.js')
57 const { getOauthConfig } = await import('../constants/oauth.js')
58 const { getOAuthHeaders } = await import('../utils/teleport/api.js')
59 const { parseGitHubRepository } = await import('../utils/detectRepository.js')
60 const { getDefaultBranch } = await import('../utils/git.js')
61 const { getMainLoopModel } = await import('../utils/model/model.js')
62 const { default: axios } = await import('axios')
63 const { isSelfHostedBridge } = await import('./bridgeConfig.js')
64
65 const accessToken =
66 getAccessToken?.() ?? getClaudeAIOAuthTokens()?.accessToken
67 if (!accessToken) {
68 logForDebugging('[bridge] No access token for session creation')
69 return null
70 }
71
72 // Self-hosted bridges don't require a claude.ai org UUID — the local server
73 // doesn't validate it. Use a placeholder to avoid blocking session creation.
74 const orgUUID = isSelfHostedBridge()
75 ? 'self-hosted'
76 : await getOrganizationUUID()
77 if (!orgUUID) {
78 logForDebugging('[bridge] No org UUID for session creation')
79 return null
80 }
81
82 // Build git source and outcome context
83 let gitSource: GitSource | null = null
84 let gitOutcome: GitOutcome | null = null
85
86 if (gitRepoUrl) {
87 const { parseGitRemote } = await import('../utils/detectRepository.js')
88 const parsed = parseGitRemote(gitRepoUrl)
89 if (parsed) {
90 const { host, owner, name } = parsed
91 const revision = branch || (await getDefaultBranch()) || undefined

Callers 3

initReplBridgeFunction · 0.85
bridgeMainFunction · 0.85
runBridgeHeadlessFunction · 0.85

Calls 12

getAccessTokenFunction · 0.85
isSelfHostedBridgeFunction · 0.85
getOrganizationUUIDFunction · 0.85
parseGitRemoteFunction · 0.85
getDefaultBranchFunction · 0.85
parseGitHubRepositoryFunction · 0.85
getMainLoopModelFunction · 0.85
getOAuthHeadersFunction · 0.85
getOauthConfigFunction · 0.85
extractErrorDetailFunction · 0.85
logForDebuggingFunction · 0.50
errorMessageFunction · 0.50

Tested by

no test coverage detected