@workglow/util 0.0.110 → 0.0.113

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/dist/bun.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/utilities/Misc.ts", "../src/crypto/Crypto.ts", "../src/di/Container.ts", "../src/di/ServiceRegistry.ts", "../src/di/InputResolverRegistry.ts", "../src/events/EventEmitter.ts", "../src/logging/ConsoleLogger.ts", "../src/logging/NullLogger.ts", "../src/logging/LoggerRegistry.ts", "../src/utilities/BaseError.ts", "../src/graph/errors.ts", "../src/graph/graph.ts", "../src/graph/directedGraph.ts", "../src/graph/directedAcyclicGraph.ts", "../src/json-schema/FromSchema.ts", "../src/json-schema/SchemaUtils.ts", "../src/json-schema/SchemaValidation.ts", "../src/json-schema/parsePartialJson.ts", "../src/utilities/objectOfArraysAsArrayOfObjects.ts", "../src/vector/TypedArray.ts", "../src/vector/Tensor.ts", "../src/vector/TypedArrayUtils.ts", "../src/vector/VectorSimilarityUtils.ts", "../src/vector/VectorUtils.ts", "../src/worker/WorkerManager.ts", "../src/worker/WorkerServer.ts", "../src/credentials/ICredentialStore.ts", "../src/credentials/InMemoryCredentialStore.ts", "../src/credentials/EnvCredentialStore.ts", "../src/credentials/ChainedCredentialStore.ts", "../src/credentials/CredentialStoreRegistry.ts", "../src/crypto/WebCrypto.ts", "../src/compress/compress.node.ts", "../src/mcp/McpClientUtil.node.ts", "../src/media/image.ts", "../src/media/image.node.ts", "../src/worker/Worker.bun.ts"],
3
+ "sources": ["../src/utilities/Misc.ts", "../src/crypto/Crypto.ts", "../src/di/Container.ts", "../src/di/ServiceRegistry.ts", "../src/di/InputResolverRegistry.ts", "../src/events/EventEmitter.ts", "../src/logging/ConsoleLogger.ts", "../src/logging/NullLogger.ts", "../src/logging/LoggerRegistry.ts", "../src/utilities/BaseError.ts", "../src/graph/errors.ts", "../src/graph/graph.ts", "../src/graph/directedGraph.ts", "../src/graph/directedAcyclicGraph.ts", "../src/json-schema/FromSchema.ts", "../src/json-schema/SchemaUtils.ts", "../src/json-schema/SchemaValidation.ts", "../src/json-schema/parsePartialJson.ts", "../src/utilities/objectOfArraysAsArrayOfObjects.ts", "../src/vector/TypedArray.ts", "../src/vector/Tensor.ts", "../src/vector/TypedArrayUtils.ts", "../src/vector/VectorSimilarityUtils.ts", "../src/vector/VectorUtils.ts", "../src/worker/WorkerManager.ts", "../src/worker/WorkerServer.ts", "../src/credentials/ICredentialStore.ts", "../src/credentials/InMemoryCredentialStore.ts", "../src/credentials/EnvCredentialStore.ts", "../src/credentials/ChainedCredentialStore.ts", "../src/credentials/CredentialStoreRegistry.ts", "../src/crypto/WebCrypto.ts", "../src/mcp/McpAuthTypes.ts", "../src/mcp/McpAuthProvider.ts", "../src/compress/compress.node.ts", "../src/mcp/McpClientUtil.node.ts", "../src/media/image.ts", "../src/media/image.node.ts", "../src/worker/Worker.bun.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport function forceArray<T = any>(input: T | T[]): T[] {\n if (Array.isArray(input)) return input;\n return [input];\n}\n\nexport async function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Takes an array of objects and collects values for each property into arrays\n * @param input Array of objects to process\n * @returns Object with arrays of values for each property\n */\nexport function collectPropertyValues<Input>(input: Input[]): { [K in keyof Input]: Input[K][] } {\n const output = {} as { [K in keyof Input]: Input[K][] };\n\n (input || []).forEach((item) => {\n Object.keys(item as object).forEach((key) => {\n const value = item[key as keyof Input];\n if (output[key as keyof Input]) {\n output[key as keyof Input].push(value);\n } else {\n output[key as keyof Input] = [value];\n }\n });\n });\n\n return output;\n}\n\nexport function toSQLiteTimestamp(date: Date | null | undefined) {\n if (!date) return null;\n const pad = (number: number) => (number < 10 ? \"0\" + number : number);\n\n const year = date.getUTCFullYear();\n const month = pad(date.getUTCMonth() + 1); // getUTCMonth() returns months from 0-11\n const day = pad(date.getUTCDate());\n const hours = pad(date.getUTCHours());\n const minutes = pad(date.getUTCMinutes());\n const seconds = pad(date.getUTCSeconds());\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport function deepEqual(a: any, b: any): boolean {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== \"object\" || typeof b !== \"object\" || a == null || b == null) {\n return false;\n }\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n for (const key of keysA) {\n if (!keysB.includes(key)) {\n return false;\n }\n\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function sortObject(obj: Record<string, any>): Record<string, any> {\n return Object.keys(obj)\n .sort()\n .reduce(\n (result, key) => {\n result[key] = obj[key];\n return result;\n },\n {} as Record<string, any>\n );\n}\n\nexport function serialize(obj: Record<string, any>): string {\n const sortedObj = sortObject(obj);\n return JSON.stringify(sortedObj);\n}\n",
6
6
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { serialize } from \"../utilities/Misc\";\n\nexport async function sha256(data: string): Promise<string> {\n const encoder = new TextEncoder();\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", encoder.encode(data));\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nexport async function makeFingerprint(input: any): Promise<string> {\n const serializedObj = serialize(input);\n const hash = await sha256(serializedObj);\n return hash;\n}\n\nexport type uuid4 = `${string}-${string}-${string}-${string}-${string}`;\n\nexport function uuid4(): uuid4 {\n return crypto.randomUUID() as uuid4;\n}\n",
@@ -34,13 +34,15 @@
34
34
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { CredentialPutOptions, ICredentialStore } from \"./ICredentialStore\";\n\n/**\n * A credential store that chains multiple stores together, trying each\n * in order until a value is found.\n *\n * Writes always go to the first (primary) store. Reads cascade through\n * the chain, returning the first match. This enables layered resolution:\n * explicit config → encrypted store → environment variables.\n *\n * @example\n * ```ts\n * const store = new ChainedCredentialStore([\n * new InMemoryCredentialStore(), // runtime overrides\n * new EncryptedKvCredentialStore(kv, passphrase), // persistent encrypted\n * new EnvCredentialStore({ ... }), // environment fallback\n * ]);\n * ```\n */\nexport class ChainedCredentialStore implements ICredentialStore {\n constructor(private readonly stores: readonly ICredentialStore[]) {\n if (stores.length === 0) {\n throw new Error(\"ChainedCredentialStore requires at least one store.\");\n }\n }\n\n async get(key: string): Promise<string | undefined> {\n for (const store of this.stores) {\n const value = await store.get(key);\n if (value !== undefined) return value;\n }\n return undefined;\n }\n\n async put(key: string, value: string, options?: CredentialPutOptions): Promise<void> {\n await this.stores[0].put(key, value, options);\n }\n\n async delete(key: string): Promise<boolean> {\n let deleted = false;\n for (const store of this.stores) {\n if (await store.delete(key)) {\n deleted = true;\n }\n }\n return deleted;\n }\n\n async has(key: string): Promise<boolean> {\n for (const store of this.stores) {\n if (await store.has(key)) return true;\n }\n return false;\n }\n\n async keys(): Promise<readonly string[]> {\n const seen = new Set<string>();\n for (const store of this.stores) {\n for (const key of await store.keys()) {\n seen.add(key);\n }\n }\n return [...seen];\n }\n\n async deleteAll(): Promise<void> {\n await Promise.all(this.stores.map((s) => s.deleteAll()));\n }\n}\n",
35
35
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { globalServiceRegistry } from \"../di/ServiceRegistry\";\nimport type { ServiceRegistry } from \"../di/ServiceRegistry\";\nimport { registerInputResolver } from \"../di/InputResolverRegistry\";\nimport { CREDENTIAL_STORE } from \"./ICredentialStore\";\nimport type { ICredentialStore } from \"./ICredentialStore\";\nimport { InMemoryCredentialStore } from \"./InMemoryCredentialStore\";\n\n// Register default in-memory factory if not already registered\nif (!globalServiceRegistry.has(CREDENTIAL_STORE)) {\n globalServiceRegistry.register(\n CREDENTIAL_STORE,\n (): ICredentialStore => new InMemoryCredentialStore(),\n true\n );\n}\n\n/**\n * Gets the global credential store instance\n */\nexport function getGlobalCredentialStore(): ICredentialStore {\n return globalServiceRegistry.get(CREDENTIAL_STORE);\n}\n\n/**\n * Sets the global credential store instance\n */\nexport function setGlobalCredentialStore(store: ICredentialStore): void {\n globalServiceRegistry.registerInstance(CREDENTIAL_STORE, store);\n}\n\n/**\n * Resolves a credential from the store registered in the given registry,\n * falling back to the global credential store.\n *\n * Intended for use in provider `getClient` functions and tasks.\n *\n * @param key The credential key to resolve\n * @param registry Optional service registry (e.g., from task context)\n * @returns The credential value, or undefined if not found\n */\nexport async function resolveCredential(\n key: string,\n registry?: ServiceRegistry\n): Promise<string | undefined> {\n const store =\n registry && registry.has(CREDENTIAL_STORE)\n ? registry.get<ICredentialStore>(CREDENTIAL_STORE)\n : getGlobalCredentialStore();\n\n return store.get(key);\n}\n\n// Register \"credential\" input resolver so resolveSchemaInputs can resolve\n// credential_key properties annotated with format: \"credential\" automatically.\n// Returns undefined (rather than throwing) when the key isn't found, so\n// downstream code (e.g., provider getClient) can fall back to env vars.\nregisterInputResolver(\"credential\", async (id, _format, registry) => {\n return (await resolveCredential(id, registry)) ?? id;\n});\n",
36
36
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/** Number of bytes used for the PBKDF2 salt prepended to each ciphertext. */\nconst SALT_LENGTH = 16;\n\n/**\n * Derives a 256-bit AES-GCM key from a passphrase using PBKDF2.\n */\nexport async function deriveKey(passphrase: string, salt: Uint8Array): Promise<CryptoKey> {\n const enc = new TextEncoder();\n const keyMaterial = await crypto.subtle.importKey(\n \"raw\",\n enc.encode(passphrase),\n \"PBKDF2\",\n false,\n [\"deriveKey\"]\n );\n return crypto.subtle.deriveKey(\n { name: \"PBKDF2\", salt: salt as unknown as ArrayBuffer, iterations: 100_000, hash: \"SHA-256\" },\n keyMaterial,\n { name: \"AES-GCM\", length: 256 },\n false,\n [\"encrypt\", \"decrypt\"]\n );\n}\n\n/**\n * Encrypts plaintext using AES-256-GCM with a random salt and IV.\n * The salt is prepended to the ciphertext bytes and stored in the `encrypted` field\n * so that decryption can reconstruct the same key.\n *\n * @param keyCache - Per-store cache of derived CryptoKey instances keyed by base64(salt).\n */\nexport async function encrypt(\n plaintext: string,\n passphrase: string,\n keyCache: Map<string, CryptoKey>\n): Promise<{ encrypted: string; iv: string }> {\n const enc = new TextEncoder();\n const salt = crypto.getRandomValues(new Uint8Array(SALT_LENGTH));\n const saltB64 = bufToBase64(salt);\n let key = keyCache.get(saltB64);\n if (!key) {\n key = await deriveKey(passphrase, salt);\n keyCache.set(saltB64, key);\n }\n const iv = crypto.getRandomValues(new Uint8Array(12));\n const rawCiphertext = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n enc.encode(plaintext)\n );\n // Prepend the salt to the ciphertext so decrypt can recover it.\n const ciphertextBytes = new Uint8Array(rawCiphertext);\n const combined = new Uint8Array(SALT_LENGTH + ciphertextBytes.length);\n combined.set(salt, 0);\n combined.set(ciphertextBytes, SALT_LENGTH);\n return {\n encrypted: bufToBase64(combined),\n iv: bufToBase64(iv),\n };\n}\n\n/**\n * Decrypts ciphertext encrypted with {@link encrypt}.\n *\n * @param keyCache - Per-store cache of derived CryptoKey instances keyed by base64(salt).\n */\nexport async function decrypt(\n encrypted: string,\n iv: string,\n passphrase: string,\n keyCache: Map<string, CryptoKey>\n): Promise<string> {\n const encryptedBuf = base64ToBuf(encrypted);\n const salt = encryptedBuf.subarray(0, SALT_LENGTH);\n const ciphertextBytes = encryptedBuf.subarray(SALT_LENGTH);\n const saltB64 = bufToBase64(salt);\n let key = keyCache.get(saltB64);\n if (!key) {\n key = await deriveKey(passphrase, salt);\n keyCache.set(saltB64, key);\n }\n const plainBuf = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv: base64ToBuf(iv) as unknown as ArrayBuffer },\n key,\n ciphertextBytes as unknown as ArrayBuffer\n );\n return new TextDecoder().decode(plainBuf);\n}\n\nexport function bufToBase64(buf: Uint8Array): string {\n let binary = \"\";\n for (let i = 0; i < buf.length; i++) {\n binary += String.fromCharCode(buf[i]);\n }\n return btoa(binary);\n}\n\nexport function base64ToBuf(b64: string): Uint8Array {\n const binary = atob(b64);\n const buf = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n buf[i] = binary.charCodeAt(i);\n }\n return buf;\n}\n",
37
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * Shared MCP authentication type definitions and JSON Schema.\n */\n\nimport type { DataPortSchemaObject } from \"../json-schema/DataPortSchema.js\";\n\n/**\n * Supported MCP authentication types.\n */\nexport const mcpAuthTypes = [\n \"none\",\n \"bearer\",\n \"client_credentials\",\n \"private_key_jwt\",\n \"static_private_key_jwt\",\n \"authorization_code\",\n] as const;\n\nexport type McpAuthType = (typeof mcpAuthTypes)[number];\n\n// ── Discriminated union on `type` ──────────────────────────────────────\n\nexport interface McpAuthNone {\n readonly type: \"none\";\n}\n\nexport interface McpAuthBearer {\n readonly type: \"bearer\";\n /** Static token or credential-store key (format: \"credential\"). */\n readonly token: string;\n}\n\nexport interface McpAuthClientCredentials {\n readonly type: \"client_credentials\";\n readonly client_id: string;\n /** Client secret or credential-store key (format: \"credential\"). */\n readonly client_secret: string;\n readonly client_name?: string;\n readonly scope?: string;\n}\n\nexport interface McpAuthPrivateKeyJwt {\n readonly type: \"private_key_jwt\";\n readonly client_id: string;\n /** PEM / JWK private key or credential-store key (format: \"credential\"). */\n readonly private_key: string;\n readonly algorithm: string;\n readonly client_name?: string;\n readonly jwt_lifetime_seconds?: number;\n readonly scope?: string;\n}\n\nexport interface McpAuthStaticPrivateKeyJwt {\n readonly type: \"static_private_key_jwt\";\n readonly client_id: string;\n /** Pre-built JWT assertion or credential-store key (format: \"credential\"). */\n readonly jwt_bearer_assertion: string;\n readonly client_name?: string;\n readonly scope?: string;\n}\n\nexport interface McpAuthAuthorizationCode {\n readonly type: \"authorization_code\";\n readonly client_id: string;\n readonly client_secret?: string;\n readonly redirect_url: string;\n readonly scope?: string;\n}\n\nexport type McpAuthConfig =\n | McpAuthNone\n | McpAuthBearer\n | McpAuthClientCredentials\n | McpAuthPrivateKeyJwt\n | McpAuthStaticPrivateKeyJwt\n | McpAuthAuthorizationCode;\n\n// ── JSON Schema properties for auth config ─────────────────────────────\n\nexport const mcpAuthConfigSchema = {\n auth_type: {\n type: \"string\",\n enum: mcpAuthTypes,\n title: \"Auth Type\",\n description: \"Authentication method for connecting to the MCP server\",\n default: \"none\",\n },\n auth_token: {\n type: \"string\",\n format: \"credential\",\n title: \"Bearer Token\",\n description: \"Static bearer token or API key (for bearer auth)\",\n },\n auth_client_id: {\n type: \"string\",\n title: \"Client ID\",\n description: \"OAuth client ID (for OAuth auth types)\",\n },\n auth_client_secret: {\n type: \"string\",\n format: \"credential\",\n title: \"Client Secret\",\n description: \"OAuth client secret (for client_credentials auth)\",\n },\n auth_private_key: {\n type: \"string\",\n format: \"credential\",\n title: \"Private Key\",\n description: \"PEM or JWK private key (for private_key_jwt auth)\",\n },\n auth_algorithm: {\n type: \"string\",\n title: \"Algorithm\",\n description: \"JWT signing algorithm, e.g. RS256, ES256 (for private_key_jwt auth)\",\n },\n auth_jwt_bearer_assertion: {\n type: \"string\",\n format: \"credential\",\n title: \"JWT Assertion\",\n description: \"Pre-built JWT assertion (for static_private_key_jwt auth)\",\n },\n auth_redirect_url: {\n type: \"string\",\n format: \"uri\",\n title: \"Redirect URL\",\n description: \"OAuth redirect URL (for authorization_code auth)\",\n },\n auth_scope: {\n type: \"string\",\n title: \"Scope\",\n description: \"OAuth scope (space-separated)\",\n },\n auth_client_name: {\n type: \"string\",\n title: \"Client Name\",\n description: \"Optional OAuth client display name\",\n },\n auth_jwt_lifetime_seconds: {\n type: \"number\",\n title: \"JWT Lifetime\",\n description: \"JWT lifetime in seconds (default: 300)\",\n minimum: 1,\n },\n} as const satisfies DataPortSchemaObject[\"properties\"];\n\n/**\n * Runtime type guard for McpAuthType.\n */\nfunction isMcpAuthType(value: unknown): value is McpAuthType {\n return (\n typeof value === \"string\" && (mcpAuthTypes as readonly string[]).includes(value)\n );\n}\n\nfunction asNonEmptyString(value: unknown): string | undefined {\n if (typeof value !== \"string\") return undefined;\n const trimmed = value.trim();\n return trimmed === \"\" ? undefined : trimmed;\n}\n\nfunction asNumber(value: unknown): number | undefined {\n return typeof value === \"number\" ? value : undefined;\n}\n\n/**\n * Constructs a typed McpAuthConfig from flat schema properties.\n * Used by `createMcpClient()` to normalize the config.\n * Returns `undefined` if required fields for the selected auth type are missing.\n */\nexport function buildAuthConfig(flat: Record<string, unknown>): McpAuthConfig | undefined {\n const rawAuthType = flat.auth_type;\n\n if (!isMcpAuthType(rawAuthType) || rawAuthType === \"none\") {\n return undefined;\n }\n\n const authType: McpAuthType = rawAuthType;\n\n switch (authType) {\n case \"bearer\": {\n const token = asNonEmptyString(flat.auth_token);\n if (!token) return undefined;\n return { type: \"bearer\", token };\n }\n case \"client_credentials\": {\n const client_id = asNonEmptyString(flat.auth_client_id);\n const client_secret = asNonEmptyString(flat.auth_client_secret);\n if (!client_id || !client_secret) return undefined;\n return {\n type: \"client_credentials\",\n client_id,\n client_secret,\n client_name: asNonEmptyString(flat.auth_client_name),\n scope: asNonEmptyString(flat.auth_scope),\n };\n }\n case \"private_key_jwt\": {\n const client_id = asNonEmptyString(flat.auth_client_id);\n const private_key = asNonEmptyString(flat.auth_private_key);\n const algorithm = asNonEmptyString(flat.auth_algorithm);\n if (!client_id || !private_key || !algorithm) return undefined;\n return {\n type: \"private_key_jwt\",\n client_id,\n private_key,\n algorithm,\n client_name: asNonEmptyString(flat.auth_client_name),\n jwt_lifetime_seconds: asNumber(flat.auth_jwt_lifetime_seconds),\n scope: asNonEmptyString(flat.auth_scope),\n };\n }\n case \"static_private_key_jwt\": {\n const client_id = asNonEmptyString(flat.auth_client_id);\n const jwt_bearer_assertion = asNonEmptyString(flat.auth_jwt_bearer_assertion);\n if (!client_id || !jwt_bearer_assertion) return undefined;\n return {\n type: \"static_private_key_jwt\",\n client_id,\n jwt_bearer_assertion,\n client_name: asNonEmptyString(flat.auth_client_name),\n scope: asNonEmptyString(flat.auth_scope),\n };\n }\n case \"authorization_code\": {\n const client_id = asNonEmptyString(flat.auth_client_id);\n const redirect_url = asNonEmptyString(flat.auth_redirect_url);\n if (!client_id || !redirect_url) return undefined;\n return {\n type: \"authorization_code\",\n client_id,\n client_secret: asNonEmptyString(flat.auth_client_secret),\n redirect_url,\n scope: asNonEmptyString(flat.auth_scope),\n };\n }\n default:\n return undefined;\n }\n}\n",
38
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * MCP OAuth provider adapter backed by ICredentialStore, and factory function.\n */\n\nimport type { OAuthClientProvider, OAuthDiscoveryState } from \"@modelcontextprotocol/sdk/client/auth.js\";\nimport type { OAuthClientMetadata, OAuthClientInformationMixed, OAuthTokens } from \"@modelcontextprotocol/sdk/shared/auth.js\";\nimport type { AddClientAuthentication } from \"@modelcontextprotocol/sdk/client/auth.js\";\nimport {\n ClientCredentialsProvider,\n PrivateKeyJwtProvider,\n StaticPrivateKeyJwtProvider,\n createPrivateKeyJwtAuth,\n} from \"@modelcontextprotocol/sdk/client/auth-extensions.js\";\nimport type { ICredentialStore } from \"../credentials/ICredentialStore\";\nimport { getGlobalCredentialStore } from \"../credentials/CredentialStoreRegistry\";\nimport type { McpAuthConfig } from \"./McpAuthTypes\";\n\n// ── Key helpers ────────────────────────────────────────────────────────\n\nfunction normalizeServerUrl(serverUrl: string): string {\n try {\n const u = new URL(serverUrl);\n // Strip trailing slash for consistent keying\n return u.origin + u.pathname.replace(/\\/+$/, \"\");\n } catch {\n return serverUrl;\n }\n}\n\nfunction storeKey(serverUrl: string, suffix: string): string {\n return `mcp:oauth:${normalizeServerUrl(serverUrl)}:${suffix}`;\n}\n\n// ── CredentialStoreOAuthProvider ────────────────────────────────────────\n\n/**\n * OAuthClientProvider backed by ICredentialStore.\n *\n * Stores tokens, client info, code verifiers, and discovery state as JSON\n * strings under namespaced keys. Enables token persistence across\n * short-lived MCP connections that share the same server URL.\n */\nexport class CredentialStoreOAuthProvider implements OAuthClientProvider {\n private readonly store: ICredentialStore;\n private readonly serverUrl: string;\n private readonly _clientMetadata: OAuthClientMetadata;\n private readonly _redirectUrl: string | URL | undefined;\n private readonly _initialClientInfo: OAuthClientInformationMixed | undefined;\n\n /** Optional override for grant-specific token request preparation. */\n prepareTokenRequest?: (scope?: string) => URLSearchParams | Promise<URLSearchParams | undefined> | undefined;\n\n /** Optional override for custom client authentication on token requests. */\n addClientAuthentication?: AddClientAuthentication;\n\n constructor(options: {\n store: ICredentialStore;\n serverUrl: string;\n clientMetadata: OAuthClientMetadata;\n redirectUrl?: string | URL;\n initialClientInfo?: OAuthClientInformationMixed;\n prepareTokenRequest?: OAuthClientProvider[\"prepareTokenRequest\"];\n addClientAuthentication?: AddClientAuthentication;\n }) {\n this.store = options.store;\n this.serverUrl = options.serverUrl;\n this._clientMetadata = options.clientMetadata;\n this._redirectUrl = options.redirectUrl;\n this._initialClientInfo = options.initialClientInfo;\n if (options.prepareTokenRequest) {\n this.prepareTokenRequest = options.prepareTokenRequest;\n }\n if (options.addClientAuthentication) {\n this.addClientAuthentication = options.addClientAuthentication;\n }\n }\n\n // ── Properties ─────────────────────────────────────────────────────\n\n get redirectUrl(): string | URL | undefined {\n return this._redirectUrl;\n }\n\n get clientMetadata(): OAuthClientMetadata {\n return this._clientMetadata;\n }\n\n // ── Client information ─────────────────────────────────────────────\n\n async clientInformation(): Promise<OAuthClientInformationMixed | undefined> {\n const raw = await this.store.get(storeKey(this.serverUrl, \"client_info\"));\n if (!raw) return this._initialClientInfo;\n return JSON.parse(raw) as OAuthClientInformationMixed;\n }\n\n async saveClientInformation(info: OAuthClientInformationMixed): Promise<void> {\n await this.store.put(storeKey(this.serverUrl, \"client_info\"), JSON.stringify(info));\n }\n\n // ── Tokens ─────────────────────────────────────────────────────────\n\n async tokens(): Promise<OAuthTokens | undefined> {\n const raw = await this.store.get(storeKey(this.serverUrl, \"tokens\"));\n if (!raw) return undefined;\n return JSON.parse(raw) as OAuthTokens;\n }\n\n async saveTokens(tokens: OAuthTokens): Promise<void> {\n const expiresAt =\n tokens.expires_in != null\n ? new Date(Date.now() + tokens.expires_in * 1000)\n : undefined;\n await this.store.put(storeKey(this.serverUrl, \"tokens\"), JSON.stringify(tokens), {\n expiresAt,\n });\n }\n\n // ── Authorization redirect ─────────────────────────────────────────\n\n async redirectToAuthorization(authorizationUrl: URL): Promise<void> {\n // Non-interactive environments cannot redirect a browser. Throw with\n // the URL so the host application can handle it (e.g., open a browser).\n throw new Error(\n `MCP OAuth authorization required. ` +\n `Open this URL to authorize: ${authorizationUrl.toString()}`\n );\n }\n\n // ── PKCE code verifier ─────────────────────────────────────────────\n\n async saveCodeVerifier(codeVerifier: string): Promise<void> {\n await this.store.put(storeKey(this.serverUrl, \"code_verifier\"), codeVerifier);\n }\n\n async codeVerifier(): Promise<string> {\n const v = await this.store.get(storeKey(this.serverUrl, \"code_verifier\"));\n if (!v) throw new Error(\"No code verifier saved for this session\");\n return v;\n }\n\n // ── Discovery state ────────────────────────────────────────────────\n\n async saveDiscoveryState(state: OAuthDiscoveryState): Promise<void> {\n await this.store.put(\n storeKey(this.serverUrl, \"discovery\"),\n JSON.stringify(state)\n );\n }\n\n async discoveryState(): Promise<OAuthDiscoveryState | undefined> {\n const raw = await this.store.get(storeKey(this.serverUrl, \"discovery\"));\n if (!raw) return undefined;\n return JSON.parse(raw) as OAuthDiscoveryState;\n }\n\n // ── Credential invalidation ────────────────────────────────────────\n\n async invalidateCredentials(\n scope: \"all\" | \"client\" | \"tokens\" | \"verifier\" | \"discovery\"\n ): Promise<void> {\n const deleteKey = async (suffix: string) => {\n await this.store.delete(storeKey(this.serverUrl, suffix));\n };\n\n switch (scope) {\n case \"all\":\n await deleteKey(\"tokens\");\n await deleteKey(\"client_info\");\n await deleteKey(\"code_verifier\");\n await deleteKey(\"discovery\");\n break;\n case \"client\":\n await deleteKey(\"client_info\");\n break;\n case \"tokens\":\n await deleteKey(\"tokens\");\n break;\n case \"verifier\":\n await deleteKey(\"code_verifier\");\n break;\n case \"discovery\":\n await deleteKey(\"discovery\");\n break;\n }\n }\n}\n\n// ── Factory ────────────────────────────────────────────────────────────\n\n/**\n * Creates an OAuthClientProvider for the given auth config, or returns\n * `undefined` when no provider is needed (none / bearer).\n *\n * Bearer auth is handled at the transport level via request headers,\n * so this function returns `undefined` for it.\n */\nexport function createAuthProvider(\n auth: McpAuthConfig,\n serverUrl: string,\n credentialStore?: ICredentialStore\n): OAuthClientProvider | undefined {\n switch (auth.type) {\n case \"none\":\n case \"bearer\":\n return undefined;\n\n case \"client_credentials\": {\n if (!credentialStore) {\n // Fallback to SDK's built-in provider (no persistence)\n return new ClientCredentialsProvider({\n clientId: auth.client_id,\n clientSecret: auth.client_secret,\n clientName: auth.client_name,\n scope: auth.scope,\n });\n }\n\n const prepareTokenRequest = (scope?: string): URLSearchParams => {\n const params = new URLSearchParams({ grant_type: \"client_credentials\" });\n const effectiveScope = scope ?? auth.scope;\n if (effectiveScope) params.set(\"scope\", effectiveScope);\n return params;\n };\n\n return new CredentialStoreOAuthProvider({\n store: credentialStore,\n serverUrl,\n clientMetadata: {\n redirect_uris: [],\n grant_types: [\"client_credentials\"],\n token_endpoint_auth_method: \"client_secret_basic\",\n client_name: auth.client_name,\n },\n initialClientInfo: {\n client_id: auth.client_id,\n client_secret: auth.client_secret,\n },\n prepareTokenRequest,\n });\n }\n\n case \"private_key_jwt\": {\n if (!credentialStore) {\n return new PrivateKeyJwtProvider({\n clientId: auth.client_id,\n privateKey: auth.private_key,\n algorithm: auth.algorithm,\n clientName: auth.client_name,\n jwtLifetimeSeconds: auth.jwt_lifetime_seconds,\n scope: auth.scope,\n });\n }\n\n const addClientAuth = createPrivateKeyJwtAuth({\n issuer: auth.client_id,\n subject: auth.client_id,\n privateKey: auth.private_key,\n alg: auth.algorithm,\n lifetimeSeconds: auth.jwt_lifetime_seconds,\n });\n\n const prepareTokenRequest = (scope?: string): URLSearchParams => {\n const params = new URLSearchParams({ grant_type: \"client_credentials\" });\n const effectiveScope = scope ?? auth.scope;\n if (effectiveScope) params.set(\"scope\", effectiveScope);\n return params;\n };\n\n return new CredentialStoreOAuthProvider({\n store: credentialStore,\n serverUrl,\n clientMetadata: {\n redirect_uris: [],\n grant_types: [\"client_credentials\"],\n token_endpoint_auth_method: \"private_key_jwt\",\n client_name: auth.client_name,\n },\n initialClientInfo: { client_id: auth.client_id },\n prepareTokenRequest,\n addClientAuthentication: addClientAuth,\n });\n }\n\n case \"static_private_key_jwt\": {\n if (!credentialStore) {\n return new StaticPrivateKeyJwtProvider({\n clientId: auth.client_id,\n jwtBearerAssertion: auth.jwt_bearer_assertion,\n clientName: auth.client_name,\n scope: auth.scope,\n });\n }\n\n const assertion = auth.jwt_bearer_assertion;\n const addClientAuth: AddClientAuthentication = (_headers, params) => {\n params.set(\"client_assertion_type\", \"urn:ietf:params:oauth:client-assertion-type:jwt-bearer\");\n params.set(\"client_assertion\", assertion);\n };\n\n const prepareTokenRequest = (scope?: string): URLSearchParams => {\n const params = new URLSearchParams({ grant_type: \"client_credentials\" });\n const effectiveScope = scope ?? auth.scope;\n if (effectiveScope) params.set(\"scope\", effectiveScope);\n return params;\n };\n\n return new CredentialStoreOAuthProvider({\n store: credentialStore,\n serverUrl,\n clientMetadata: {\n redirect_uris: [],\n grant_types: [\"client_credentials\"],\n token_endpoint_auth_method: \"private_key_jwt\",\n client_name: auth.client_name,\n },\n initialClientInfo: { client_id: auth.client_id },\n prepareTokenRequest,\n addClientAuthentication: addClientAuth,\n });\n }\n\n case \"authorization_code\": {\n if (!credentialStore) {\n throw new Error(\n \"authorization_code auth requires a credential store for token persistence\"\n );\n }\n\n return new CredentialStoreOAuthProvider({\n store: credentialStore,\n serverUrl,\n clientMetadata: {\n redirect_uris: [auth.redirect_url] as string[],\n grant_types: [\"authorization_code\", \"refresh_token\"],\n token_endpoint_auth_method: auth.client_secret ? \"client_secret_basic\" : \"none\",\n scope: auth.scope,\n },\n initialClientInfo: {\n client_id: auth.client_id,\n ...(auth.client_secret ? { client_secret: auth.client_secret } : {}),\n },\n redirectUrl: auth.redirect_url,\n });\n }\n\n default:\n return undefined;\n }\n}\n\n// ── Credential resolution ──────────────────────────────────────────────\n\n/**\n * Resolves credential-store keys in auth config to actual secret values.\n *\n * This is needed for the standalone MCP task path where config properties\n * are NOT auto-resolved by `resolveSchemaInputs`. For the AgentTask path,\n * credential resolution happens automatically via `format: \"credential\"`.\n */\nexport async function resolveAuthSecrets(\n auth: McpAuthConfig,\n credentialStore?: ICredentialStore\n): Promise<McpAuthConfig> {\n if (auth.type === \"none\") return auth;\n\n const store = credentialStore ?? getGlobalCredentialStore();\n\n async function resolve(value: string | undefined): Promise<string | undefined> {\n if (!value) return value;\n const resolved = await store.get(value);\n // If the store returns a value, use it; otherwise keep the original\n // (it may be a literal secret, not a key).\n return resolved ?? value;\n }\n\n switch (auth.type) {\n case \"bearer\":\n return { ...auth, token: (await resolve(auth.token)) ?? auth.token };\n\n case \"client_credentials\":\n return {\n ...auth,\n client_secret: (await resolve(auth.client_secret)) ?? auth.client_secret,\n };\n\n case \"private_key_jwt\":\n return {\n ...auth,\n private_key: (await resolve(auth.private_key)) ?? auth.private_key,\n };\n\n case \"static_private_key_jwt\":\n return {\n ...auth,\n jwt_bearer_assertion:\n (await resolve(auth.jwt_bearer_assertion)) ?? auth.jwt_bearer_assertion,\n };\n\n case \"authorization_code\":\n return {\n ...auth,\n client_secret: await resolve(auth.client_secret),\n };\n\n default:\n return auth;\n }\n}\n",
37
39
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Node environment\n\nimport { promisify } from \"util\";\nimport zlib from \"zlib\";\n\nexport async function compress(\n input: string | Buffer,\n algorithm: \"gzip\" | \"br\" = \"gzip\"\n): Promise<Uint8Array> {\n const compressFn = algorithm === \"br\" ? zlib.brotliCompress : zlib.gzip;\n const compressAsync = promisify(compressFn);\n const compressAsyncTyped = compressAsync as unknown as (\n source: Buffer | Uint8Array | DataView\n ) => Promise<Buffer>;\n const sourceBuffer = Buffer.isBuffer(input) ? input : Buffer.from(input);\n const result: Buffer = await compressAsyncTyped(sourceBuffer);\n // Create a Uint8Array view over the Buffer without copying\n return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);\n}\n\nexport async function decompress(\n input: Uint8Array,\n algorithm: \"gzip\" | \"br\" = \"gzip\"\n): Promise<string> {\n const decompressFn = algorithm === \"br\" ? zlib.brotliDecompress : zlib.gunzip;\n const decompressAsync = promisify(decompressFn);\n const decompressAsyncTyped = decompressAsync as unknown as (\n source: Buffer | Uint8Array | DataView\n ) => Promise<Buffer>;\n const sourceBuffer = Buffer.isBuffer(input) ? (input as unknown as Buffer) : Buffer.from(input);\n const resultBuffer: Buffer = await decompressAsyncTyped(sourceBuffer);\n return resultBuffer.toString();\n}\n",
38
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * Node/Bun MCP client util. Supports stdio, sse, and streamable-http.\n * stdio is not available in the browser.\n */\n\nimport { Client } from \"@modelcontextprotocol/sdk/client\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\n// eslint-disable-next-line deprecation/deprecation\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type { Transport } from \"@modelcontextprotocol/sdk/shared/transport.js\";\nimport type { DataPortSchemaObject } from \"../json-schema/DataPortSchema.js\";\n\nexport const mcpTransportTypes = [\"stdio\", \"sse\", \"streamable-http\"] as const;\n\nexport const mcpServerConfigSchema = {\n transport: {\n type: \"string\",\n enum: mcpTransportTypes,\n title: \"Transport\",\n description: \"The transport type to use for connecting to the MCP server\",\n },\n server_url: {\n type: \"string\",\n format: \"string:uri\",\n title: \"Server URL\",\n description: \"The URL of the MCP server (for sse and streamable-http transports)\",\n },\n command: {\n type: \"string\",\n title: \"Command\",\n description: \"The command to run (for stdio transport)\",\n },\n args: {\n type: \"array\",\n items: { type: \"string\" },\n title: \"Arguments\",\n description: \"Command arguments (for stdio transport)\",\n },\n env: {\n type: \"object\",\n additionalProperties: { type: \"string\" },\n title: \"Environment\",\n description: \"Environment variables (for stdio transport)\",\n },\n} as const satisfies DataPortSchemaObject[\"properties\"];\n\nexport type McpTransportType = (typeof mcpTransportTypes)[number];\n\nexport interface McpServerConfig {\n transport: McpTransportType;\n server_url?: string;\n command?: string;\n args?: string[];\n env?: Record<string, string>;\n}\n\nexport async function createMcpClient(\n config: McpServerConfig,\n signal?: AbortSignal\n): Promise<{ client: Client; transport: Transport }> {\n let transport: Transport;\n\n switch (config.transport) {\n case \"stdio\":\n transport = new StdioClientTransport({\n command: config.command!,\n args: config.args,\n env: config.env,\n });\n break;\n case \"sse\": {\n // SSEClientTransport is deprecated but still needed for legacy servers\n transport = new SSEClientTransport(new URL(config.server_url!));\n break;\n }\n case \"streamable-http\": {\n transport = new StreamableHTTPClientTransport(new URL(config.server_url!));\n break;\n }\n default:\n throw new Error(`Unsupported transport type: ${config.transport}`);\n }\n\n const client = new Client({ name: \"workglow-mcp-client\", version: \"1.0.0\" });\n\n if (signal) {\n signal.addEventListener(\n \"abort\",\n () => {\n client.close().catch(() => {});\n },\n { once: true }\n );\n }\n\n // try {\n await client.connect(transport);\n // } catch (err) {\n // const message = err instanceof Error ? err.message : String(err);\n // const url = config.server_url ?? \"\";\n // const is405 =\n // message.includes(\"405\") ||\n // message.includes(\"Method Not Allowed\") ||\n // (typeof err === \"object\" &&\n // err !== null &&\n // \"status\" in err &&\n // (err as { status: number }).status === 405);\n // if (is405) {\n // throw new Error(\n // `MCP connection failed with 405 Method Not Allowed for ${url}. ` +\n // `This usually means the server does not accept GET requests. `,\n // { cause: err }\n // );\n // }\n // const is406 =\n // message.includes(\"406\") ||\n // message.includes(\"Not Acceptable\") ||\n // (typeof err === \"object\" &&\n // err !== null &&\n // \"code\" in err &&\n // (err as { code: number }).code === 406);\n // if (is406) {\n // throw new Error(\n // `MCP connection failed with 406 Not Acceptable for ${url}. ` +\n // `Try using transport \"sse\" instead of \"streamable-http\", or ensure the server accepts the request format (Accept: application/json, text/event-stream and MCP-Protocol-Version).`,\n // { cause: err }\n // );\n // }\n // throw err;\n // }\n return { client, transport };\n}\n\nexport const mcpClientFactory = {\n create: createMcpClient,\n};\n",
40
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * Node/Bun MCP client util. Supports stdio, sse, and streamable-http.\n * stdio is not available in the browser.\n */\n\nimport { Client } from \"@modelcontextprotocol/sdk/client\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\n// eslint-disable-next-line deprecation/deprecation\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type { Transport } from \"@modelcontextprotocol/sdk/shared/transport.js\";\nimport type { DataPortSchemaObject } from \"../json-schema/DataPortSchema.js\";\nimport { getGlobalCredentialStore } from \"../credentials/CredentialStoreRegistry\";\nimport { mcpAuthConfigSchema, buildAuthConfig } from \"./McpAuthTypes\";\nimport type { McpAuthConfig } from \"./McpAuthTypes\";\nimport { createAuthProvider, resolveAuthSecrets } from \"./McpAuthProvider\";\nimport { getLogger } from \"../logging/LoggerRegistry\";\n\nexport const mcpTransportTypes = [\"stdio\", \"sse\", \"streamable-http\"] as const;\n\nexport const mcpServerConfigSchema = {\n transport: {\n type: \"string\",\n enum: mcpTransportTypes,\n title: \"Transport\",\n description: \"The transport type to use for connecting to the MCP server\",\n },\n server_url: {\n type: \"string\",\n format: \"string:uri\",\n title: \"Server URL\",\n description: \"The URL of the MCP server (for sse and streamable-http transports)\",\n },\n command: {\n type: \"string\",\n title: \"Command\",\n description: \"The command to run (for stdio transport)\",\n },\n args: {\n type: \"array\",\n items: { type: \"string\" },\n title: \"Arguments\",\n description: \"Command arguments (for stdio transport)\",\n },\n env: {\n type: \"object\",\n additionalProperties: { type: \"string\" },\n title: \"Environment\",\n description: \"Environment variables (for stdio transport)\",\n },\n ...mcpAuthConfigSchema,\n} as const satisfies DataPortSchemaObject[\"properties\"];\n\nexport type McpTransportType = (typeof mcpTransportTypes)[number];\n\nexport interface McpServerConfig {\n transport: McpTransportType;\n server_url?: string;\n command?: string;\n args?: string[];\n env?: Record<string, string>;\n auth?: McpAuthConfig;\n // Flat auth properties from schema (used when config comes from JSON Schema forms)\n auth_type?: string;\n}\n\nexport async function createMcpClient(\n config: McpServerConfig,\n signal?: AbortSignal\n): Promise<{ client: Client; transport: Transport }> {\n let transport: Transport;\n\n // Resolve auth config: prefer structured `auth` object, fall back to flat props\n let auth: McpAuthConfig | undefined =\n config.auth ?? buildAuthConfig({ ...config });\n\n // Resolve credential store keys to actual secret values\n if (auth && auth.type !== \"none\") {\n auth = await resolveAuthSecrets(auth, getGlobalCredentialStore());\n }\n\n // Build auth provider for OAuth flows\n const authProvider =\n auth && auth.type !== \"none\" && auth.type !== \"bearer\"\n ? createAuthProvider(auth, config.server_url ?? \"\", getGlobalCredentialStore())\n : undefined;\n\n // Build request headers (SDK sets MCP-Protocol-Version automatically)\n const headers: Record<string, string> = {\n ...(auth?.type === \"bearer\" ? { Authorization: `Bearer ${auth.token}` } : {}),\n };\n\n switch (config.transport) {\n case \"stdio\":\n if (auth && auth.type !== \"none\") {\n getLogger().warn(\n \"MCP auth is not supported for stdio transport; auth config ignored. \" +\n \"Use env vars to pass credentials to stdio servers.\"\n );\n }\n transport = new StdioClientTransport({\n command: config.command!,\n args: config.args,\n env: config.env,\n });\n break;\n case \"sse\": {\n // SSEClientTransport is deprecated but still needed for legacy servers\n transport = new SSEClientTransport(new URL(config.server_url!), {\n authProvider,\n requestInit: { headers },\n });\n break;\n }\n case \"streamable-http\": {\n transport = new StreamableHTTPClientTransport(new URL(config.server_url!), {\n authProvider,\n requestInit: { headers },\n });\n break;\n }\n default:\n throw new Error(`Unsupported transport type: ${config.transport}`);\n }\n\n const client = new Client({ name: \"workglow-mcp-client\", version: \"1.0.0\" });\n\n if (signal) {\n signal.addEventListener(\n \"abort\",\n () => {\n client.close().catch(() => {});\n },\n { once: true }\n );\n }\n\n // try {\n await client.connect(transport);\n // } catch (err) {\n // const message = err instanceof Error ? err.message : String(err);\n // const url = config.server_url ?? \"\";\n // const is405 =\n // message.includes(\"405\") ||\n // message.includes(\"Method Not Allowed\") ||\n // (typeof err === \"object\" &&\n // err !== null &&\n // \"status\" in err &&\n // (err as { status: number }).status === 405);\n // if (is405) {\n // throw new Error(\n // `MCP connection failed with 405 Method Not Allowed for ${url}. ` +\n // `This usually means the server does not accept GET requests. `,\n // { cause: err }\n // );\n // }\n // const is406 =\n // message.includes(\"406\") ||\n // message.includes(\"Not Acceptable\") ||\n // (typeof err === \"object\" &&\n // err !== null &&\n // \"code\" in err &&\n // (err as { code: number }).code === 406);\n // if (is406) {\n // throw new Error(\n // `MCP connection failed with 406 Not Acceptable for ${url}. ` +\n // `Try using transport \"sse\" instead of \"streamable-http\", or ensure the server accepts the request format (Accept: application/json, text/event-stream and MCP-Protocol-Version).`,\n // { cause: err }\n // );\n // }\n // throw err;\n // }\n return { client, transport };\n}\n\nexport const mcpClientFactory = {\n create: createMcpClient,\n};\n",
39
41
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type ImageChannels = 1 | 3 | 4; // grayscale, rgb, rgba\n\nexport type ImageDataSupport =\n | \"Blob\"\n | \"ImageBinary\"\n | \"ImageBitmap\"\n | \"OffscreenCanvas\"\n | \"VideoFrame\"\n | \"RawImage\"\n | \"DataUri\"\n | \"Sharp\";\n\nexport interface ImageBinary {\n data: Uint8ClampedArray;\n width: number;\n height: number;\n channels: ImageChannels;\n rawChannels?: number | undefined;\n}\n\nexport function parseDataUri(dataUri: string): {\n mimeType: string;\n base64: string;\n} {\n const match = dataUri.match(/^data:([^;]+);base64,(.+)$/);\n if (!match) {\n throw new Error(\"Invalid base64 data URI\");\n }\n\n return {\n mimeType: match[1], // e.g. \"image/png\"\n base64: match[2],\n };\n}\n",
40
42
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ImageBinary, ImageChannels, ImageDataSupport } from \"./image\";\nimport { parseDataUri } from \"./image\";\n\nexport { parseDataUri };\nexport type { ImageBinary, ImageChannels, ImageDataSupport };\n\nasync function dataUriToBlob(string: string): Promise<Blob> {\n const { mimeType, base64 } = parseDataUri(string);\n const binary = atob(base64);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return new Blob([bytes], { type: mimeType });\n}\n\nexport async function convertImageDataToUseableForm(\n imageData: unknown,\n supports: ImageDataSupport[]\n): Promise<unknown> {\n if (imageData === null || imageData === undefined) {\n throw new Error(\"Image data is null or undefined\");\n }\n\n // first check if the image data is already in the supported format\n if (supports.includes(\"Blob\") && imageData instanceof Blob) {\n return imageData;\n }\n\n if (\n supports.includes(\"ImageBinary\") &&\n typeof imageData === \"object\" &&\n \"data\" in imageData &&\n \"width\" in imageData &&\n \"height\" in imageData &&\n \"channels\" in imageData\n ) {\n return {\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n channels: imageData.channels,\n };\n }\n\n // if not, convert it to the first supported format\n if (supports.includes(\"Blob\") && typeof imageData === \"string\") {\n return await dataUriToBlob(imageData);\n }\n\n if (\n supports.includes(\"DataUri\") &&\n typeof imageData === \"string\" &&\n imageData.startsWith(\"data:\")\n ) {\n return imageData;\n }\n\n throw new Error(`Unsupported image data type: ${typeof imageData}`);\n}\n",
41
43
  "const Worker = globalThis.Worker;\nconst parentPort = self;\nexport { Worker, parentPort };\n"
42
44
  ],
43
- "mappings": "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",
44
- "debugId": "F0DE5778034FC8FD64756E2164756E21",
45
+ "mappings": "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",
46
+ "debugId": "D6D92D7A74A232E064756E2164756E21",
45
47
  "names": []
46
48
  }
package/dist/common.d.ts CHANGED
@@ -27,4 +27,6 @@ export * from "./worker/WorkerManager";
27
27
  export * from "./worker/WorkerServer";
28
28
  export * from "./credentials";
29
29
  export * from "./crypto/WebCrypto";
30
+ export * from "./mcp/McpAuthTypes";
31
+ export * from "./mcp/McpAuthProvider";
30
32
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,MAAM,CAAC;AACrB,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,MAAM,CAAC;AACrB,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ *
6
+ * MCP OAuth provider adapter backed by ICredentialStore, and factory function.
7
+ */
8
+ import type { OAuthClientProvider, OAuthDiscoveryState } from "@modelcontextprotocol/sdk/client/auth.js";
9
+ import type { OAuthClientMetadata, OAuthClientInformationMixed, OAuthTokens } from "@modelcontextprotocol/sdk/shared/auth.js";
10
+ import type { AddClientAuthentication } from "@modelcontextprotocol/sdk/client/auth.js";
11
+ import type { ICredentialStore } from "../credentials/ICredentialStore";
12
+ import type { McpAuthConfig } from "./McpAuthTypes";
13
+ /**
14
+ * OAuthClientProvider backed by ICredentialStore.
15
+ *
16
+ * Stores tokens, client info, code verifiers, and discovery state as JSON
17
+ * strings under namespaced keys. Enables token persistence across
18
+ * short-lived MCP connections that share the same server URL.
19
+ */
20
+ export declare class CredentialStoreOAuthProvider implements OAuthClientProvider {
21
+ private readonly store;
22
+ private readonly serverUrl;
23
+ private readonly _clientMetadata;
24
+ private readonly _redirectUrl;
25
+ private readonly _initialClientInfo;
26
+ /** Optional override for grant-specific token request preparation. */
27
+ prepareTokenRequest?: (scope?: string) => URLSearchParams | Promise<URLSearchParams | undefined> | undefined;
28
+ /** Optional override for custom client authentication on token requests. */
29
+ addClientAuthentication?: AddClientAuthentication;
30
+ constructor(options: {
31
+ store: ICredentialStore;
32
+ serverUrl: string;
33
+ clientMetadata: OAuthClientMetadata;
34
+ redirectUrl?: string | URL;
35
+ initialClientInfo?: OAuthClientInformationMixed;
36
+ prepareTokenRequest?: OAuthClientProvider["prepareTokenRequest"];
37
+ addClientAuthentication?: AddClientAuthentication;
38
+ });
39
+ get redirectUrl(): string | URL | undefined;
40
+ get clientMetadata(): OAuthClientMetadata;
41
+ clientInformation(): Promise<OAuthClientInformationMixed | undefined>;
42
+ saveClientInformation(info: OAuthClientInformationMixed): Promise<void>;
43
+ tokens(): Promise<OAuthTokens | undefined>;
44
+ saveTokens(tokens: OAuthTokens): Promise<void>;
45
+ redirectToAuthorization(authorizationUrl: URL): Promise<void>;
46
+ saveCodeVerifier(codeVerifier: string): Promise<void>;
47
+ codeVerifier(): Promise<string>;
48
+ saveDiscoveryState(state: OAuthDiscoveryState): Promise<void>;
49
+ discoveryState(): Promise<OAuthDiscoveryState | undefined>;
50
+ invalidateCredentials(scope: "all" | "client" | "tokens" | "verifier" | "discovery"): Promise<void>;
51
+ }
52
+ /**
53
+ * Creates an OAuthClientProvider for the given auth config, or returns
54
+ * `undefined` when no provider is needed (none / bearer).
55
+ *
56
+ * Bearer auth is handled at the transport level via request headers,
57
+ * so this function returns `undefined` for it.
58
+ */
59
+ export declare function createAuthProvider(auth: McpAuthConfig, serverUrl: string, credentialStore?: ICredentialStore): OAuthClientProvider | undefined;
60
+ /**
61
+ * Resolves credential-store keys in auth config to actual secret values.
62
+ *
63
+ * This is needed for the standalone MCP task path where config properties
64
+ * are NOT auto-resolved by `resolveSchemaInputs`. For the AgentTask path,
65
+ * credential resolution happens automatically via `format: "credential"`.
66
+ */
67
+ export declare function resolveAuthSecrets(auth: McpAuthConfig, credentialStore?: ICredentialStore): Promise<McpAuthConfig>;
68
+ //# sourceMappingURL=McpAuthProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAuthProvider.d.ts","sourceRoot":"","sources":["../../src/mcp/McpAuthProvider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACzG,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC9H,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAOxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAoBpD;;;;;;GAMG;AACH,qBAAa,4BAA6B,YAAW,mBAAmB;IACtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0C;IAE7E,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAE7G,4EAA4E;IAC5E,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;gBAEtC,OAAO,EAAE;QACnB,KAAK,EAAE,gBAAgB,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,mBAAmB,CAAC;QACpC,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;QAC3B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;QAChD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QACjE,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;KACnD;IAgBD,IAAI,WAAW,IAAI,MAAM,GAAG,GAAG,GAAG,SAAS,CAE1C;IAED,IAAI,cAAc,IAAI,mBAAmB,CAExC;IAIK,iBAAiB,IAAI,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAMrE,qBAAqB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvE,MAAM,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAM1C,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ/B,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7D,cAAc,IAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAQ1D,qBAAqB,CACzB,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAC5D,OAAO,CAAC,IAAI,CAAC;CA0BjB;AAID;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,gBAAgB,GACjC,mBAAmB,GAAG,SAAS,CAoJjC;AAID;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,eAAe,CAAC,EAAE,gBAAgB,GACjC,OAAO,CAAC,aAAa,CAAC,CA6CxB"}