@kortix/sdk 0.13.4 → 0.13.7
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 +63 -6
- package/dist/browser/cache/idb-sync-cache.d.ts +19 -1
- package/dist/browser/cache/idb-sync-cache.d.ts.map +1 -1
- package/dist/browser/cache/idb-sync-cache.js +39 -4
- package/dist/browser/cache/idb-sync-cache.js.map +1 -1
- package/dist/browser/session-sync/server-transcript-mirror.d.ts +82 -0
- package/dist/browser/session-sync/server-transcript-mirror.d.ts.map +1 -0
- package/dist/browser/session-sync/server-transcript-mirror.js +143 -0
- package/dist/browser/session-sync/server-transcript-mirror.js.map +1 -0
- package/dist/browser/session-sync/session-sync-registry.d.ts +11 -1
- package/dist/browser/session-sync/session-sync-registry.d.ts.map +1 -1
- package/dist/browser/session-sync/session-sync-registry.js +117 -9
- package/dist/browser/session-sync/session-sync-registry.js.map +1 -1
- package/dist/browser/session-sync/visibility.d.ts +19 -0
- package/dist/browser/session-sync/visibility.d.ts.map +1 -0
- package/dist/browser/session-sync/visibility.js +16 -0
- package/dist/browser/session-sync/visibility.js.map +1 -0
- package/dist/browser/stores/sandbox-connection-store.d.ts +13 -1
- package/dist/browser/stores/sandbox-connection-store.d.ts.map +1 -1
- package/dist/browser/stores/sandbox-connection-store.js +6 -3
- package/dist/browser/stores/sandbox-connection-store.js.map +1 -1
- package/dist/browser/stores/session-working-store.d.ts +10 -5
- package/dist/browser/stores/session-working-store.d.ts.map +1 -1
- package/dist/browser/stores/session-working-store.js +32 -8
- package/dist/browser/stores/session-working-store.js.map +1 -1
- package/dist/browser/stores/sync-store.d.ts +56 -2
- package/dist/browser/stores/sync-store.d.ts.map +1 -1
- package/dist/browser/stores/sync-store.js +682 -402
- package/dist/browser/stores/sync-store.js.map +1 -1
- package/dist/core/auth/app-viewer.d.ts +57 -0
- package/dist/core/auth/app-viewer.d.ts.map +1 -0
- package/dist/core/auth/app-viewer.js +82 -0
- package/dist/core/auth/app-viewer.js.map +1 -0
- package/dist/core/auth/session.d.ts +45 -0
- package/dist/core/auth/session.d.ts.map +1 -0
- package/dist/core/auth/session.js +113 -0
- package/dist/core/auth/session.js.map +1 -0
- package/dist/core/client/kortix.d.ts +37 -29
- package/dist/core/client/kortix.d.ts.map +1 -1
- package/dist/core/client/kortix.js +61 -8
- package/dist/core/client/kortix.js.map +1 -1
- package/dist/core/http/config.d.ts +4 -2
- package/dist/core/http/config.d.ts.map +1 -1
- package/dist/core/http/config.js.map +1 -1
- package/dist/core/http/opencode-errors.d.ts +17 -0
- package/dist/core/http/opencode-errors.d.ts.map +1 -1
- package/dist/core/http/opencode-errors.js +25 -0
- package/dist/core/http/opencode-errors.js.map +1 -1
- package/dist/core/rest/platform-client/auth.d.ts +120 -0
- package/dist/core/rest/platform-client/auth.d.ts.map +1 -0
- package/dist/core/rest/platform-client/auth.js +98 -0
- package/dist/core/rest/platform-client/auth.js.map +1 -0
- package/dist/core/rest/platform-client/host-boundary.d.ts +5 -0
- package/dist/core/rest/platform-client/host-boundary.d.ts.map +1 -1
- package/dist/core/rest/platform-client/host-boundary.js.map +1 -1
- package/dist/core/rest/projects-client/accounts.d.ts +57 -0
- package/dist/core/rest/projects-client/accounts.d.ts.map +1 -1
- package/dist/core/rest/projects-client/accounts.js +31 -0
- package/dist/core/rest/projects-client/accounts.js.map +1 -1
- package/dist/core/rest/projects-client/apps.d.ts +9 -0
- package/dist/core/rest/projects-client/apps.d.ts.map +1 -1
- package/dist/core/rest/projects-client/apps.js.map +1 -1
- package/dist/core/rest/projects-client/billing.d.ts +2 -0
- package/dist/core/rest/projects-client/billing.d.ts.map +1 -1
- package/dist/core/rest/projects-client/billing.js.map +1 -1
- package/dist/core/rest/projects-client/channels.d.ts +0 -3
- package/dist/core/rest/projects-client/channels.d.ts.map +1 -1
- package/dist/core/rest/projects-client/channels.js +0 -6
- package/dist/core/rest/projects-client/channels.js.map +1 -1
- package/dist/core/rest/projects-client/connectors.d.ts +104 -19
- package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
- package/dist/core/rest/projects-client/connectors.js +56 -2
- package/dist/core/rest/projects-client/connectors.js.map +1 -1
- package/dist/core/rest/projects-client/index.d.ts +1 -2
- package/dist/core/rest/projects-client/index.d.ts.map +1 -1
- package/dist/core/rest/projects-client/index.js +1 -2
- package/dist/core/rest/projects-client/index.js.map +1 -1
- package/dist/core/rest/projects-client/oauth-clients.d.ts +47 -0
- package/dist/core/rest/projects-client/oauth-clients.d.ts.map +1 -0
- package/dist/core/rest/projects-client/oauth-clients.js +33 -0
- package/dist/core/rest/projects-client/oauth-clients.js.map +1 -0
- package/dist/core/rest/projects-client/projects.d.ts +23 -6
- package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
- package/dist/core/rest/projects-client/projects.js +6 -3
- package/dist/core/rest/projects-client/projects.js.map +1 -1
- package/dist/core/rest/projects-client/session-sandbox.d.ts +52 -0
- package/dist/core/rest/projects-client/session-sandbox.d.ts.map +1 -1
- package/dist/core/rest/projects-client/session-sandbox.js.map +1 -1
- package/dist/core/rest/projects-client/sessions.d.ts +142 -34
- package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
- package/dist/core/rest/projects-client/sessions.js +48 -19
- package/dist/core/rest/projects-client/sessions.js.map +1 -1
- package/dist/core/runtime/attachment-part.d.ts +26 -0
- package/dist/core/runtime/attachment-part.d.ts.map +1 -0
- package/dist/core/runtime/attachment-part.js +41 -0
- package/dist/core/runtime/attachment-part.js.map +1 -0
- package/dist/core/runtime/client.d.ts +4 -2
- package/dist/core/runtime/client.d.ts.map +1 -1
- package/dist/core/runtime/client.js +3 -2
- package/dist/core/runtime/client.js.map +1 -1
- package/dist/core/runtime/opencode-v2-event-aliases.d.ts +184 -0
- package/dist/core/runtime/opencode-v2-event-aliases.d.ts.map +1 -0
- package/dist/core/runtime/opencode-v2-event-aliases.js +2 -0
- package/dist/core/runtime/opencode-v2-event-aliases.js.map +1 -0
- package/dist/core/runtime/pty.d.ts +11 -1
- package/dist/core/runtime/pty.d.ts.map +1 -1
- package/dist/core/runtime/pty.js +19 -6
- package/dist/core/runtime/pty.js.map +1 -1
- package/dist/core/session/connection.d.ts +64 -0
- package/dist/core/session/connection.d.ts.map +1 -0
- package/dist/core/session/connection.js +36 -0
- package/dist/core/session/connection.js.map +1 -0
- package/dist/core/session/index.d.ts +2 -0
- package/dist/core/session/index.d.ts.map +1 -1
- package/dist/core/session/index.js +2 -0
- package/dist/core/session/index.js.map +1 -1
- package/dist/core/session/open-bundle.d.ts +110 -0
- package/dist/core/session/open-bundle.d.ts.map +1 -0
- package/dist/core/session/open-bundle.js +183 -0
- package/dist/core/session/open-bundle.js.map +1 -0
- package/dist/core/session/poll-owner.d.ts +35 -0
- package/dist/core/session/poll-owner.d.ts.map +1 -0
- package/dist/core/session/poll-owner.js +90 -0
- package/dist/core/session/poll-owner.js.map +1 -0
- package/dist/core/session/preview-auth.d.ts +25 -0
- package/dist/core/session/preview-auth.d.ts.map +1 -1
- package/dist/core/session/preview-auth.js +31 -1
- package/dist/core/session/preview-auth.js.map +1 -1
- package/dist/core/session/preview-config.d.ts +26 -0
- package/dist/core/session/preview-config.d.ts.map +1 -0
- package/dist/core/session/preview-config.js +95 -0
- package/dist/core/session/preview-config.js.map +1 -0
- package/dist/core/session/preview-options.d.ts +25 -0
- package/dist/core/session/preview-options.d.ts.map +1 -0
- package/dist/core/session/preview-options.js +45 -0
- package/dist/core/session/preview-options.js.map +1 -0
- package/dist/core/session/preview.d.ts +8 -3
- package/dist/core/session/preview.d.ts.map +1 -1
- package/dist/core/session/preview.js +11 -4
- package/dist/core/session/preview.js.map +1 -1
- package/dist/core/session/rewind.d.ts +67 -24
- package/dist/core/session/rewind.d.ts.map +1 -1
- package/dist/core/session/rewind.js +74 -26
- package/dist/core/session/rewind.js.map +1 -1
- package/dist/core/session/server-store/active.d.ts +10 -12
- package/dist/core/session/server-store/active.d.ts.map +1 -1
- package/dist/core/session/server-store/active.js +11 -9
- package/dist/core/session/server-store/active.js.map +1 -1
- package/dist/core/session/server-store/url-helpers.d.ts +11 -2
- package/dist/core/session/server-store/url-helpers.d.ts.map +1 -1
- package/dist/core/session/server-store/url-helpers.js +11 -2
- package/dist/core/session/server-store/url-helpers.js.map +1 -1
- package/dist/core/session/static-file-preview.d.ts +50 -0
- package/dist/core/session/static-file-preview.d.ts.map +1 -0
- package/dist/core/session/static-file-preview.js +91 -0
- package/dist/core/session/static-file-preview.js.map +1 -0
- package/dist/core/session/url.d.ts +25 -2
- package/dist/core/session/url.d.ts.map +1 -1
- package/dist/core/session/url.js +87 -11
- package/dist/core/session/url.js.map +1 -1
- package/dist/core/session/wake-escalation.d.ts +188 -0
- package/dist/core/session/wake-escalation.d.ts.map +1 -0
- package/dist/core/session/wake-escalation.js +241 -0
- package/dist/core/session/wake-escalation.js.map +1 -0
- package/dist/core/session/working.d.ts +107 -2
- package/dist/core/session/working.d.ts.map +1 -1
- package/dist/core/session/working.js +206 -7
- package/dist/core/session/working.js.map +1 -1
- package/dist/core/session-sync/durable-log.d.ts +96 -0
- package/dist/core/session-sync/durable-log.d.ts.map +1 -0
- package/dist/core/session-sync/durable-log.js +94 -0
- package/dist/core/session-sync/durable-log.js.map +1 -0
- package/dist/core/session-sync/fragment.d.ts +27 -0
- package/dist/core/session-sync/fragment.d.ts.map +1 -0
- package/dist/core/session-sync/fragment.js +24 -0
- package/dist/core/session-sync/fragment.js.map +1 -0
- package/dist/core/session-sync/session-sync-controller.d.ts +117 -11
- package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
- package/dist/core/session-sync/session-sync-controller.js +278 -26
- package/dist/core/session-sync/session-sync-controller.js.map +1 -1
- package/dist/core/stream/keepalive.d.ts +17 -0
- package/dist/core/stream/keepalive.d.ts.map +1 -0
- package/dist/core/stream/keepalive.js +19 -0
- package/dist/core/stream/keepalive.js.map +1 -0
- package/dist/core/turns/grouping.d.ts.map +1 -1
- package/dist/core/turns/grouping.js +73 -23
- package/dist/core/turns/grouping.js.map +1 -1
- package/dist/core/turns/types.d.ts +5 -0
- package/dist/core/turns/types.d.ts.map +1 -1
- package/dist/index.d.ts +16 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/dist/kortix.esm.min.js +25 -25
- package/dist/kortix.global.js +25 -25
- package/dist/node/app-viewer.d.ts +41 -0
- package/dist/node/app-viewer.d.ts.map +1 -0
- package/dist/node/app-viewer.js +150 -0
- package/dist/node/app-viewer.js.map +1 -0
- package/dist/node/auth.d.ts +84 -0
- package/dist/node/auth.d.ts.map +1 -0
- package/dist/node/auth.js +414 -0
- package/dist/node/auth.js.map +1 -0
- package/dist/node/server.d.ts +19 -0
- package/dist/node/server.d.ts.map +1 -1
- package/dist/node/server.js +13 -1
- package/dist/node/server.js.map +1 -1
- package/dist/platform/auth-core.d.ts +13 -1
- package/dist/platform/auth-core.d.ts.map +1 -1
- package/dist/platform/auth-core.js +13 -1
- package/dist/platform/auth-core.js.map +1 -1
- package/dist/react/bedrock-invokable.d.ts +58 -0
- package/dist/react/bedrock-invokable.d.ts.map +1 -0
- package/dist/react/bedrock-invokable.js +83 -0
- package/dist/react/bedrock-invokable.js.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +7 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/model-flatten.d.ts +14 -1
- package/dist/react/model-flatten.d.ts.map +1 -1
- package/dist/react/model-flatten.js +3 -4
- package/dist/react/model-flatten.js.map +1 -1
- package/dist/react/opencode.d.ts +3 -1
- package/dist/react/opencode.d.ts.map +1 -1
- package/dist/react/opencode.js +5 -1
- package/dist/react/opencode.js.map +1 -1
- package/dist/react/provider-selection.d.ts +58 -0
- package/dist/react/provider-selection.d.ts.map +1 -1
- package/dist/react/provider-selection.js +253 -2
- package/dist/react/provider-selection.js.map +1 -1
- package/dist/react/session-start-giveup.d.ts +12 -0
- package/dist/react/session-start-giveup.d.ts.map +1 -0
- package/dist/react/session-start-giveup.js +13 -0
- package/dist/react/session-start-giveup.js.map +1 -0
- package/dist/react/session-title-sync.d.ts.map +1 -1
- package/dist/react/session-title-sync.js +15 -5
- package/dist/react/session-title-sync.js.map +1 -1
- package/dist/react/sign-in-with-kortix.d.ts +346 -0
- package/dist/react/sign-in-with-kortix.d.ts.map +1 -0
- package/dist/react/sign-in-with-kortix.js +65 -0
- package/dist/react/sign-in-with-kortix.js.map +1 -0
- package/dist/react/use-admin-accounts.d.ts +36 -1
- package/dist/react/use-admin-accounts.d.ts.map +1 -1
- package/dist/react/use-admin-accounts.js +19 -0
- package/dist/react/use-admin-accounts.js.map +1 -1
- package/dist/react/use-gateway-routing-policy.d.ts +1 -0
- package/dist/react/use-gateway-routing-policy.d.ts.map +1 -1
- package/dist/react/use-gateway-routing-policy.js +12 -1
- package/dist/react/use-gateway-routing-policy.js.map +1 -1
- package/dist/react/use-kortix-app-viewer.d.ts +13 -0
- package/dist/react/use-kortix-app-viewer.d.ts.map +1 -0
- package/dist/react/use-kortix-app-viewer.js +29 -0
- package/dist/react/use-kortix-app-viewer.js.map +1 -0
- package/dist/react/use-model-defaults.d.ts +7 -0
- package/dist/react/use-model-defaults.d.ts.map +1 -1
- package/dist/react/use-model-defaults.js +7 -1
- package/dist/react/use-model-defaults.js.map +1 -1
- package/dist/react/use-model-enablement.d.ts.map +1 -1
- package/dist/react/use-model-enablement.js +5 -1
- package/dist/react/use-model-enablement.js.map +1 -1
- package/dist/react/use-model-store.d.ts +31 -0
- package/dist/react/use-model-store.d.ts.map +1 -1
- package/dist/react/use-model-store.js +31 -2
- package/dist/react/use-model-store.js.map +1 -1
- package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -1
- package/dist/react/use-opencode-events/handle-event.js +26 -0
- package/dist/react/use-opencode-events/handle-event.js.map +1 -1
- package/dist/react/use-opencode-events/helpers.d.ts +49 -5
- package/dist/react/use-opencode-events/helpers.d.ts.map +1 -1
- package/dist/react/use-opencode-events/helpers.js +54 -6
- package/dist/react/use-opencode-events/helpers.js.map +1 -1
- package/dist/react/use-opencode-events/index.d.ts.map +1 -1
- package/dist/react/use-opencode-events/index.js +80 -8
- package/dist/react/use-opencode-events/index.js.map +1 -1
- package/dist/react/use-opencode-events/rehydrate-targets.d.ts +18 -0
- package/dist/react/use-opencode-events/rehydrate-targets.d.ts.map +1 -0
- package/dist/react/use-opencode-events/rehydrate-targets.js +20 -0
- package/dist/react/use-opencode-events/rehydrate-targets.js.map +1 -0
- package/dist/react/use-opencode-events/stream-revival.d.ts +37 -0
- package/dist/react/use-opencode-events/stream-revival.d.ts.map +1 -0
- package/dist/react/use-opencode-events/stream-revival.js +53 -0
- package/dist/react/use-opencode-events/stream-revival.js.map +1 -0
- package/dist/react/use-opencode-events/use-event-stream-refs.d.ts.map +1 -1
- package/dist/react/use-opencode-events/use-event-stream-refs.js +14 -2
- package/dist/react/use-opencode-events/use-event-stream-refs.js.map +1 -1
- package/dist/react/use-opencode-local.d.ts.map +1 -1
- package/dist/react/use-opencode-local.js +27 -8
- package/dist/react/use-opencode-local.js.map +1 -1
- package/dist/react/use-opencode-pty.d.ts +7 -1
- package/dist/react/use-opencode-pty.d.ts.map +1 -1
- package/dist/react/use-opencode-pty.js +6 -2
- package/dist/react/use-opencode-pty.js.map +1 -1
- package/dist/react/use-opencode-sessions/agents.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/agents.js +13 -2
- package/dist/react/use-opencode-sessions/agents.js.map +1 -1
- package/dist/react/use-opencode-sessions/commands.d.ts +12 -0
- package/dist/react/use-opencode-sessions/commands.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/commands.js +15 -3
- package/dist/react/use-opencode-sessions/commands.js.map +1 -1
- package/dist/react/use-opencode-sessions/index.d.ts +1 -0
- package/dist/react/use-opencode-sessions/index.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/index.js +1 -0
- package/dist/react/use-opencode-sessions/index.js.map +1 -1
- package/dist/react/use-opencode-sessions/keys.d.ts +8 -0
- package/dist/react/use-opencode-sessions/keys.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/keys.js +8 -0
- package/dist/react/use-opencode-sessions/keys.js.map +1 -1
- package/dist/react/use-opencode-sessions/providers.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/providers.js +56 -5
- package/dist/react/use-opencode-sessions/providers.js.map +1 -1
- package/dist/react/use-opencode-sessions/shared.d.ts +23 -0
- package/dist/react/use-opencode-sessions/shared.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/shared.js +31 -0
- package/dist/react/use-opencode-sessions/shared.js.map +1 -1
- package/dist/react/use-opencode-sessions/vcs.d.ts +28 -0
- package/dist/react/use-opencode-sessions/vcs.d.ts.map +1 -0
- package/dist/react/use-opencode-sessions/vcs.js +42 -0
- package/dist/react/use-opencode-sessions/vcs.js.map +1 -0
- package/dist/react/use-poll-owner.d.ts +14 -0
- package/dist/react/use-poll-owner.d.ts.map +1 -0
- package/dist/react/use-poll-owner.js +32 -0
- package/dist/react/use-poll-owner.js.map +1 -0
- package/dist/react/use-project-llm-gateway.d.ts +27 -0
- package/dist/react/use-project-llm-gateway.d.ts.map +1 -0
- package/dist/react/use-project-llm-gateway.js +41 -0
- package/dist/react/use-project-llm-gateway.js.map +1 -0
- package/dist/react/use-project-models.d.ts +9 -0
- package/dist/react/use-project-models.d.ts.map +1 -1
- package/dist/react/use-project-models.js +24 -1
- package/dist/react/use-project-models.js.map +1 -1
- package/dist/react/use-runtime-reconnect.d.ts +11 -0
- package/dist/react/use-runtime-reconnect.d.ts.map +1 -1
- package/dist/react/use-runtime-reconnect.js +34 -3
- package/dist/react/use-runtime-reconnect.js.map +1 -1
- package/dist/react/use-session-prompts.d.ts +53 -3
- package/dist/react/use-session-prompts.d.ts.map +1 -1
- package/dist/react/use-session-prompts.js +133 -21
- package/dist/react/use-session-prompts.js.map +1 -1
- package/dist/react/use-session-send.d.ts +17 -0
- package/dist/react/use-session-send.d.ts.map +1 -1
- package/dist/react/use-session-send.js +54 -5
- package/dist/react/use-session-send.js.map +1 -1
- package/dist/react/use-session-start-give-up.d.ts +20 -0
- package/dist/react/use-session-start-give-up.d.ts.map +1 -0
- package/dist/react/use-session-start-give-up.js +60 -0
- package/dist/react/use-session-start-give-up.js.map +1 -0
- package/dist/react/use-session-sync.d.ts +35 -1
- package/dist/react/use-session-sync.d.ts.map +1 -1
- package/dist/react/use-session-sync.js +135 -53
- package/dist/react/use-session-sync.js.map +1 -1
- package/dist/react/use-session-working.d.ts +55 -0
- package/dist/react/use-session-working.d.ts.map +1 -1
- package/dist/react/use-session-working.js +114 -13
- package/dist/react/use-session-working.js.map +1 -1
- package/dist/react/use-session.d.ts +13 -13
- package/dist/react/use-session.d.ts.map +1 -1
- package/dist/react/use-session.js +74 -53
- package/dist/react/use-session.js.map +1 -1
- package/dist/react/use-static-file-preview.d.ts +12 -0
- package/dist/react/use-static-file-preview.d.ts.map +1 -0
- package/dist/react/use-static-file-preview.js +119 -0
- package/dist/react/use-static-file-preview.js.map +1 -0
- package/dist/react/use-wake-escalation.d.ts +51 -0
- package/dist/react/use-wake-escalation.d.ts.map +1 -0
- package/dist/react/use-wake-escalation.js +62 -0
- package/dist/react/use-wake-escalation.js.map +1 -0
- package/package.json +6 -4
- package/dist/browser/session-sync/session-transcript-cache.d.ts +0 -79
- package/dist/browser/session-sync/session-transcript-cache.d.ts.map +0 -1
- package/dist/browser/session-sync/session-transcript-cache.js +0 -91
- package/dist/browser/session-sync/session-transcript-cache.js.map +0 -1
- package/dist/core/rest/projects-client/public-voice-join.d.ts +0 -59
- package/dist/core/rest/projects-client/public-voice-join.d.ts.map +0 -1
- package/dist/core/rest/projects-client/public-voice-join.js +0 -64
- package/dist/core/rest/projects-client/public-voice-join.js.map +0 -1
- package/dist/core/rest/projects-client/transcription.d.ts +0 -5
- package/dist/core/rest/projects-client/transcription.d.ts.map +0 -1
- package/dist/core/rest/projects-client/transcription.js +0 -14
- package/dist/core/rest/projects-client/transcription.js.map +0 -1
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `createKortixAuth` — "Sign in with Kortix" for a standalone app.
|
|
3
|
+
*
|
|
4
|
+
* A third-party app (a dashboard, an internal tool, a vertical wrapper) mounts
|
|
5
|
+
* ONE catch-all route on `handler()` and gets the whole OAuth 2.1 lifecycle
|
|
6
|
+
* against Kortix: PKCE sign-in, the callback exchange, an encrypted session
|
|
7
|
+
* cookie, silent refresh, sign-out with revocation, a `/me` identity probe for
|
|
8
|
+
* the browser, and a same-origin `/proxy` so `createKortix` in the browser
|
|
9
|
+
* talks to Kortix AS the signed-in viewer without ever holding a token.
|
|
10
|
+
*
|
|
11
|
+
* Framework-free on purpose: only Web `Request`/`Response`, `URL`, `fetch` and
|
|
12
|
+
* WebCrypto (`crypto.subtle`) — present in Node ≥ 19, Bun, Deno and every edge
|
|
13
|
+
* runtime. No `node:` import beyond what `./server` already carries for
|
|
14
|
+
* `createScopedKortix`. Works identically against kortix.com and a self-host;
|
|
15
|
+
* the only Kortix-specific inputs are `backendUrl` and a registered client
|
|
16
|
+
* (`kortix.iam.oauthClients.create`, or Account → Tokens → OAuth apps).
|
|
17
|
+
*
|
|
18
|
+
* Server-side state is the cookie. `viewer()` is read-only and never consumes
|
|
19
|
+
* the (single-use, rotating) refresh token; the `/refresh`, `/me` and `/proxy`
|
|
20
|
+
* paths — which return a `Response` and can set cookies — are the only places
|
|
21
|
+
* a rotation is persisted. `requireViewer()` turns an expired session into a
|
|
22
|
+
* redirect through `/refresh`, so a page never renders "signed out" for a user
|
|
23
|
+
* whose refresh token is still good.
|
|
24
|
+
*/
|
|
25
|
+
import { createScopedKortix, forwardKortixRequest } from './server.js';
|
|
26
|
+
import { stripTrailingSlashes } from '../platform/strings.js';
|
|
27
|
+
export class KortixAuthError extends Error {
|
|
28
|
+
code;
|
|
29
|
+
constructor(code, message) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.code = code;
|
|
32
|
+
this.name = 'KortixAuthError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** The bearer the browser sends; `/proxy` replaces it with the viewer's token. */
|
|
36
|
+
export const KORTIX_SESSION_SENTINEL = 'kortix-session';
|
|
37
|
+
const DEFAULT_SCOPES = ['profile', 'email', 'kortix'];
|
|
38
|
+
const TXN_TTL_S = 10 * 60;
|
|
39
|
+
const DEFAULT_SESSION_TTL_S = 30 * 24 * 3600;
|
|
40
|
+
/** Treat a token as expired this long before Kortix does, so a call in flight never lands on a dead token. */
|
|
41
|
+
const EXPIRY_SKEW_S = 30;
|
|
42
|
+
// ─── small codecs ────────────────────────────────────────────────────────────
|
|
43
|
+
const enc = new TextEncoder();
|
|
44
|
+
const dec = new TextDecoder();
|
|
45
|
+
function b64url(bytes) {
|
|
46
|
+
let s = '';
|
|
47
|
+
for (const b of bytes)
|
|
48
|
+
s += String.fromCharCode(b);
|
|
49
|
+
return btoa(s).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
50
|
+
}
|
|
51
|
+
function fromB64url(value) {
|
|
52
|
+
const padded = value.replace(/-/g, '+').replace(/_/g, '/') + '='.repeat((4 - (value.length % 4)) % 4);
|
|
53
|
+
const s = atob(padded);
|
|
54
|
+
const out = new Uint8Array(new ArrayBuffer(s.length));
|
|
55
|
+
for (let i = 0; i < s.length; i += 1)
|
|
56
|
+
out[i] = s.charCodeAt(i);
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
function randomB64url(bytes) {
|
|
60
|
+
const buf = new Uint8Array(bytes);
|
|
61
|
+
crypto.getRandomValues(buf);
|
|
62
|
+
return b64url(buf);
|
|
63
|
+
}
|
|
64
|
+
async function sha256B64url(input) {
|
|
65
|
+
return b64url(new Uint8Array(await crypto.subtle.digest('SHA-256', enc.encode(input))));
|
|
66
|
+
}
|
|
67
|
+
async function aesKey(secret) {
|
|
68
|
+
const raw = await crypto.subtle.digest('SHA-256', enc.encode(secret));
|
|
69
|
+
return crypto.subtle.importKey('raw', raw, 'AES-GCM', false, ['encrypt', 'decrypt']);
|
|
70
|
+
}
|
|
71
|
+
async function seal(value, secret) {
|
|
72
|
+
const iv = new Uint8Array(12);
|
|
73
|
+
crypto.getRandomValues(iv);
|
|
74
|
+
const ct = await crypto.subtle.encrypt({ name: 'AES-GCM', iv }, await aesKey(secret), enc.encode(JSON.stringify(value)));
|
|
75
|
+
return `${b64url(iv)}.${b64url(new Uint8Array(ct))}`;
|
|
76
|
+
}
|
|
77
|
+
async function open(token, secret) {
|
|
78
|
+
const [ivPart, ctPart, extra] = token.split('.');
|
|
79
|
+
if (!ivPart || !ctPart || extra)
|
|
80
|
+
return null;
|
|
81
|
+
try {
|
|
82
|
+
const pt = await crypto.subtle.decrypt({ name: 'AES-GCM', iv: fromB64url(ivPart) }, await aesKey(secret), fromB64url(ctPart));
|
|
83
|
+
return JSON.parse(dec.decode(pt));
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function readCookie(request, name) {
|
|
90
|
+
const header = request.headers.get('cookie') ?? '';
|
|
91
|
+
for (const part of header.split(';')) {
|
|
92
|
+
const [k, ...v] = part.trim().split('=');
|
|
93
|
+
if (k === name)
|
|
94
|
+
return v.join('=') || null;
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
/** Only a same-origin path may be a post-auth destination. */
|
|
99
|
+
export function safeReturnTo(value) {
|
|
100
|
+
if (!value)
|
|
101
|
+
return '/';
|
|
102
|
+
if (!value.startsWith('/') || value.startsWith('//') || value.startsWith('/\\'))
|
|
103
|
+
return '/';
|
|
104
|
+
return value;
|
|
105
|
+
}
|
|
106
|
+
// ─── the kit ─────────────────────────────────────────────────────────────────
|
|
107
|
+
export function createKortixAuth(options) {
|
|
108
|
+
if (!options.cookieSecret || options.cookieSecret.length < 32) {
|
|
109
|
+
throw new KortixAuthError('invalid_options', 'cookieSecret must be at least 32 characters');
|
|
110
|
+
}
|
|
111
|
+
let redirect;
|
|
112
|
+
try {
|
|
113
|
+
redirect = new URL(options.redirectUri);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
throw new KortixAuthError('invalid_options', 'redirectUri must be an absolute URL');
|
|
117
|
+
}
|
|
118
|
+
if (redirect.protocol !== 'https:' && redirect.protocol !== 'http:') {
|
|
119
|
+
throw new KortixAuthError('invalid_options', 'redirectUri must be http(s)');
|
|
120
|
+
}
|
|
121
|
+
if (!options.clientId)
|
|
122
|
+
throw new KortixAuthError('invalid_options', 'clientId is required');
|
|
123
|
+
if (!options.backendUrl)
|
|
124
|
+
throw new KortixAuthError('invalid_options', 'backendUrl is required');
|
|
125
|
+
const backendUrl = stripTrailingSlashes(options.backendUrl);
|
|
126
|
+
const rawBase = options.basePath ?? (redirect.pathname.endsWith('/callback/') ? redirect.pathname.slice(0, -'/callback/'.length) : redirect.pathname.endsWith('/callback') ? redirect.pathname.slice(0, -'/callback'.length) : redirect.pathname);
|
|
127
|
+
const basePath = stripTrailingSlashes(rawBase) || '/';
|
|
128
|
+
const secure = redirect.protocol === 'https:';
|
|
129
|
+
const sessionCookie = secure ? '__Host-kortix_session' : 'kortix_session';
|
|
130
|
+
const txnCookie = secure ? '__Host-kortix_oauth_txn' : 'kortix_oauth_txn';
|
|
131
|
+
const scopes = options.scopes?.length ? options.scopes : DEFAULT_SCOPES;
|
|
132
|
+
const sessionTtl = options.sessionTtlSeconds ?? DEFAULT_SESSION_TTL_S;
|
|
133
|
+
const fetchImpl = options.fetch ?? ((input, init) => fetch(input, init));
|
|
134
|
+
let now = options.now ?? (() => Date.now());
|
|
135
|
+
const nowS = () => Math.floor(now() / 1000);
|
|
136
|
+
const cookieLine = (name, value, maxAge) => `${name}=${value}; Path=/; Max-Age=${maxAge}; HttpOnly; SameSite=Lax${secure ? '; Secure' : ''}`;
|
|
137
|
+
const clearLine = (name) => cookieLine(name, '', 0);
|
|
138
|
+
const redirectTo = (location, cookies = []) => {
|
|
139
|
+
const headers = new Headers({ location, 'cache-control': 'no-store' });
|
|
140
|
+
for (const c of cookies)
|
|
141
|
+
headers.append('set-cookie', c);
|
|
142
|
+
return new Response(null, { status: 302, headers });
|
|
143
|
+
};
|
|
144
|
+
const jsonResponse = (body, status = 200, cookies = []) => {
|
|
145
|
+
const headers = new Headers({ 'content-type': 'application/json', 'cache-control': 'no-store' });
|
|
146
|
+
for (const c of cookies)
|
|
147
|
+
headers.append('set-cookie', c);
|
|
148
|
+
return new Response(JSON.stringify(body), { status, headers });
|
|
149
|
+
};
|
|
150
|
+
const pathOf = (request) => {
|
|
151
|
+
const url = new URL(request.url);
|
|
152
|
+
return `${url.pathname}${url.search}`;
|
|
153
|
+
};
|
|
154
|
+
const signInUrl = (returnTo) => returnTo ? `${basePath}/signin?return_to=${encodeURIComponent(safeReturnTo(returnTo))}` : `${basePath}/signin`;
|
|
155
|
+
const signOutUrl = (returnTo) => returnTo ? `${basePath}/signout?return_to=${encodeURIComponent(safeReturnTo(returnTo))}` : `${basePath}/signout`;
|
|
156
|
+
const refreshUrl = (returnTo) => `${basePath}/refresh?return_to=${encodeURIComponent(safeReturnTo(returnTo))}`;
|
|
157
|
+
// ── Kortix calls ──
|
|
158
|
+
const clientAuthFields = () => ({
|
|
159
|
+
client_id: options.clientId,
|
|
160
|
+
...(options.clientSecret ? { client_secret: options.clientSecret } : {}),
|
|
161
|
+
});
|
|
162
|
+
async function tokenRequest(fields) {
|
|
163
|
+
let res;
|
|
164
|
+
try {
|
|
165
|
+
res = await fetchImpl(`${backendUrl}/oauth/token`, {
|
|
166
|
+
method: 'POST',
|
|
167
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded', accept: 'application/json' },
|
|
168
|
+
body: new URLSearchParams({ ...fields, ...clientAuthFields() }).toString(),
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
return { ok: false, status: 502, error: 'upstream_unreachable', description: err.message };
|
|
173
|
+
}
|
|
174
|
+
const body = (await res.json().catch(() => ({})));
|
|
175
|
+
if (!res.ok || typeof body.access_token !== 'string' || typeof body.refresh_token !== 'string') {
|
|
176
|
+
return {
|
|
177
|
+
ok: false,
|
|
178
|
+
status: res.status,
|
|
179
|
+
error: typeof body.error === 'string' ? body.error : 'token_error',
|
|
180
|
+
description: typeof body.error_description === 'string' ? body.error_description : undefined,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
const expiresIn = typeof body.expires_in === 'number' ? body.expires_in : 3600;
|
|
184
|
+
return {
|
|
185
|
+
ok: true,
|
|
186
|
+
session: {
|
|
187
|
+
v: 1,
|
|
188
|
+
at: body.access_token,
|
|
189
|
+
rt: body.refresh_token,
|
|
190
|
+
exp: nowS() + expiresIn,
|
|
191
|
+
scopes: typeof body.scope === 'string' ? body.scope.split(' ').filter(Boolean) : scopes,
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
async function revoke(token) {
|
|
196
|
+
try {
|
|
197
|
+
await fetchImpl(`${backendUrl}/oauth/revoke`, {
|
|
198
|
+
method: 'POST',
|
|
199
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded', accept: 'application/json' },
|
|
200
|
+
body: new URLSearchParams({ token, ...clientAuthFields() }).toString(),
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// Best effort: the cookie is cleared regardless; the token dies at its TTL.
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
async function identity(token) {
|
|
208
|
+
try {
|
|
209
|
+
const res = await fetchImpl(`${backendUrl}/accounts/me`, {
|
|
210
|
+
headers: { authorization: `Bearer ${token}`, accept: 'application/json' },
|
|
211
|
+
});
|
|
212
|
+
if (!res.ok)
|
|
213
|
+
return null;
|
|
214
|
+
return (await res.json());
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// ── session cookie ──
|
|
221
|
+
const readSession = async (request) => {
|
|
222
|
+
const raw = readCookie(request, sessionCookie);
|
|
223
|
+
if (!raw)
|
|
224
|
+
return null;
|
|
225
|
+
const payload = await open(raw, options.cookieSecret);
|
|
226
|
+
return payload && payload.v === 1 && typeof payload.at === 'string' && typeof payload.rt === 'string' ? payload : null;
|
|
227
|
+
};
|
|
228
|
+
const isLive = (s) => s.exp - EXPIRY_SKEW_S > nowS();
|
|
229
|
+
const sessionCookieLine = async (s) => cookieLine(sessionCookie, await seal(s, options.cookieSecret), sessionTtl);
|
|
230
|
+
const toViewer = (s, id) => ({
|
|
231
|
+
userId: id.user_id,
|
|
232
|
+
email: id.email,
|
|
233
|
+
accounts: id.accounts ?? [],
|
|
234
|
+
scopes: s.scopes,
|
|
235
|
+
token: s.at,
|
|
236
|
+
expiresAt: s.exp * 1000,
|
|
237
|
+
});
|
|
238
|
+
/**
|
|
239
|
+
* A live session, refreshing (and persisting via `setCookie`) when the access
|
|
240
|
+
* token is expired but the refresh token may still be good. Used by the paths
|
|
241
|
+
* that return a Response; `viewer()` deliberately does not go through here.
|
|
242
|
+
*/
|
|
243
|
+
async function liveSession(request) {
|
|
244
|
+
const session = await readSession(request);
|
|
245
|
+
if (!session)
|
|
246
|
+
return null;
|
|
247
|
+
if (isLive(session))
|
|
248
|
+
return { session, setCookie: null };
|
|
249
|
+
const refreshed = await tokenRequest({ grant_type: 'refresh_token', refresh_token: session.rt });
|
|
250
|
+
if (!refreshed.ok)
|
|
251
|
+
return null;
|
|
252
|
+
return { session: refreshed.session, setCookie: await sessionCookieLine(refreshed.session) };
|
|
253
|
+
}
|
|
254
|
+
// ── route handlers ──
|
|
255
|
+
async function handleSignIn(request) {
|
|
256
|
+
const url = new URL(request.url);
|
|
257
|
+
const returnTo = safeReturnTo(url.searchParams.get('return_to'));
|
|
258
|
+
const state = randomB64url(24);
|
|
259
|
+
const verifier = randomB64url(48);
|
|
260
|
+
const challenge = await sha256B64url(verifier);
|
|
261
|
+
const txn = { v: 1, state, verifier, returnTo, exp: nowS() + TXN_TTL_S };
|
|
262
|
+
const authorize = new URL(`${backendUrl}/oauth/authorize`);
|
|
263
|
+
authorize.searchParams.set('response_type', 'code');
|
|
264
|
+
authorize.searchParams.set('client_id', options.clientId);
|
|
265
|
+
authorize.searchParams.set('redirect_uri', options.redirectUri);
|
|
266
|
+
authorize.searchParams.set('scope', scopes.join(' '));
|
|
267
|
+
authorize.searchParams.set('state', state);
|
|
268
|
+
authorize.searchParams.set('code_challenge', challenge);
|
|
269
|
+
authorize.searchParams.set('code_challenge_method', 'S256');
|
|
270
|
+
return redirectTo(authorize.toString(), [cookieLine(txnCookie, await seal(txn, options.cookieSecret), TXN_TTL_S)]);
|
|
271
|
+
}
|
|
272
|
+
async function handleCallback(request) {
|
|
273
|
+
const url = new URL(request.url);
|
|
274
|
+
const rawTxn = readCookie(request, txnCookie);
|
|
275
|
+
const txn = rawTxn ? await open(rawTxn, options.cookieSecret) : null;
|
|
276
|
+
const state = url.searchParams.get('state') ?? '';
|
|
277
|
+
if (!txn || txn.v !== 1 || txn.exp <= nowS() || !state || state !== txn.state) {
|
|
278
|
+
return jsonResponse({ error: 'state_mismatch', error_description: 'The sign-in transaction is missing, expired, or does not match this callback.' }, 400, [clearLine(txnCookie)]);
|
|
279
|
+
}
|
|
280
|
+
const returnTo = safeReturnTo(txn.returnTo);
|
|
281
|
+
const oauthError = url.searchParams.get('error');
|
|
282
|
+
if (oauthError) {
|
|
283
|
+
const target = new URL(returnTo, 'http://local');
|
|
284
|
+
target.searchParams.set('kortix_auth_error', oauthError);
|
|
285
|
+
return redirectTo(`${target.pathname}${target.search}`, [clearLine(txnCookie)]);
|
|
286
|
+
}
|
|
287
|
+
const code = url.searchParams.get('code') ?? '';
|
|
288
|
+
if (!code)
|
|
289
|
+
return jsonResponse({ error: 'invalid_callback', error_description: 'Missing code' }, 400, [clearLine(txnCookie)]);
|
|
290
|
+
const exchanged = await tokenRequest({
|
|
291
|
+
grant_type: 'authorization_code',
|
|
292
|
+
code,
|
|
293
|
+
redirect_uri: options.redirectUri,
|
|
294
|
+
code_verifier: txn.verifier,
|
|
295
|
+
});
|
|
296
|
+
if (!exchanged.ok) {
|
|
297
|
+
return jsonResponse({ error: 'token_exchange_failed', upstream_error: exchanged.error, error_description: exchanged.description ?? null }, exchanged.status === 502 ? 502 : 400, [clearLine(txnCookie)]);
|
|
298
|
+
}
|
|
299
|
+
return redirectTo(returnTo, [await sessionCookieLine(exchanged.session), clearLine(txnCookie)]);
|
|
300
|
+
}
|
|
301
|
+
async function handleRefresh(request) {
|
|
302
|
+
const url = new URL(request.url);
|
|
303
|
+
const returnTo = safeReturnTo(url.searchParams.get('return_to'));
|
|
304
|
+
const session = await readSession(request);
|
|
305
|
+
if (!session)
|
|
306
|
+
return redirectTo(signInUrl(returnTo), [clearLine(sessionCookie)]);
|
|
307
|
+
if (isLive(session))
|
|
308
|
+
return redirectTo(returnTo);
|
|
309
|
+
const refreshed = await tokenRequest({ grant_type: 'refresh_token', refresh_token: session.rt });
|
|
310
|
+
if (!refreshed.ok)
|
|
311
|
+
return redirectTo(signInUrl(returnTo), [clearLine(sessionCookie)]);
|
|
312
|
+
return redirectTo(returnTo, [await sessionCookieLine(refreshed.session)]);
|
|
313
|
+
}
|
|
314
|
+
async function handleSignOut(request) {
|
|
315
|
+
const url = new URL(request.url);
|
|
316
|
+
const returnTo = safeReturnTo(url.searchParams.get('return_to'));
|
|
317
|
+
const session = await readSession(request);
|
|
318
|
+
if (session)
|
|
319
|
+
await revoke(session.rt);
|
|
320
|
+
return redirectTo(returnTo, [clearLine(sessionCookie), clearLine(txnCookie)]);
|
|
321
|
+
}
|
|
322
|
+
async function handleMe(request) {
|
|
323
|
+
const live = await liveSession(request);
|
|
324
|
+
if (!live)
|
|
325
|
+
return jsonResponse({ error: 'unauthenticated' }, 401, [clearLine(sessionCookie)]);
|
|
326
|
+
const id = await identity(live.session.at);
|
|
327
|
+
if (!id)
|
|
328
|
+
return jsonResponse({ error: 'unauthenticated' }, 401, [clearLine(sessionCookie)]);
|
|
329
|
+
const viewer = toViewer(live.session, id);
|
|
330
|
+
return jsonResponse({ user_id: viewer.userId, email: viewer.email, accounts: viewer.accounts, scopes: viewer.scopes, expires_at: new Date(viewer.expiresAt).toISOString() }, 200, live.setCookie ? [live.setCookie] : []);
|
|
331
|
+
}
|
|
332
|
+
async function handleProxy(request, rest) {
|
|
333
|
+
const live = await liveSession(request);
|
|
334
|
+
if (!live)
|
|
335
|
+
return jsonResponse({ error: 'unauthenticated', error_description: 'Sign in with Kortix first.' }, 401);
|
|
336
|
+
const url = new URL(request.url);
|
|
337
|
+
const upstream = await forwardKortixRequest({
|
|
338
|
+
request,
|
|
339
|
+
upstreamUrl: `${backendUrl}/${rest.replace(/^\/+/, '')}${url.search}`,
|
|
340
|
+
token: live.session.at,
|
|
341
|
+
fetch: fetchImpl,
|
|
342
|
+
});
|
|
343
|
+
if (!live.setCookie)
|
|
344
|
+
return upstream;
|
|
345
|
+
const headers = new Headers(upstream.headers);
|
|
346
|
+
headers.append('set-cookie', live.setCookie);
|
|
347
|
+
return new Response(upstream.body, { status: upstream.status, headers });
|
|
348
|
+
}
|
|
349
|
+
async function handler(request) {
|
|
350
|
+
const url = new URL(request.url);
|
|
351
|
+
if (url.pathname !== basePath && !url.pathname.startsWith(`${basePath}/`)) {
|
|
352
|
+
return jsonResponse({ error: 'not_found', error_description: `Not under ${basePath}` }, 404);
|
|
353
|
+
}
|
|
354
|
+
const sub = url.pathname.slice(basePath.length).replace(/^\/+/, '');
|
|
355
|
+
const [head, ...tail] = sub.split('/');
|
|
356
|
+
switch (head) {
|
|
357
|
+
case 'signin':
|
|
358
|
+
return handleSignIn(request);
|
|
359
|
+
case 'callback':
|
|
360
|
+
return handleCallback(request);
|
|
361
|
+
case 'refresh':
|
|
362
|
+
return handleRefresh(request);
|
|
363
|
+
case 'signout':
|
|
364
|
+
return handleSignOut(request);
|
|
365
|
+
case 'me':
|
|
366
|
+
return handleMe(request);
|
|
367
|
+
case 'proxy':
|
|
368
|
+
return handleProxy(request, tail.join('/'));
|
|
369
|
+
default:
|
|
370
|
+
return jsonResponse({ error: 'not_found' }, 404);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
async function viewer(request) {
|
|
374
|
+
const session = await readSession(request);
|
|
375
|
+
if (!session || !isLive(session))
|
|
376
|
+
return null;
|
|
377
|
+
const id = await identity(session.at);
|
|
378
|
+
return id ? toViewer(session, id) : null;
|
|
379
|
+
}
|
|
380
|
+
async function requireViewer(request) {
|
|
381
|
+
const current = await viewer(request);
|
|
382
|
+
if (current)
|
|
383
|
+
return { viewer: current };
|
|
384
|
+
const returnTo = pathOf(request);
|
|
385
|
+
const session = await readSession(request);
|
|
386
|
+
if (session && !isLive(session))
|
|
387
|
+
return { response: redirectTo(refreshUrl(returnTo)) };
|
|
388
|
+
return { response: redirectTo(signInUrl(returnTo)) };
|
|
389
|
+
}
|
|
390
|
+
async function kortix(request) {
|
|
391
|
+
const current = await viewer(request);
|
|
392
|
+
if (!current)
|
|
393
|
+
throw new KortixAuthError('unauthenticated', 'No signed-in Kortix viewer on this request');
|
|
394
|
+
const token = current.token;
|
|
395
|
+
return createScopedKortix({ backendUrl, getToken: async () => token, fetch: fetchImpl, clientSource: 'web' });
|
|
396
|
+
}
|
|
397
|
+
return {
|
|
398
|
+
basePath,
|
|
399
|
+
handler,
|
|
400
|
+
viewer,
|
|
401
|
+
requireViewer,
|
|
402
|
+
kortix,
|
|
403
|
+
signInUrl,
|
|
404
|
+
signOutUrl,
|
|
405
|
+
clientConfig(origin) {
|
|
406
|
+
const base = origin ?? (typeof window !== 'undefined' ? window.location.origin : '');
|
|
407
|
+
return { backendUrl: `${stripTrailingSlashes(base)}${basePath}/proxy`, getToken: async () => KORTIX_SESSION_SENTINEL };
|
|
408
|
+
},
|
|
409
|
+
__setNow(next) {
|
|
410
|
+
now = next;
|
|
411
|
+
},
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/node/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/node/server.d.ts
CHANGED
|
@@ -43,6 +43,25 @@ export declare function forwardKortixRequest(options: {
|
|
|
43
43
|
request: Request;
|
|
44
44
|
upstreamUrl: string;
|
|
45
45
|
token: string;
|
|
46
|
+
/** Custom `fetch` (tests, edge adapters). Defaults to the global. */
|
|
47
|
+
fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
46
48
|
}): Promise<Response>;
|
|
47
49
|
export declare function createScopedKortix(config: KortixPlatformConfig): Kortix;
|
|
50
|
+
/**
|
|
51
|
+
* "Sign in with Kortix" for a standalone app — OAuth 2.1 sign-in, session
|
|
52
|
+
* cookie, refresh, sign-out, `/me`, and a same-origin `/proxy`. See ./auth.ts.
|
|
53
|
+
*/
|
|
54
|
+
export { createKortixAuth, KortixAuthError, KORTIX_SESSION_SENTINEL, safeReturnTo, type KortixAuth, type KortixFetch, type KortixAuthOptions, type KortixViewer, type RequireViewerResult, } from './auth.js';
|
|
55
|
+
/**
|
|
56
|
+
* Types a server-side consumer's declaration emit may need to name `Kortix`
|
|
57
|
+
* (the `auth` member and its session store) without reaching into src/.
|
|
58
|
+
*/
|
|
59
|
+
export type { HeadlessAuthApi, AuthSession, AuthUser, AuthSessionResult, AuthRequestOptions } from '../core/rest/platform-client/auth.js';
|
|
60
|
+
export type { KortixSession, KortixSessionOptions, KortixSessionStorage } from '../core/auth/session.js';
|
|
61
|
+
/**
|
|
62
|
+
* Kortix Apps — the viewer the Apps gate signs into every request. See
|
|
63
|
+
* ./app-viewer.ts: an App hosted by Kortix authenticates its visitor with no
|
|
64
|
+
* login of its own.
|
|
65
|
+
*/
|
|
66
|
+
export { readAppViewer, createAppViewerKortix, AppViewerUnavailableError, APP_VIEWER_HEADER, APP_VIEWER_TOKEN_HEADER, APP_VIEWER_SECRET_ENV, type KortixAppViewer, type ReadAppViewerOptions, } from './app-viewer.js';
|
|
48
67
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAI1C;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAI1C;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7E,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgDpB;AA4GD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAQvE;AAED;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,QAAQ,CAAC;AAEhB;;;GAGG;AACH,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvI,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEtG;;;;GAIG;AACH,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC"}
|
package/dist/node/server.js
CHANGED
|
@@ -41,6 +41,7 @@ const MAX_WRAP_DEPTH = 12;
|
|
|
41
41
|
*/
|
|
42
42
|
export async function forwardKortixRequest(options) {
|
|
43
43
|
const { request, upstreamUrl, token } = options;
|
|
44
|
+
const fetchImpl = options.fetch ?? ((input, init) => fetch(input, init));
|
|
44
45
|
const headers = new Headers(request.headers);
|
|
45
46
|
headers.delete('host');
|
|
46
47
|
headers.delete('content-length');
|
|
@@ -65,7 +66,7 @@ export async function forwardKortixRequest(options) {
|
|
|
65
66
|
*/
|
|
66
67
|
let upstreamResponse;
|
|
67
68
|
try {
|
|
68
|
-
upstreamResponse = await
|
|
69
|
+
upstreamResponse = await fetchImpl(upstreamUrl, {
|
|
69
70
|
method: request.method,
|
|
70
71
|
headers,
|
|
71
72
|
redirect: 'manual',
|
|
@@ -195,4 +196,15 @@ export function createScopedKortix(config) {
|
|
|
195
196
|
scoped.runtime = scopedRuntimeUnavailable;
|
|
196
197
|
return scoped;
|
|
197
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* "Sign in with Kortix" for a standalone app — OAuth 2.1 sign-in, session
|
|
201
|
+
* cookie, refresh, sign-out, `/me`, and a same-origin `/proxy`. See ./auth.ts.
|
|
202
|
+
*/
|
|
203
|
+
export { createKortixAuth, KortixAuthError, KORTIX_SESSION_SENTINEL, safeReturnTo, } from './auth.js';
|
|
204
|
+
/**
|
|
205
|
+
* Kortix Apps — the viewer the Apps gate signs into every request. See
|
|
206
|
+
* ./app-viewer.ts: an App hosted by Kortix authenticates its visitor with no
|
|
207
|
+
* login of its own.
|
|
208
|
+
*/
|
|
209
|
+
export { readAppViewer, createAppViewerKortix, AppViewerUnavailableError, APP_VIEWER_HEADER, APP_VIEWER_TOKEN_HEADER, APP_VIEWER_SECRET_ENV, } from './app-viewer.js';
|
|
198
210
|
//# sourceMappingURL=server.js.map
|
package/dist/node/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGpF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAE1C,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGpF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAE1C,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAM1C;IACC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,KAAwB,EAAE,IAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1G,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D;;;;;;;;;;;;;OAaG;IAEH,IAAI,gBAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,gBAAgB,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,QAAQ,EAAE,QAAQ;YAClB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9D,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC3C,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACzC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAErC,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE;QACzC,MAAM,EAAE,gBAAgB,CAAC,MAAM;QAC/B,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,UAAU,CAAI,KAAQ,EAAE,MAA4B,EAAE,IAAqB,EAAE,KAAK,GAAG,CAAC;IAC7F,IAAI,KAAK,GAAG,cAAc;QAAE,OAAO,KAAK,CAAC;IAEzC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,KAAwC,CAAC;QACpD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,EAAW,EAAE;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACpD,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;QACF,OAAO,OAAuB,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAiB,CAAC;IACxF,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;oBAC9B,UAAU,EAAE,IAAI;oBAChB,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;iBACvE,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,OAAO,GAAQ,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB;IAC/B,MAAM,IAAI,KAAK,CACb,6FAA6F;QAC3F,8FAA8F;QAC9F,0FAA0F;QAC1F,oCAAoC,CACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAA4B;IAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;IACxD,wEAAwE;IACxE,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,CAAC,OAAO,GAAG,wBAAwB,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,YAAY,GAMb,MAAM,QAAQ,CAAC;AAShB;;;;GAIG;AACH,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GAGtB,MAAM,cAAc,CAAC"}
|
|
@@ -27,7 +27,19 @@ export declare function normalizeClientSource(value?: string): string | null;
|
|
|
27
27
|
* there. Returns the last (possibly falsy) result after exhausting attempts.
|
|
28
28
|
*/
|
|
29
29
|
export declare function withTokenRetry(getToken: () => Promise<string | null>, options?: TokenRetryOptions, onInvalidate?: () => void): Promise<string | null>;
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* A HANG detector, not a throughput limit.
|
|
32
|
+
*
|
|
33
|
+
* 30s was both, and the second role broke sessions: a transcript page that was
|
|
34
|
+
* 7-19 MB of inline attachment bytes took 23-30 s to arrive and was killed at
|
|
35
|
+
* exactly 30.00 s — then retried, and killed again, forever (essentia,
|
|
36
|
+
* 2026-08-24, network panel: five reads in a row at 29.23-30.08 s). The bytes
|
|
37
|
+
* are gone now (`stripInlineAttachmentBytes`), which is the real fix; this
|
|
38
|
+
* ceiling is raised so the next large-but-legitimate response is not
|
|
39
|
+
* manufactured into a failure by the client that asked for it. A wedged
|
|
40
|
+
* sandbox is still caught — apps/api's own proxy budget is 50 s.
|
|
41
|
+
*/
|
|
42
|
+
export declare const DEFAULT_FETCH_TIMEOUT_MS = 120000;
|
|
31
43
|
/**
|
|
32
44
|
* The one long-lived streaming call reached through the auth fetch injection
|
|
33
45
|
* point — `openEventStream` (`state/event-stream.ts`) drives the opencode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-core.d.ts","sourceRoot":"","sources":["../../src/platform/auth-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC;AAID,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAMD;;;;;;GAMG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EACtC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAED,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"auth-core.d.ts","sourceRoot":"","sources":["../../src/platform/auth-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC;AAID,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAMD;;;;;;GAMG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EACtC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,GAAG,OAAO,CAGpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,GAAE,MAAiC,GAC1C,WAAW,GAAG,SAAS,CAUzB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,CAeT;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,IAAI,QAAQ,CAK3D"}
|
|
@@ -45,7 +45,19 @@ export async function withTokenRetry(getToken, options, onInvalidate) {
|
|
|
45
45
|
}
|
|
46
46
|
return token;
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
/**
|
|
49
|
+
* A HANG detector, not a throughput limit.
|
|
50
|
+
*
|
|
51
|
+
* 30s was both, and the second role broke sessions: a transcript page that was
|
|
52
|
+
* 7-19 MB of inline attachment bytes took 23-30 s to arrive and was killed at
|
|
53
|
+
* exactly 30.00 s — then retried, and killed again, forever (essentia,
|
|
54
|
+
* 2026-08-24, network panel: five reads in a row at 29.23-30.08 s). The bytes
|
|
55
|
+
* are gone now (`stripInlineAttachmentBytes`), which is the real fix; this
|
|
56
|
+
* ceiling is raised so the next large-but-legitimate response is not
|
|
57
|
+
* manufactured into a failure by the client that asked for it. A wedged
|
|
58
|
+
* sandbox is still caught — apps/api's own proxy budget is 50 s.
|
|
59
|
+
*/
|
|
60
|
+
export const DEFAULT_FETCH_TIMEOUT_MS = 120_000;
|
|
49
61
|
/**
|
|
50
62
|
* The one long-lived streaming call reached through the auth fetch injection
|
|
51
63
|
* point — `openEventStream` (`state/event-stream.ts`) drives the opencode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-core.js","sourceRoot":"","sources":["../../src/platform/auth-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAEhE,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,UAAU,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAsC,EACtC,OAA2B,EAC3B,YAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;IAC9C,MAAM,yBAAyB,GAAG,OAAO,EAAE,yBAAyB,IAAI,KAAK,CAAC;IAE9E,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QACrD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,yBAAyB;gBAAE,YAAY,EAAE,EAAE,CAAC;YAChD,IAAI,WAAW,GAAG,CAAC;gBAAE,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;QACzB,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,
|
|
1
|
+
{"version":3,"file":"auth-core.js","sourceRoot":"","sources":["../../src/platform/auth-core.ts"],"names":[],"mappings":"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"}
|