(
session: ResolvedAuthSession,
options: ResolveLeaseOptions = {},
)
| 175 | } |
| 176 | |
| 177 | export function buildLocalFirstPartyLease( |
| 178 | session: ResolvedAuthSession, |
| 179 | options: ResolveLeaseOptions = {}, |
| 180 | ): IssuedRuntimeLease | null { |
| 181 | if ( |
| 182 | session.principalKind === 'none' || |
| 183 | session.providerAuthKind === 'third_party_provider' || |
| 184 | session.providerAuthKind === 'none' |
| 185 | ) { |
| 186 | return null |
| 187 | } |
| 188 | |
| 189 | const issuedAt = options.nowMs ?? Date.now() |
| 190 | const expiresAt = session.accessTokenExpiresAt |
| 191 | const renewable = session.canRefresh |
| 192 | const renewAfter = |
| 193 | renewable && expiresAt !== null |
| 194 | ? computeRenewAfter(issuedAt, expiresAt, LOCAL_RENEWAL_WINDOW_MS) |
| 195 | : null |
| 196 | const graceUntil = |
| 197 | renewable && expiresAt !== null ? expiresAt + LOCAL_GRACE_WINDOW_MS : null |
| 198 | const state = mapLocalLeaseState(session) |
| 199 | |
| 200 | return { |
| 201 | leaseKind: 'local_first_party', |
| 202 | leaseId: `local:${session.principalSource}:${session.identity.organizationUuid ?? 'no-org'}:${session.identity.accountUuid ?? 'no-account'}`, |
| 203 | sessionId: null, |
| 204 | state, |
| 205 | renewable, |
| 206 | renewalOwner: renewable ? 'local_runtime' : 'none', |
| 207 | issuedAt, |
| 208 | expiresAt, |
| 209 | renewAfter, |
| 210 | graceUntil, |
| 211 | organizationUuid: session.identity.organizationUuid, |
| 212 | capabilities: |
| 213 | session.providerPlan.mode === 'byok_static_env' |
| 214 | ? ['inference'] |
| 215 | : ['first_party_api', 'inference'], |
| 216 | executionTarget: 'local', |
| 217 | providerMode: mapProviderMode(session), |
| 218 | degradationMode: mapLocalDegradationMode(state), |
| 219 | recoveryMessage: session.recoveryMessage, |
| 220 | metadata: { |
| 221 | principalKind: session.principalKind, |
| 222 | principalSource: session.principalSource, |
| 223 | headersKind: session.headersKind, |
| 224 | hasUsableToken: session.hasUsableToken, |
| 225 | hasUsableApiKey: session.hasUsableApiKey, |
| 226 | }, |
| 227 | } |
| 228 | } |
| 229 | |
| 230 | export function buildBridgeWorkerLease( |
| 231 | params: { |
no test coverage detected