@bastani/atomic 0.9.61-alpha.1 → 0.9.61-alpha.2
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/CHANGELOG.md +54 -4
- package/dist/builtin/intercom/index.bundle.mjs +3 -3
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +12 -0
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +14 -0
- package/dist/builtin/workflows/README.md +9 -7
- package/dist/builtin/workflows/builtin/{chunk-h6bt0r0g.js → chunk-a2j0x1a6.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-g3b2zf8r.js → chunk-vzbec50q.js} +1 -1
- package/dist/builtin/workflows/builtin/goal.js +1 -1
- package/dist/builtin/workflows/builtin/index.js +2 -2
- package/dist/builtin/workflows/builtin/ralph.js +1 -1
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +779 -409
- package/dist/builtin/workflows/src/extension/local-worker-entry.mjs +844 -419
- package/dist/builtin/workflows/src/index.js +749 -384
- package/dist/builtin/workflows/src/local-worker-entry.mjs +844 -419
- package/dist/core/agent-session-retry.d.ts.map +1 -1
- package/dist/core/agent-session-retry.js +12 -3
- package/dist/core/agent-session-retry.js.map +1 -1
- package/dist/core/model-fallback-failures.d.ts +14 -4
- package/dist/core/model-fallback-failures.d.ts.map +1 -1
- package/dist/core/model-fallback-failures.js +43 -15
- package/dist/core/model-fallback-failures.js.map +1 -1
- package/dist/core/settings-defaults.d.ts +1 -0
- package/dist/core/settings-defaults.d.ts.map +1 -1
- package/dist/core/settings-defaults.js +1 -0
- package/dist/core/settings-defaults.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +1 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +2 -0
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-schema.d.ts +2 -0
- package/dist/core/settings-schema.d.ts.map +1 -1
- package/dist/core/settings-schema.js +4 -0
- package/dist/core/settings-schema.js.map +1 -1
- package/dist/core/slash-commands.js +2 -2
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/interactive-startup-chat-container.d.ts +2 -0
- package/dist/modes/interactive/interactive-startup-chat-container.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup-chat-container.js +6 -0
- package/dist/modes/interactive/interactive-startup-chat-container.js.map +1 -1
- package/dist/modes/interactive-engine/remote-renderer.d.ts +27 -5
- package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -1
- package/dist/modes/interactive-engine/remote-renderer.js +76 -16
- package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
- package/docs/intercom/reference.md +1 -1
- package/docs/models/evals.md +30 -2
- package/docs/settings.md +3 -0
- package/docs/subagents/reference.md +3 -1
- package/docs/workflows/api-reference.md +9 -6
- package/docs/workflows/builtins.md +1 -1
- package/docs/workflows/operations.md +3 -3
- package/npm-shrinkwrap.json +32 -32
- package/package.json +3 -3
- package/schemas/settings.schema.json +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-fallback-failures.js","sourceRoot":"","sources":["../../src/core/model-fallback-failures.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared model/provider failure classification.\n *\n * Workflows, subagents, and the main chat all need the same decision about\n * whether a provider failure may spend another model candidate. Keep this\n * module free of AgentSession and workflow imports so the published SDK can\n * expose it to the raw-TypeScript companion packages without a cycle.\n */\n\nimport { isExtensionStartupFailure } from \"./extension-startup-failure.ts\";\n\nconst RETRYABLE_MODEL_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/rate\\s*limit/i,\n\t/too\\s*many\\s*requests/i,\n\t/\\bthrottl(?:ing|ed)\\b/i,\n\t/\\b429\\b/,\n\t/quota/i,\n\t/usage[\\s_-]*limit/i,\n\t/billing/i,\n\t/credit/i,\n\t/auth(?:entication|orization)?/i,\n\t/unauthori[sz]ed/i,\n\t/\\b40[13]\\b/,\n\t/api[_\\s-]*key/i,\n\t/token[_\\s-]*expired/i,\n\t/token[_\\s-]*(?:revoked|invalidated)/i,\n\t/invalidated[_\\s-]+(?:oauth|auth)[_\\s-]+token/i,\n\t/forbidden/i,\n\t/invalid\\s*key/i,\n\t/overloaded/i,\n\t/temporarily\\s*unavailable/i,\n\t/service\\s*unavailable/i,\n\t/network/i,\n\t/fetch/i,\n\t/getaddrinfo/i,\n\t/ENOTFOUND/i,\n\t/EAI_AGAIN/i,\n\t/socket/i,\n\t/connection\\s*refused/i,\n\t/upstream/i,\n\t/timeout/i,\n\t/timed\\s*out/i,\n\t/\\b50[0-4]\\b/,\n\t/\\b52[0-4]\\b/,\n\t/\\b529\\b/,\n\t/provider.?returned.?error/i,\n\t/server.?error/i,\n\t/internal.?error/i,\n\t/connection.?error/i,\n\t/connection.?lost/i,\n\t/connection.?reset/i,\n\t/ECONNRESET/i,\n\t/other side closed/i,\n\t/websocket.?closed/i,\n\t/websocket.?error/i,\n\t/reset before headers/i,\n\t/socket hang up/i,\n\t/ended without/i,\n\t/stream ended before message_stop/i,\n\t/stream ended before a terminal response event/i,\n\t/http2 request did not get a response/i,\n\t/pending stream has been canceled/i,\n\t/retry delay/i,\n\t/finish.?reason:?\\s*error/i,\n\t/terminated/i,\n\t/you can retry your request/i,\n\t/try your request again/i,\n\t/please retry your request/i,\n\t// gRPC based providers (e.g. NVIDIA NIM); upstream pi-ai retries this too.\n\t/ResourceExhausted/i,\n];\n\nconst NON_RETRYABLE_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/command failed/i,\n\t/tests? failed/i,\n\t/shell/i,\n\t/missing file/i,\n\t/no such file/i,\n\t/cancel/i,\n\t/abort/i,\n\t/interrupted/i,\n];\n\nconst CANCELLED_FAILURE_PATTERNS: readonly RegExp[] = [/cancel/i, /abort/i, /interrupted/i];\n\nconst TRANSPORT_CANCELLATION_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/getaddrinfo|ENOTFOUND|EAI_AGAIN/i,\n\t/pending stream has been canceled/i,\n];\n\nexport type ModelFallbackFailureKind =\n\t| \"auth_on_candidate_provider\"\n\t| \"rate_limit\"\n\t| \"quota_exhausted\"\n\t| \"provider_unavailable\"\n\t| \"network_timeout\"\n\t| \"transport_error\"\n\t| \"model_unavailable\"\n\t| \"request_incompatible\"\n\t| \"cancelled\"\n\t| \"task_failure\"\n\t| \"unknown\";\n\nexport type ModelFallbackFailureSource =\n\t| \"assistant_message\"\n\t| \"diagnostic\"\n\t| \"throw\"\n\t| \"structured\"\n\t| \"string_fallback\";\n\nexport interface ModelFallbackFailureSignal {\n\treadonly kind: ModelFallbackFailureKind;\n\treadonly message: string;\n\treadonly source: ModelFallbackFailureSource;\n\treadonly stopReason?: string;\n\treadonly status?: number;\n\treadonly code?: string | number;\n\treadonly name?: string;\n}\n\nconst FALLBACKABLE_FAILURE_KINDS: ReadonlySet<ModelFallbackFailureKind> = new Set([\n\t\"auth_on_candidate_provider\",\n\t\"rate_limit\",\n\t\"quota_exhausted\",\n\t\"provider_unavailable\",\n\t\"network_timeout\",\n\t\"transport_error\",\n\t\"model_unavailable\",\n\t\"request_incompatible\",\n]);\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n\treturn value !== null && typeof value === \"object\" ? (value as Record<string, unknown>) : undefined;\n}\n\nfunction field(value: unknown, key: string): unknown {\n\treturn asRecord(value)?.[key];\n}\n\nfunction stringField(value: unknown, key: string): string | undefined {\n\tconst raw = field(value, key);\n\treturn typeof raw === \"string\" && raw.trim().length > 0 ? raw : undefined;\n}\n\nfunction errorName(value: unknown): string | undefined {\n\treturn value instanceof Error ? value.name : stringField(value, \"name\");\n}\n\nfunction directMessageFrom(value: unknown): string | undefined {\n\treturn stringField(value, \"errorMessage\") ?? stringField(value, \"message\") ?? stringField(value, \"statusText\");\n}\n\nfunction integerFrom(value: unknown): number | undefined {\n\tif (typeof value === \"number\" && Number.isInteger(value)) return value;\n\tif (typeof value !== \"string\" || value.trim().length === 0) return undefined;\n\tconst parsed = Number(value.trim());\n\treturn Number.isInteger(parsed) ? parsed : undefined;\n}\n\nfunction statusFrom(value: unknown): number | undefined {\n\treturn (\n\t\tintegerFrom(field(value, \"status\")) ??\n\t\tintegerFrom(field(value, \"statusCode\")) ??\n\t\tintegerFrom(field(value, \"httpStatus\"))\n\t);\n}\n\nfunction codeFrom(value: unknown): string | number | undefined {\n\tconst rawCode = field(value, \"code\");\n\tif (typeof rawCode === \"string\" || typeof rawCode === \"number\") return rawCode;\n\t// Provider failure diagnostics (`bedrock_response_failure`) keep the modeled error code in `details.errorCode`,\n\t// because the provider's display message replaces the exception name with a readable prefix.\n\tconst detailsCode = field(field(value, \"details\"), \"errorCode\");\n\treturn typeof detailsCode === \"string\" ? detailsCode : undefined;\n}\n\nfunction stopReasonFrom(value: unknown): string | undefined {\n\treturn stringField(value, \"stopReason\");\n}\n\nfunction finishReasonFrom(value: unknown): string | undefined {\n\treturn stringField(value, \"finish_reason\") ?? stringField(value, \"finishReason\");\n}\n\nfunction causeOf(value: unknown): unknown {\n\treturn value instanceof Error ? value.cause : field(value, \"cause\");\n}\n\nfunction diagnosticErrors(value: unknown): readonly unknown[] {\n\tconst diagnostics = field(value, \"diagnostics\");\n\tif (!Array.isArray(diagnostics)) return [];\n\tconst errors: unknown[] = [];\n\tfor (const diagnostic of diagnostics) {\n\t\tconst diagnosticType = stringField(diagnostic, \"type\");\n\t\tconst diagnosticError = field(diagnostic, \"error\");\n\t\terrors.push(\n\t\t\tnormalizeCode(diagnosticType) === \"provider_transport_failure\" ? diagnostic : (diagnosticError ?? diagnostic),\n\t\t);\n\t}\n\treturn errors;\n}\n\nfunction normalizeCode(value: string | number | undefined): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst raw = String(value).trim().toLowerCase();\n\tif (!raw) return undefined;\n\tlet normalized = \"\";\n\tlet needsSeparator = false;\n\tfor (const char of raw) {\n\t\tconst code = char.charCodeAt(0);\n\t\tconst isLowerAlpha = code >= 97 && code <= 122;\n\t\tconst isDigit = code >= 48 && code <= 57;\n\t\tif (isLowerAlpha || isDigit) {\n\t\t\tnormalized += char;\n\t\t\tneedsSeparator = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (needsSeparator && normalized[normalized.length - 1] !== \"_\") normalized += \"_\";\n\t}\n\tif (normalized.endsWith(\"_\")) normalized = normalized.slice(0, -1);\n\treturn normalized.length > 0 ? normalized : undefined;\n}\n\nfunction messageLooksLikeModelUnavailable(message: string): boolean {\n\tconst lower = message.toLowerCase();\n\treturn (\n\t\tlower.includes(\"model\") &&\n\t\t(lower.includes(\"unavailable\") ||\n\t\t\tlower.includes(\"disabled\") ||\n\t\t\tlower.includes(\"not found\") ||\n\t\t\tlower.includes(\"unknown\"))\n\t);\n}\n\n/** GitHub Copilot rejects a model this client integration cannot use with a generic 400 `invalid_request_error`. */\nconst MODEL_UNAVAILABLE_FOR_INTEGRATOR_PATTERN = /model_not_available_for_integrator|not available for integrator/i;\n\nfunction kindFromStatus(status: number | undefined): ModelFallbackFailureKind | undefined {\n\tswitch (status) {\n\t\tcase 400:\n\t\tcase 413:\n\t\tcase 422:\n\t\t\treturn \"request_incompatible\";\n\t\tcase 401:\n\t\tcase 403:\n\t\t\treturn \"auth_on_candidate_provider\";\n\t\tcase 408:\n\t\t\treturn \"network_timeout\";\n\t\tcase 404:\n\t\t\treturn \"model_unavailable\";\n\t\tcase 402:\n\t\t\treturn \"quota_exhausted\";\n\t\tcase 429:\n\t\t\treturn \"rate_limit\";\n\t\tdefault:\n\t\t\tif (status !== undefined && status >= 500 && status <= 599) return \"provider_unavailable\";\n\t\t\treturn undefined;\n\t}\n}\n\nfunction refusalKindFromCode(code: string | number | undefined): ModelFallbackFailureKind | undefined {\n\tconst normalizedCode = normalizeCode(code);\n\tif (normalizedCode === undefined) return undefined;\n\tif (normalizedCode.includes(\"content_filter\") || normalizedCode.includes(\"contentfilter\")) return \"task_failure\";\n\tif (normalizedCode.includes(\"safety\") || normalizedCode.includes(\"policy\")) return \"task_failure\";\n\tswitch (normalizedCode) {\n\t\tcase \"blocked\":\n\t\tcase \"blocked_by_provider\":\n\t\tcase \"blocked_by_safety\":\n\t\tcase \"blocked_by_policy\":\n\t\tcase \"provider_refusal\":\n\t\tcase \"refusal\":\n\t\tcase \"tool_refusal\":\n\t\tcase \"tool_call_refusal\":\n\t\tcase \"tool_use_refusal\":\n\t\t\treturn \"task_failure\";\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nconst REQUEST_INCOMPATIBLE_CODES: ReadonlySet<string> = new Set([\n\t\"invalid_request\",\n\t\"invalid_request_error\",\n\t\"bad_request\",\n\t\"context_length_exceeded\",\n\t\"request_too_large\",\n\t\"too_large\",\n\t\"request_entity_too_large\",\n\t\"max_tokens\",\n\t\"max_context_length\",\n\t\"context_window_exceeded\",\n]);\n\nfunction requestIncompatibleKindFromCode(code: string | number | undefined): ModelFallbackFailureKind | undefined {\n\tconst normalized = normalizeCode(code);\n\treturn normalized !== undefined && REQUEST_INCOMPATIBLE_CODES.has(normalized) ? \"request_incompatible\" : undefined;\n}\n\nfunction kindFromCode(code: string | number | undefined): ModelFallbackFailureKind | undefined {\n\tconst normalizedCode = normalizeCode(code);\n\tif (normalizedCode === undefined) return undefined;\n\tconst refusalKind = refusalKindFromCode(code);\n\tif (refusalKind !== undefined) return refusalKind;\n\tconst httpStatusKind = kindFromStatus(integerFrom(code));\n\tif (httpStatusKind !== undefined) return httpStatusKind;\n\tconst requestIncompatibleKind = requestIncompatibleKindFromCode(code);\n\tif (requestIncompatibleKind !== undefined) return requestIncompatibleKind;\n\n\tswitch (normalizedCode) {\n\t\tcase \"auth\":\n\t\tcase \"auth_required\":\n\t\tcase \"authentication_required\":\n\t\tcase \"unauthorized\":\n\t\tcase \"forbidden\":\n\t\tcase \"invalid_api_key\":\n\t\tcase \"missing_api_key\":\n\t\tcase \"invalid_key\":\n\t\tcase \"token_expired\":\n\t\tcase \"token_revoked\":\n\t\tcase \"token_invalidated\":\n\t\tcase \"oauth_token_invalidated\":\n\t\t\treturn \"auth_on_candidate_provider\";\n\t\tcase \"etimedout\":\n\t\tcase \"econnreset\":\n\t\tcase \"econnrefused\":\n\t\tcase \"enotfound\":\n\t\tcase \"eai_again\":\n\t\tcase \"fetch_failed\":\n\t\tcase \"network_error\":\n\t\tcase \"timeout\":\n\t\tcase \"timeout_error\":\n\t\tcase \"und_err_connect_timeout\":\n\t\t\treturn \"network_timeout\";\n\t\tcase \"rate_limit\":\n\t\tcase \"rate_limit_exceeded\":\n\t\tcase \"too_many_requests\":\n\t\tcase \"throttlingexception\":\n\t\t\treturn \"rate_limit\";\n\t\tcase \"quota_exceeded\":\n\t\tcase \"insufficient_quota\":\n\t\tcase \"usage_limit\":\n\t\tcase \"usage_limit_reached\":\n\t\tcase \"usage_limit_exceeded\":\n\t\tcase \"payment_required\":\n\t\tcase \"servicequotaexceededexception\":\n\t\t\treturn \"quota_exhausted\";\n\t\tcase \"aborterror\":\n\t\tcase \"aborted\":\n\t\tcase \"cancelled\":\n\t\tcase \"canceled\":\n\t\t\treturn \"cancelled\";\n\t\tcase \"model_not_found\":\n\t\tcase \"model_unavailable\":\n\t\tcase \"model_disabled\":\n\t\tcase \"unknown_model\":\n\t\tcase \"model_not_available_for_integrator\":\n\t\t\treturn \"model_unavailable\";\n\t\tcase \"provider_error\":\n\t\tcase \"api_error\":\n\t\tcase \"service_unavailable\":\n\t\tcase \"temporarily_unavailable\":\n\t\tcase \"overloaded\":\n\t\t\treturn \"provider_unavailable\";\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nconst REQUEST_INCOMPATIBLE_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/\\bcontext[_\\s-]?length(?:[_\\s-]?exceeded)?\\b/i,\n\t/\\bcontext[_\\s-]?window(?:[_\\s-]?exceeded)?\\b/i,\n\t/\\bmax[_\\s-]?context\\b/i,\n\t/\\bmax[_\\s-]?tokens?\\b/i,\n\t/\\brequest(?:[_\\s-]?entity)?[_\\s-]?too[_\\s-]?large\\b/i,\n\t/\\btoo[_\\s-]?large\\b/i,\n\t/\\b(?:unsupported|unknown|invalid)\\s+(?:tool|parameter|function)\\b/i,\n\t/\\b(?:tool|parameter|function)\\s+(?:not\\s+(?:supported|found|allowed)|unknown|invalid)\\b/i,\n\t/\\binvalid[_\\s-]?request(?:[_\\s-]?error)?\\b/i,\n\t/\\bbad[_\\s-]?request\\b/i,\n];\n\nconst PROVIDER_REFUSAL_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/\\bthe\\s+model\\s+refused\\s+to\\s+complete\\s+the\\s+request\\b/i,\n\t/\\bfinish[_\\s-]?reason\\b[^\\n]*\\bcontent[_\\s-]?filter\\b/i,\n\t/\\bcontent[_\\s-]?filter(?:ed|ing)?\\b/i,\n\t/\\b(?:safety|policy)\\b[^\\n]*\\b(?:refus(?:e|al|ed|es|ing)?|block(?:ed|ing)?|filter(?:ed|ing)?|violat(?:e|ion|ed|ing)?|disallow(?:ed|ing)?|reject(?:ed|ion|ing)?)\\b/i,\n\t/\\b(?:refus(?:e|al|ed|es|ing)?|block(?:ed|ing)?|filter(?:ed|ing)?|violat(?:e|ion|ed|ing)?|disallow(?:ed|ing)?|reject(?:ed|ion|ing)?)\\b[^\\n]*\\b(?:safety|policy)\\b/i,\n\t/\\btool[_\\s-]?(?:call|use)?[_\\s-]?refus(?:e|al|ed|es|ing)?\\b/i,\n\t/\\btool(?:\\s+call|\\s+use)?\\b[^\\n]*\\brefus(?:e|al|ed|es|ing)?\\b/i,\n\t/\\brefus(?:e|al|ed|es|ing)?\\b[^\\n]*\\btool(?:\\s+call|\\s+use)?\\b/i,\n\t/\\bprovider[_\\s-]?refus(?:e|al|ed|es|ing)?\\b/i,\n\t/\\bprovider\\b[^\\n]*\\brefus(?:e|al|ed|es|ing)?\\b[^\\n]*\\b(?:prompt|request|content|policy|safety)\\b/i,\n];\n\nconst TRANSPORT_OUTAGE_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/^connection\\s+error\\.?$/i,\n\t/^fetch\\s+failed\\.?$/i,\n\t// Response-body decompression failures reported by Node/Bun zlib, optionally\n\t// behind the fetch/WebSocket layer's \"Library error:\" wrapper. GitHub Copilot\n\t// on the default `transport: \"auto\"` surfaces this as\n\t// \"Library error: zlib error: incorrect header check\" (#2553). These are\n\t// unanchored because the wrapper text varies by runtime and transport. `zlib`\n\t// has no trailing word boundary on purpose: Bun 1.4.0, the shipped runtime\n\t// when verified, throws `ZlibError fetching \"...\"` as one word.\n\t/\\bzlib/i,\n\t/\\bincorrect\\s+header\\s+check\\b/i,\n\t/\\bdecompress(?:ion|ing|ed)?\\b/i,\n\t/^library\\s+error\\b/i,\n\t// Idle-stream deadline enforced below the HTTP layer by pi-ai's\n\t// `withStreamDeadline`, so a stalled stream fails over instead of hanging.\n\t/\\bstream\\s+deadline\\s+exceeded\\b/i,\n];\n\n// HTTP 402 and explicit quota exhaustion: the account cannot be served again until its quota resets.\n// Codes that also appear as free-text wording for short limits (\"quota exceeded\", \"usage limit reached\")\n// count only as a JSON `code`/`type` value, as in a raw error body some providers put in the message.\n// A service-quota exception and a per-day quota violation in a JSON error body (`\"quotaId\": \"...PerDay...\"`)\n// also last until the quota resets.\nconst QUOTA_EXHAUSTED_FAILURE_PATTERN =\n\t/(?<![a-z0-9.])402(?![a-z0-9.])|payment[_\\s-]*required|insufficient[_\\s-]*quota|\\bServiceQuotaExceededException\\b|\"quotaId\"\\s*:\\s*\"[^\"]*PerDay|\"(?:code|type|error_code)\"\\s*:\\s*\"(?:quota_exceeded|usage_limit|usage_limit_reached|usage_limit_exceeded)\"/i;\n\nfunction transportOutageKindFromMessage(message: string): ModelFallbackFailureKind | undefined {\n\treturn TRANSPORT_OUTAGE_FAILURE_PATTERNS.some((pattern) => pattern.test(message.trim()))\n\t\t? \"transport_error\"\n\t\t: undefined;\n}\n\nfunction refusalKindFromMessage(message: string): ModelFallbackFailureKind | undefined {\n\tif (TRANSPORT_CANCELLATION_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"network_timeout\";\n\tif (CANCELLED_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"cancelled\";\n\tif (NON_RETRYABLE_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"task_failure\";\n\tif (PROVIDER_REFUSAL_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"task_failure\";\n\treturn undefined;\n}\n\nfunction fallbackKindFromMessage(message: string, name: string | undefined): ModelFallbackFailureKind | undefined {\n\tconst refusalKind = refusalKindFromMessage(message);\n\tif (refusalKind !== undefined) return refusalKind;\n\tconst transportOutageKind = transportOutageKindFromMessage(message);\n\tif (transportOutageKind !== undefined) return transportOutageKind;\n\tif (MODEL_UNAVAILABLE_FOR_INTEGRATOR_PATTERN.test(message)) return \"model_unavailable\";\n\tif (REQUEST_INCOMPATIBLE_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"request_incompatible\";\n\tconst nameKind = kindFromCode(name);\n\tif (nameKind !== undefined) return nameKind;\n\tif (QUOTA_EXHAUSTED_FAILURE_PATTERN.test(message)) return \"quota_exhausted\";\n\tconst hasRetryablePattern =\n\t\tRETRYABLE_MODEL_FAILURE_PATTERNS.some((pattern) => pattern.test(message)) ||\n\t\tmessageLooksLikeModelUnavailable(message);\n\tif (!hasRetryablePattern) return undefined;\n\tif (\n\t\t/rate\\s*limit|too\\s*many\\s*requests|\\bthrottl(?:ing|ed)\\b|\\b429\\b|quota|usage[\\s_-]*limit|billing|credit/i.test(\n\t\t\tmessage,\n\t\t)\n\t)\n\t\treturn \"rate_limit\";\n\tif (\n\t\t/auth|unauthori[sz]ed|\\b40[13]\\b|api[_\\s-]*key|token[_\\s-]*(?:expired|revoked|invalidated|rejected)|forbidden|invalid[_\\s-]*key/i.test(\n\t\t\tmessage,\n\t\t)\n\t)\n\t\treturn \"auth_on_candidate_provider\";\n\tif (messageLooksLikeModelUnavailable(message)) return \"model_unavailable\";\n\tif (/network|fetch|socket|connection\\s*refused|getaddrinfo|ENOTFOUND|EAI_AGAIN|timeout|timed\\s*out/i.test(message))\n\t\treturn \"network_timeout\";\n\treturn \"provider_unavailable\";\n}\n\nfunction signalSource(value: unknown, fallback: ModelFallbackFailureSource | undefined): ModelFallbackFailureSource {\n\tif (fallback !== undefined) return fallback;\n\tif (stopReasonFrom(value) !== undefined || diagnosticErrors(value).length > 0) return \"assistant_message\";\n\tif (value instanceof Error) return \"throw\";\n\treturn \"structured\";\n}\n\nfunction makeSignal(\n\tkind: ModelFallbackFailureKind,\n\tvalue: unknown,\n\tsource: ModelFallbackFailureSource | undefined,\n): ModelFallbackFailureSignal {\n\tconst status = statusFrom(value);\n\tconst code = codeFrom(value);\n\tconst name = errorName(value);\n\tconst stopReason = stopReasonFrom(value);\n\treturn {\n\t\tkind,\n\t\tmessage: errorMessage(value),\n\t\tsource: signalSource(value, source),\n\t\t...(stopReason !== undefined ? { stopReason } : {}),\n\t\t...(status !== undefined ? { status } : {}),\n\t\t...(code !== undefined ? { code } : {}),\n\t\t...(name !== undefined ? { name } : {}),\n\t};\n}\n\nfunction fallbackSignalFromDirectMessage(\n\tvalue: unknown,\n\tsource: ModelFallbackFailureSource | undefined,\n): ModelFallbackFailureSignal | undefined {\n\tconst message = directMessageFrom(value);\n\tif (message === undefined) return undefined;\n\tconst kind = fallbackKindFromMessage(message, errorName(value));\n\treturn kind === undefined ? undefined : makeSignal(kind, value, source);\n}\n\nfunction fallbackSignalFromMessage(\n\tvalue: unknown,\n\tsource: ModelFallbackFailureSource | undefined,\n): ModelFallbackFailureSignal | undefined {\n\tconst message = errorMessage(value);\n\tif (!message.trim()) return undefined;\n\tconst kind = fallbackKindFromMessage(message, errorName(value));\n\treturn kind === undefined ? undefined : makeSignal(kind, value, source);\n}\n\nfunction classifyAssistantRefusalSignal(\n\tvalue: unknown,\n\tsource: ModelFallbackFailureSource | undefined,\n): ModelFallbackFailureSignal | undefined {\n\tconst codeRefusalKind =\n\t\trefusalKindFromCode(codeFrom(value)) ??\n\t\trefusalKindFromCode(errorName(value)) ??\n\t\trefusalKindFromCode(finishReasonFrom(value));\n\tif (codeRefusalKind !== undefined) return makeSignal(codeRefusalKind, value, source);\n\n\tconst messageRefusalKind = refusalKindFromMessage(directMessageFrom(value) ?? \"\");\n\treturn messageRefusalKind === undefined ? undefined : makeSignal(messageRefusalKind, value, source);\n}\n\nfunction isRefusalSignal(signal: ModelFallbackFailureSignal): boolean {\n\treturn signal.kind === \"cancelled\" || signal.kind === \"task_failure\";\n}\n\nfunction nestedSignalPriority(signal: ModelFallbackFailureSignal): number {\n\tswitch (signal.kind) {\n\t\tcase \"cancelled\":\n\t\tcase \"task_failure\":\n\t\t\treturn 100;\n\t\tcase \"auth_on_candidate_provider\":\n\t\t\treturn 90;\n\t\tcase \"request_incompatible\":\n\t\t\treturn 85;\n\t\tcase \"model_unavailable\":\n\t\t\treturn 80;\n\t\tcase \"quota_exhausted\":\n\t\t\treturn 75;\n\t\tcase \"rate_limit\":\n\t\t\treturn 70;\n\t\tcase \"provider_unavailable\":\n\t\t\treturn 60;\n\t\tcase \"network_timeout\":\n\t\t\treturn 50;\n\t\tcase \"transport_error\":\n\t\t\treturn 82;\n\t\tcase \"unknown\":\n\t\t\treturn 0;\n\t}\n}\nfunction structuredSignal(\n\tvalue: unknown,\n\tseen: Set<unknown>,\n\tsource?: ModelFallbackFailureSource,\n): ModelFallbackFailureSignal | undefined {\n\tif (value === undefined || value === null || seen.has(value)) return undefined;\n\tif (typeof value === \"object\") seen.add(value);\n\n\tconst stopReason = stopReasonFrom(value)?.toLowerCase();\n\tconst diagnosticType = stringField(value, \"type\");\n\tconst providerTransportSignal =\n\t\tdiagnosticType !== undefined && normalizeCode(diagnosticType) === \"provider_transport_failure\"\n\t\t\t? makeSignal(\"transport_error\", value, source)\n\t\t\t: undefined;\n\tif (stopReason === \"aborted\") return makeSignal(\"cancelled\", value, source);\n\n\t// Defer direct refusal/cancellation signals until nested diagnostics and\n\t// causes have been inspected. A transport wrapper can carry a cancellation\n\t// or provider refusal that must win over the wrapper's transport label.\n\tconst directRefusalSignal = classifyAssistantRefusalSignal(value, source);\n\tconst codeKind = kindFromCode(codeFrom(value));\n\tconst nameKind = kindFromCode(errorName(value));\n\tconst directCancellationSignal =\n\t\tcodeKind === \"cancelled\" || nameKind === \"cancelled\" ? makeSignal(\"cancelled\", value, source) : undefined;\n\n\tlet bestNestedFallbackSignal: ModelFallbackFailureSignal | undefined;\n\tconst nestedSeen = new Set(seen);\n\tconst nestedValues: readonly { value: unknown; source?: ModelFallbackFailureSource }[] = [\n\t\t...diagnosticErrors(value).map((diagnosticError) => ({ value: diagnosticError, source: \"diagnostic\" as const })),\n\t\t...(field(value, \"error\") === undefined ? [] : [{ value: field(value, \"error\"), source }]),\n\t];\n\tfor (const nested of nestedValues) {\n\t\tconst nestedSignal =\n\t\t\tstructuredSignal(nested.value, nestedSeen, nested.source) ??\n\t\t\tfallbackSignalFromMessage(nested.value, nested.source);\n\t\tif (nestedSignal === undefined) continue;\n\t\tif (isRefusalSignal(nestedSignal)) return nestedSignal;\n\t\tif (\n\t\t\tbestNestedFallbackSignal === undefined ||\n\t\t\tnestedSignalPriority(nestedSignal) > nestedSignalPriority(bestNestedFallbackSignal)\n\t\t) {\n\t\t\tbestNestedFallbackSignal = nestedSignal;\n\t\t}\n\t}\n\tconst cause = causeOf(value);\n\tconst causeSignal = structuredSignal(cause, nestedSeen, source) ?? fallbackSignalFromMessage(cause, source);\n\tif (causeSignal !== undefined) {\n\t\tif (isRefusalSignal(causeSignal)) return causeSignal;\n\t\tif (\n\t\t\tbestNestedFallbackSignal === undefined ||\n\t\t\tnestedSignalPriority(causeSignal) > nestedSignalPriority(bestNestedFallbackSignal)\n\t\t) {\n\t\t\tbestNestedFallbackSignal = causeSignal;\n\t\t}\n\t}\n\n\t// This code names the exact cause, so the generic 400 status and its request-error text must not outrank it.\n\tif (\n\t\tdirectRefusalSignal === undefined &&\n\t\tdirectCancellationSignal === undefined &&\n\t\tnormalizeCode(codeFrom(value)) === \"model_not_available_for_integrator\"\n\t)\n\t\treturn makeSignal(\"model_unavailable\", value, source);\n\n\tconst directSignals = [\n\t\tdirectRefusalSignal,\n\t\tdirectCancellationSignal,\n\t\tproviderTransportSignal,\n\t\tfallbackSignalFromDirectMessage(value, source),\n\t\tkindFromStatus(statusFrom(value)) === undefined\n\t\t\t? undefined\n\t\t\t: makeSignal(kindFromStatus(statusFrom(value))!, value, source),\n\t\tkindFromCode(codeFrom(value)) === undefined\n\t\t\t? undefined\n\t\t\t: makeSignal(kindFromCode(codeFrom(value))!, value, source),\n\t\tkindFromCode(errorName(value)) === undefined\n\t\t\t? undefined\n\t\t\t: makeSignal(kindFromCode(errorName(value))!, value, source),\n\t].filter((signal): signal is ModelFallbackFailureSignal => signal !== undefined);\n\tfor (const directSignal of directSignals) {\n\t\tif (isRefusalSignal(directSignal)) return directSignal;\n\t\tif (\n\t\t\tbestNestedFallbackSignal === undefined ||\n\t\t\tnestedSignalPriority(directSignal) > nestedSignalPriority(bestNestedFallbackSignal)\n\t\t) {\n\t\t\tbestNestedFallbackSignal = directSignal;\n\t\t}\n\t}\n\n\tif (bestNestedFallbackSignal !== undefined) return bestNestedFallbackSignal;\n\tif (stopReason === \"error\") return makeSignal(\"provider_unavailable\", value, source);\n\treturn undefined;\n}\n\nfunction messageFromUnknown(value: unknown, seen: Set<unknown>): string | undefined {\n\tif (value === undefined || value === null || seen.has(value)) return undefined;\n\tif (typeof value === \"string\") return value.trim().length > 0 ? value : undefined;\n\tif (typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\") return String(value);\n\tif (typeof value === \"symbol\" || typeof value === \"function\") return undefined;\n\tseen.add(value);\n\n\tif (value instanceof Error && value.message.trim().length > 0) return value.message;\n\tconst directMessage = directMessageFrom(value);\n\tif (directMessage !== undefined) return directMessage;\n\tfor (const diagnosticError of diagnosticErrors(value)) {\n\t\tconst diagnosticMessage = messageFromUnknown(diagnosticError, seen);\n\t\tif (diagnosticMessage !== undefined) return diagnosticMessage;\n\t}\n\tconst causeMessage = messageFromUnknown(causeOf(value), seen);\n\tif (causeMessage !== undefined) return causeMessage;\n\tconst finishReason = finishReasonFrom(value);\n\tif (finishReason !== undefined) return `Model request finished with finish_reason:${finishReason}`;\n\tconst stopReason = stopReasonFrom(value);\n\tif (stopReason !== undefined) return `Assistant message ended with stopReason:${stopReason}`;\n\tconst status = statusFrom(value);\n\tif (status !== undefined) return `Model request failed with status ${status}`;\n\tconst code = codeFrom(value);\n\tif (code !== undefined) return `Model request failed with code ${String(code)}`;\n\treturn undefined;\n}\n\nexport function errorMessage(error: unknown): string {\n\tconst structuredMessage = messageFromUnknown(error, new Set());\n\tif (structuredMessage !== undefined) return structuredMessage;\n\tconst rendered = String(error);\n\treturn rendered === \"[object Object]\" ? \"Model request failed\" : rendered;\n}\n\n/** Alias used by the subagent package's older public helper name. */\nexport const modelFailureMessage = errorMessage;\n\nexport function normalizeModelFailureSignal(error: unknown): ModelFallbackFailureSignal {\n\t// Extension startup is not a model request. Its message names extension paths\n\t// and their own errors, which must not read as a provider failure.\n\tif (isExtensionStartupFailure(error)) {\n\t\tconst name = errorName(error);\n\t\treturn {\n\t\t\tkind: \"unknown\",\n\t\t\tmessage: errorMessage(error),\n\t\t\tsource: \"string_fallback\",\n\t\t\t...(name !== undefined ? { name } : {}),\n\t\t};\n\t}\n\tconst structured = structuredSignal(error, new Set());\n\tif (structured !== undefined) return structured;\n\tconst message = errorMessage(error);\n\tconst name = errorName(error);\n\tconst fallbackKind = message.trim().length > 0 ? fallbackKindFromMessage(message, name) : undefined;\n\treturn {\n\t\tkind: fallbackKind ?? \"unknown\",\n\t\tmessage,\n\t\tsource: \"string_fallback\",\n\t\t...(name !== undefined ? { name } : {}),\n\t};\n}\n\n/** Whether a task-failure signal is a provider safety/refusal response. */\nexport function isSafetyRefusalFailure(error: unknown): boolean {\n\tconst signal = normalizeModelFailureSignal(error);\n\tif (signal.kind !== \"task_failure\") return false;\n\tconst text = `${signal.message}\\n${signal.code ?? \"\"}\\n${signal.name ?? \"\"}`;\n\treturn PROVIDER_REFUSAL_FAILURE_PATTERNS.some((pattern) => pattern.test(text));\n}\n\n/** True when this failure may spend a configured model fallback candidate. */\nexport function isRetryableModelFailure(error: unknown): boolean {\n\tif (error === undefined) return false;\n\treturn FALLBACKABLE_FAILURE_KINDS.has(normalizeModelFailureSignal(error).kind);\n}\n\nconst SAME_MODEL_RETRYABLE_FAILURE_KINDS: ReadonlySet<ModelFallbackFailureKind> = new Set([\n\t\"rate_limit\",\n\t\"provider_unavailable\",\n\t\"network_timeout\",\n\t\"transport_error\",\n]);\n\n/** True when the same model may be requested again before fallback advances. */\nexport function isRetryableSameModelFailure(error: unknown): boolean {\n\tif (!isRetryableModelFailure(error)) return false;\n\tconst signal = normalizeModelFailureSignal(error);\n\tif (!SAME_MODEL_RETRYABLE_FAILURE_KINDS.has(signal.kind)) return false;\n\tif (\n\t\tsignal.kind === \"provider_unavailable\" &&\n\t\tsignal.source === \"assistant_message\" &&\n\t\tsignal.status === undefined &&\n\t\tsignal.code === undefined &&\n\t\tsignal.name === undefined &&\n\t\t!RETRYABLE_MODEL_FAILURE_PATTERNS.some((pattern) => pattern.test(signal.message))\n\t)\n\t\treturn false;\n\treturn true;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"model-fallback-failures.js","sourceRoot":"","sources":["../../src/core/model-fallback-failures.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,gCAAgC,GAAsB;IAC3D,eAAe;IACf,wBAAwB;IACxB,wBAAwB;IACxB,SAAS;IACT,QAAQ;IACR,oBAAoB;IACpB,UAAU;IACV,SAAS;IACT,gCAAgC;IAChC,kBAAkB;IAClB,YAAY;IACZ,gBAAgB;IAChB,sBAAsB;IACtB,sCAAsC;IACtC,+CAA+C;IAC/C,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,4BAA4B;IAC5B,wBAAwB;IACxB,UAAU;IACV,QAAQ;IACR,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,uBAAuB;IACvB,WAAW;IACX,UAAU;IACV,cAAc;IACd,aAAa;IACb,aAAa;IACb,SAAS;IACT,4BAA4B;IAC5B,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,iBAAiB;IACjB,gBAAgB;IAChB,mCAAmC;IACnC,gDAAgD;IAChD,uCAAuC;IACvC,mCAAmC;IACnC,cAAc;IACd,2BAA2B;IAC3B,aAAa;IACb,6BAA6B;IAC7B,yBAAyB;IACzB,4BAA4B;IAC5B,2EAA2E;IAC3E,oBAAoB;CACpB,CAAC;AAEF,MAAM,8BAA8B,GAAsB;IACzD,iBAAiB;IACjB,gBAAgB;IAChB,QAAQ;IACR,eAAe;IACf,eAAe;IACf,SAAS;IACT,QAAQ;IACR,cAAc;CACd,CAAC;AAEF,MAAM,0BAA0B,GAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAE5F,MAAM,uCAAuC,GAAsB;IAClE,kCAAkC;IAClC,mCAAmC;CACnC,CAAC;AAuCF,MAAM,0BAA0B,GAA0C,IAAI,GAAG,CAAC;IACjF,4BAA4B;IAC5B,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,sBAAsB;CACtB,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrG,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,EAAE,GAAW;IACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,GAAW;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAChC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACxC,OAAO,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,OAAO,CACN,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACvC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CACvC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC/E,gHAAgH;IAChH,6FAA6F;IAC7F,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;IAChE,OAAO,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACrC,OAAO,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACvC,OAAO,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC9B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACvC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CACV,aAAa,CAAC,cAAc,CAAC,KAAK,4BAA4B,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,UAAU,CAAC,CAC7G,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAkC;IACxD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QACzC,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC7B,UAAU,IAAI,IAAI,CAAC;YACnB,cAAc,GAAG,IAAI,CAAC;YACtB,SAAS;QACV,CAAC;QACD,IAAI,cAAc,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;YAAE,UAAU,IAAI,GAAG,CAAC;IACpF,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,gCAAgC,CAAC,OAAe;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,CACN,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC7B,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC1B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAC3B,CAAC;AACH,CAAC;AAED,oHAAoH;AACpH,MAAM,wCAAwC,GAAG,kEAAkE,CAAC;AAEpH,SAAS,cAAc,CAAC,MAA0B;IACjD,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACP,OAAO,sBAAsB,CAAC;QAC/B,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACP,OAAO,4BAA4B,CAAC;QACrC,KAAK,GAAG;YACP,OAAO,iBAAiB,CAAC;QAC1B,KAAK,GAAG;YACP,OAAO,mBAAmB,CAAC;QAC5B,KAAK,GAAG;YACP,OAAO,iBAAiB,CAAC;QAC1B,KAAK,GAAG;YACP,OAAO,YAAY,CAAC;QACrB;YACC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG;gBAAE,OAAO,sBAAsB,CAAC;YAC1F,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAiC;IAC7D,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnD,6GAA6G;IAC7G,IAAI,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,cAAc,CAAC;IACzG,IAAI,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACnH,oCAAoC;IACpC,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACpG,QAAQ,cAAc,EAAE,CAAC;QACxB,KAAK,SAAS,CAAC;QACf,KAAK,qBAAqB,CAAC;QAC3B,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB,CAAC;QACzB,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACb,OAAO,gBAAgB,CAAC;QACzB;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IAC/D,iBAAiB;IACjB,uBAAuB;IACvB,aAAa;IACb,yBAAyB;IACzB,mBAAmB;IACnB,WAAW;IACX,0BAA0B;IAC1B,YAAY;IACZ,oBAAoB;IACpB,yBAAyB;CACzB,CAAC,CAAC;AAEH,SAAS,+BAA+B,CAAC,IAAiC;IACzE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,UAAU,KAAK,SAAS,IAAI,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;AACpH,CAAC;AAED,SAAS,YAAY,CAAC,IAAiC;IACtD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAClD,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC;IACxD,MAAM,uBAAuB,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,uBAAuB,KAAK,SAAS;QAAE,OAAO,uBAAuB,CAAC;IAE1E,QAAQ,cAAc,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC;QACZ,KAAK,eAAe,CAAC;QACrB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,cAAc,CAAC;QACpB,KAAK,WAAW,CAAC;QACjB,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB,CAAC;QACvB,KAAK,aAAa,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,mBAAmB,CAAC;QACzB,KAAK,yBAAyB;YAC7B,OAAO,4BAA4B,CAAC;QACrC,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,cAAc,CAAC;QACpB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS,CAAC;QACf,KAAK,eAAe,CAAC;QACrB,KAAK,yBAAyB;YAC7B,OAAO,iBAAiB,CAAC;QAC1B,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,mBAAmB,CAAC;QACzB,KAAK,qBAAqB;YACzB,OAAO,YAAY,CAAC;QACrB,KAAK,gBAAgB,CAAC;QACtB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,aAAa,CAAC;QACnB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,kBAAkB,CAAC;QACxB,KAAK,+BAA+B;YACnC,OAAO,iBAAiB,CAAC;QAC1B,KAAK,YAAY,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACd,OAAO,WAAW,CAAC;QACpB,KAAK,iBAAiB,CAAC;QACvB,KAAK,mBAAmB,CAAC;QACzB,KAAK,gBAAgB,CAAC;QACtB,KAAK,eAAe,CAAC;QACrB,KAAK,oCAAoC;YACxC,OAAO,mBAAmB,CAAC;QAC5B,KAAK,gBAAgB,CAAC;QACtB,KAAK,WAAW,CAAC;QACjB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,YAAY;YAChB,OAAO,sBAAsB,CAAC;QAC/B;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED,MAAM,qCAAqC,GAAsB;IAChE,+CAA+C;IAC/C,+CAA+C;IAC/C,wBAAwB;IACxB,wBAAwB;IACxB,sDAAsD;IACtD,sBAAsB;IACtB,oEAAoE;IACpE,0FAA0F;IAC1F,6CAA6C;IAC7C,wBAAwB;CACxB,CAAC;AAEF,wGAAwG;AACxG,MAAM,+BAA+B,GAAsB;IAC1D,4DAA4D;IAC5D,wDAAwD;IACxD,sCAAsC;IACtC,yBAAyB;IACzB,wFAAwF;IACxF,0GAA0G;IAC1G,mKAAmK;IACnK,mKAAmK;IACnK,8CAA8C;IAC9C,mGAAmG;CACnG,CAAC;AAEF,MAAM,6BAA6B,GAAsB;IACxD,8DAA8D;IAC9D,gEAAgE;IAChE,gEAAgE;CAChE,CAAC;AAEF,MAAM,iCAAiC,GAAsB;IAC5D,GAAG,+BAA+B;IAClC,GAAG,6BAA6B;CAChC,CAAC;AAEF,MAAM,iCAAiC,GAAsB;IAC5D,0BAA0B;IAC1B,sBAAsB;IACtB,6EAA6E;IAC7E,8EAA8E;IAC9E,sDAAsD;IACtD,yEAAyE;IACzE,8EAA8E;IAC9E,2EAA2E;IAC3E,gEAAgE;IAChE,SAAS;IACT,iCAAiC;IACjC,gCAAgC;IAChC,qBAAqB;IACrB,gEAAgE;IAChE,2EAA2E;IAC3E,mCAAmC;CACnC,CAAC;AAEF,qGAAqG;AACrG,yGAAyG;AACzG,sGAAsG;AACtG,6GAA6G;AAC7G,oCAAoC;AACpC,MAAM,+BAA+B,GACpC,2PAA2P,CAAC;AAE7P,SAAS,8BAA8B,CAAC,OAAe;IACtD,OAAO,iCAAiC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC9C,IAAI,uCAAuC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC/G,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC;IAC5F,IAAI,8BAA8B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,cAAc,CAAC;IACnG,8GAA8G;IAC9G,iHAAiH;IACjH,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,cAAc,CAAC;IAClG,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACtG,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe,EAAE,IAAwB;IACzE,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAClD,MAAM,mBAAmB,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,mBAAmB,KAAK,SAAS;QAAE,OAAO,mBAAmB,CAAC;IAClE,IAAI,wCAAwC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACvF,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,sBAAsB,CAAC;IAClH,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC5E,MAAM,mBAAmB,GACxB,gCAAgC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzE,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,mBAAmB;QAAE,OAAO,SAAS,CAAC;IAC3C,IACC,0GAA0G,CAAC,IAAI,CAC9G,OAAO,CACP;QAED,OAAO,YAAY,CAAC;IACrB,IACC,iIAAiI,CAAC,IAAI,CACrI,OAAO,CACP;QAED,OAAO,4BAA4B,CAAC;IACrC,IAAI,gCAAgC,CAAC,OAAO,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC1E,IAAI,gGAAgG,CAAC,IAAI,CAAC,OAAO,CAAC;QACjH,OAAO,iBAAiB,CAAC;IAC1B,OAAO,sBAAsB,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,QAAgD;IACrF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC1G,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,OAAO,CAAC;IAC3C,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAClB,IAA8B,EAC9B,KAAc,EACd,MAA8C;IAE9C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO;QACN,IAAI;QACJ,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC5B,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;QACnC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACvC,KAAc,EACd,MAA8C;IAE9C,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,yBAAyB,CACjC,KAAc,EACd,MAA8C;IAE9C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,8BAA8B,CACtC,KAAc,EACd,MAA8C;IAE9C,MAAM,eAAe,GACpB,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpC,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAErF,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,OAAO,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,eAAe,CAAC,MAAkC;IAC1D,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC;AAC1G,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAkC;IAC/D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc,CAAC;QACpB,KAAK,gBAAgB;YACpB,OAAO,GAAG,CAAC;QACZ,KAAK,4BAA4B;YAChC,OAAO,EAAE,CAAC;QACX,KAAK,sBAAsB;YAC1B,OAAO,EAAE,CAAC;QACX,KAAK,mBAAmB;YACvB,OAAO,EAAE,CAAC;QACX,KAAK,iBAAiB;YACrB,OAAO,EAAE,CAAC;QACX,KAAK,YAAY;YAChB,OAAO,EAAE,CAAC;QACX,KAAK,sBAAsB;YAC1B,OAAO,EAAE,CAAC;QACX,KAAK,iBAAiB;YACrB,OAAO,EAAE,CAAC;QACX,KAAK,iBAAiB;YACrB,OAAO,EAAE,CAAC;QACX,KAAK,SAAS;YACb,OAAO,CAAC,CAAC;IACX,CAAC;AACF,CAAC;AACD,SAAS,gBAAgB,CACxB,KAAc,EACd,IAAkB,EAClB,MAAmC;IAEnC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACxD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,uBAAuB,GAC5B,cAAc,KAAK,SAAS,IAAI,aAAa,CAAC,cAAc,CAAC,KAAK,4BAA4B;QAC7F,CAAC,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE5E,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,MAAM,wBAAwB,GAC7B,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3G,IAAI,wBAAgE,CAAC;IACrE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,YAAY,GAAuE;QACxF,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,YAAqB,EAAE,CAAC,CAAC;QAChH,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC1F,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QACnC,MAAM,YAAY,GACjB,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;YACzD,yBAAyB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,YAAY,KAAK,SAAS;YAAE,SAAS;QACzC,IAAI,eAAe,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;QACvD,IACC,wBAAwB,KAAK,SAAS;YACtC,oBAAoB,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,EAClF,CAAC;YACF,wBAAwB,GAAG,YAAY,CAAC;QACzC,CAAC;IACF,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5G,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,eAAe,CAAC,WAAW,CAAC;YAAE,OAAO,WAAW,CAAC;QACrD,IACC,wBAAwB,KAAK,SAAS;YACtC,oBAAoB,CAAC,WAAW,CAAC,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,EACjF,CAAC;YACF,wBAAwB,GAAG,WAAW,CAAC;QACxC,CAAC;IACF,CAAC;IAED,6GAA6G;IAC7G,IACC,mBAAmB,KAAK,SAAS;QACjC,wBAAwB,KAAK,SAAS;QACtC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,oCAAoC;QAEvE,OAAO,UAAU,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAEvD,MAAM,aAAa,GAAG;QACrB,mBAAmB;QACnB,wBAAwB;QACxB,uBAAuB;QACvB,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC;QAC9C,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;YAC9C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAE,EAAE,KAAK,EAAE,MAAM,CAAC;QAChE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;YAC1C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAE,EAAE,KAAK,EAAE,MAAM,CAAC;QAC5D,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;YAC3C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAE,EAAE,KAAK,EAAE,MAAM,CAAC;KAC7D,CAAC,MAAM,CAAC,CAAC,MAAM,EAAwC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACjF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QAC1C,IAAI,eAAe,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;QACvD,IACC,wBAAwB,KAAK,SAAS;YACtC,oBAAoB,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,EAClF,CAAC;YACF,wBAAwB,GAAG,YAAY,CAAC;QACzC,CAAC;IACF,CAAC;IAED,IAAI,wBAAwB,KAAK,SAAS;QAAE,OAAO,wBAAwB,CAAC;IAC5E,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,UAAU,CAAC,sBAAsB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,IAAkB;IAC7D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/G,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC/E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACpF,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACtD,KAAK,MAAM,eAAe,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,iBAAiB,KAAK,SAAS;YAAE,OAAO,iBAAiB,CAAC;IAC/D,CAAC;IACD,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,6CAA6C,YAAY,EAAE,CAAC;IACnG,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,2CAA2C,UAAU,EAAE,CAAC;IAC7F,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,oCAAoC,MAAM,EAAE,CAAC;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,kCAAkC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAChF,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IAC1C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/D,IAAI,iBAAiB,KAAK,SAAS;QAAE,OAAO,iBAAiB,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,QAAQ,KAAK,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3E,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEhD,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACzD,8EAA8E;IAC9E,mEAAmE;IACnE,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO;YACN,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;YAC5B,MAAM,EAAE,iBAAiB;YACzB,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,OAAO;QACN,IAAI,EAAE,YAAY,IAAI,SAAS;QAC/B,OAAO;QACP,MAAM,EAAE,iBAAiB;QACzB,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC;AACH,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACpD,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,KAAK,CAAC;IACjD,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IAC7E,OAAO,iCAAiC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACpD,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc,EAAE,OAAqC;IAC5F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IACrD,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,OAAO,EAAE,uBAAuB,KAAK,KAAK,CAAC;IACjF,OAAO,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,kCAAkC,GAA0C,IAAI,GAAG,CAAC;IACzF,YAAY;IACZ,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;CACjB,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACzD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,IACC,MAAM,CAAC,IAAI,KAAK,sBAAsB;QACtC,MAAM,CAAC,MAAM,KAAK,mBAAmB;QACrC,MAAM,CAAC,MAAM,KAAK,SAAS;QAC3B,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEjF,OAAO,KAAK,CAAC;IACd,OAAO,IAAI,CAAC;AACb,CAAC","sourcesContent":["/**\n * Shared model/provider failure classification.\n *\n * Workflows, subagents, and the main chat all need the same decision about\n * whether a provider failure may spend another model candidate. Keep this\n * module free of AgentSession and workflow imports so the published SDK can\n * expose it to the raw-TypeScript companion packages without a cycle.\n */\n\nimport { isExtensionStartupFailure } from \"./extension-startup-failure.ts\";\n\nconst RETRYABLE_MODEL_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/rate\\s*limit/i,\n\t/too\\s*many\\s*requests/i,\n\t/\\bthrottl(?:ing|ed)\\b/i,\n\t/\\b429\\b/,\n\t/quota/i,\n\t/usage[\\s_-]*limit/i,\n\t/billing/i,\n\t/credit/i,\n\t/auth(?:entication|orization)?/i,\n\t/unauthori[sz]ed/i,\n\t/\\b40[13]\\b/,\n\t/api[_\\s-]*key/i,\n\t/token[_\\s-]*expired/i,\n\t/token[_\\s-]*(?:revoked|invalidated)/i,\n\t/invalidated[_\\s-]+(?:oauth|auth)[_\\s-]+token/i,\n\t/forbidden/i,\n\t/invalid\\s*key/i,\n\t/overloaded/i,\n\t/temporarily\\s*unavailable/i,\n\t/service\\s*unavailable/i,\n\t/network/i,\n\t/fetch/i,\n\t/getaddrinfo/i,\n\t/ENOTFOUND/i,\n\t/EAI_AGAIN/i,\n\t/socket/i,\n\t/connection\\s*refused/i,\n\t/upstream/i,\n\t/timeout/i,\n\t/timed\\s*out/i,\n\t/\\b50[0-4]\\b/,\n\t/\\b52[0-4]\\b/,\n\t/\\b529\\b/,\n\t/provider.?returned.?error/i,\n\t/server.?error/i,\n\t/internal.?error/i,\n\t/connection.?error/i,\n\t/connection.?lost/i,\n\t/connection.?reset/i,\n\t/ECONNRESET/i,\n\t/other side closed/i,\n\t/websocket.?closed/i,\n\t/websocket.?error/i,\n\t/reset before headers/i,\n\t/socket hang up/i,\n\t/ended without/i,\n\t/stream ended before message_stop/i,\n\t/stream ended before a terminal response event/i,\n\t/http2 request did not get a response/i,\n\t/pending stream has been canceled/i,\n\t/retry delay/i,\n\t/finish.?reason:?\\s*error/i,\n\t/terminated/i,\n\t/you can retry your request/i,\n\t/try your request again/i,\n\t/please retry your request/i,\n\t// gRPC based providers (e.g. NVIDIA NIM); upstream pi-ai retries this too.\n\t/ResourceExhausted/i,\n];\n\nconst NON_RETRYABLE_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/command failed/i,\n\t/tests? failed/i,\n\t/shell/i,\n\t/missing file/i,\n\t/no such file/i,\n\t/cancel/i,\n\t/abort/i,\n\t/interrupted/i,\n];\n\nconst CANCELLED_FAILURE_PATTERNS: readonly RegExp[] = [/cancel/i, /abort/i, /interrupted/i];\n\nconst TRANSPORT_CANCELLATION_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/getaddrinfo|ENOTFOUND|EAI_AGAIN/i,\n\t/pending stream has been canceled/i,\n];\n\nexport type ModelFallbackFailureKind =\n\t| \"auth_on_candidate_provider\"\n\t| \"rate_limit\"\n\t| \"quota_exhausted\"\n\t| \"provider_unavailable\"\n\t| \"network_timeout\"\n\t| \"transport_error\"\n\t| \"model_unavailable\"\n\t| \"request_incompatible\"\n\t| \"content_filter\"\n\t| \"cancelled\"\n\t| \"task_failure\"\n\t| \"unknown\";\n\nexport type ModelFallbackFailureSource =\n\t| \"assistant_message\"\n\t| \"diagnostic\"\n\t| \"throw\"\n\t| \"structured\"\n\t| \"string_fallback\";\n\nexport interface ModelFallbackFailureSignal {\n\treadonly kind: ModelFallbackFailureKind;\n\treadonly message: string;\n\treadonly source: ModelFallbackFailureSource;\n\treadonly stopReason?: string;\n\treadonly status?: number;\n\treadonly code?: string | number;\n\treadonly name?: string;\n}\n\n/** How a caller treats a provider content-filter refusal; `retry.fallbackOnContentFilter` in settings. */\nexport interface ModelFallbackFailureOptions {\n\t/** Whether a content-filter refusal may spend the next fallback candidate. Defaults to true. */\n\treadonly fallbackOnContentFilter?: boolean;\n}\n\nconst FALLBACKABLE_FAILURE_KINDS: ReadonlySet<ModelFallbackFailureKind> = new Set([\n\t\"auth_on_candidate_provider\",\n\t\"rate_limit\",\n\t\"quota_exhausted\",\n\t\"provider_unavailable\",\n\t\"network_timeout\",\n\t\"transport_error\",\n\t\"model_unavailable\",\n\t\"request_incompatible\",\n]);\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n\treturn value !== null && typeof value === \"object\" ? (value as Record<string, unknown>) : undefined;\n}\n\nfunction field(value: unknown, key: string): unknown {\n\treturn asRecord(value)?.[key];\n}\n\nfunction stringField(value: unknown, key: string): string | undefined {\n\tconst raw = field(value, key);\n\treturn typeof raw === \"string\" && raw.trim().length > 0 ? raw : undefined;\n}\n\nfunction errorName(value: unknown): string | undefined {\n\treturn value instanceof Error ? value.name : stringField(value, \"name\");\n}\n\nfunction directMessageFrom(value: unknown): string | undefined {\n\treturn stringField(value, \"errorMessage\") ?? stringField(value, \"message\") ?? stringField(value, \"statusText\");\n}\n\nfunction integerFrom(value: unknown): number | undefined {\n\tif (typeof value === \"number\" && Number.isInteger(value)) return value;\n\tif (typeof value !== \"string\" || value.trim().length === 0) return undefined;\n\tconst parsed = Number(value.trim());\n\treturn Number.isInteger(parsed) ? parsed : undefined;\n}\n\nfunction statusFrom(value: unknown): number | undefined {\n\treturn (\n\t\tintegerFrom(field(value, \"status\")) ??\n\t\tintegerFrom(field(value, \"statusCode\")) ??\n\t\tintegerFrom(field(value, \"httpStatus\"))\n\t);\n}\n\nfunction codeFrom(value: unknown): string | number | undefined {\n\tconst rawCode = field(value, \"code\");\n\tif (typeof rawCode === \"string\" || typeof rawCode === \"number\") return rawCode;\n\t// Provider failure diagnostics (`bedrock_response_failure`) keep the modeled error code in `details.errorCode`,\n\t// because the provider's display message replaces the exception name with a readable prefix.\n\tconst detailsCode = field(field(value, \"details\"), \"errorCode\");\n\treturn typeof detailsCode === \"string\" ? detailsCode : undefined;\n}\n\nfunction stopReasonFrom(value: unknown): string | undefined {\n\treturn stringField(value, \"stopReason\");\n}\n\nfunction finishReasonFrom(value: unknown): string | undefined {\n\treturn stringField(value, \"finish_reason\") ?? stringField(value, \"finishReason\");\n}\n\nfunction causeOf(value: unknown): unknown {\n\treturn value instanceof Error ? value.cause : field(value, \"cause\");\n}\n\nfunction diagnosticErrors(value: unknown): readonly unknown[] {\n\tconst diagnostics = field(value, \"diagnostics\");\n\tif (!Array.isArray(diagnostics)) return [];\n\tconst errors: unknown[] = [];\n\tfor (const diagnostic of diagnostics) {\n\t\tconst diagnosticType = stringField(diagnostic, \"type\");\n\t\tconst diagnosticError = field(diagnostic, \"error\");\n\t\terrors.push(\n\t\t\tnormalizeCode(diagnosticType) === \"provider_transport_failure\" ? diagnostic : (diagnosticError ?? diagnostic),\n\t\t);\n\t}\n\treturn errors;\n}\n\nfunction normalizeCode(value: string | number | undefined): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst raw = String(value).trim().toLowerCase();\n\tif (!raw) return undefined;\n\tlet normalized = \"\";\n\tlet needsSeparator = false;\n\tfor (const char of raw) {\n\t\tconst code = char.charCodeAt(0);\n\t\tconst isLowerAlpha = code >= 97 && code <= 122;\n\t\tconst isDigit = code >= 48 && code <= 57;\n\t\tif (isLowerAlpha || isDigit) {\n\t\t\tnormalized += char;\n\t\t\tneedsSeparator = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (needsSeparator && normalized[normalized.length - 1] !== \"_\") normalized += \"_\";\n\t}\n\tif (normalized.endsWith(\"_\")) normalized = normalized.slice(0, -1);\n\treturn normalized.length > 0 ? normalized : undefined;\n}\n\nfunction messageLooksLikeModelUnavailable(message: string): boolean {\n\tconst lower = message.toLowerCase();\n\treturn (\n\t\tlower.includes(\"model\") &&\n\t\t(lower.includes(\"unavailable\") ||\n\t\t\tlower.includes(\"disabled\") ||\n\t\t\tlower.includes(\"not found\") ||\n\t\t\tlower.includes(\"unknown\"))\n\t);\n}\n\n/** GitHub Copilot rejects a model this client integration cannot use with a generic 400 `invalid_request_error`. */\nconst MODEL_UNAVAILABLE_FOR_INTEGRATOR_PATTERN = /model_not_available_for_integrator|not available for integrator/i;\n\nfunction kindFromStatus(status: number | undefined): ModelFallbackFailureKind | undefined {\n\tswitch (status) {\n\t\tcase 400:\n\t\tcase 413:\n\t\tcase 422:\n\t\t\treturn \"request_incompatible\";\n\t\tcase 401:\n\t\tcase 403:\n\t\t\treturn \"auth_on_candidate_provider\";\n\t\tcase 408:\n\t\t\treturn \"network_timeout\";\n\t\tcase 404:\n\t\t\treturn \"model_unavailable\";\n\t\tcase 402:\n\t\t\treturn \"quota_exhausted\";\n\t\tcase 429:\n\t\t\treturn \"rate_limit\";\n\t\tdefault:\n\t\t\tif (status !== undefined && status >= 500 && status <= 599) return \"provider_unavailable\";\n\t\t\treturn undefined;\n\t}\n}\n\nfunction refusalKindFromCode(code: string | number | undefined): ModelFallbackFailureKind | undefined {\n\tconst normalizedCode = normalizeCode(code);\n\tif (normalizedCode === undefined) return undefined;\n\t// A refused tool call, such as `tool_call_refusal` or `tool_use_refused_by_policy`, before the policy words.\n\tif (/(?:^|_)tool(?:_|$)/.test(normalizedCode) && normalizedCode.includes(\"refus\")) return \"task_failure\";\n\tif (normalizedCode.includes(\"content_filter\") || normalizedCode.includes(\"contentfilter\")) return \"content_filter\";\n\t// Includes OpenAI's `cyber_policy`.\n\tif (normalizedCode.includes(\"safety\") || normalizedCode.includes(\"policy\")) return \"content_filter\";\n\tswitch (normalizedCode) {\n\t\tcase \"blocked\":\n\t\tcase \"blocked_by_provider\":\n\t\tcase \"blocked_by_safety\":\n\t\tcase \"blocked_by_policy\":\n\t\tcase \"provider_refusal\":\n\t\tcase \"refusal\":\n\t\t\treturn \"content_filter\";\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nconst REQUEST_INCOMPATIBLE_CODES: ReadonlySet<string> = new Set([\n\t\"invalid_request\",\n\t\"invalid_request_error\",\n\t\"bad_request\",\n\t\"context_length_exceeded\",\n\t\"request_too_large\",\n\t\"too_large\",\n\t\"request_entity_too_large\",\n\t\"max_tokens\",\n\t\"max_context_length\",\n\t\"context_window_exceeded\",\n]);\n\nfunction requestIncompatibleKindFromCode(code: string | number | undefined): ModelFallbackFailureKind | undefined {\n\tconst normalized = normalizeCode(code);\n\treturn normalized !== undefined && REQUEST_INCOMPATIBLE_CODES.has(normalized) ? \"request_incompatible\" : undefined;\n}\n\nfunction kindFromCode(code: string | number | undefined): ModelFallbackFailureKind | undefined {\n\tconst normalizedCode = normalizeCode(code);\n\tif (normalizedCode === undefined) return undefined;\n\tconst refusalKind = refusalKindFromCode(code);\n\tif (refusalKind !== undefined) return refusalKind;\n\tconst httpStatusKind = kindFromStatus(integerFrom(code));\n\tif (httpStatusKind !== undefined) return httpStatusKind;\n\tconst requestIncompatibleKind = requestIncompatibleKindFromCode(code);\n\tif (requestIncompatibleKind !== undefined) return requestIncompatibleKind;\n\n\tswitch (normalizedCode) {\n\t\tcase \"auth\":\n\t\tcase \"auth_required\":\n\t\tcase \"authentication_required\":\n\t\tcase \"unauthorized\":\n\t\tcase \"forbidden\":\n\t\tcase \"invalid_api_key\":\n\t\tcase \"missing_api_key\":\n\t\tcase \"invalid_key\":\n\t\tcase \"token_expired\":\n\t\tcase \"token_revoked\":\n\t\tcase \"token_invalidated\":\n\t\tcase \"oauth_token_invalidated\":\n\t\t\treturn \"auth_on_candidate_provider\";\n\t\tcase \"etimedout\":\n\t\tcase \"econnreset\":\n\t\tcase \"econnrefused\":\n\t\tcase \"enotfound\":\n\t\tcase \"eai_again\":\n\t\tcase \"fetch_failed\":\n\t\tcase \"network_error\":\n\t\tcase \"timeout\":\n\t\tcase \"timeout_error\":\n\t\tcase \"und_err_connect_timeout\":\n\t\t\treturn \"network_timeout\";\n\t\tcase \"rate_limit\":\n\t\tcase \"rate_limit_exceeded\":\n\t\tcase \"too_many_requests\":\n\t\tcase \"throttlingexception\":\n\t\t\treturn \"rate_limit\";\n\t\tcase \"quota_exceeded\":\n\t\tcase \"insufficient_quota\":\n\t\tcase \"usage_limit\":\n\t\tcase \"usage_limit_reached\":\n\t\tcase \"usage_limit_exceeded\":\n\t\tcase \"payment_required\":\n\t\tcase \"servicequotaexceededexception\":\n\t\t\treturn \"quota_exhausted\";\n\t\tcase \"aborterror\":\n\t\tcase \"aborted\":\n\t\tcase \"cancelled\":\n\t\tcase \"canceled\":\n\t\t\treturn \"cancelled\";\n\t\tcase \"model_not_found\":\n\t\tcase \"model_unavailable\":\n\t\tcase \"model_disabled\":\n\t\tcase \"unknown_model\":\n\t\tcase \"model_not_available_for_integrator\":\n\t\t\treturn \"model_unavailable\";\n\t\tcase \"provider_error\":\n\t\tcase \"api_error\":\n\t\tcase \"service_unavailable\":\n\t\tcase \"temporarily_unavailable\":\n\t\tcase \"overloaded\":\n\t\t\treturn \"provider_unavailable\";\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nconst REQUEST_INCOMPATIBLE_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/\\bcontext[_\\s-]?length(?:[_\\s-]?exceeded)?\\b/i,\n\t/\\bcontext[_\\s-]?window(?:[_\\s-]?exceeded)?\\b/i,\n\t/\\bmax[_\\s-]?context\\b/i,\n\t/\\bmax[_\\s-]?tokens?\\b/i,\n\t/\\brequest(?:[_\\s-]?entity)?[_\\s-]?too[_\\s-]?large\\b/i,\n\t/\\btoo[_\\s-]?large\\b/i,\n\t/\\b(?:unsupported|unknown|invalid)\\s+(?:tool|parameter|function)\\b/i,\n\t/\\b(?:tool|parameter|function)\\s+(?:not\\s+(?:supported|found|allowed)|unknown|invalid)\\b/i,\n\t/\\binvalid[_\\s-]?request(?:[_\\s-]?error)?\\b/i,\n\t/\\bbad[_\\s-]?request\\b/i,\n];\n\n/** A provider declined the request's content under its usage policy: the model will refuse it again. */\nconst CONTENT_FILTER_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/\\bthe\\s+model\\s+refused\\s+to\\s+complete\\s+the\\s+request\\b/i,\n\t/\\bfinish[_\\s-]?reason\\b[^\\n]*\\bcontent[_\\s-]?filter\\b/i,\n\t/\\bcontent[_\\s-]?filter(?:ed|ing)?\\b/i,\n\t/\\bcyber[_\\s-]?policy\\b/i,\n\t// OpenAI's cyber safeguard: \"This content was flagged for possible cybersecurity risk.\"\n\t/\\bflagged\\s+for\\s+(?:possible|potential(?:ly)?)\\b[^\\n]*\\b(?:risk|harm(?:ful)?|safety|policy|cyber\\w*)\\b/i,\n\t/\\b(?:safety|policy)\\b[^\\n]*\\b(?:refus(?:e|al|ed|es|ing)?|block(?:ed|ing)?|filter(?:ed|ing)?|violat(?:e|ion|ed|ing)?|disallow(?:ed|ing)?|reject(?:ed|ion|ing)?)\\b/i,\n\t/\\b(?:refus(?:e|al|ed|es|ing)?|block(?:ed|ing)?|filter(?:ed|ing)?|violat(?:e|ion|ed|ing)?|disallow(?:ed|ing)?|reject(?:ed|ion|ing)?)\\b[^\\n]*\\b(?:safety|policy)\\b/i,\n\t/\\bprovider[_\\s-]?refus(?:e|al|ed|es|ing)?\\b/i,\n\t/\\bprovider\\b[^\\n]*\\brefus(?:e|al|ed|es|ing)?\\b[^\\n]*\\b(?:prompt|request|content|policy|safety)\\b/i,\n];\n\nconst TOOL_REFUSAL_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/\\btool[_\\s-]?(?:call|use)?[_\\s-]?refus(?:e|al|ed|es|ing)?\\b/i,\n\t/\\btool(?:\\s+call|\\s+use)?\\b[^\\n]*\\brefus(?:e|al|ed|es|ing)?\\b/i,\n\t/\\brefus(?:e|al|ed|es|ing)?\\b[^\\n]*\\btool(?:\\s+call|\\s+use)?\\b/i,\n];\n\nconst PROVIDER_REFUSAL_FAILURE_PATTERNS: readonly RegExp[] = [\n\t...CONTENT_FILTER_FAILURE_PATTERNS,\n\t...TOOL_REFUSAL_FAILURE_PATTERNS,\n];\n\nconst TRANSPORT_OUTAGE_FAILURE_PATTERNS: readonly RegExp[] = [\n\t/^connection\\s+error\\.?$/i,\n\t/^fetch\\s+failed\\.?$/i,\n\t// Response-body decompression failures reported by Node/Bun zlib, optionally\n\t// behind the fetch/WebSocket layer's \"Library error:\" wrapper. GitHub Copilot\n\t// on the default `transport: \"auto\"` surfaces this as\n\t// \"Library error: zlib error: incorrect header check\" (#2553). These are\n\t// unanchored because the wrapper text varies by runtime and transport. `zlib`\n\t// has no trailing word boundary on purpose: Bun 1.4.0, the shipped runtime\n\t// when verified, throws `ZlibError fetching \"...\"` as one word.\n\t/\\bzlib/i,\n\t/\\bincorrect\\s+header\\s+check\\b/i,\n\t/\\bdecompress(?:ion|ing|ed)?\\b/i,\n\t/^library\\s+error\\b/i,\n\t// Idle-stream deadline enforced below the HTTP layer by pi-ai's\n\t// `withStreamDeadline`, so a stalled stream fails over instead of hanging.\n\t/\\bstream\\s+deadline\\s+exceeded\\b/i,\n];\n\n// HTTP 402 and explicit quota exhaustion: the account cannot be served again until its quota resets.\n// Codes that also appear as free-text wording for short limits (\"quota exceeded\", \"usage limit reached\")\n// count only as a JSON `code`/`type` value, as in a raw error body some providers put in the message.\n// A service-quota exception and a per-day quota violation in a JSON error body (`\"quotaId\": \"...PerDay...\"`)\n// also last until the quota resets.\nconst QUOTA_EXHAUSTED_FAILURE_PATTERN =\n\t/(?<![a-z0-9.])402(?![a-z0-9.])|payment[_\\s-]*required|insufficient[_\\s-]*quota|\\bServiceQuotaExceededException\\b|\"quotaId\"\\s*:\\s*\"[^\"]*PerDay|\"(?:code|type|error_code)\"\\s*:\\s*\"(?:quota_exceeded|usage_limit|usage_limit_reached|usage_limit_exceeded)\"/i;\n\nfunction transportOutageKindFromMessage(message: string): ModelFallbackFailureKind | undefined {\n\treturn TRANSPORT_OUTAGE_FAILURE_PATTERNS.some((pattern) => pattern.test(message.trim()))\n\t\t? \"transport_error\"\n\t\t: undefined;\n}\n\nfunction refusalKindFromMessage(message: string): ModelFallbackFailureKind | undefined {\n\tif (TRANSPORT_CANCELLATION_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"network_timeout\";\n\tif (CANCELLED_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"cancelled\";\n\tif (NON_RETRYABLE_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"task_failure\";\n\t// A refused tool call is about that call, whatever policy the provider names: another model is asked the same\n\t// tool call. So it is checked before the content-filter grammar, which \"refused ... safety policy\" also matches.\n\tif (TOOL_REFUSAL_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"task_failure\";\n\tif (CONTENT_FILTER_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"content_filter\";\n\treturn undefined;\n}\n\nfunction fallbackKindFromMessage(message: string, name: string | undefined): ModelFallbackFailureKind | undefined {\n\tconst refusalKind = refusalKindFromMessage(message);\n\tif (refusalKind !== undefined) return refusalKind;\n\tconst transportOutageKind = transportOutageKindFromMessage(message);\n\tif (transportOutageKind !== undefined) return transportOutageKind;\n\tif (MODEL_UNAVAILABLE_FOR_INTEGRATOR_PATTERN.test(message)) return \"model_unavailable\";\n\tif (REQUEST_INCOMPATIBLE_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return \"request_incompatible\";\n\tconst nameKind = kindFromCode(name);\n\tif (nameKind !== undefined) return nameKind;\n\tif (QUOTA_EXHAUSTED_FAILURE_PATTERN.test(message)) return \"quota_exhausted\";\n\tconst hasRetryablePattern =\n\t\tRETRYABLE_MODEL_FAILURE_PATTERNS.some((pattern) => pattern.test(message)) ||\n\t\tmessageLooksLikeModelUnavailable(message);\n\tif (!hasRetryablePattern) return undefined;\n\tif (\n\t\t/rate\\s*limit|too\\s*many\\s*requests|\\bthrottl(?:ing|ed)\\b|\\b429\\b|quota|usage[\\s_-]*limit|billing|credit/i.test(\n\t\t\tmessage,\n\t\t)\n\t)\n\t\treturn \"rate_limit\";\n\tif (\n\t\t/auth|unauthori[sz]ed|\\b40[13]\\b|api[_\\s-]*key|token[_\\s-]*(?:expired|revoked|invalidated|rejected)|forbidden|invalid[_\\s-]*key/i.test(\n\t\t\tmessage,\n\t\t)\n\t)\n\t\treturn \"auth_on_candidate_provider\";\n\tif (messageLooksLikeModelUnavailable(message)) return \"model_unavailable\";\n\tif (/network|fetch|socket|connection\\s*refused|getaddrinfo|ENOTFOUND|EAI_AGAIN|timeout|timed\\s*out/i.test(message))\n\t\treturn \"network_timeout\";\n\treturn \"provider_unavailable\";\n}\n\nfunction signalSource(value: unknown, fallback: ModelFallbackFailureSource | undefined): ModelFallbackFailureSource {\n\tif (fallback !== undefined) return fallback;\n\tif (stopReasonFrom(value) !== undefined || diagnosticErrors(value).length > 0) return \"assistant_message\";\n\tif (value instanceof Error) return \"throw\";\n\treturn \"structured\";\n}\n\nfunction makeSignal(\n\tkind: ModelFallbackFailureKind,\n\tvalue: unknown,\n\tsource: ModelFallbackFailureSource | undefined,\n): ModelFallbackFailureSignal {\n\tconst status = statusFrom(value);\n\tconst code = codeFrom(value);\n\tconst name = errorName(value);\n\tconst stopReason = stopReasonFrom(value);\n\treturn {\n\t\tkind,\n\t\tmessage: errorMessage(value),\n\t\tsource: signalSource(value, source),\n\t\t...(stopReason !== undefined ? { stopReason } : {}),\n\t\t...(status !== undefined ? { status } : {}),\n\t\t...(code !== undefined ? { code } : {}),\n\t\t...(name !== undefined ? { name } : {}),\n\t};\n}\n\nfunction fallbackSignalFromDirectMessage(\n\tvalue: unknown,\n\tsource: ModelFallbackFailureSource | undefined,\n): ModelFallbackFailureSignal | undefined {\n\tconst message = directMessageFrom(value);\n\tif (message === undefined) return undefined;\n\tconst kind = fallbackKindFromMessage(message, errorName(value));\n\treturn kind === undefined ? undefined : makeSignal(kind, value, source);\n}\n\nfunction fallbackSignalFromMessage(\n\tvalue: unknown,\n\tsource: ModelFallbackFailureSource | undefined,\n): ModelFallbackFailureSignal | undefined {\n\tconst message = errorMessage(value);\n\tif (!message.trim()) return undefined;\n\tconst kind = fallbackKindFromMessage(message, errorName(value));\n\treturn kind === undefined ? undefined : makeSignal(kind, value, source);\n}\n\nfunction classifyAssistantRefusalSignal(\n\tvalue: unknown,\n\tsource: ModelFallbackFailureSource | undefined,\n): ModelFallbackFailureSignal | undefined {\n\tconst codeRefusalKind =\n\t\trefusalKindFromCode(codeFrom(value)) ??\n\t\trefusalKindFromCode(errorName(value)) ??\n\t\trefusalKindFromCode(finishReasonFrom(value));\n\tif (codeRefusalKind !== undefined) return makeSignal(codeRefusalKind, value, source);\n\n\tconst messageRefusalKind = refusalKindFromMessage(directMessageFrom(value) ?? \"\");\n\treturn messageRefusalKind === undefined ? undefined : makeSignal(messageRefusalKind, value, source);\n}\n\nfunction isRefusalSignal(signal: ModelFallbackFailureSignal): boolean {\n\treturn signal.kind === \"cancelled\" || signal.kind === \"task_failure\" || signal.kind === \"content_filter\";\n}\n\nfunction nestedSignalPriority(signal: ModelFallbackFailureSignal): number {\n\tswitch (signal.kind) {\n\t\tcase \"cancelled\":\n\t\tcase \"task_failure\":\n\t\tcase \"content_filter\":\n\t\t\treturn 100;\n\t\tcase \"auth_on_candidate_provider\":\n\t\t\treturn 90;\n\t\tcase \"request_incompatible\":\n\t\t\treturn 85;\n\t\tcase \"model_unavailable\":\n\t\t\treturn 80;\n\t\tcase \"quota_exhausted\":\n\t\t\treturn 75;\n\t\tcase \"rate_limit\":\n\t\t\treturn 70;\n\t\tcase \"provider_unavailable\":\n\t\t\treturn 60;\n\t\tcase \"network_timeout\":\n\t\t\treturn 50;\n\t\tcase \"transport_error\":\n\t\t\treturn 82;\n\t\tcase \"unknown\":\n\t\t\treturn 0;\n\t}\n}\nfunction structuredSignal(\n\tvalue: unknown,\n\tseen: Set<unknown>,\n\tsource?: ModelFallbackFailureSource,\n): ModelFallbackFailureSignal | undefined {\n\tif (value === undefined || value === null || seen.has(value)) return undefined;\n\tif (typeof value === \"object\") seen.add(value);\n\n\tconst stopReason = stopReasonFrom(value)?.toLowerCase();\n\tconst diagnosticType = stringField(value, \"type\");\n\tconst providerTransportSignal =\n\t\tdiagnosticType !== undefined && normalizeCode(diagnosticType) === \"provider_transport_failure\"\n\t\t\t? makeSignal(\"transport_error\", value, source)\n\t\t\t: undefined;\n\tif (stopReason === \"aborted\") return makeSignal(\"cancelled\", value, source);\n\n\t// Defer direct refusal/cancellation signals until nested diagnostics and\n\t// causes have been inspected. A transport wrapper can carry a cancellation\n\t// or provider refusal that must win over the wrapper's transport label.\n\tconst directRefusalSignal = classifyAssistantRefusalSignal(value, source);\n\tconst codeKind = kindFromCode(codeFrom(value));\n\tconst nameKind = kindFromCode(errorName(value));\n\tconst directCancellationSignal =\n\t\tcodeKind === \"cancelled\" || nameKind === \"cancelled\" ? makeSignal(\"cancelled\", value, source) : undefined;\n\n\tlet bestNestedFallbackSignal: ModelFallbackFailureSignal | undefined;\n\tconst nestedSeen = new Set(seen);\n\tconst nestedValues: readonly { value: unknown; source?: ModelFallbackFailureSource }[] = [\n\t\t...diagnosticErrors(value).map((diagnosticError) => ({ value: diagnosticError, source: \"diagnostic\" as const })),\n\t\t...(field(value, \"error\") === undefined ? [] : [{ value: field(value, \"error\"), source }]),\n\t];\n\tfor (const nested of nestedValues) {\n\t\tconst nestedSignal =\n\t\t\tstructuredSignal(nested.value, nestedSeen, nested.source) ??\n\t\t\tfallbackSignalFromMessage(nested.value, nested.source);\n\t\tif (nestedSignal === undefined) continue;\n\t\tif (isRefusalSignal(nestedSignal)) return nestedSignal;\n\t\tif (\n\t\t\tbestNestedFallbackSignal === undefined ||\n\t\t\tnestedSignalPriority(nestedSignal) > nestedSignalPriority(bestNestedFallbackSignal)\n\t\t) {\n\t\t\tbestNestedFallbackSignal = nestedSignal;\n\t\t}\n\t}\n\tconst cause = causeOf(value);\n\tconst causeSignal = structuredSignal(cause, nestedSeen, source) ?? fallbackSignalFromMessage(cause, source);\n\tif (causeSignal !== undefined) {\n\t\tif (isRefusalSignal(causeSignal)) return causeSignal;\n\t\tif (\n\t\t\tbestNestedFallbackSignal === undefined ||\n\t\t\tnestedSignalPriority(causeSignal) > nestedSignalPriority(bestNestedFallbackSignal)\n\t\t) {\n\t\t\tbestNestedFallbackSignal = causeSignal;\n\t\t}\n\t}\n\n\t// This code names the exact cause, so the generic 400 status and its request-error text must not outrank it.\n\tif (\n\t\tdirectRefusalSignal === undefined &&\n\t\tdirectCancellationSignal === undefined &&\n\t\tnormalizeCode(codeFrom(value)) === \"model_not_available_for_integrator\"\n\t)\n\t\treturn makeSignal(\"model_unavailable\", value, source);\n\n\tconst directSignals = [\n\t\tdirectRefusalSignal,\n\t\tdirectCancellationSignal,\n\t\tproviderTransportSignal,\n\t\tfallbackSignalFromDirectMessage(value, source),\n\t\tkindFromStatus(statusFrom(value)) === undefined\n\t\t\t? undefined\n\t\t\t: makeSignal(kindFromStatus(statusFrom(value))!, value, source),\n\t\tkindFromCode(codeFrom(value)) === undefined\n\t\t\t? undefined\n\t\t\t: makeSignal(kindFromCode(codeFrom(value))!, value, source),\n\t\tkindFromCode(errorName(value)) === undefined\n\t\t\t? undefined\n\t\t\t: makeSignal(kindFromCode(errorName(value))!, value, source),\n\t].filter((signal): signal is ModelFallbackFailureSignal => signal !== undefined);\n\tfor (const directSignal of directSignals) {\n\t\tif (isRefusalSignal(directSignal)) return directSignal;\n\t\tif (\n\t\t\tbestNestedFallbackSignal === undefined ||\n\t\t\tnestedSignalPriority(directSignal) > nestedSignalPriority(bestNestedFallbackSignal)\n\t\t) {\n\t\t\tbestNestedFallbackSignal = directSignal;\n\t\t}\n\t}\n\n\tif (bestNestedFallbackSignal !== undefined) return bestNestedFallbackSignal;\n\tif (stopReason === \"error\") return makeSignal(\"provider_unavailable\", value, source);\n\treturn undefined;\n}\n\nfunction messageFromUnknown(value: unknown, seen: Set<unknown>): string | undefined {\n\tif (value === undefined || value === null || seen.has(value)) return undefined;\n\tif (typeof value === \"string\") return value.trim().length > 0 ? value : undefined;\n\tif (typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\") return String(value);\n\tif (typeof value === \"symbol\" || typeof value === \"function\") return undefined;\n\tseen.add(value);\n\n\tif (value instanceof Error && value.message.trim().length > 0) return value.message;\n\tconst directMessage = directMessageFrom(value);\n\tif (directMessage !== undefined) return directMessage;\n\tfor (const diagnosticError of diagnosticErrors(value)) {\n\t\tconst diagnosticMessage = messageFromUnknown(diagnosticError, seen);\n\t\tif (diagnosticMessage !== undefined) return diagnosticMessage;\n\t}\n\tconst causeMessage = messageFromUnknown(causeOf(value), seen);\n\tif (causeMessage !== undefined) return causeMessage;\n\tconst finishReason = finishReasonFrom(value);\n\tif (finishReason !== undefined) return `Model request finished with finish_reason:${finishReason}`;\n\tconst stopReason = stopReasonFrom(value);\n\tif (stopReason !== undefined) return `Assistant message ended with stopReason:${stopReason}`;\n\tconst status = statusFrom(value);\n\tif (status !== undefined) return `Model request failed with status ${status}`;\n\tconst code = codeFrom(value);\n\tif (code !== undefined) return `Model request failed with code ${String(code)}`;\n\treturn undefined;\n}\n\nexport function errorMessage(error: unknown): string {\n\tconst structuredMessage = messageFromUnknown(error, new Set());\n\tif (structuredMessage !== undefined) return structuredMessage;\n\tconst rendered = String(error);\n\treturn rendered === \"[object Object]\" ? \"Model request failed\" : rendered;\n}\n\n/** Alias used by the subagent package's older public helper name. */\nexport const modelFailureMessage = errorMessage;\n\nexport function normalizeModelFailureSignal(error: unknown): ModelFallbackFailureSignal {\n\t// Extension startup is not a model request. Its message names extension paths\n\t// and their own errors, which must not read as a provider failure.\n\tif (isExtensionStartupFailure(error)) {\n\t\tconst name = errorName(error);\n\t\treturn {\n\t\t\tkind: \"unknown\",\n\t\t\tmessage: errorMessage(error),\n\t\t\tsource: \"string_fallback\",\n\t\t\t...(name !== undefined ? { name } : {}),\n\t\t};\n\t}\n\tconst structured = structuredSignal(error, new Set());\n\tif (structured !== undefined) return structured;\n\tconst message = errorMessage(error);\n\tconst name = errorName(error);\n\tconst fallbackKind = message.trim().length > 0 ? fallbackKindFromMessage(message, name) : undefined;\n\treturn {\n\t\tkind: fallbackKind ?? \"unknown\",\n\t\tmessage,\n\t\tsource: \"string_fallback\",\n\t\t...(name !== undefined ? { name } : {}),\n\t};\n}\n\n/** Whether a failure is a provider safety/refusal response: a content-filter refusal, or a refused tool call. */\nexport function isSafetyRefusalFailure(error: unknown): boolean {\n\tconst signal = normalizeModelFailureSignal(error);\n\tif (signal.kind === \"content_filter\") return true;\n\tif (signal.kind !== \"task_failure\") return false;\n\tconst text = `${signal.message}\\n${signal.code ?? \"\"}\\n${signal.name ?? \"\"}`;\n\treturn PROVIDER_REFUSAL_FAILURE_PATTERNS.some((pattern) => pattern.test(text));\n}\n\n/** Whether a provider's content filter refused the request, as OpenAI's HTTP 422 `cyber_policy` does. */\nexport function isContentFilterRefusal(error: unknown): boolean {\n\treturn normalizeModelFailureSignal(error).kind === \"content_filter\";\n}\n\n/**\n * True when this failure may spend a configured model fallback candidate. A content-filter refusal does unless\n * `options.fallbackOnContentFilter` is false.\n */\nexport function isRetryableModelFailure(error: unknown, options?: ModelFallbackFailureOptions): boolean {\n\tif (error === undefined) return false;\n\tconst kind = normalizeModelFailureSignal(error).kind;\n\tif (kind === \"content_filter\") return options?.fallbackOnContentFilter !== false;\n\treturn FALLBACKABLE_FAILURE_KINDS.has(kind);\n}\n\nconst SAME_MODEL_RETRYABLE_FAILURE_KINDS: ReadonlySet<ModelFallbackFailureKind> = new Set([\n\t\"rate_limit\",\n\t\"provider_unavailable\",\n\t\"network_timeout\",\n\t\"transport_error\",\n]);\n\n/** True when the same model may be requested again before fallback advances. */\nexport function isRetryableSameModelFailure(error: unknown): boolean {\n\tif (!isRetryableModelFailure(error)) return false;\n\tconst signal = normalizeModelFailureSignal(error);\n\tif (!SAME_MODEL_RETRYABLE_FAILURE_KINDS.has(signal.kind)) return false;\n\tif (\n\t\tsignal.kind === \"provider_unavailable\" &&\n\t\tsignal.source === \"assistant_message\" &&\n\t\tsignal.status === undefined &&\n\t\tsignal.code === undefined &&\n\t\tsignal.name === undefined &&\n\t\t!RETRYABLE_MODEL_FAILURE_PATTERNS.some((pattern) => pattern.test(signal.message))\n\t)\n\t\treturn false;\n\treturn true;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-defaults.d.ts","sourceRoot":"","sources":["../../src/core/settings-defaults.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,eAAO,MAAM,iBAAiB;aAC7B,WAAW,EAAE,EAAE;aACf,SAAS,EAAE,MAAM;aACjB,YAAY,EAAE,eAAe;aAC7B,YAAY,EAAE,eAAe;aAC7B,UAAU;iBACT,OAAO;iBACP,aAAa,EAAE,KAAK;iBACpB,iBAAiB,EAAE,GAAG;iBACtB,eAAe,EAAE,CAAC;;aAEnB,aAAa;iBACZ,aAAa,EAAE,KAAK;iBACpB,UAAU;;aAEX,cAAc;iBACb,OAAO;;aAER,KAAK;iBACJ,OAAO;iBACP,UAAU,EAAE,CAAC;iBACb,WAAW,EAAE,IAAI;iBACjB,eAAe;iBACf,QAAQ;qBACP,eAAe,EAAE,KAAK;;;aAGxB,iBAAiB;aACjB,oBAAoB;aACpB,YAAY;aACZ,mBAAmB,EAAE,KAAK;aAC1B,eAAe;iBACd,OAAO;;aAER,MAAM;iBACL,aAAa,EAAE,CAAC;iBAChB,YAAY,EAAE,CAAC;;aAEhB,iBAAiB;aACjB,sBAAsB;aACtB,mBAAmB;aACnB,KAAK;iBACJ,OAAO;;aAER,QAAQ;iBACP,UAAU;iBACV,eAAe,EAAE,EAAE;iBACnB,aAAa;iBACb,oBAAoB;;aAErB,MAAM;iBACL,UAAU;iBACV,WAAW;;aAEZ,kBAAkB,EAAE,MAAM;aAC1B,cAAc,EAAE,SAAS;aACzB,cAAc,EAAE,CAAC;aACjB,SAAS,EAAE,CAAC;aACZ,sBAAsB,EAAE,CAAC;aACzB,mBAAmB,EAAE,MAAM;aAC3B,oBAAoB,EAAE,YAAY;aAClC,sBAAsB;aACtB,0BAA0B,EAAE,MAAM;aAClC,QAAQ;iBACP,IAAI,EAAE,IAAI;iBACV,YAAY,EAAE,IAAI;;aAEnB,QAAQ;iBACP,eAAe,EAAE,IAAI;iBACrB,OAAO,EAAE,WAAW;iBACpB,KAAK;;aAEN,QAAQ;iBACP,mBAAmB;;aAEpB,iBAAiB,EAAE,MAAO;aAC1B,YAAY,EAAE,WAAW;aACzB,KAAK;QACJ,qDAAqD;iBACrD,WAAW;;CAEH,CAAC"}
|
|
1
|
+
{"version":3,"file":"settings-defaults.d.ts","sourceRoot":"","sources":["../../src/core/settings-defaults.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,eAAO,MAAM,iBAAiB;aAC7B,WAAW,EAAE,EAAE;aACf,SAAS,EAAE,MAAM;aACjB,YAAY,EAAE,eAAe;aAC7B,YAAY,EAAE,eAAe;aAC7B,UAAU;iBACT,OAAO;iBACP,aAAa,EAAE,KAAK;iBACpB,iBAAiB,EAAE,GAAG;iBACtB,eAAe,EAAE,CAAC;;aAEnB,aAAa;iBACZ,aAAa,EAAE,KAAK;iBACpB,UAAU;;aAEX,cAAc;iBACb,OAAO;;aAER,KAAK;iBACJ,OAAO;iBACP,UAAU,EAAE,CAAC;iBACb,WAAW,EAAE,IAAI;iBACjB,eAAe;iBACf,uBAAuB;iBACvB,QAAQ;qBACP,eAAe,EAAE,KAAK;;;aAGxB,iBAAiB;aACjB,oBAAoB;aACpB,YAAY;aACZ,mBAAmB,EAAE,KAAK;aAC1B,eAAe;iBACd,OAAO;;aAER,MAAM;iBACL,aAAa,EAAE,CAAC;iBAChB,YAAY,EAAE,CAAC;;aAEhB,iBAAiB;aACjB,sBAAsB;aACtB,mBAAmB;aACnB,KAAK;iBACJ,OAAO;;aAER,QAAQ;iBACP,UAAU;iBACV,eAAe,EAAE,EAAE;iBACnB,aAAa;iBACb,oBAAoB;;aAErB,MAAM;iBACL,UAAU;iBACV,WAAW;;aAEZ,kBAAkB,EAAE,MAAM;aAC1B,cAAc,EAAE,SAAS;aACzB,cAAc,EAAE,CAAC;aACjB,SAAS,EAAE,CAAC;aACZ,sBAAsB,EAAE,CAAC;aACzB,mBAAmB,EAAE,MAAM;aAC3B,oBAAoB,EAAE,YAAY;aAClC,sBAAsB;aACtB,0BAA0B,EAAE,MAAM;aAClC,QAAQ;iBACP,IAAI,EAAE,IAAI;iBACV,YAAY,EAAE,IAAI;;aAEnB,QAAQ;iBACP,eAAe,EAAE,IAAI;iBACrB,OAAO,EAAE,WAAW;iBACpB,KAAK;;aAEN,QAAQ;iBACP,mBAAmB;;aAEpB,iBAAiB,EAAE,MAAO;aAC1B,YAAY,EAAE,WAAW;aACzB,KAAK;QACJ,qDAAqD;iBACrD,WAAW;;CAEH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-defaults.js","sourceRoot":"","sources":["../../src/core/settings-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAE9E,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE;QACX,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,GAAG;QACtB,eAAe,EAAE,CAAC;KAClB;IACD,aAAa,EAAE;QACd,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;KACjB;IACD,cAAc,EAAE;QACf,OAAO,EAAE,IAAI;KACb;IACD,KAAK,EAAE;QACN,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,gCAAgC;QACjD,QAAQ,EAAE;YACT,eAAe,EAAE,KAAK;SACtB;KACD;IACD,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,KAAK;IACnB,mBAAmB,EAAE,KAAK;IAC1B,eAAe,EAAE;QAChB,OAAO,EAAE,KAAK;KACd;IACD,MAAM,EAAE;QACP,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;KACf;IACD,iBAAiB,EAAE,KAAK;IACxB,sBAAsB,EAAE,IAAI;IAC5B,mBAAmB,EAAE,IAAI;IACzB,KAAK,EAAE;QACN,OAAO,EAAE,IAAI;KACb;IACD,QAAQ,EAAE;QACT,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,KAAK;QACpB,oBAAoB,EAAE,KAAK;KAC3B;IACD,MAAM,EAAE;QACP,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,KAAK;KAClB;IACD,kBAAkB,EAAE,MAAM;IAC1B,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE,CAAC;IACZ,sBAAsB,EAAE,CAAC;IACzB,mBAAmB,EAAE,MAAM;IAC3B,oBAAoB,EAAE,YAAY;IAClC,sBAAsB,EAAE,IAAI;IAC5B,0BAA0B,EAAE,MAAM;IAClC,QAAQ,EAAE;QACT,IAAI,EAAE,IAAI;QACV,YAAY,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACT,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,IAAI;KACX;IACD,QAAQ,EAAE;QACT,mBAAmB,EAAE,IAAI;KACzB;IACD,iBAAiB,EAAE,OAAO;IAC1B,YAAY,EAAE,WAAW;IACzB,KAAK,EAAE;QACN,qDAAqD;QACrD,WAAW,EAAE,EAAE,GAAG,MAAM;KACxB;CACQ,CAAC","sourcesContent":["import { DEFAULT_MAX_AGENT_RETRY_DELAY_MS } from \"@bastani/pi-ai/utils/retry\";\n\n/** Runtime defaults shared by settings accessors and the published JSON Schema. */\nexport const SETTINGS_DEFAULTS = {\n\trouterModel: \"\",\n\ttransport: \"auto\",\n\tsteeringMode: \"one-at-a-time\",\n\tfollowUpMode: \"one-at-a-time\",\n\tcompaction: {\n\t\tenabled: true,\n\t\treserveTokens: 16384,\n\t\tcompression_ratio: 0.5,\n\t\tpreserve_recent: 2,\n\t},\n\tbranchSummary: {\n\t\treserveTokens: 16384,\n\t\tskipPrompt: false,\n\t},\n\tsessionSummary: {\n\t\tenabled: true,\n\t},\n\tretry: {\n\t\tenabled: true,\n\t\tmaxRetries: 3,\n\t\tbaseDelayMs: 2000,\n\t\tmaxAgentDelayMs: DEFAULT_MAX_AGENT_RETRY_DELAY_MS,\n\t\tprovider: {\n\t\t\tmaxRetryDelayMs: 60000,\n\t\t},\n\t},\n\thideThinkingBlock: false,\n\tshowCacheMissNotices: false,\n\tquietStartup: false,\n\tdefaultProjectTrust: \"ask\",\n\tbashInterceptor: {\n\t\tenabled: false,\n\t},\n\tsearch: {\n\t\tcontextBefore: 1,\n\t\tcontextAfter: 3,\n\t},\n\tcollapseChangelog: false,\n\tenableInstallTelemetry: true,\n\tenableSkillCommands: true,\n\therdr: {\n\t\tenabled: true,\n\t},\n\tterminal: {\n\t\tshowImages: true,\n\t\timageWidthCells: 60,\n\t\tclearOnShrink: false,\n\t\tshowTerminalProgress: false,\n\t},\n\timages: {\n\t\tautoResize: true,\n\t\tblockImages: false,\n\t},\n\tdoubleEscapeAction: \"tree\",\n\ttreeFilterMode: \"default\",\n\teditorPaddingX: 0,\n\toutputPad: 1,\n\tautocompleteMaxVisible: 5,\n\tfullscreenScrollbar: \"auto\",\n\tfullscreenExitOutput: \"transcript\",\n\tfullscreenCopyOnSelect: true,\n\tfullscreenWheelScrollLines: \"auto\",\n\tcodemode: {\n\t\tmode: \"on\",\n\t\tinlineBudget: 3000,\n\t},\n\tmarkdown: {\n\t\tcodeBlockIndent: \" \",\n\t\tmermaid: \"streaming\",\n\t\tlatex: true,\n\t},\n\twarnings: {\n\t\tanthropicExtraUsage: true,\n\t},\n\thttpIdleTimeoutMs: 600_000,\n\tcacheWarming: \"streaming\",\n\ttasks: {\n\t\t/** Same 15-minute default as workflow heartbeats. */\n\t\theartbeatMs: 15 * 60_000,\n\t},\n} as const;\n"]}
|
|
1
|
+
{"version":3,"file":"settings-defaults.js","sourceRoot":"","sources":["../../src/core/settings-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAE9E,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE;QACX,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,GAAG;QACtB,eAAe,EAAE,CAAC;KAClB;IACD,aAAa,EAAE;QACd,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;KACjB;IACD,cAAc,EAAE;QACf,OAAO,EAAE,IAAI;KACb;IACD,KAAK,EAAE;QACN,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,gCAAgC;QACjD,uBAAuB,EAAE,IAAI;QAC7B,QAAQ,EAAE;YACT,eAAe,EAAE,KAAK;SACtB;KACD;IACD,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,KAAK;IACnB,mBAAmB,EAAE,KAAK;IAC1B,eAAe,EAAE;QAChB,OAAO,EAAE,KAAK;KACd;IACD,MAAM,EAAE;QACP,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;KACf;IACD,iBAAiB,EAAE,KAAK;IACxB,sBAAsB,EAAE,IAAI;IAC5B,mBAAmB,EAAE,IAAI;IACzB,KAAK,EAAE;QACN,OAAO,EAAE,IAAI;KACb;IACD,QAAQ,EAAE;QACT,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,KAAK;QACpB,oBAAoB,EAAE,KAAK;KAC3B;IACD,MAAM,EAAE;QACP,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,KAAK;KAClB;IACD,kBAAkB,EAAE,MAAM;IAC1B,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE,CAAC;IACZ,sBAAsB,EAAE,CAAC;IACzB,mBAAmB,EAAE,MAAM;IAC3B,oBAAoB,EAAE,YAAY;IAClC,sBAAsB,EAAE,IAAI;IAC5B,0BAA0B,EAAE,MAAM;IAClC,QAAQ,EAAE;QACT,IAAI,EAAE,IAAI;QACV,YAAY,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACT,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,IAAI;KACX;IACD,QAAQ,EAAE;QACT,mBAAmB,EAAE,IAAI;KACzB;IACD,iBAAiB,EAAE,OAAO;IAC1B,YAAY,EAAE,WAAW;IACzB,KAAK,EAAE;QACN,qDAAqD;QACrD,WAAW,EAAE,EAAE,GAAG,MAAM;KACxB;CACQ,CAAC","sourcesContent":["import { DEFAULT_MAX_AGENT_RETRY_DELAY_MS } from \"@bastani/pi-ai/utils/retry\";\n\n/** Runtime defaults shared by settings accessors and the published JSON Schema. */\nexport const SETTINGS_DEFAULTS = {\n\trouterModel: \"\",\n\ttransport: \"auto\",\n\tsteeringMode: \"one-at-a-time\",\n\tfollowUpMode: \"one-at-a-time\",\n\tcompaction: {\n\t\tenabled: true,\n\t\treserveTokens: 16384,\n\t\tcompression_ratio: 0.5,\n\t\tpreserve_recent: 2,\n\t},\n\tbranchSummary: {\n\t\treserveTokens: 16384,\n\t\tskipPrompt: false,\n\t},\n\tsessionSummary: {\n\t\tenabled: true,\n\t},\n\tretry: {\n\t\tenabled: true,\n\t\tmaxRetries: 3,\n\t\tbaseDelayMs: 2000,\n\t\tmaxAgentDelayMs: DEFAULT_MAX_AGENT_RETRY_DELAY_MS,\n\t\tfallbackOnContentFilter: true,\n\t\tprovider: {\n\t\t\tmaxRetryDelayMs: 60000,\n\t\t},\n\t},\n\thideThinkingBlock: false,\n\tshowCacheMissNotices: false,\n\tquietStartup: false,\n\tdefaultProjectTrust: \"ask\",\n\tbashInterceptor: {\n\t\tenabled: false,\n\t},\n\tsearch: {\n\t\tcontextBefore: 1,\n\t\tcontextAfter: 3,\n\t},\n\tcollapseChangelog: false,\n\tenableInstallTelemetry: true,\n\tenableSkillCommands: true,\n\therdr: {\n\t\tenabled: true,\n\t},\n\tterminal: {\n\t\tshowImages: true,\n\t\timageWidthCells: 60,\n\t\tclearOnShrink: false,\n\t\tshowTerminalProgress: false,\n\t},\n\timages: {\n\t\tautoResize: true,\n\t\tblockImages: false,\n\t},\n\tdoubleEscapeAction: \"tree\",\n\ttreeFilterMode: \"default\",\n\teditorPaddingX: 0,\n\toutputPad: 1,\n\tautocompleteMaxVisible: 5,\n\tfullscreenScrollbar: \"auto\",\n\tfullscreenExitOutput: \"transcript\",\n\tfullscreenCopyOnSelect: true,\n\tfullscreenWheelScrollLines: \"auto\",\n\tcodemode: {\n\t\tmode: \"on\",\n\t\tinlineBudget: 3000,\n\t},\n\tmarkdown: {\n\t\tcodeBlockIndent: \" \",\n\t\tmermaid: \"streaming\",\n\t\tlatex: true,\n\t},\n\twarnings: {\n\t\tanthropicExtraUsage: true,\n\t},\n\thttpIdleTimeoutMs: 600_000,\n\tcacheWarming: \"streaming\",\n\ttasks: {\n\t\t/** Same 15-minute default as workflow heartbeats. */\n\t\theartbeatMs: 15 * 60_000,\n\t},\n} as const;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-manager-basic-accessors.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"settings-manager-basic-accessors.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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"}
|
|
@@ -381,6 +381,8 @@ const basicAccessors = {
|
|
|
381
381
|
baseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? SETTINGS_DEFAULTS.retry.baseDelayMs,
|
|
382
382
|
maxRetryDelayMs: this.getProviderRetrySettings().maxRetryDelayMs,
|
|
383
383
|
maxAgentDelayMs: settingsInternals(this).settings.retry?.maxAgentDelayMs ?? SETTINGS_DEFAULTS.retry.maxAgentDelayMs,
|
|
384
|
+
fallbackOnContentFilter: settingsInternals(this).settings.retry?.fallbackOnContentFilter ??
|
|
385
|
+
SETTINGS_DEFAULTS.retry.fallbackOnContentFilter,
|
|
384
386
|
};
|
|
385
387
|
},
|
|
386
388
|
getHttpProxy() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-manager-basic-accessors.js","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { type Model, normalizeProviderId } from \"@bastani/pi-ai\";\nimport { parseHttpIdleTimeoutMs } from \"./http-dispatcher.ts\";\nimport { SETTINGS_DEFAULTS } from \"./settings-defaults.ts\";\nimport { SettingsManager } from \"./settings-manager-core.ts\";\nimport { settingsInternals } from \"./settings-manager-internals.ts\";\nimport { resolveDefaultTools } from \"./settings-merge.js\";\nimport type { Settings } from \"./settings-schema.ts\";\nimport type {\n\tCompactionModelOverride,\n\tCompactionSettings,\n\tModelRoutingSettings,\n\tTransportSetting,\n} from \"./settings-types.ts\";\nimport { CACHE_WARMING_MODES, type CacheWarmingMode } from \"./settings-types.ts\";\n\ntype CompactionModel = Pick<Model<string>, \"provider\" | \"id\">;\n\nconst MODEL_ROUTING_ERROR =\n\t'Invalid modelRouting: allowedProviders and excludedProviders must be arrays of provider IDs, such as [\"github-copilot\"], and allowedModels and excludedModels must be arrays of model IDs or glob patterns, such as [\"anthropic/claude-*\"].';\n\nfunction routingList(value: unknown): string[] | undefined {\n\tif (value === undefined) return undefined;\n\tif (!Array.isArray(value) || value.some((item) => typeof item !== \"string\" || !item.trim() || item.trim() !== item))\n\t\tthrow new Error(MODEL_ROUTING_ERROR);\n\treturn [...new Set(value as string[])];\n}\n\nfunction resolveCompactionSetting(\n\tcompaction: CompactionSettings | undefined,\n\tfield: keyof CompactionModelOverride,\n\tmodel?: CompactionModel,\n): number {\n\tconst ordinary = compaction?.[field];\n\tif (ordinary !== undefined && (typeof ordinary !== \"number\" || !Number.isSafeInteger(ordinary) || ordinary < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.${field} setting: ${String(ordinary)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\tconst modelKey = model ? `${model.provider}/${model.id}` : undefined;\n\tconst entry = modelKey === undefined ? undefined : compaction?.modelOverrides?.[modelKey];\n\tif (entry !== undefined && (entry === null || typeof entry !== \"object\" || Array.isArray(entry))) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"] setting: ${String(entry)}. Expected an object.`,\n\t\t);\n\t}\n\tconst override = entry?.[field];\n\tif (override !== undefined && (typeof override !== \"number\" || !Number.isSafeInteger(override) || override < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"].${field} setting: ${String(override)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\treturn (\n\t\toverride ??\n\t\tordinary ??\n\t\t(field === \"reserveTokens\"\n\t\t\t? SETTINGS_DEFAULTS.compaction.reserveTokens\n\t\t\t: SETTINGS_DEFAULTS.compaction.preserve_recent)\n\t);\n}\n\ninterface SettingsManagerBasicAccessors {\n\tgetCacheWarmingMode(): CacheWarmingMode;\n\tsetCacheWarmingMode(mode: CacheWarmingMode): void;\n\tgetLastChangelogVersion(): string | undefined;\n\tsetLastChangelogVersion(version: string): void;\n\t/** Replace the global top-level `storage` selection; other settings keep their values. */\n\tsetStorage(storage: Settings[\"storage\"]): void;\n\tgetFirstRunOnboardingStartedVersion(): string | undefined;\n\tsetFirstRunOnboardingStartedVersion(version: string): void;\n\tgetOnboardedVersion(): string | undefined;\n\tsetOnboardedVersion(version: string): void;\n\tgetDefaultProvider(): string | undefined;\n\tgetDefaultModel(): string | undefined;\n\tgetRouterModel(): string;\n\tgetModelRouting(): ModelRoutingSettings;\n\tgetCompactionModel(): string;\n\tsetCompactionModel(model: string, scope?: \"global\" | \"project\"): void;\n\tsetRouterModel(model: string, scope?: \"global\" | \"project\"): void;\n\tsetDefaultProvider(provider: string): void;\n\tsetDefaultModel(modelId: string): void;\n\tsetDefaultModelAndProvider(provider: string, modelId: string): void;\n\tgetSteeringMode(): \"all\" | \"one-at-a-time\";\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetFollowUpMode(): \"all\" | \"one-at-a-time\";\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetThemeSetting(): string | undefined;\n\tgetTheme(): string | undefined;\n\tsetTheme(theme: string): void;\n\tgetEnableAnalytics(): boolean | undefined;\n\tsetEnableAnalytics(enabled: boolean): void;\n\tgetTrackingId(): string | undefined;\n\tgetOrCreateDeviceId(): string;\n\tgetShowCacheMissNotices(): boolean;\n\tsetShowCacheMissNotices(enabled: boolean): void;\n\tgetDefaultThinkingLevel(): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tsetDefaultThinkingLevel(level: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\"): void;\n\tgetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tgetAllModelThinkingLevels(): Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tsetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t\tlevel: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\",\n\t): void;\n\tremoveModelThinkingLevel(provider: string, modelId: string): void;\n\tgetDefaultTools(): string[] | undefined;\n\tgetCodemodeMode(): \"on\" | \"only\" | undefined;\n\tsetCodemodeMode(mode: \"on\" | \"only\" | undefined): void;\n\tgetCodemodeInlineBudget(): number;\n\tgetFallbackModels(): string[];\n\tgetTransport(): TransportSetting;\n\tsetTransport(transport: TransportSetting): void;\n\tgetCompactionEnabled(): boolean;\n\tsetCompactionEnabled(enabled: boolean): void;\n\tgetCompactionReserveTokens(model?: CompactionModel): number;\n\tgetCompactionCompressionRatio(): number;\n\tgetCompactionPreserveRecent(model?: CompactionModel): number;\n\tgetCompactionQuery(): string | undefined;\n\tgetCompactionSettings(model?: CompactionModel): {\n\t\tenabled: boolean;\n\t\treserveTokens: number;\n\t\tcompression_ratio: number;\n\t\tpreserve_recent: number;\n\t\tquery?: string;\n\t};\n\tgetBranchSummarySettings(): { reserveTokens: number; skipPrompt: boolean };\n\tgetBranchSummarySkipPrompt(): boolean;\n\tgetSessionSummarySettings(): { enabled: boolean };\n\tgetRetryEnabled(): boolean;\n\tsetRetryEnabled(enabled: boolean): void;\n\tgetRetrySettings(): {\n\t\tenabled: boolean;\n\t\tmaxRetries: number;\n\t\tbaseDelayMs: number;\n\t\tmaxAgentDelayMs: number;\n\t\tmaxRetryDelayMs?: number;\n\t};\n\tgetHttpProxy(): string | undefined;\n\tsetHttpProxy(proxy: string | undefined): void;\n\tgetHttpIdleTimeoutMs(): number;\n\tsetHttpIdleTimeoutMs(timeoutMs: number): void;\n\tgetWebSocketConnectTimeoutMs(): number | undefined;\n\tgetStreamDeadlineMs(): number | undefined;\n\tgetProviderRetrySettings(): { timeoutMs?: number; maxRetries?: number; maxRetryDelayMs: number };\n}\n\ndeclare module \"./settings-manager-core.ts\" {\n\tinterface SettingsManager extends SettingsManagerBasicAccessors {}\n}\n\nconst basicAccessors: SettingsManagerBasicAccessors = {\n\tgetCacheWarmingMode() {\n\t\tconst mode = settingsInternals(this).globalSettings.cacheWarming;\n\t\treturn mode !== undefined && CACHE_WARMING_MODES.includes(mode) ? mode : SETTINGS_DEFAULTS.cacheWarming;\n\t},\n\tsetCacheWarmingMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.cacheWarming = mode;\n\t\tstate.markModified(\"cacheWarming\");\n\t\tstate.save();\n\t},\n\tgetLastChangelogVersion() {\n\t\treturn settingsInternals(this).settings.lastChangelogVersion;\n\t},\n\n\tsetLastChangelogVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.lastChangelogVersion = version;\n\t\tstate.markModified(\"lastChangelogVersion\");\n\t\tstate.save();\n\t},\n\n\tsetStorage(storage) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.storage = storage;\n\t\tstate.markModified(\"storage\");\n\t\tstate.save();\n\t},\n\n\tgetFirstRunOnboardingStartedVersion() {\n\t\treturn settingsInternals(this).settings.firstRunOnboardingStartedVersion;\n\t},\n\n\tsetFirstRunOnboardingStartedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.firstRunOnboardingStartedVersion = version;\n\t\tstate.markModified(\"firstRunOnboardingStartedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetOnboardedVersion() {\n\t\treturn settingsInternals(this).settings.onboardedVersion;\n\t},\n\n\tsetOnboardedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.onboardedVersion = version;\n\t\tstate.markModified(\"onboardedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultProvider() {\n\t\treturn settingsInternals(this).settings.defaultProvider;\n\t},\n\n\tgetDefaultModel() {\n\t\treturn settingsInternals(this).settings.defaultModel;\n\t},\n\n\tgetRouterModel() {\n\t\tconst value = settingsInternals(this).settings.routerModel;\n\t\tif (value === undefined) return SETTINGS_DEFAULTS.routerModel;\n\t\tif (typeof value !== \"string\" || value.trim() !== value) {\n\t\t\tthrow new Error(\"Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\treturn value;\n\t},\n\n\tgetCompactionModel() {\n\t\tconst value = settingsInternals(this).settings.compactionModel;\n\t\tif (value === undefined) return \"\";\n\t\tif (typeof value !== \"string\" || value.trim() !== value) {\n\t\t\tthrow new Error(\"Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\treturn value;\n\t},\n\n\tsetCompactionModel(model, scope = \"global\") {\n\t\tif (typeof model !== \"string\" || model.trim() !== model) {\n\t\t\tthrow new Error(\"Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tif (scope === \"project\") {\n\t\t\tstate.markProjectModified(\"compactionModel\");\n\t\t\tstate.saveProjectSettings({ ...state.projectSettings, compactionModel: model });\n\t\t\treturn;\n\t\t}\n\t\tstate.globalSettings.compactionModel = model;\n\t\tstate.markModified(\"compactionModel\");\n\t\tstate.save();\n\t},\n\n\tgetModelRouting() {\n\t\tconst value = settingsInternals(this).settings.modelRouting;\n\t\tif (value === undefined) return {};\n\t\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) throw new Error(MODEL_ROUTING_ERROR);\n\t\tconst allowedProviders = routingList(value.allowedProviders);\n\t\tconst excludedProviders = routingList(value.excludedProviders);\n\t\tconst allowedModels = routingList(value.allowedModels);\n\t\tconst excludedModels = routingList(value.excludedModels);\n\t\treturn {\n\t\t\t...(allowedProviders ? { allowedProviders } : {}),\n\t\t\t...(excludedProviders ? { excludedProviders } : {}),\n\t\t\t...(allowedModels ? { allowedModels } : {}),\n\t\t\t...(excludedModels ? { excludedModels } : {}),\n\t\t};\n\t},\n\n\tsetRouterModel(model, scope = \"global\") {\n\t\tif (typeof model !== \"string\" || model.trim() !== model) {\n\t\t\tthrow new Error(\"Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tif (scope === \"project\") {\n\t\t\tconst projectSettings = { ...state.projectSettings, routerModel: model };\n\t\t\tstate.markProjectModified(\"routerModel\");\n\t\t\tstate.saveProjectSettings(projectSettings);\n\t\t\treturn;\n\t\t}\n\t\tstate.globalSettings.routerModel = model;\n\t\tstate.markModified(\"routerModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultProvider(provider) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModel(modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModelAndProvider(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tgetSteeringMode() {\n\t\treturn settingsInternals(this).settings.steeringMode || SETTINGS_DEFAULTS.steeringMode;\n\t},\n\n\tsetSteeringMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.steeringMode = mode;\n\t\tstate.markModified(\"steeringMode\");\n\t\tstate.save();\n\t},\n\n\tgetFollowUpMode() {\n\t\treturn settingsInternals(this).settings.followUpMode || SETTINGS_DEFAULTS.followUpMode;\n\t},\n\n\tsetFollowUpMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.followUpMode = mode;\n\t\tstate.markModified(\"followUpMode\");\n\t\tstate.save();\n\t},\n\n\tgetThemeSetting() {\n\t\tconst value = settingsInternals(this).settings.theme;\n\t\tif (typeof value === \"string\") return value;\n\t\treturn undefined;\n\t},\n\n\tgetTheme() {\n\t\tconst theme = this.getThemeSetting();\n\t\treturn theme?.includes(\"/\") ? undefined : theme;\n\t},\n\n\tsetTheme(theme) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.theme = theme;\n\t\tstate.markModified(\"theme\");\n\t\tstate.save();\n\t},\n\n\tgetEnableAnalytics() {\n\t\treturn settingsInternals(this).settings.enableAnalytics;\n\t},\n\n\tsetEnableAnalytics(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.enableAnalytics = enabled;\n\t\tstate.markModified(\"enableAnalytics\");\n\t\tif (enabled && !state.globalSettings.trackingId) {\n\t\t\tstate.globalSettings.trackingId = randomUUID();\n\t\t\tstate.markModified(\"trackingId\");\n\t\t}\n\t\tstate.save();\n\t},\n\n\tgetTrackingId() {\n\t\treturn settingsInternals(this).settings.trackingId;\n\t},\n\n\tgetOrCreateDeviceId() {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.deviceId) {\n\t\t\tstate.globalSettings.deviceId = randomUUID();\n\t\t\tstate.markModified(\"deviceId\");\n\t\t\tstate.save();\n\t\t}\n\t\treturn state.globalSettings.deviceId;\n\t},\n\n\tgetShowCacheMissNotices() {\n\t\treturn settingsInternals(this).settings.showCacheMissNotices ?? SETTINGS_DEFAULTS.showCacheMissNotices;\n\t},\n\n\tsetShowCacheMissNotices(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.showCacheMissNotices = enabled;\n\t\tstate.markModified(\"showCacheMissNotices\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultThinkingLevel() {\n\t\treturn settingsInternals(this).settings.defaultThinkingLevel;\n\t},\n\n\tsetDefaultThinkingLevel(level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultThinkingLevel = level;\n\t\tstate.markModified(\"defaultThinkingLevel\");\n\t\tstate.save();\n\t},\n\n\tgetModelThinkingLevel(provider, modelId) {\n\t\treturn settingsInternals(this).settings.modelThinkingLevels?.[`${normalizeProviderId(provider)}/${modelId}`];\n\t},\n\n\tgetAllModelThinkingLevels() {\n\t\treturn { ...(settingsInternals(this).settings.modelThinkingLevels ?? {}) };\n\t},\n\n\tsetModelThinkingLevel(provider, modelId, level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.modelThinkingLevels ??= {};\n\t\tstate.globalSettings.modelThinkingLevels[`${normalizeProviderId(provider)}/${modelId}`] = level;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tremoveModelThinkingLevel(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.modelThinkingLevels) return;\n\t\tdelete state.globalSettings.modelThinkingLevels[`${normalizeProviderId(provider)}/${modelId}`];\n\t\tif (Object.keys(state.globalSettings.modelThinkingLevels).length === 0)\n\t\t\tdelete state.globalSettings.modelThinkingLevels;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tgetCodemodeMode() {\n\t\tconst mode = settingsInternals(this).settings.codemode?.mode;\n\t\treturn mode === \"on\" || mode === \"only\" ? mode : undefined;\n\t},\n\tsetCodemodeMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.codemode = { ...state.globalSettings.codemode, mode };\n\t\tstate.markModified(\"codemode\", \"mode\");\n\t\tstate.save();\n\t},\n\tgetCodemodeInlineBudget() {\n\t\tconst budget = settingsInternals(this).settings.codemode?.inlineBudget;\n\t\treturn typeof budget === \"number\" && Number.isFinite(budget) && budget >= 0\n\t\t\t? Math.floor(budget)\n\t\t\t: SETTINGS_DEFAULTS.codemode.inlineBudget;\n\t},\n\n\tgetDefaultTools() {\n\t\t// Settings load unvalidated from disk, so guard the shape here the same\n\t\t// way getFallbackModels() does: a non-array (or null) reads as unset,\n\t\t// and non-string entries are dropped rather than passed through to the\n\t\t// initial tool selection.\n\t\tconst tools = settingsInternals(this).settings.defaultTools;\n\t\treturn Array.isArray(tools)\n\t\t\t? resolveDefaultTools(tools.filter((tool): tool is string => typeof tool === \"string\"))\n\t\t\t: undefined;\n\t},\n\n\tgetFallbackModels() {\n\t\treturn (settingsInternals(this).settings.fallbackModels ?? [])\n\t\t\t.filter((model): model is string => typeof model === \"string\")\n\t\t\t.map((model) => model.trim())\n\t\t\t.filter((model) => model.length > 0);\n\t},\n\n\tgetTransport() {\n\t\treturn settingsInternals(this).settings.transport ?? SETTINGS_DEFAULTS.transport;\n\t},\n\n\tsetTransport(transport) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.transport = transport;\n\t\tstate.markModified(\"transport\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionEnabled() {\n\t\treturn settingsInternals(this).settings.compaction?.enabled ?? SETTINGS_DEFAULTS.compaction.enabled;\n\t},\n\n\tsetCompactionEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.compaction) {\n\t\t\tstate.globalSettings.compaction = {};\n\t\t}\n\t\tstate.globalSettings.compaction.enabled = enabled;\n\t\tstate.markModified(\"compaction\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionReserveTokens(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"reserveTokens\", model);\n\t},\n\n\tgetCompactionCompressionRatio() {\n\t\tconst value = settingsInternals(this).settings.compaction?.compression_ratio;\n\t\treturn typeof value === \"number\" && Number.isFinite(value) && value > 0 && value < 1\n\t\t\t? value\n\t\t\t: SETTINGS_DEFAULTS.compaction.compression_ratio;\n\t},\n\n\tgetCompactionPreserveRecent(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"preserve_recent\", model);\n\t},\n\n\tgetCompactionQuery() {\n\t\tconst query = settingsInternals(this).settings.compaction?.query?.trim();\n\t\treturn query && query.length > 0 ? query : undefined;\n\t},\n\n\tgetCompactionSettings(model) {\n\t\tconst query = this.getCompactionQuery();\n\t\treturn {\n\t\t\tenabled: this.getCompactionEnabled(),\n\t\t\treserveTokens: this.getCompactionReserveTokens(model),\n\t\t\tcompression_ratio: this.getCompactionCompressionRatio(),\n\t\t\tpreserve_recent: this.getCompactionPreserveRecent(model),\n\t\t\t...(query === undefined ? {} : { query }),\n\t\t};\n\t},\n\n\tgetBranchSummarySettings() {\n\t\treturn {\n\t\t\treserveTokens:\n\t\t\t\tsettingsInternals(this).settings.branchSummary?.reserveTokens ??\n\t\t\t\tSETTINGS_DEFAULTS.branchSummary.reserveTokens,\n\t\t\tskipPrompt:\n\t\t\t\tsettingsInternals(this).settings.branchSummary?.skipPrompt ?? SETTINGS_DEFAULTS.branchSummary.skipPrompt,\n\t\t};\n\t},\n\n\tgetBranchSummarySkipPrompt() {\n\t\treturn settingsInternals(this).settings.branchSummary?.skipPrompt ?? SETTINGS_DEFAULTS.branchSummary.skipPrompt;\n\t},\n\n\tgetSessionSummarySettings() {\n\t\treturn {\n\t\t\tenabled: settingsInternals(this).settings.sessionSummary?.enabled ?? SETTINGS_DEFAULTS.sessionSummary.enabled,\n\t\t};\n\t},\n\n\tgetRetryEnabled() {\n\t\treturn settingsInternals(this).settings.retry?.enabled ?? SETTINGS_DEFAULTS.retry.enabled;\n\t},\n\n\tsetRetryEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.retry) {\n\t\t\tstate.globalSettings.retry = {};\n\t\t}\n\t\tstate.globalSettings.retry.enabled = enabled;\n\t\tstate.markModified(\"retry\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetRetrySettings() {\n\t\treturn {\n\t\t\tenabled: this.getRetryEnabled(),\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.maxRetries ?? SETTINGS_DEFAULTS.retry.maxRetries,\n\t\t\tbaseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? SETTINGS_DEFAULTS.retry.baseDelayMs,\n\t\t\tmaxRetryDelayMs: this.getProviderRetrySettings().maxRetryDelayMs,\n\t\t\tmaxAgentDelayMs:\n\t\t\t\tsettingsInternals(this).settings.retry?.maxAgentDelayMs ?? SETTINGS_DEFAULTS.retry.maxAgentDelayMs,\n\t\t};\n\t},\n\n\tgetHttpProxy() {\n\t\treturn settingsInternals(this).globalSettings.httpProxy;\n\t},\n\n\tsetHttpProxy(proxy) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpProxy = proxy;\n\t\tstate.markModified(\"httpProxy\");\n\t\tstate.save();\n\t},\n\n\tgetHttpIdleTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.httpIdleTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn SETTINGS_DEFAULTS.httpIdleTimeoutMs;\n\t},\n\n\tsetHttpIdleTimeoutMs(timeoutMs) {\n\t\tconst normalizedTimeoutMs = parseHttpIdleTimeoutMs(timeoutMs);\n\t\tif (normalizedTimeoutMs === undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpIdleTimeoutMs = normalizedTimeoutMs;\n\t\tstate.markModified(\"httpIdleTimeoutMs\");\n\t\tstate.save();\n\t},\n\n\tgetWebSocketConnectTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.websocketConnectTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid websocketConnectTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetStreamDeadlineMs() {\n\t\tconst value = settingsInternals(this).settings.streamDeadlineMs;\n\t\tconst deadlineMs = parseHttpIdleTimeoutMs(value);\n\t\tif (deadlineMs !== undefined) {\n\t\t\treturn deadlineMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid streamDeadlineMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetProviderRetrySettings() {\n\t\treturn {\n\t\t\ttimeoutMs: settingsInternals(this).settings.retry?.provider?.timeoutMs,\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.provider?.maxRetries,\n\t\t\tmaxRetryDelayMs:\n\t\t\t\tsettingsInternals(this).settings.retry?.provider?.maxRetryDelayMs ??\n\t\t\t\tSETTINGS_DEFAULTS.retry.provider.maxRetryDelayMs,\n\t\t};\n\t},\n};\n\nObject.assign(SettingsManager.prototype, basicAccessors);\n"]}
|
|
1
|
+
{"version":3,"file":"settings-manager-basic-accessors.js","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { type Model, normalizeProviderId } from \"@bastani/pi-ai\";\nimport { parseHttpIdleTimeoutMs } from \"./http-dispatcher.ts\";\nimport { SETTINGS_DEFAULTS } from \"./settings-defaults.ts\";\nimport { SettingsManager } from \"./settings-manager-core.ts\";\nimport { settingsInternals } from \"./settings-manager-internals.ts\";\nimport { resolveDefaultTools } from \"./settings-merge.js\";\nimport type { Settings } from \"./settings-schema.ts\";\nimport type {\n\tCompactionModelOverride,\n\tCompactionSettings,\n\tModelRoutingSettings,\n\tTransportSetting,\n} from \"./settings-types.ts\";\nimport { CACHE_WARMING_MODES, type CacheWarmingMode } from \"./settings-types.ts\";\n\ntype CompactionModel = Pick<Model<string>, \"provider\" | \"id\">;\n\nconst MODEL_ROUTING_ERROR =\n\t'Invalid modelRouting: allowedProviders and excludedProviders must be arrays of provider IDs, such as [\"github-copilot\"], and allowedModels and excludedModels must be arrays of model IDs or glob patterns, such as [\"anthropic/claude-*\"].';\n\nfunction routingList(value: unknown): string[] | undefined {\n\tif (value === undefined) return undefined;\n\tif (!Array.isArray(value) || value.some((item) => typeof item !== \"string\" || !item.trim() || item.trim() !== item))\n\t\tthrow new Error(MODEL_ROUTING_ERROR);\n\treturn [...new Set(value as string[])];\n}\n\nfunction resolveCompactionSetting(\n\tcompaction: CompactionSettings | undefined,\n\tfield: keyof CompactionModelOverride,\n\tmodel?: CompactionModel,\n): number {\n\tconst ordinary = compaction?.[field];\n\tif (ordinary !== undefined && (typeof ordinary !== \"number\" || !Number.isSafeInteger(ordinary) || ordinary < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.${field} setting: ${String(ordinary)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\tconst modelKey = model ? `${model.provider}/${model.id}` : undefined;\n\tconst entry = modelKey === undefined ? undefined : compaction?.modelOverrides?.[modelKey];\n\tif (entry !== undefined && (entry === null || typeof entry !== \"object\" || Array.isArray(entry))) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"] setting: ${String(entry)}. Expected an object.`,\n\t\t);\n\t}\n\tconst override = entry?.[field];\n\tif (override !== undefined && (typeof override !== \"number\" || !Number.isSafeInteger(override) || override < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"].${field} setting: ${String(override)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\treturn (\n\t\toverride ??\n\t\tordinary ??\n\t\t(field === \"reserveTokens\"\n\t\t\t? SETTINGS_DEFAULTS.compaction.reserveTokens\n\t\t\t: SETTINGS_DEFAULTS.compaction.preserve_recent)\n\t);\n}\n\ninterface SettingsManagerBasicAccessors {\n\tgetCacheWarmingMode(): CacheWarmingMode;\n\tsetCacheWarmingMode(mode: CacheWarmingMode): void;\n\tgetLastChangelogVersion(): string | undefined;\n\tsetLastChangelogVersion(version: string): void;\n\t/** Replace the global top-level `storage` selection; other settings keep their values. */\n\tsetStorage(storage: Settings[\"storage\"]): void;\n\tgetFirstRunOnboardingStartedVersion(): string | undefined;\n\tsetFirstRunOnboardingStartedVersion(version: string): void;\n\tgetOnboardedVersion(): string | undefined;\n\tsetOnboardedVersion(version: string): void;\n\tgetDefaultProvider(): string | undefined;\n\tgetDefaultModel(): string | undefined;\n\tgetRouterModel(): string;\n\tgetModelRouting(): ModelRoutingSettings;\n\tgetCompactionModel(): string;\n\tsetCompactionModel(model: string, scope?: \"global\" | \"project\"): void;\n\tsetRouterModel(model: string, scope?: \"global\" | \"project\"): void;\n\tsetDefaultProvider(provider: string): void;\n\tsetDefaultModel(modelId: string): void;\n\tsetDefaultModelAndProvider(provider: string, modelId: string): void;\n\tgetSteeringMode(): \"all\" | \"one-at-a-time\";\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetFollowUpMode(): \"all\" | \"one-at-a-time\";\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetThemeSetting(): string | undefined;\n\tgetTheme(): string | undefined;\n\tsetTheme(theme: string): void;\n\tgetEnableAnalytics(): boolean | undefined;\n\tsetEnableAnalytics(enabled: boolean): void;\n\tgetTrackingId(): string | undefined;\n\tgetOrCreateDeviceId(): string;\n\tgetShowCacheMissNotices(): boolean;\n\tsetShowCacheMissNotices(enabled: boolean): void;\n\tgetDefaultThinkingLevel(): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tsetDefaultThinkingLevel(level: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\"): void;\n\tgetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tgetAllModelThinkingLevels(): Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tsetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t\tlevel: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\",\n\t): void;\n\tremoveModelThinkingLevel(provider: string, modelId: string): void;\n\tgetDefaultTools(): string[] | undefined;\n\tgetCodemodeMode(): \"on\" | \"only\" | undefined;\n\tsetCodemodeMode(mode: \"on\" | \"only\" | undefined): void;\n\tgetCodemodeInlineBudget(): number;\n\tgetFallbackModels(): string[];\n\tgetTransport(): TransportSetting;\n\tsetTransport(transport: TransportSetting): void;\n\tgetCompactionEnabled(): boolean;\n\tsetCompactionEnabled(enabled: boolean): void;\n\tgetCompactionReserveTokens(model?: CompactionModel): number;\n\tgetCompactionCompressionRatio(): number;\n\tgetCompactionPreserveRecent(model?: CompactionModel): number;\n\tgetCompactionQuery(): string | undefined;\n\tgetCompactionSettings(model?: CompactionModel): {\n\t\tenabled: boolean;\n\t\treserveTokens: number;\n\t\tcompression_ratio: number;\n\t\tpreserve_recent: number;\n\t\tquery?: string;\n\t};\n\tgetBranchSummarySettings(): { reserveTokens: number; skipPrompt: boolean };\n\tgetBranchSummarySkipPrompt(): boolean;\n\tgetSessionSummarySettings(): { enabled: boolean };\n\tgetRetryEnabled(): boolean;\n\tsetRetryEnabled(enabled: boolean): void;\n\tgetRetrySettings(): {\n\t\tenabled: boolean;\n\t\tmaxRetries: number;\n\t\tbaseDelayMs: number;\n\t\tmaxAgentDelayMs: number;\n\t\tmaxRetryDelayMs?: number;\n\t\tfallbackOnContentFilter: boolean;\n\t};\n\tgetHttpProxy(): string | undefined;\n\tsetHttpProxy(proxy: string | undefined): void;\n\tgetHttpIdleTimeoutMs(): number;\n\tsetHttpIdleTimeoutMs(timeoutMs: number): void;\n\tgetWebSocketConnectTimeoutMs(): number | undefined;\n\tgetStreamDeadlineMs(): number | undefined;\n\tgetProviderRetrySettings(): { timeoutMs?: number; maxRetries?: number; maxRetryDelayMs: number };\n}\n\ndeclare module \"./settings-manager-core.ts\" {\n\tinterface SettingsManager extends SettingsManagerBasicAccessors {}\n}\n\nconst basicAccessors: SettingsManagerBasicAccessors = {\n\tgetCacheWarmingMode() {\n\t\tconst mode = settingsInternals(this).globalSettings.cacheWarming;\n\t\treturn mode !== undefined && CACHE_WARMING_MODES.includes(mode) ? mode : SETTINGS_DEFAULTS.cacheWarming;\n\t},\n\tsetCacheWarmingMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.cacheWarming = mode;\n\t\tstate.markModified(\"cacheWarming\");\n\t\tstate.save();\n\t},\n\tgetLastChangelogVersion() {\n\t\treturn settingsInternals(this).settings.lastChangelogVersion;\n\t},\n\n\tsetLastChangelogVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.lastChangelogVersion = version;\n\t\tstate.markModified(\"lastChangelogVersion\");\n\t\tstate.save();\n\t},\n\n\tsetStorage(storage) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.storage = storage;\n\t\tstate.markModified(\"storage\");\n\t\tstate.save();\n\t},\n\n\tgetFirstRunOnboardingStartedVersion() {\n\t\treturn settingsInternals(this).settings.firstRunOnboardingStartedVersion;\n\t},\n\n\tsetFirstRunOnboardingStartedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.firstRunOnboardingStartedVersion = version;\n\t\tstate.markModified(\"firstRunOnboardingStartedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetOnboardedVersion() {\n\t\treturn settingsInternals(this).settings.onboardedVersion;\n\t},\n\n\tsetOnboardedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.onboardedVersion = version;\n\t\tstate.markModified(\"onboardedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultProvider() {\n\t\treturn settingsInternals(this).settings.defaultProvider;\n\t},\n\n\tgetDefaultModel() {\n\t\treturn settingsInternals(this).settings.defaultModel;\n\t},\n\n\tgetRouterModel() {\n\t\tconst value = settingsInternals(this).settings.routerModel;\n\t\tif (value === undefined) return SETTINGS_DEFAULTS.routerModel;\n\t\tif (typeof value !== \"string\" || value.trim() !== value) {\n\t\t\tthrow new Error(\"Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\treturn value;\n\t},\n\n\tgetCompactionModel() {\n\t\tconst value = settingsInternals(this).settings.compactionModel;\n\t\tif (value === undefined) return \"\";\n\t\tif (typeof value !== \"string\" || value.trim() !== value) {\n\t\t\tthrow new Error(\"Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\treturn value;\n\t},\n\n\tsetCompactionModel(model, scope = \"global\") {\n\t\tif (typeof model !== \"string\" || model.trim() !== model) {\n\t\t\tthrow new Error(\"Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tif (scope === \"project\") {\n\t\t\tstate.markProjectModified(\"compactionModel\");\n\t\t\tstate.saveProjectSettings({ ...state.projectSettings, compactionModel: model });\n\t\t\treturn;\n\t\t}\n\t\tstate.globalSettings.compactionModel = model;\n\t\tstate.markModified(\"compactionModel\");\n\t\tstate.save();\n\t},\n\n\tgetModelRouting() {\n\t\tconst value = settingsInternals(this).settings.modelRouting;\n\t\tif (value === undefined) return {};\n\t\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) throw new Error(MODEL_ROUTING_ERROR);\n\t\tconst allowedProviders = routingList(value.allowedProviders);\n\t\tconst excludedProviders = routingList(value.excludedProviders);\n\t\tconst allowedModels = routingList(value.allowedModels);\n\t\tconst excludedModels = routingList(value.excludedModels);\n\t\treturn {\n\t\t\t...(allowedProviders ? { allowedProviders } : {}),\n\t\t\t...(excludedProviders ? { excludedProviders } : {}),\n\t\t\t...(allowedModels ? { allowedModels } : {}),\n\t\t\t...(excludedModels ? { excludedModels } : {}),\n\t\t};\n\t},\n\n\tsetRouterModel(model, scope = \"global\") {\n\t\tif (typeof model !== \"string\" || model.trim() !== model) {\n\t\t\tthrow new Error(\"Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tif (scope === \"project\") {\n\t\t\tconst projectSettings = { ...state.projectSettings, routerModel: model };\n\t\t\tstate.markProjectModified(\"routerModel\");\n\t\t\tstate.saveProjectSettings(projectSettings);\n\t\t\treturn;\n\t\t}\n\t\tstate.globalSettings.routerModel = model;\n\t\tstate.markModified(\"routerModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultProvider(provider) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModel(modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModelAndProvider(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tgetSteeringMode() {\n\t\treturn settingsInternals(this).settings.steeringMode || SETTINGS_DEFAULTS.steeringMode;\n\t},\n\n\tsetSteeringMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.steeringMode = mode;\n\t\tstate.markModified(\"steeringMode\");\n\t\tstate.save();\n\t},\n\n\tgetFollowUpMode() {\n\t\treturn settingsInternals(this).settings.followUpMode || SETTINGS_DEFAULTS.followUpMode;\n\t},\n\n\tsetFollowUpMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.followUpMode = mode;\n\t\tstate.markModified(\"followUpMode\");\n\t\tstate.save();\n\t},\n\n\tgetThemeSetting() {\n\t\tconst value = settingsInternals(this).settings.theme;\n\t\tif (typeof value === \"string\") return value;\n\t\treturn undefined;\n\t},\n\n\tgetTheme() {\n\t\tconst theme = this.getThemeSetting();\n\t\treturn theme?.includes(\"/\") ? undefined : theme;\n\t},\n\n\tsetTheme(theme) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.theme = theme;\n\t\tstate.markModified(\"theme\");\n\t\tstate.save();\n\t},\n\n\tgetEnableAnalytics() {\n\t\treturn settingsInternals(this).settings.enableAnalytics;\n\t},\n\n\tsetEnableAnalytics(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.enableAnalytics = enabled;\n\t\tstate.markModified(\"enableAnalytics\");\n\t\tif (enabled && !state.globalSettings.trackingId) {\n\t\t\tstate.globalSettings.trackingId = randomUUID();\n\t\t\tstate.markModified(\"trackingId\");\n\t\t}\n\t\tstate.save();\n\t},\n\n\tgetTrackingId() {\n\t\treturn settingsInternals(this).settings.trackingId;\n\t},\n\n\tgetOrCreateDeviceId() {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.deviceId) {\n\t\t\tstate.globalSettings.deviceId = randomUUID();\n\t\t\tstate.markModified(\"deviceId\");\n\t\t\tstate.save();\n\t\t}\n\t\treturn state.globalSettings.deviceId;\n\t},\n\n\tgetShowCacheMissNotices() {\n\t\treturn settingsInternals(this).settings.showCacheMissNotices ?? SETTINGS_DEFAULTS.showCacheMissNotices;\n\t},\n\n\tsetShowCacheMissNotices(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.showCacheMissNotices = enabled;\n\t\tstate.markModified(\"showCacheMissNotices\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultThinkingLevel() {\n\t\treturn settingsInternals(this).settings.defaultThinkingLevel;\n\t},\n\n\tsetDefaultThinkingLevel(level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultThinkingLevel = level;\n\t\tstate.markModified(\"defaultThinkingLevel\");\n\t\tstate.save();\n\t},\n\n\tgetModelThinkingLevel(provider, modelId) {\n\t\treturn settingsInternals(this).settings.modelThinkingLevels?.[`${normalizeProviderId(provider)}/${modelId}`];\n\t},\n\n\tgetAllModelThinkingLevels() {\n\t\treturn { ...(settingsInternals(this).settings.modelThinkingLevels ?? {}) };\n\t},\n\n\tsetModelThinkingLevel(provider, modelId, level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.modelThinkingLevels ??= {};\n\t\tstate.globalSettings.modelThinkingLevels[`${normalizeProviderId(provider)}/${modelId}`] = level;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tremoveModelThinkingLevel(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.modelThinkingLevels) return;\n\t\tdelete state.globalSettings.modelThinkingLevels[`${normalizeProviderId(provider)}/${modelId}`];\n\t\tif (Object.keys(state.globalSettings.modelThinkingLevels).length === 0)\n\t\t\tdelete state.globalSettings.modelThinkingLevels;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tgetCodemodeMode() {\n\t\tconst mode = settingsInternals(this).settings.codemode?.mode;\n\t\treturn mode === \"on\" || mode === \"only\" ? mode : undefined;\n\t},\n\tsetCodemodeMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.codemode = { ...state.globalSettings.codemode, mode };\n\t\tstate.markModified(\"codemode\", \"mode\");\n\t\tstate.save();\n\t},\n\tgetCodemodeInlineBudget() {\n\t\tconst budget = settingsInternals(this).settings.codemode?.inlineBudget;\n\t\treturn typeof budget === \"number\" && Number.isFinite(budget) && budget >= 0\n\t\t\t? Math.floor(budget)\n\t\t\t: SETTINGS_DEFAULTS.codemode.inlineBudget;\n\t},\n\n\tgetDefaultTools() {\n\t\t// Settings load unvalidated from disk, so guard the shape here the same\n\t\t// way getFallbackModels() does: a non-array (or null) reads as unset,\n\t\t// and non-string entries are dropped rather than passed through to the\n\t\t// initial tool selection.\n\t\tconst tools = settingsInternals(this).settings.defaultTools;\n\t\treturn Array.isArray(tools)\n\t\t\t? resolveDefaultTools(tools.filter((tool): tool is string => typeof tool === \"string\"))\n\t\t\t: undefined;\n\t},\n\n\tgetFallbackModels() {\n\t\treturn (settingsInternals(this).settings.fallbackModels ?? [])\n\t\t\t.filter((model): model is string => typeof model === \"string\")\n\t\t\t.map((model) => model.trim())\n\t\t\t.filter((model) => model.length > 0);\n\t},\n\n\tgetTransport() {\n\t\treturn settingsInternals(this).settings.transport ?? SETTINGS_DEFAULTS.transport;\n\t},\n\n\tsetTransport(transport) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.transport = transport;\n\t\tstate.markModified(\"transport\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionEnabled() {\n\t\treturn settingsInternals(this).settings.compaction?.enabled ?? SETTINGS_DEFAULTS.compaction.enabled;\n\t},\n\n\tsetCompactionEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.compaction) {\n\t\t\tstate.globalSettings.compaction = {};\n\t\t}\n\t\tstate.globalSettings.compaction.enabled = enabled;\n\t\tstate.markModified(\"compaction\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionReserveTokens(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"reserveTokens\", model);\n\t},\n\n\tgetCompactionCompressionRatio() {\n\t\tconst value = settingsInternals(this).settings.compaction?.compression_ratio;\n\t\treturn typeof value === \"number\" && Number.isFinite(value) && value > 0 && value < 1\n\t\t\t? value\n\t\t\t: SETTINGS_DEFAULTS.compaction.compression_ratio;\n\t},\n\n\tgetCompactionPreserveRecent(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"preserve_recent\", model);\n\t},\n\n\tgetCompactionQuery() {\n\t\tconst query = settingsInternals(this).settings.compaction?.query?.trim();\n\t\treturn query && query.length > 0 ? query : undefined;\n\t},\n\n\tgetCompactionSettings(model) {\n\t\tconst query = this.getCompactionQuery();\n\t\treturn {\n\t\t\tenabled: this.getCompactionEnabled(),\n\t\t\treserveTokens: this.getCompactionReserveTokens(model),\n\t\t\tcompression_ratio: this.getCompactionCompressionRatio(),\n\t\t\tpreserve_recent: this.getCompactionPreserveRecent(model),\n\t\t\t...(query === undefined ? {} : { query }),\n\t\t};\n\t},\n\n\tgetBranchSummarySettings() {\n\t\treturn {\n\t\t\treserveTokens:\n\t\t\t\tsettingsInternals(this).settings.branchSummary?.reserveTokens ??\n\t\t\t\tSETTINGS_DEFAULTS.branchSummary.reserveTokens,\n\t\t\tskipPrompt:\n\t\t\t\tsettingsInternals(this).settings.branchSummary?.skipPrompt ?? SETTINGS_DEFAULTS.branchSummary.skipPrompt,\n\t\t};\n\t},\n\n\tgetBranchSummarySkipPrompt() {\n\t\treturn settingsInternals(this).settings.branchSummary?.skipPrompt ?? SETTINGS_DEFAULTS.branchSummary.skipPrompt;\n\t},\n\n\tgetSessionSummarySettings() {\n\t\treturn {\n\t\t\tenabled: settingsInternals(this).settings.sessionSummary?.enabled ?? SETTINGS_DEFAULTS.sessionSummary.enabled,\n\t\t};\n\t},\n\n\tgetRetryEnabled() {\n\t\treturn settingsInternals(this).settings.retry?.enabled ?? SETTINGS_DEFAULTS.retry.enabled;\n\t},\n\n\tsetRetryEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.retry) {\n\t\t\tstate.globalSettings.retry = {};\n\t\t}\n\t\tstate.globalSettings.retry.enabled = enabled;\n\t\tstate.markModified(\"retry\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetRetrySettings() {\n\t\treturn {\n\t\t\tenabled: this.getRetryEnabled(),\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.maxRetries ?? SETTINGS_DEFAULTS.retry.maxRetries,\n\t\t\tbaseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? SETTINGS_DEFAULTS.retry.baseDelayMs,\n\t\t\tmaxRetryDelayMs: this.getProviderRetrySettings().maxRetryDelayMs,\n\t\t\tmaxAgentDelayMs:\n\t\t\t\tsettingsInternals(this).settings.retry?.maxAgentDelayMs ?? SETTINGS_DEFAULTS.retry.maxAgentDelayMs,\n\t\t\tfallbackOnContentFilter:\n\t\t\t\tsettingsInternals(this).settings.retry?.fallbackOnContentFilter ??\n\t\t\t\tSETTINGS_DEFAULTS.retry.fallbackOnContentFilter,\n\t\t};\n\t},\n\n\tgetHttpProxy() {\n\t\treturn settingsInternals(this).globalSettings.httpProxy;\n\t},\n\n\tsetHttpProxy(proxy) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpProxy = proxy;\n\t\tstate.markModified(\"httpProxy\");\n\t\tstate.save();\n\t},\n\n\tgetHttpIdleTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.httpIdleTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn SETTINGS_DEFAULTS.httpIdleTimeoutMs;\n\t},\n\n\tsetHttpIdleTimeoutMs(timeoutMs) {\n\t\tconst normalizedTimeoutMs = parseHttpIdleTimeoutMs(timeoutMs);\n\t\tif (normalizedTimeoutMs === undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpIdleTimeoutMs = normalizedTimeoutMs;\n\t\tstate.markModified(\"httpIdleTimeoutMs\");\n\t\tstate.save();\n\t},\n\n\tgetWebSocketConnectTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.websocketConnectTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid websocketConnectTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetStreamDeadlineMs() {\n\t\tconst value = settingsInternals(this).settings.streamDeadlineMs;\n\t\tconst deadlineMs = parseHttpIdleTimeoutMs(value);\n\t\tif (deadlineMs !== undefined) {\n\t\t\treturn deadlineMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid streamDeadlineMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetProviderRetrySettings() {\n\t\treturn {\n\t\t\ttimeoutMs: settingsInternals(this).settings.retry?.provider?.timeoutMs,\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.provider?.maxRetries,\n\t\t\tmaxRetryDelayMs:\n\t\t\t\tsettingsInternals(this).settings.retry?.provider?.maxRetryDelayMs ??\n\t\t\t\tSETTINGS_DEFAULTS.retry.provider.maxRetryDelayMs,\n\t\t};\n\t},\n};\n\nObject.assign(SettingsManager.prototype, basicAccessors);\n"]}
|
|
@@ -31,6 +31,7 @@ declare const RetrySettingsSchema: Type.TObject<{
|
|
|
31
31
|
maxRetries: Type.TOptional<Type.TNumber>;
|
|
32
32
|
baseDelayMs: Type.TOptional<Type.TNumber>;
|
|
33
33
|
maxAgentDelayMs: Type.TOptional<Type.TNumber>;
|
|
34
|
+
fallbackOnContentFilter: Type.TOptional<Type.TBoolean>;
|
|
34
35
|
provider: Type.TOptional<Type.TObject<{
|
|
35
36
|
timeoutMs: Type.TOptional<Type.TNumber>;
|
|
36
37
|
maxRetries: Type.TOptional<Type.TNumber>;
|
|
@@ -207,6 +208,7 @@ export declare const SettingsSchema: Type.TObject<{
|
|
|
207
208
|
maxRetries: Type.TOptional<Type.TNumber>;
|
|
208
209
|
baseDelayMs: Type.TOptional<Type.TNumber>;
|
|
209
210
|
maxAgentDelayMs: Type.TOptional<Type.TNumber>;
|
|
211
|
+
fallbackOnContentFilter: Type.TOptional<Type.TBoolean>;
|
|
210
212
|
provider: Type.TOptional<Type.TObject<{
|
|
211
213
|
timeoutMs: Type.TOptional<Type.TNumber>;
|
|
212
214
|
maxRetries: Type.TOptional<Type.TNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-schema.d.ts","sourceRoot":"","sources":["../../src/core/settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAuB,IAAI,EAAE,MAAM,SAAS,CAAC;AAkBjE,QAAA,MAAM,6BAA6B;;;EAGjC,CAAC;AAEH,QAAA,MAAM,wBAAwB;;;;;;;;;;EAiC5B,CAAC;AAEH,QAAA,MAAM,2BAA2B;;;EAa/B,CAAC;AAEH,QAAA,MAAM,4BAA4B;;EAOhC,CAAC;AAEH,QAAA,MAAM,2BAA2B;;;;EAS/B,CAAC;AAEH,QAAA,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"settings-schema.d.ts","sourceRoot":"","sources":["../../src/core/settings-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,10 @@ const RetrySettingsSchema = Type.Object({
|
|
|
74
74
|
description: "Maximum agent-level backoff delay in milliseconds. 0 retries immediately.",
|
|
75
75
|
default: SETTINGS_DEFAULTS.retry.maxAgentDelayMs,
|
|
76
76
|
})),
|
|
77
|
+
fallbackOnContentFilter: Type.Optional(Type.Boolean({
|
|
78
|
+
description: "When a provider's content filter refuses a request, such as OpenAI's HTTP 422 cyber_policy, move to the next fallback model instead of retrying the same one.",
|
|
79
|
+
default: SETTINGS_DEFAULTS.retry.fallbackOnContentFilter,
|
|
80
|
+
})),
|
|
77
81
|
provider: Type.Optional(ProviderRetrySettingsSchema),
|
|
78
82
|
maxDelayMs: Type.Optional(Type.Number({
|
|
79
83
|
description: "Legacy retry delay setting. Use provider.maxRetryDelayMs instead.",
|