@spotpatch/shared 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-K2UAPG7T.js +55 -0
- package/dist/chunk-K2UAPG7T.js.map +1 -0
- package/dist/data-flow-runtime-zwbvImvl.d.cts +672 -0
- package/dist/data-flow-runtime-zwbvImvl.d.ts +672 -0
- package/dist/data-flow-runtime.cjs +74 -0
- package/dist/data-flow-runtime.cjs.map +1 -0
- package/dist/data-flow-runtime.d.cts +2 -0
- package/dist/data-flow-runtime.d.ts +2 -0
- package/dist/data-flow-runtime.js +11 -0
- package/dist/data-flow-runtime.js.map +1 -0
- package/dist/index.cjs +700 -153
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +82 -14
- package/dist/index.d.ts +82 -14
- package/dist/index.js +655 -166
- package/dist/index.js.map +1 -1
- package/package.json +19 -2
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/errors/spotpatch-error.ts","../src/errors/error-code.ts","../src/security/redaction.ts","../src/model/annotation.ts","../src/model/runtime-config.ts","../src/protocol/endpoints.ts","../src/model/editor.ts","../src/model/agent.ts","../src/model/source-marker.ts","../src/protocol/requests.ts","../src/protocol/agent-schemas.ts","../src/product.ts"],"sourcesContent":["export { SpotPatchError } from \"./errors/spotpatch-error.js\";\nexport { ERROR_CODES, type ErrorCode } from \"./errors/error-code.js\";\nexport {\n isSensitiveName,\n redactSensitiveText,\n sanitizeUrl,\n} from \"./security/redaction.js\";\nexport {\n MAX_ANNOTATION_INSTRUCTION_CHARACTERS,\n MAX_ANNOTATION_TARGETS,\n MAX_TARGET_INSTRUCTION_CHARACTERS,\n SPOTPATCH_LOCALE_PREFERENCES,\n SPOTPATCH_LOCALES,\n type ElementContext,\n type PageContext,\n type SpotAnnotation,\n type SpotPatchLocale,\n type SpotPatchLocalePreference,\n type SpotTargetContext,\n} from \"./model/annotation.js\";\nexport type { CodeContext, ContextBudget } from \"./model/code-context.js\";\nexport {\n runtimeConfigSchema,\n SPOTPATCH_NEXT_BUNDLERS,\n SPOTPATCH_NEXT_ROUTER_KINDS,\n type SpotPatchNextBundler,\n type SpotPatchNextRouterKind,\n type SpotPatchRuntimeConfig,\n} from \"./model/runtime-config.js\";\nexport {\n SPOTPATCH_EDITOR_PREFERENCES,\n type EditorOpenResult,\n type SpotPatchEditorPreference,\n} from \"./model/editor.js\";\nexport {\n AGENT_APPLY_MODES,\n AGENT_CAPABILITY_STATES,\n AGENT_CHECK_STATUSES,\n AGENT_FILE_CHANGE_KINDS,\n AGENT_JOB_STATUSES,\n AGENT_WORKSPACE_SNAPSHOT_LIMITS,\n AGENT_WORKSPACE_STATES,\n DEFAULT_AGENT_LIMITS,\n type AgentApplyMode,\n type AgentCapabilitySnapshot,\n type AgentCapabilityState,\n type AgentChangedFile,\n type AgentCheckDefinition,\n type AgentCheckResult,\n type AgentCheckStatus,\n type AgentFileChangeKind,\n type AgentJobResult,\n type AgentJobResultResponse,\n type AgentJobSnapshot,\n type AgentJobStatus,\n type AgentWorkingTreeMode,\n type AgentWorkspaceChangeSummary,\n type AgentWorkspaceHealthSnapshot,\n type AgentWorkspaceState,\n type AgentLimits,\n type AiExecutionOptions,\n type AiModelProfile,\n type AiOptions,\n type AiProviderAuthentication,\n type AiProviderProtocol,\n type OpenAICompatibleProviderOptions,\n type ResolvedAgentCheckDefinition,\n type ResolvedAiExecutionOptions,\n type ResolvedAiModelProfile,\n type ResolvedAiOptions,\n type ResolvedOpenAICompatibleProviderOptions,\n type RuntimeAiConfig,\n type RuntimeAiModelProfile,\n type RuntimeAiProviderProfile,\n} from \"./model/agent.js\";\nexport type {\n ReactContext,\n SourceConfidence,\n SourceOrigin,\n SourceRef,\n} from \"./model/source-ref.js\";\nexport type { MatchedStyleRule, StyleContext } from \"./model/style-context.js\";\nexport {\n formatSourceMarker,\n parseSourceMarker,\n SOURCE_MARKER_ATTRIBUTE,\n type SourceMarker,\n} from \"./model/source-marker.js\";\nexport {\n getAgentJobEndpoint,\n SPOTPATCH_API_BASE,\n SPOTPATCH_ENDPOINTS,\n SPOTPATCH_TOKEN_HEADER,\n type AgentJobAction,\n} from \"./protocol/endpoints.js\";\nexport {\n agentCapabilityRequestSchema,\n agentWorkspaceHealthRequestSchema,\n agentJobActionRequestSchema,\n agentJobCreateRequestSchema,\n openEditorRequestSchema,\n runtimeBootstrapRequestSchema,\n sourceContextRequestSchema,\n spotAnnotationRequestSchema,\n spotTargetContextRequestSchema,\n type AgentCapabilityRequest,\n type AgentJobCreateRequest,\n type OpenEditorRequest,\n type RuntimeBootstrapRequest,\n type SourceContextRequest,\n} from \"./protocol/requests.js\";\nexport type { AgentJobEvent } from \"./protocol/agent-events.js\";\nexport {\n agentCapabilitySnapshotSchema,\n agentWorkspaceHealthSnapshotSchema,\n agentChangedFileSchema,\n agentCheckResultSchema,\n agentJobEventSchema,\n agentJobResultResponseSchema,\n agentJobResultSchema,\n agentJobSnapshotSchema,\n} from \"./protocol/agent-schemas.js\";\nexport type { ApiFailure, ApiResponse, ApiSuccess } from \"./protocol/responses.js\";\nexport { SPOTPATCH_REPOSITORY_URL } from \"./product.js\";\n","import type { ErrorCode } from \"./error-code.js\";\n\nexport class SpotPatchError extends Error {\n readonly code: ErrorCode;\n\n constructor(code: ErrorCode, message = code, options?: ErrorOptions) {\n super(message, options);\n this.name = \"SpotPatchError\";\n this.code = code;\n }\n}\n","export const ERROR_CODES = {\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n SOURCE_NOT_FOUND: \"SOURCE_NOT_FOUND\",\n SOURCE_OUTSIDE_ROOT: \"SOURCE_OUTSIDE_ROOT\",\n SOURCE_TOO_LARGE: \"SOURCE_TOO_LARGE\",\n EDITOR_OPEN_FAILED: \"EDITOR_OPEN_FAILED\",\n AI_DISABLED: \"AI_DISABLED\",\n PROVIDER_NOT_CONFIGURED: \"PROVIDER_NOT_CONFIGURED\",\n PROVIDER_AUTH_FAILED: \"PROVIDER_AUTH_FAILED\",\n PROVIDER_PROTOCOL_UNSUPPORTED: \"PROVIDER_PROTOCOL_UNSUPPORTED\",\n MODEL_NOT_ALLOWED: \"MODEL_NOT_ALLOWED\",\n MODEL_TOOL_CALL_UNSUPPORTED: \"MODEL_TOOL_CALL_UNSUPPORTED\",\n PROVIDER_RATE_LIMITED: \"PROVIDER_RATE_LIMITED\",\n AGENT_BUSY: \"AGENT_BUSY\",\n AGENT_LIMIT_EXCEEDED: \"AGENT_LIMIT_EXCEEDED\",\n AGENT_CANCELLED: \"AGENT_CANCELLED\",\n WORKTREE_DIRTY: \"WORKTREE_DIRTY\",\n WORKTREE_NOT_REPOSITORY: \"WORKTREE_NOT_REPOSITORY\",\n WORKTREE_OPERATION_IN_PROGRESS: \"WORKTREE_OPERATION_IN_PROGRESS\",\n WORKTREE_CONFLICTED: \"WORKTREE_CONFLICTED\",\n WORKTREE_LOCAL_CHANGES_TOO_LARGE: \"WORKTREE_LOCAL_CHANGES_TOO_LARGE\",\n WORKTREE_UNTRACKED_UNSUPPORTED: \"WORKTREE_UNTRACKED_UNSUPPORTED\",\n WORKTREE_LOCAL_CHANGES_UNSUPPORTED: \"WORKTREE_LOCAL_CHANGES_UNSUPPORTED\",\n TOOL_DENIED: \"TOOL_DENIED\",\n TOOL_INPUT_INVALID: \"TOOL_INPUT_INVALID\",\n TOOL_ARGUMENTS_INVALID: \"TOOL_ARGUMENTS_INVALID\",\n TOOL_CALL_ID_CONFLICT: \"TOOL_CALL_ID_CONFLICT\",\n TOOL_PATH_DENIED: \"TOOL_PATH_DENIED\",\n PATCH_REJECTED: \"PATCH_REJECTED\",\n VALIDATION_FAILED: \"VALIDATION_FAILED\",\n APPLY_CONFLICT: \"APPLY_CONFLICT\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const;\n\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n","const INLINE_DATA_PATTERN = /data:[^\\s\"'<>]*;base64,[a-z0-9+/_=-]+/giu;\nconst BLOB_URL_PATTERN = /blob:[^\\s\"'<>]+/giu;\nconst BEARER_PATTERN = /\\bbearer\\s+[a-z0-9._~+/-]+=*/giu;\nconst URL_CREDENTIAL_PATTERN = /\\b(https?:\\/\\/)[^/\\s:@]+:[^/\\s@]+@/giu;\nconst SECRET_ASSIGNMENT_PATTERN =\n /\\b(authorization|cookie|set-cookie|api[-_]?key|(?:access[-_]?|refresh[-_]?|auth[-_]?)?token|secret|password|default[-_]?value|value)\\b(\\s*[:=]\\s*)(\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'|`(?:\\\\.|[^`\\\\\\r\\n])*`|[^\\s,;\"'<>]+)/giu;\nconst SENSITIVE_EXACT_NAMES = new Set([\n \"authorization\",\n \"cookie\",\n \"defaultvalue\",\n \"password\",\n \"setcookie\",\n \"value\",\n]);\nconst MAX_URL_CHARACTERS = 500;\n\nfunction compactName(name: string): string {\n return name.toLowerCase().replaceAll(/[-_:]/gu, \"\");\n}\n\nfunction truncate(value: string, maxCharacters: number): string {\n return value.length <= maxCharacters\n ? value\n : `${value.slice(0, Math.max(0, maxCharacters - 1))}…`;\n}\n\nexport function isSensitiveName(name: string): boolean {\n const compact = compactName(name);\n\n return (\n SENSITIVE_EXACT_NAMES.has(compact) ||\n compact.includes(\"apikey\") ||\n compact.includes(\"authorization\") ||\n compact.includes(\"secret\") ||\n compact.includes(\"token\")\n );\n}\n\nexport function redactSensitiveText(value: string): string {\n return value\n .replace(INLINE_DATA_PATTERN, \"[redacted inline data]\")\n .replace(BLOB_URL_PATTERN, \"[redacted blob URL]\")\n .replace(BEARER_PATTERN, \"Bearer [redacted]\")\n .replace(URL_CREDENTIAL_PATTERN, \"$1[redacted]@\")\n .replace(\n SECRET_ASSIGNMENT_PATTERN,\n (_match, name: string, separator: string, assignedValue: string) => {\n const quote = assignedValue.at(0);\n const quoted = quote === '\"' || quote === \"'\" || quote === \"`\";\n return `${name}${separator}${quoted ? quote : \"\"}[redacted]${quoted ? quote : \"\"}`;\n },\n );\n}\n\nfunction sanitizeParsedUrl(url: URL): string {\n url.username = \"\";\n url.password = \"\";\n\n for (const [name, value] of url.searchParams) {\n if (isSensitiveName(name)) {\n url.searchParams.set(name, \"[redacted]\");\n } else {\n url.searchParams.set(name, redactSensitiveText(value));\n }\n }\n\n if (/token|secret|authorization|api[-_]?key/iu.test(url.hash)) {\n url.hash = \"#[redacted]\";\n }\n\n return url.toString();\n}\n\nexport function sanitizeUrl(value: string, baseUrl: string): string {\n const trimmed = value.trim();\n\n if (/^(?:blob|data|javascript):/iu.test(trimmed)) {\n return \"[redacted URL]\";\n }\n\n const normalized = redactSensitiveText(trimmed);\n\n try {\n const parsed = new URL(normalized, baseUrl);\n const sanitized = sanitizeParsedUrl(parsed);\n const base = new URL(baseUrl);\n\n if (!/^[a-z][a-z\\d+.-]*:/iu.test(normalized) && parsed.origin === base.origin) {\n return `${parsed.pathname}${parsed.search}${parsed.hash}`;\n }\n\n return sanitized;\n } catch {\n return truncate(normalized, MAX_URL_CHARACTERS);\n }\n}\n","import type { CodeContext } from \"./code-context.js\";\nimport type { ReactContext, SourceRef } from \"./source-ref.js\";\nimport type { StyleContext } from \"./style-context.js\";\n\nexport interface PageContext {\n readonly url: string;\n readonly pathname: string;\n readonly title: string;\n readonly viewportWidth: number;\n readonly viewportHeight: number;\n readonly devicePixelRatio: number;\n}\n\nexport interface ElementContext {\n readonly tagName: string;\n readonly selector: string;\n readonly sanitizedHtml: string;\n readonly textPreview?: string;\n readonly role?: string;\n readonly rect: Readonly<{\n x: number;\n y: number;\n width: number;\n height: number;\n }>;\n}\n\n/** Protocol hard limit. Runtime configuration may choose a smaller limit. */\nexport const MAX_ANNOTATION_TARGETS = 20;\n\n/** Each target owns its requested change; the UI enforces the same bound. */\nexport const MAX_TARGET_INSTRUCTION_CHARACTERS = 2_000;\n\n/** Keeps the complete, atomic user intent within the prompt and request budgets. */\nexport const MAX_ANNOTATION_INSTRUCTION_CHARACTERS = 4_000;\n\nexport const SPOTPATCH_LOCALES = Object.freeze([\"en-US\", \"zh-CN\"] as const);\nexport type SpotPatchLocale = (typeof SPOTPATCH_LOCALES)[number];\nexport const SPOTPATCH_LOCALE_PREFERENCES = Object.freeze([\n \"auto\",\n ...SPOTPATCH_LOCALES,\n] as const);\nexport type SpotPatchLocalePreference = (typeof SPOTPATCH_LOCALE_PREFERENCES)[number];\n\nexport interface SpotTargetContext {\n readonly instruction: string;\n readonly page?: Readonly<PageContext>;\n readonly source: SourceRef;\n readonly react: ReactContext;\n readonly element: ElementContext;\n readonly styles: StyleContext;\n readonly code?: CodeContext;\n readonly warnings: readonly string[];\n}\n\nexport interface SpotAnnotation {\n readonly schemaVersion: 3;\n readonly id: string;\n readonly locale: SpotPatchLocale;\n readonly page: Readonly<PageContext>;\n readonly targets: readonly SpotTargetContext[];\n readonly createdAt: string;\n}\n","import { z } from \"zod\";\n\nimport { SPOTPATCH_API_BASE } from \"../protocol/endpoints.js\";\nimport { MAX_ANNOTATION_TARGETS, SPOTPATCH_LOCALE_PREFERENCES } from \"./annotation.js\";\nimport { SPOTPATCH_EDITOR_PREFERENCES } from \"./editor.js\";\nimport type { ContextBudget } from \"./code-context.js\";\nimport { AGENT_APPLY_MODES, type RuntimeAiConfig } from \"./agent.js\";\n\nexport const SPOTPATCH_NEXT_BUNDLERS = Object.freeze([\"turbopack\", \"webpack\"] as const);\nexport const SPOTPATCH_NEXT_ROUTER_KINDS = Object.freeze([\n \"app\",\n \"pages\",\n \"hybrid\",\n] as const);\n\nexport type SpotPatchNextBundler = (typeof SPOTPATCH_NEXT_BUNDLERS)[number];\nexport type SpotPatchNextRouterKind = (typeof SPOTPATCH_NEXT_ROUTER_KINDS)[number];\n\ninterface RuntimeConfigBase {\n readonly apiBase: typeof SPOTPATCH_API_BASE;\n readonly ai: RuntimeAiConfig;\n readonly budget: Readonly<ContextBudget>;\n readonly debug: boolean;\n readonly editor: (typeof SPOTPATCH_EDITOR_PREFERENCES)[number];\n readonly frameworkVersion: string;\n readonly locale: (typeof SPOTPATCH_LOCALE_PREFERENCES)[number];\n readonly maxTargets: number;\n readonly redact: boolean;\n readonly sessionId: string;\n readonly sessionToken: string;\n readonly shortcut: string;\n readonly spotPatchVersion: string;\n}\n\nexport type SpotPatchRuntimeConfig = RuntimeConfigBase &\n (\n | Readonly<{\n framework: \"vite\";\n }>\n | Readonly<{\n bundler: SpotPatchNextBundler;\n framework: \"next\";\n routerKind: SpotPatchNextRouterKind;\n }>\n );\n\nconst boundedText = (maximum: number): z.ZodString =>\n z.string().trim().min(1).max(maximum);\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/u);\nconst runtimeAiModelSchema = z.strictObject({\n id: profileIdSchema,\n label: boundedText(100),\n});\nconst runtimeAiProviderSchema = z\n .strictObject({\n id: profileIdSchema,\n label: boundedText(100),\n protocol: z.enum([\"responses\", \"chat-completions\"]),\n models: z.array(runtimeAiModelSchema).min(1).max(64),\n defaultModel: profileIdSchema,\n })\n .refine(\n ({ defaultModel, models }) =>\n models.some(({ id }) => id === defaultModel) &&\n new Set(models.map(({ id }) => id)).size === models.length,\n { message: \"Runtime AI model profiles are inconsistent.\" },\n );\nconst runtimeAiConfigSchema = z.discriminatedUnion(\"enabled\", [\n z.strictObject({ enabled: z.literal(false) }),\n z\n .strictObject({\n enabled: z.literal(true),\n providers: z.array(runtimeAiProviderSchema).min(1).max(32),\n defaultProvider: profileIdSchema,\n applyMode: z.enum(AGENT_APPLY_MODES),\n })\n .refine(\n ({ defaultProvider, providers }) =>\n providers.some(({ id }) => id === defaultProvider) &&\n new Set(providers.map(({ id }) => id)).size === providers.length,\n { message: \"Runtime AI provider profiles are inconsistent.\" },\n ),\n]);\nconst positiveInteger = z.number().int().positive();\nconst runtimeConfigBaseShape = {\n apiBase: z.literal(SPOTPATCH_API_BASE),\n ai: runtimeAiConfigSchema,\n budget: z.strictObject({\n totalCharacters: positiveInteger,\n domCharacters: positiveInteger,\n cssCharacters: positiveInteger,\n codeCharacters: positiveInteger,\n maxCodeLines: positiveInteger,\n maxComponentDepth: positiveInteger,\n }),\n debug: z.boolean(),\n editor: z.enum(SPOTPATCH_EDITOR_PREFERENCES),\n frameworkVersion: boundedText(64),\n locale: z.enum(SPOTPATCH_LOCALE_PREFERENCES),\n maxTargets: z.number().int().min(1).max(MAX_ANNOTATION_TARGETS),\n redact: z.boolean(),\n sessionId: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u),\n sessionToken: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u),\n shortcut: boundedText(128),\n spotPatchVersion: boundedText(64),\n} as const;\n\nexport const runtimeConfigSchema: z.ZodType<SpotPatchRuntimeConfig> =\n z.discriminatedUnion(\"framework\", [\n z.strictObject({\n ...runtimeConfigBaseShape,\n framework: z.literal(\"vite\"),\n }),\n z.strictObject({\n ...runtimeConfigBaseShape,\n bundler: z.enum(SPOTPATCH_NEXT_BUNDLERS),\n framework: z.literal(\"next\"),\n routerKind: z.enum(SPOTPATCH_NEXT_ROUTER_KINDS),\n }),\n ]);\n","export const SPOTPATCH_API_BASE = \"/__spotpatch/v1\" as const;\nexport const SPOTPATCH_TOKEN_HEADER = \"X-SpotPatch-Token\" as const;\n\nexport const SPOTPATCH_ENDPOINTS = Object.freeze({\n bootstrap: `${SPOTPATCH_API_BASE}/bootstrap`,\n sourceContext: `${SPOTPATCH_API_BASE}/source-context`,\n openEditor: `${SPOTPATCH_API_BASE}/open-editor`,\n agentCapability: `${SPOTPATCH_API_BASE}/agent/capability`,\n agentWorkspaceHealth: `${SPOTPATCH_API_BASE}/agent/workspace-health`,\n agentJobs: `${SPOTPATCH_API_BASE}/agent/jobs`,\n});\n\nexport type AgentJobAction = \"events\" | \"result\" | \"cancel\" | \"apply\" | \"revert\";\n\nexport function getAgentJobEndpoint(jobId: string, action: AgentJobAction): string {\n return `${SPOTPATCH_ENDPOINTS.agentJobs}/${encodeURIComponent(jobId)}/${action}`;\n}\n","export const SPOTPATCH_EDITOR_PREFERENCES = [\"auto\", \"vscode\", \"cursor\"] as const;\n\nexport type SpotPatchEditorPreference = (typeof SPOTPATCH_EDITOR_PREFERENCES)[number];\n\nexport interface EditorOpenResult {\n readonly editor: SpotPatchEditorPreference;\n}\n","import type { ErrorCode } from \"../errors/error-code.js\";\n\nexport type AiProviderProtocol = \"responses\" | \"chat-completions\";\nexport type AiProviderAuthentication = \"bearer\" | \"x-api-key\";\nexport const AGENT_APPLY_MODES = Object.freeze([\n \"review\",\n \"auto\",\n \"trusted-auto\",\n] as const);\nexport type AgentApplyMode = (typeof AGENT_APPLY_MODES)[number];\nexport type AgentWorkingTreeMode = \"require-clean\" | \"include-local-changes\";\n\nexport interface AiModelProfile {\n readonly label: string;\n readonly model: string;\n}\n\nexport interface OpenAICompatibleProviderOptions {\n readonly type: \"openai-compatible\";\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly authentication?: AiProviderAuthentication;\n readonly baseURL: string;\n readonly apiKeyEnv: string;\n readonly models: Readonly<Record<string, AiModelProfile>>;\n readonly defaultModel: string;\n}\n\nexport interface AgentCheckDefinition {\n readonly label: string;\n readonly command: string;\n readonly args?: readonly string[];\n readonly required?: boolean;\n readonly timeoutMs?: number;\n}\n\nexport interface AgentLimits {\n readonly maxTurns: number;\n readonly maxToolCalls: number;\n readonly maxChangedFiles: number;\n readonly maxDiffBytes: number;\n readonly maxReadBytesPerFile: number;\n readonly maxToolOutputCharacters: number;\n readonly maxProviderResponseBytes: number;\n readonly providerConnectTimeoutMs: number;\n readonly providerFirstByteTimeoutMs: number;\n readonly providerIdleTimeoutMs: number;\n readonly checkTimeoutMs: number;\n readonly jobTimeoutMs: number;\n}\n\nexport const DEFAULT_AGENT_LIMITS = Object.freeze({\n maxTurns: 20,\n maxToolCalls: 80,\n maxChangedFiles: 20,\n maxDiffBytes: 512_000,\n maxReadBytesPerFile: 256_000,\n maxToolOutputCharacters: 40_000,\n maxProviderResponseBytes: 2_000_000,\n providerConnectTimeoutMs: 15_000,\n providerFirstByteTimeoutMs: 30_000,\n providerIdleTimeoutMs: 60_000,\n checkTimeoutMs: 120_000,\n jobTimeoutMs: 600_000,\n} satisfies AgentLimits);\n\nexport interface AiExecutionOptions {\n readonly isolation?: \"git-worktree\";\n readonly applyMode?: AgentApplyMode;\n readonly checks?: Readonly<Record<string, AgentCheckDefinition>>;\n readonly limits?: Partial<AgentLimits>;\n}\n\nexport interface AiOptions {\n readonly providers: Readonly<Record<string, OpenAICompatibleProviderOptions>>;\n readonly defaultProvider: string;\n readonly execution?: AiExecutionOptions;\n}\n\nexport interface ResolvedAiModelProfile extends AiModelProfile {\n readonly id: string;\n}\n\nexport interface ResolvedOpenAICompatibleProviderOptions {\n readonly id: string;\n readonly type: \"openai-compatible\";\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly authentication: AiProviderAuthentication;\n readonly baseURL: string;\n readonly apiKeyEnv: string;\n readonly models: Readonly<Record<string, ResolvedAiModelProfile>>;\n readonly defaultModel: string;\n}\n\nexport interface ResolvedAgentCheckDefinition {\n readonly id: string;\n readonly label: string;\n readonly command: string;\n readonly args: readonly string[];\n readonly required: boolean;\n readonly timeoutMs: number;\n}\n\nexport interface ResolvedAiExecutionOptions {\n readonly isolation: \"git-worktree\";\n readonly applyMode: AgentApplyMode;\n readonly checks: Readonly<Record<string, ResolvedAgentCheckDefinition>>;\n readonly limits: Readonly<AgentLimits>;\n}\n\nexport interface ResolvedAiOptions {\n readonly providers: Readonly<Record<string, ResolvedOpenAICompatibleProviderOptions>>;\n readonly defaultProvider: string;\n readonly execution: ResolvedAiExecutionOptions;\n}\n\nexport interface RuntimeAiModelProfile {\n readonly id: string;\n readonly label: string;\n}\n\nexport interface RuntimeAiProviderProfile {\n readonly id: string;\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly models: readonly RuntimeAiModelProfile[];\n readonly defaultModel: string;\n}\n\nexport type RuntimeAiConfig =\n | Readonly<{ enabled: false }>\n | Readonly<{\n enabled: true;\n providers: readonly RuntimeAiProviderProfile[];\n defaultProvider: string;\n applyMode: AgentApplyMode;\n }>;\n\nexport const AGENT_JOB_STATUSES = Object.freeze([\n \"queued\",\n \"preparing\",\n \"running\",\n \"validating\",\n \"awaiting-review\",\n \"applying\",\n \"applied\",\n \"completed\",\n \"cancelling\",\n \"cancelled\",\n \"reverting\",\n \"reverted\",\n \"failed\",\n] as const);\n\nexport type AgentJobStatus = (typeof AGENT_JOB_STATUSES)[number];\n\nexport const AGENT_CAPABILITY_STATES = Object.freeze([\n \"unknown\",\n \"probing\",\n \"agent-ready\",\n \"prompt-only\",\n \"unavailable\",\n] as const);\n\nexport type AgentCapabilityState = (typeof AGENT_CAPABILITY_STATES)[number];\n\nexport interface AgentCapabilitySnapshot {\n readonly providerProfileId: string;\n readonly providerLabel: string;\n readonly modelProfileId: string;\n readonly modelLabel: string;\n readonly protocol: AiProviderProtocol;\n readonly state: AgentCapabilityState;\n readonly authenticated: boolean;\n readonly modelAvailable: boolean;\n readonly toolCalling: boolean;\n readonly toolResultContinuation: boolean;\n readonly streaming: boolean;\n readonly checkedAt?: string;\n readonly errorCode?: ErrorCode;\n}\n\nexport const AGENT_WORKSPACE_STATES = Object.freeze([\n \"ready\",\n \"consent-required\",\n \"blocked\",\n] as const);\n\nexport const AGENT_WORKSPACE_SNAPSHOT_LIMITS = Object.freeze({\n maxUntrackedFiles: 1_000,\n maxUntrackedBytes: 20 * 1024 * 1024,\n});\n\nexport type AgentWorkspaceState = (typeof AGENT_WORKSPACE_STATES)[number];\n\nexport interface AgentWorkspaceChangeSummary {\n readonly staged: number;\n readonly unstaged: number;\n readonly untracked: number;\n readonly conflicted: number;\n readonly total: number;\n}\n\nexport interface AgentWorkspaceHealthSnapshot {\n readonly state: AgentWorkspaceState;\n readonly checkedAt: string;\n readonly changes: AgentWorkspaceChangeSummary;\n readonly canIncludeLocalChanges: boolean;\n readonly errorCode?: ErrorCode;\n}\n\nexport const AGENT_FILE_CHANGE_KINDS = Object.freeze([\n \"added\",\n \"modified\",\n \"deleted\",\n] as const);\n\nexport type AgentFileChangeKind = (typeof AGENT_FILE_CHANGE_KINDS)[number];\n\nexport const AGENT_CHECK_STATUSES = Object.freeze([\n \"passed\",\n \"failed\",\n \"cancelled\",\n \"timed-out\",\n] as const);\n\nexport type AgentCheckStatus = (typeof AGENT_CHECK_STATUSES)[number];\n\nexport interface AgentChangedFile {\n readonly relativePath: string;\n readonly kind: AgentFileChangeKind;\n readonly additions: number;\n readonly deletions: number;\n}\n\nexport interface AgentCheckResult {\n readonly checkId: string;\n readonly label: string;\n readonly status: AgentCheckStatus;\n readonly durationMs: number;\n readonly output: string;\n}\n\nexport interface AgentJobSnapshot {\n readonly jobId: string;\n readonly status: AgentJobStatus;\n readonly providerProfileId: string;\n readonly providerLabel: string;\n readonly modelProfileId: string;\n readonly modelLabel: string;\n readonly phaseMessage: string;\n readonly createdAt: string;\n readonly updatedAt: string;\n readonly canCancel: boolean;\n readonly canApply: boolean;\n readonly canRevert: boolean;\n readonly errorCode?: ErrorCode;\n}\n\nexport interface AgentJobResult {\n readonly jobId: string;\n readonly summary: string;\n readonly diff: string;\n readonly files: readonly AgentChangedFile[];\n readonly checks: readonly AgentCheckResult[];\n}\n\nexport interface AgentJobResultResponse {\n readonly snapshot: AgentJobSnapshot;\n readonly result?: AgentJobResult;\n}\n","export const SOURCE_MARKER_ATTRIBUTE = \"data-spotpatch-source\" as const;\n\nconst SOURCE_MARKER_PATTERN = /^([A-Za-z0-9_-]+):([1-9]\\d*):([1-9]\\d*)$/;\n\nexport interface SourceMarker {\n readonly fileId: string;\n readonly line: number;\n readonly column: number;\n}\n\nexport function formatSourceMarker(marker: SourceMarker): string {\n return [marker.fileId, String(marker.line), String(marker.column)].join(\":\");\n}\n\nexport function parseSourceMarker(value: string | null): SourceMarker | undefined {\n if (value === null) {\n return undefined;\n }\n\n const match = SOURCE_MARKER_PATTERN.exec(value);\n\n if (match === null) {\n return undefined;\n }\n\n const fileId = match[1];\n const line = Number(match[2]);\n const column = Number(match[3]);\n\n if (\n fileId === undefined ||\n !Number.isSafeInteger(line) ||\n !Number.isSafeInteger(column)\n ) {\n return undefined;\n }\n\n return Object.freeze({ fileId, line, column });\n}\n","import { z } from \"zod\";\n\nimport {\n MAX_ANNOTATION_INSTRUCTION_CHARACTERS,\n MAX_ANNOTATION_TARGETS,\n MAX_TARGET_INSTRUCTION_CHARACTERS,\n SPOTPATCH_LOCALES,\n type SpotAnnotation,\n} from \"../model/annotation.js\";\nimport { AGENT_APPLY_MODES, type AgentApplyMode } from \"../model/agent.js\";\n\nexport const runtimeBootstrapRequestSchema = z.strictObject({});\n\nconst sourceCoordinatesSchema = z.strictObject({\n fileId: z.string().min(1).max(128),\n line: z.number().int().positive(),\n column: z.number().int().positive(),\n});\n\nexport const sourceContextRequestSchema = sourceCoordinatesSchema\n .extend({\n maxLines: z.number().int().positive(),\n })\n .strict();\n\nexport const openEditorRequestSchema = sourceCoordinatesSchema.strict();\n\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);\n\nconst boundedString = (maximum: number): z.ZodString => z.string().max(maximum);\nconst sourceRefSchema = z.strictObject({\n fileId: boundedString(128).optional(),\n relativePath: boundedString(1_024).optional(),\n line: z.number().int().positive().optional(),\n column: z.number().int().positive().optional(),\n origin: z.enum([\"jsx-host\", \"react-fiber\", \"dom-ancestor\", \"none\"]),\n confidence: z.enum([\"exact\", \"probable\", \"approximate\", \"unknown\"]),\n});\nconst matchedStyleRuleSchema = z.strictObject({\n selector: boundedString(2_048),\n declarations: boundedString(8_192),\n source: boundedString(1_024).optional(),\n media: boundedString(1_024).optional(),\n});\nconst codeContextSchema = z.strictObject({\n relativePath: boundedString(1_024),\n language: z.enum([\"tsx\", \"jsx\"]),\n startLine: z.number().int().positive(),\n endLine: z.number().int().positive(),\n excerpt: boundedString(16_000),\n boundary: z.enum([\"component\", \"nearby-lines\"]),\n});\nconst pageContextSchema = z.strictObject({\n url: boundedString(2_048),\n pathname: boundedString(2_048),\n title: boundedString(1_024),\n viewportWidth: z.number().nonnegative(),\n viewportHeight: z.number().nonnegative(),\n devicePixelRatio: z.number().positive(),\n});\n\nexport const spotTargetContextRequestSchema = z.strictObject({\n instruction: z.string().trim().min(1).max(MAX_TARGET_INSTRUCTION_CHARACTERS),\n page: pageContextSchema.optional(),\n source: sourceRefSchema,\n react: z.strictObject({\n supported: z.boolean(),\n version: boundedString(64).optional(),\n componentName: boundedString(256).optional(),\n componentStack: z.array(boundedString(256)).max(64),\n source: sourceRefSchema.optional(),\n }),\n element: z.strictObject({\n tagName: boundedString(128),\n selector: boundedString(2_048),\n sanitizedHtml: boundedString(8_192),\n textPreview: boundedString(2_048).optional(),\n role: boundedString(256).optional(),\n rect: z.strictObject({\n x: z.number(),\n y: z.number(),\n width: z.number().nonnegative(),\n height: z.number().nonnegative(),\n }),\n }),\n styles: z.strictObject({\n classNames: z.array(boundedString(512)).max(256),\n inlineStyle: boundedString(8_192).optional(),\n matchedRules: z.array(matchedStyleRuleSchema).max(256),\n computed: z.record(boundedString(256), boundedString(2_048)),\n warnings: z.array(boundedString(1_024)).max(64),\n }),\n code: codeContextSchema.optional(),\n warnings: z.array(boundedString(1_024)).max(64),\n});\n\nexport const spotAnnotationRequestSchema = z\n .strictObject({\n schemaVersion: z.literal(3),\n id: boundedString(128),\n locale: z.enum(SPOTPATCH_LOCALES),\n page: pageContextSchema,\n targets: z.array(spotTargetContextRequestSchema).min(1).max(MAX_ANNOTATION_TARGETS),\n createdAt: z.iso.datetime(),\n })\n .superRefine((annotation, context) => {\n const total = annotation.targets.reduce(\n (characters, target) => characters + target.instruction.length,\n 0,\n );\n\n if (total > MAX_ANNOTATION_INSTRUCTION_CHARACTERS) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined target instructions exceed the annotation limit.\",\n path: [\"targets\"],\n });\n }\n });\n\nexport const agentCapabilityRequestSchema = z.strictObject({\n providerProfileId: profileIdSchema,\n modelProfileId: profileIdSchema,\n});\n\nexport const agentWorkspaceHealthRequestSchema = z.strictObject({});\n\nexport const agentJobCreateRequestSchema = z.strictObject({\n annotation: spotAnnotationRequestSchema,\n applyMode: z.enum(AGENT_APPLY_MODES).optional(),\n providerProfileId: profileIdSchema,\n modelProfileId: profileIdSchema,\n providerDataConsent: z.literal(true),\n trustedFastModeConsent: z.literal(true).optional(),\n workingTreeMode: z\n .enum([\"require-clean\", \"include-local-changes\"])\n .default(\"require-clean\"),\n});\n\nexport const agentJobActionRequestSchema = z.strictObject({});\n\nexport type SourceContextRequest = z.infer<typeof sourceContextRequestSchema>;\nexport type RuntimeBootstrapRequest = z.infer<typeof runtimeBootstrapRequestSchema>;\nexport type OpenEditorRequest = z.infer<typeof openEditorRequestSchema>;\nexport type AgentCapabilityRequest = z.infer<typeof agentCapabilityRequestSchema>;\nexport interface AgentJobCreateRequest {\n readonly annotation: SpotAnnotation;\n readonly applyMode?: AgentApplyMode;\n readonly providerProfileId: string;\n readonly modelProfileId: string;\n readonly providerDataConsent: true;\n readonly trustedFastModeConsent?: true;\n readonly workingTreeMode: \"require-clean\" | \"include-local-changes\";\n}\n","import { z } from \"zod\";\n\nimport { ERROR_CODES } from \"../errors/error-code.js\";\nimport {\n AGENT_CAPABILITY_STATES,\n AGENT_CHECK_STATUSES,\n AGENT_FILE_CHANGE_KINDS,\n AGENT_JOB_STATUSES,\n AGENT_WORKSPACE_STATES,\n} from \"../model/agent.js\";\n\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);\nconst boundedString = (maximum: number): z.ZodString => z.string().max(maximum);\nconst errorCodeSchema = z.enum(ERROR_CODES);\n\nexport const agentCapabilitySnapshotSchema = z.strictObject({\n providerProfileId: profileIdSchema,\n providerLabel: boundedString(100),\n modelProfileId: profileIdSchema,\n modelLabel: boundedString(100),\n protocol: z.enum([\"responses\", \"chat-completions\"]),\n state: z.enum(AGENT_CAPABILITY_STATES),\n authenticated: z.boolean(),\n modelAvailable: z.boolean(),\n toolCalling: z.boolean(),\n toolResultContinuation: z.boolean(),\n streaming: z.boolean(),\n checkedAt: z.iso.datetime().optional(),\n errorCode: errorCodeSchema.optional(),\n});\n\nexport const agentWorkspaceHealthSnapshotSchema = z\n .strictObject({\n state: z.enum(AGENT_WORKSPACE_STATES),\n checkedAt: z.iso.datetime(),\n changes: z.strictObject({\n staged: z.number().int().nonnegative(),\n unstaged: z.number().int().nonnegative(),\n untracked: z.number().int().nonnegative(),\n conflicted: z.number().int().nonnegative(),\n total: z.number().int().nonnegative(),\n }),\n canIncludeLocalChanges: z.boolean(),\n errorCode: errorCodeSchema.optional(),\n })\n .refine(\n ({ state, changes, canIncludeLocalChanges, errorCode }) => {\n const countsAreConsistent =\n changes.total >= changes.staged &&\n changes.total >= changes.unstaged &&\n changes.total >= changes.untracked &&\n changes.total >= changes.conflicted &&\n changes.total <= changes.staged + changes.unstaged + changes.untracked;\n\n if (!countsAreConsistent) {\n return false;\n }\n\n if (state === \"ready\") {\n return (\n changes.total === 0 && !canIncludeLocalChanges && errorCode === undefined\n );\n }\n\n if (state === \"consent-required\") {\n return (\n changes.total > 0 &&\n changes.conflicted === 0 &&\n canIncludeLocalChanges &&\n errorCode === undefined\n );\n }\n\n return !canIncludeLocalChanges && errorCode !== undefined;\n },\n { message: \"Agent workspace health fields are inconsistent.\" },\n );\n\nexport const agentChangedFileSchema = z.strictObject({\n relativePath: boundedString(1_024),\n kind: z.enum(AGENT_FILE_CHANGE_KINDS),\n additions: z.number().int().nonnegative(),\n deletions: z.number().int().nonnegative(),\n});\n\nexport const agentCheckResultSchema = z.strictObject({\n checkId: profileIdSchema,\n label: boundedString(100),\n status: z.enum(AGENT_CHECK_STATUSES),\n durationMs: z.number().int().nonnegative(),\n output: boundedString(80_000),\n});\n\nexport const agentJobSnapshotSchema = z.strictObject({\n jobId: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/),\n status: z.enum(AGENT_JOB_STATUSES),\n providerProfileId: profileIdSchema,\n providerLabel: boundedString(100),\n modelProfileId: profileIdSchema,\n modelLabel: boundedString(100),\n phaseMessage: boundedString(1_024),\n createdAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n canCancel: z.boolean(),\n canApply: z.boolean(),\n canRevert: z.boolean(),\n errorCode: errorCodeSchema.optional(),\n});\n\nexport const agentJobResultSchema = z.strictObject({\n jobId: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/),\n summary: boundedString(80_000),\n diff: boundedString(1_000_000),\n files: z.array(agentChangedFileSchema).max(100),\n checks: z.array(agentCheckResultSchema).max(100),\n});\n\nexport const agentJobResultResponseSchema = z\n .strictObject({\n snapshot: agentJobSnapshotSchema,\n result: agentJobResultSchema.optional(),\n })\n .superRefine((value, context) => {\n if (value.result !== undefined && value.result.jobId !== value.snapshot.jobId) {\n context.addIssue({\n code: \"custom\",\n message: \"Agent result and snapshot job IDs must match.\",\n path: [\"result\", \"jobId\"],\n });\n }\n });\n\nconst agentJobEventBaseSchema = z.strictObject({\n schemaVersion: z.literal(2),\n sequence: z.number().int().positive(),\n jobId: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/),\n status: z.enum(AGENT_JOB_STATUSES),\n timestamp: z.iso.datetime(),\n});\n\nexport const agentJobEventSchema = z\n .discriminatedUnion(\"type\", [\n agentJobEventBaseSchema.extend({\n type: z.literal(\"snapshot\"),\n data: z.strictObject({ snapshot: agentJobSnapshotSchema }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"phase\"),\n data: z.strictObject({ message: boundedString(1_024) }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"tool\"),\n data: z.strictObject({\n turn: z.number().int().positive(),\n toolCallId: boundedString(256),\n toolName: boundedString(100),\n state: z.enum([\"started\", \"succeeded\", \"failed\"]),\n relativePath: boundedString(1_024).optional(),\n checkLabel: boundedString(100).optional(),\n }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"check\"),\n data: z.strictObject({ result: agentCheckResultSchema }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"result-ready\"),\n data: z.strictObject({ hasResult: z.literal(true) }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"error\"),\n data: z.strictObject({\n code: errorCodeSchema,\n message: boundedString(1_024),\n }),\n }),\n ])\n .superRefine((event, context) => {\n if (event.type !== \"snapshot\") {\n return;\n }\n\n if (event.data.snapshot.jobId !== event.jobId) {\n context.addIssue({\n code: \"custom\",\n message: \"Agent event and snapshot job IDs must match.\",\n path: [\"data\", \"snapshot\", \"jobId\"],\n });\n }\n\n if (event.data.snapshot.status !== event.status) {\n context.addIssue({\n code: \"custom\",\n message: \"Agent event and snapshot statuses must match.\",\n path: [\"data\", \"snapshot\", \"status\"],\n });\n }\n });\n","export const SPOTPATCH_REPOSITORY_URL =\n \"https://github.com/huanglvjing/spotpatch\" as const;\n"],"mappings":"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","names":["import_zod","profileIdSchema","import_zod","profileIdSchema","boundedString"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/errors/spotpatch-error.ts","../src/errors/error-code.ts","../src/security/redaction.ts","../src/model/annotation.ts","../src/model/data-flow-adapters.ts","../src/model/data-flow.ts","../src/model/data-flow-limits.ts","../src/model/data-flow-version.ts","../src/model/data-flow-budget.ts","../src/model/runtime-config.ts","../src/protocol/endpoints.ts","../src/model/editor.ts","../src/model/agent.ts","../src/model/source-marker.ts","../src/protocol/requests.ts","../src/protocol/agent-schemas.ts","../src/product.ts"],"sourcesContent":["export { SpotPatchError } from \"./errors/spotpatch-error.js\";\nexport { ERROR_CODES, type ErrorCode } from \"./errors/error-code.js\";\nexport {\n isSensitiveName,\n redactSensitiveText,\n sanitizeUrl,\n} from \"./security/redaction.js\";\nexport {\n MAX_ANNOTATION_INSTRUCTION_CHARACTERS,\n MAX_ANNOTATION_TARGETS,\n MAX_TARGET_INSTRUCTION_CHARACTERS,\n SPOTPATCH_LOCALE_PREFERENCES,\n SPOTPATCH_LOCALES,\n type ElementContext,\n type PageContext,\n type SpotAnnotation,\n type SpotPatchLocale,\n type SpotPatchLocalePreference,\n type SpotTargetContext,\n} from \"./model/annotation.js\";\nexport type { CodeContext, ContextBudget } from \"./model/code-context.js\";\nexport {\n DATA_FLOW_QUERY_ADAPTER_MODULES,\n DATA_FLOW_QUERY_HOOK_NAMES,\n DATA_FLOW_TRPC_CLIENT_FACTORY_NAMES,\n DATA_FLOW_TRPC_PROXY_FACTORY_NAMES,\n DATA_FLOW_TRPC_REQUEST_METHODS,\n DATA_FLOW_TRPC_ROOT_FACTORY_NAMES,\n} from \"./model/data-flow-adapters.js\";\nexport {\n DATA_FLOW_ASSOCIATION_KINDS,\n DATA_FLOW_DIAGNOSTIC_CODES,\n DATA_FLOW_EXECUTION_STATES,\n DATA_FLOW_FRESHNESS_STATES,\n DATA_FLOW_PROOF_STATES,\n DATA_FLOW_SCHEMA_VERSION,\n DATA_FLOW_URL_QUERY_KEY_LIMIT,\n DEFAULT_DATA_FLOW_LIMITS,\n DEFAULT_RUNTIME_DATA_FLOW_LIMITS,\n dataDependencySchema,\n componentDataFlowReportSchema,\n networkObservationSchema,\n pageDataFlowReportSchema,\n runtimeDataFlowConfigSchema,\n type AnalysisBaseline,\n type AssociationKind,\n type ComponentDataFlowReport,\n type ComponentIdentity,\n type DataDependency,\n type DataFlowCapability,\n type DataFlowCapabilityReason,\n type DataFlowDiagnostic,\n type DataFlowDiagnosticCode,\n type DataFlowLimits,\n type DataParameter,\n type DataResponseDescriptor,\n type EvidenceRef,\n type EvidenceSourceRef,\n type ExecutionState,\n type FreshnessState,\n type NetworkObservation,\n type PageDataFlowReport,\n type ProofState,\n type ReportCompleteness,\n type RequestOrigin,\n type RuntimeDataFlowConfig,\n type RuntimeDataFlowLimits,\n type SanitizedObservedUrl,\n} from \"./model/data-flow.js\";\nexport {\n limitDataFlowReportCollections,\n type DataFlowCollectionLimitOptions,\n} from \"./model/data-flow-budget.js\";\nexport {\n runtimeConfigSchema,\n SPOTPATCH_NEXT_BUNDLERS,\n SPOTPATCH_NEXT_ROUTER_KINDS,\n type SpotPatchNextBundler,\n type SpotPatchNextRouterKind,\n type SpotPatchRuntimeConfig,\n} from \"./model/runtime-config.js\";\nexport {\n SPOTPATCH_EDITOR_PREFERENCES,\n type EditorOpenResult,\n type SpotPatchEditorPreference,\n} from \"./model/editor.js\";\nexport {\n AGENT_APPLY_MODES,\n AGENT_CAPABILITY_STATES,\n AGENT_CHECK_STATUSES,\n AGENT_FILE_CHANGE_KINDS,\n AGENT_JOB_STATUSES,\n AGENT_WORKSPACE_SNAPSHOT_LIMITS,\n AGENT_WORKSPACE_STATES,\n DEFAULT_AGENT_LIMITS,\n type AgentApplyMode,\n type AgentCapabilitySnapshot,\n type AgentCapabilityState,\n type AgentChangedFile,\n type AgentCheckDefinition,\n type AgentCheckResult,\n type AgentCheckStatus,\n type AgentFileChangeKind,\n type AgentJobResult,\n type AgentJobResultResponse,\n type AgentJobSnapshot,\n type AgentJobStatus,\n type AgentWorkingTreeMode,\n type AgentWorkspaceChangeSummary,\n type AgentWorkspaceHealthSnapshot,\n type AgentWorkspaceState,\n type AgentLimits,\n type AiExecutionOptions,\n type AiModelProfile,\n type AiOptions,\n type AiProviderAuthentication,\n type AiProviderProtocol,\n type OpenAICompatibleProviderOptions,\n type ResolvedAgentCheckDefinition,\n type ResolvedAiExecutionOptions,\n type ResolvedAiModelProfile,\n type ResolvedAiOptions,\n type ResolvedOpenAICompatibleProviderOptions,\n type RuntimeAiConfig,\n type RuntimeAiModelProfile,\n type RuntimeAiProviderProfile,\n} from \"./model/agent.js\";\nexport type {\n ReactContext,\n SourceConfidence,\n SourceOrigin,\n SourceRef,\n} from \"./model/source-ref.js\";\nexport type { MatchedStyleRule, StyleContext } from \"./model/style-context.js\";\nexport {\n formatSourceMarker,\n parseSourceMarker,\n SOURCE_MARKER_ATTRIBUTE,\n type SourceMarker,\n} from \"./model/source-marker.js\";\nexport {\n getAgentJobEndpoint,\n SPOTPATCH_API_BASE,\n SPOTPATCH_ENDPOINTS,\n SPOTPATCH_TOKEN_HEADER,\n type AgentJobAction,\n} from \"./protocol/endpoints.js\";\nexport {\n agentCapabilityRequestSchema,\n agentWorkspaceHealthRequestSchema,\n agentJobActionRequestSchema,\n agentJobCreateRequestSchema,\n dataFlowComponentReportRequestSchema,\n dataFlowPageReportRequestSchema,\n openEditorRequestSchema,\n runtimeBootstrapRequestSchema,\n sourceContextRequestSchema,\n spotAnnotationRequestSchema,\n spotTargetContextRequestSchema,\n type AgentCapabilityRequest,\n type AgentJobCreateRequest,\n type DataFlowComponentReportRequest,\n type DataFlowPageReportRequest,\n type OpenEditorRequest,\n type RuntimeBootstrapRequest,\n type SourceContextRequest,\n} from \"./protocol/requests.js\";\nexport type { AgentJobEvent } from \"./protocol/agent-events.js\";\nexport {\n agentCapabilitySnapshotSchema,\n agentWorkspaceHealthSnapshotSchema,\n agentChangedFileSchema,\n agentCheckResultSchema,\n agentJobEventSchema,\n agentJobResultResponseSchema,\n agentJobResultSchema,\n agentJobSnapshotSchema,\n} from \"./protocol/agent-schemas.js\";\nexport type { ApiFailure, ApiResponse, ApiSuccess } from \"./protocol/responses.js\";\nexport { SPOTPATCH_REPOSITORY_URL } from \"./product.js\";\n","import type { ErrorCode } from \"./error-code.js\";\n\nexport class SpotPatchError extends Error {\n readonly code: ErrorCode;\n\n constructor(code: ErrorCode, message = code, options?: ErrorOptions) {\n super(message, options);\n this.name = \"SpotPatchError\";\n this.code = code;\n }\n}\n","export const ERROR_CODES = {\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n SOURCE_NOT_FOUND: \"SOURCE_NOT_FOUND\",\n SOURCE_OUTSIDE_ROOT: \"SOURCE_OUTSIDE_ROOT\",\n SOURCE_TOO_LARGE: \"SOURCE_TOO_LARGE\",\n EDITOR_OPEN_FAILED: \"EDITOR_OPEN_FAILED\",\n DATA_FLOW_DISABLED: \"DATA_FLOW_DISABLED\",\n DATA_FLOW_SOURCE_STALE: \"DATA_FLOW_SOURCE_STALE\",\n DATA_FLOW_ANALYSIS_CANCELLED: \"DATA_FLOW_ANALYSIS_CANCELLED\",\n AI_DISABLED: \"AI_DISABLED\",\n PROVIDER_NOT_CONFIGURED: \"PROVIDER_NOT_CONFIGURED\",\n PROVIDER_AUTH_FAILED: \"PROVIDER_AUTH_FAILED\",\n PROVIDER_PROTOCOL_UNSUPPORTED: \"PROVIDER_PROTOCOL_UNSUPPORTED\",\n MODEL_NOT_ALLOWED: \"MODEL_NOT_ALLOWED\",\n MODEL_TOOL_CALL_UNSUPPORTED: \"MODEL_TOOL_CALL_UNSUPPORTED\",\n PROVIDER_RATE_LIMITED: \"PROVIDER_RATE_LIMITED\",\n AGENT_BUSY: \"AGENT_BUSY\",\n AGENT_LIMIT_EXCEEDED: \"AGENT_LIMIT_EXCEEDED\",\n AGENT_CANCELLED: \"AGENT_CANCELLED\",\n WORKTREE_DIRTY: \"WORKTREE_DIRTY\",\n WORKTREE_NOT_REPOSITORY: \"WORKTREE_NOT_REPOSITORY\",\n WORKTREE_OPERATION_IN_PROGRESS: \"WORKTREE_OPERATION_IN_PROGRESS\",\n WORKTREE_CONFLICTED: \"WORKTREE_CONFLICTED\",\n WORKTREE_LOCAL_CHANGES_TOO_LARGE: \"WORKTREE_LOCAL_CHANGES_TOO_LARGE\",\n WORKTREE_UNTRACKED_UNSUPPORTED: \"WORKTREE_UNTRACKED_UNSUPPORTED\",\n WORKTREE_LOCAL_CHANGES_UNSUPPORTED: \"WORKTREE_LOCAL_CHANGES_UNSUPPORTED\",\n TOOL_DENIED: \"TOOL_DENIED\",\n TOOL_INPUT_INVALID: \"TOOL_INPUT_INVALID\",\n TOOL_ARGUMENTS_INVALID: \"TOOL_ARGUMENTS_INVALID\",\n TOOL_CALL_ID_CONFLICT: \"TOOL_CALL_ID_CONFLICT\",\n TOOL_PATH_DENIED: \"TOOL_PATH_DENIED\",\n PATCH_REJECTED: \"PATCH_REJECTED\",\n VALIDATION_FAILED: \"VALIDATION_FAILED\",\n APPLY_CONFLICT: \"APPLY_CONFLICT\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const;\n\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n","const INLINE_DATA_PATTERN = /data:[^\\s\"'<>]*;base64,[a-z0-9+/_=-]+/giu;\nconst BLOB_URL_PATTERN = /blob:[^\\s\"'<>]+/giu;\nconst BEARER_PATTERN = /\\bbearer\\s+[a-z0-9._~+/-]+=*/giu;\nconst URL_CREDENTIAL_PATTERN = /\\b(https?:\\/\\/)[^/\\s:@]+:[^/\\s@]+@/giu;\nconst SECRET_ASSIGNMENT_PATTERN =\n /\\b(authorization|cookie|set-cookie|api[-_]?key|(?:access[-_]?|refresh[-_]?|auth[-_]?)?token|secret|password|default[-_]?value|value)\\b(\\s*[:=]\\s*)(\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'|`(?:\\\\.|[^`\\\\\\r\\n])*`|[^\\s,;\"'<>]+)/giu;\nconst SENSITIVE_EXACT_NAMES = new Set([\n \"authorization\",\n \"cookie\",\n \"defaultvalue\",\n \"password\",\n \"setcookie\",\n \"value\",\n]);\nconst MAX_URL_CHARACTERS = 500;\n\nfunction compactName(name: string): string {\n return name.toLowerCase().replaceAll(/[-_:]/gu, \"\");\n}\n\nfunction truncate(value: string, maxCharacters: number): string {\n return value.length <= maxCharacters\n ? value\n : `${value.slice(0, Math.max(0, maxCharacters - 1))}…`;\n}\n\nexport function isSensitiveName(name: string): boolean {\n const compact = compactName(name);\n\n return (\n SENSITIVE_EXACT_NAMES.has(compact) ||\n compact.includes(\"apikey\") ||\n compact.includes(\"authorization\") ||\n compact.includes(\"secret\") ||\n compact.includes(\"token\")\n );\n}\n\nexport function redactSensitiveText(value: string): string {\n return value\n .replace(INLINE_DATA_PATTERN, \"[redacted inline data]\")\n .replace(BLOB_URL_PATTERN, \"[redacted blob URL]\")\n .replace(BEARER_PATTERN, \"Bearer [redacted]\")\n .replace(URL_CREDENTIAL_PATTERN, \"$1[redacted]@\")\n .replace(\n SECRET_ASSIGNMENT_PATTERN,\n (_match, name: string, separator: string, assignedValue: string) => {\n const quote = assignedValue.at(0);\n const quoted = quote === '\"' || quote === \"'\" || quote === \"`\";\n return `${name}${separator}${quoted ? quote : \"\"}[redacted]${quoted ? quote : \"\"}`;\n },\n );\n}\n\nfunction sanitizeParsedUrl(url: URL): string {\n url.username = \"\";\n url.password = \"\";\n\n for (const [name, value] of url.searchParams) {\n if (isSensitiveName(name)) {\n url.searchParams.set(name, \"[redacted]\");\n } else {\n url.searchParams.set(name, redactSensitiveText(value));\n }\n }\n\n if (/token|secret|authorization|api[-_]?key/iu.test(url.hash)) {\n url.hash = \"#[redacted]\";\n }\n\n return url.toString();\n}\n\nexport function sanitizeUrl(value: string, baseUrl: string): string {\n const trimmed = value.trim();\n\n if (/^(?:blob|data|javascript):/iu.test(trimmed)) {\n return \"[redacted URL]\";\n }\n\n const normalized = redactSensitiveText(trimmed);\n\n try {\n const parsed = new URL(normalized, baseUrl);\n const sanitized = sanitizeParsedUrl(parsed);\n const base = new URL(baseUrl);\n\n if (!/^[a-z][a-z\\d+.-]*:/iu.test(normalized) && parsed.origin === base.origin) {\n return `${parsed.pathname}${parsed.search}${parsed.hash}`;\n }\n\n return sanitized;\n } catch {\n return truncate(normalized, MAX_URL_CHARACTERS);\n }\n}\n","import type { CodeContext } from \"./code-context.js\";\nimport type { ReactContext, SourceRef } from \"./source-ref.js\";\nimport type { StyleContext } from \"./style-context.js\";\n\nexport interface PageContext {\n readonly url: string;\n readonly pathname: string;\n readonly title: string;\n readonly viewportWidth: number;\n readonly viewportHeight: number;\n readonly devicePixelRatio: number;\n}\n\nexport interface ElementContext {\n readonly tagName: string;\n readonly selector: string;\n readonly sanitizedHtml: string;\n readonly textPreview?: string;\n readonly role?: string;\n readonly rect: Readonly<{\n x: number;\n y: number;\n width: number;\n height: number;\n }>;\n}\n\n/** Protocol hard limit. Runtime configuration may choose a smaller limit. */\nexport const MAX_ANNOTATION_TARGETS = 20;\n\n/** Each target owns its requested change; the UI enforces the same bound. */\nexport const MAX_TARGET_INSTRUCTION_CHARACTERS = 2_000;\n\n/** Keeps the complete, atomic user intent within the prompt and request budgets. */\nexport const MAX_ANNOTATION_INSTRUCTION_CHARACTERS = 4_000;\n\nexport const SPOTPATCH_LOCALES = Object.freeze([\"en-US\", \"zh-CN\"] as const);\nexport type SpotPatchLocale = (typeof SPOTPATCH_LOCALES)[number];\nexport const SPOTPATCH_LOCALE_PREFERENCES = Object.freeze([\n \"auto\",\n ...SPOTPATCH_LOCALES,\n] as const);\nexport type SpotPatchLocalePreference = (typeof SPOTPATCH_LOCALE_PREFERENCES)[number];\n\nexport interface SpotTargetContext {\n readonly instruction: string;\n readonly page?: Readonly<PageContext>;\n readonly source: SourceRef;\n readonly react: ReactContext;\n readonly element: ElementContext;\n readonly styles: StyleContext;\n readonly code?: CodeContext;\n readonly warnings: readonly string[];\n}\n\nexport interface SpotAnnotation {\n readonly schemaVersion: 3;\n readonly id: string;\n readonly locale: SpotPatchLocale;\n readonly page: Readonly<PageContext>;\n readonly targets: readonly SpotTargetContext[];\n readonly createdAt: string;\n}\n","/**\n * Syntax names shared by the compiler and Node analyzer.\n *\n * These are recognition inputs, not support claims. An adapter still has to prove\n * the imported package/symbol before it can attribute a request.\n */\nexport const DATA_FLOW_QUERY_ADAPTER_MODULES = Object.freeze([\n \"@tanstack/react-query\",\n \"react-query\",\n] as const);\n\nexport const DATA_FLOW_QUERY_HOOK_NAMES = Object.freeze([\n \"useInfiniteQuery\",\n \"useMutation\",\n \"useQuery\",\n] as const);\n\nexport const DATA_FLOW_TRPC_CLIENT_FACTORY_NAMES = Object.freeze([\n \"createTRPCClient\",\n \"createTRPCProxyClient\",\n] as const);\n\nexport const DATA_FLOW_TRPC_PROXY_FACTORY_NAMES = Object.freeze([\n \"createTRPCNext\",\n \"createTRPCReact\",\n] as const);\n\nexport const DATA_FLOW_TRPC_ROOT_FACTORY_NAMES = Object.freeze([\n ...DATA_FLOW_TRPC_CLIENT_FACTORY_NAMES,\n ...DATA_FLOW_TRPC_PROXY_FACTORY_NAMES,\n \"createTRPCContext\",\n \"createTRPCOptionsProxy\",\n] as const);\n\nexport const DATA_FLOW_TRPC_REQUEST_METHODS = Object.freeze([\n \"infiniteQueryOptions\",\n \"mutate\",\n \"mutateAsync\",\n \"mutationOptions\",\n \"query\",\n \"queryOptions\",\n \"refetch\",\n \"subscribe\",\n \"subscriptionOptions\",\n \"useInfiniteQuery\",\n \"useMutation\",\n \"useQuery\",\n \"useSubscription\",\n \"useSuspenseInfiniteQuery\",\n \"useSuspenseQuery\",\n] as const);\n","import { z } from \"zod\";\n\nimport {\n DEFAULT_DATA_FLOW_LIMITS,\n type RuntimeDataFlowLimits,\n} from \"./data-flow-limits.js\";\nimport { DATA_FLOW_SCHEMA_VERSION } from \"./data-flow-version.js\";\n\nexport {\n DATA_FLOW_URL_QUERY_KEY_LIMIT,\n DEFAULT_DATA_FLOW_LIMITS,\n DEFAULT_RUNTIME_DATA_FLOW_LIMITS,\n type DataFlowLimits,\n type RuntimeDataFlowLimits,\n} from \"./data-flow-limits.js\";\nexport { DATA_FLOW_SCHEMA_VERSION } from \"./data-flow-version.js\";\n\nexport const DATA_FLOW_EXECUTION_STATES = Object.freeze([\n \"observed\",\n \"declared-not-observed\",\n \"not-applicable\",\n \"unknown\",\n] as const);\nexport const DATA_FLOW_PROOF_STATES = Object.freeze([\n \"proven\",\n \"candidate\",\n \"unavailable\",\n \"conflict\",\n] as const);\nexport const DATA_FLOW_ASSOCIATION_KINDS = Object.freeze([\n \"direct\",\n \"transitive\",\n \"upstream\",\n \"possible\",\n \"unassigned\",\n \"unknown\",\n] as const);\nexport const DATA_FLOW_FRESHNESS_STATES = Object.freeze([\n \"current\",\n \"stale-source\",\n \"stale-route\",\n \"expired\",\n] as const);\nexport const DATA_FLOW_DIAGNOSTIC_CODES = Object.freeze([\n \"DATA_FLOW_CAPABILITY_DISABLED\",\n \"DATA_FLOW_CAPABILITY_PRELUDE_UNAVAILABLE\",\n \"DATA_FLOW_CAPABILITY_UNSUPPORTED_FRAMEWORK\",\n \"DATA_FLOW_SOURCE_UNAVAILABLE\",\n \"DATA_FLOW_SOURCE_STALE\",\n \"DATA_FLOW_ANALYSIS_TIMEOUT\",\n \"DATA_FLOW_ANALYSIS_TRUNCATED\",\n \"DATA_FLOW_ANALYSIS_UNRESOLVED_CALL\",\n \"DATA_FLOW_OBSERVATION_UNASSIGNED\",\n \"DATA_FLOW_OBSERVATION_DROPPED\",\n \"DATA_FLOW_REDACTION_APPLIED\",\n \"DATA_FLOW_AI_DISABLED\",\n] as const);\n\nexport type ExecutionState = (typeof DATA_FLOW_EXECUTION_STATES)[number];\nexport type ProofState = (typeof DATA_FLOW_PROOF_STATES)[number];\nexport type AssociationKind = (typeof DATA_FLOW_ASSOCIATION_KINDS)[number];\nexport type FreshnessState = (typeof DATA_FLOW_FRESHNESS_STATES)[number];\nexport type DataFlowDiagnosticCode = (typeof DATA_FLOW_DIAGNOSTIC_CODES)[number];\n\nexport interface RuntimeDataFlowConfig {\n readonly enabled: boolean;\n readonly runtime: \"dispatch\";\n readonly limits: RuntimeDataFlowLimits;\n}\n\nexport interface DataFlowCapabilityReason {\n readonly code: DataFlowDiagnosticCode;\n readonly retryable: boolean;\n}\n\nexport interface DataFlowCapability {\n readonly enabled: boolean;\n readonly staticAnalysis: \"available\" | \"partial\" | \"unavailable\";\n readonly runtimeObservation: \"dispatch-only\";\n readonly responseShape: \"consumed-fields-only\";\n readonly aiAssistance: \"disabled\";\n readonly reasons: readonly DataFlowCapabilityReason[];\n}\n\nexport interface EvidenceSourceRef {\n readonly fileId: string;\n readonly displayPath: string;\n readonly line: number;\n readonly column: number;\n readonly sourceVersion: string;\n}\n\nexport interface EvidenceRef {\n readonly id: string;\n readonly kind:\n | \"source-anchor\"\n | \"import-resolution\"\n | \"symbol-edge\"\n | \"trigger-edge\"\n | \"call-edge\"\n | \"data-binding\"\n | \"adapter-rule\"\n | \"runtime-observation\"\n | \"runtime-reference\"\n | \"diagnostic\";\n readonly source?: EvidenceSourceRef;\n readonly adapter?: Readonly<{ id: string; version: string }>;\n readonly summaryKey: string;\n}\n\nexport interface DataFlowDiagnostic {\n readonly id: string;\n readonly code: DataFlowDiagnosticCode;\n readonly severity: \"info\" | \"warning\" | \"error\";\n readonly retryable: boolean;\n readonly evidenceIds: readonly string[];\n}\n\nexport interface SanitizedObservedUrl {\n readonly origin?: string;\n readonly pathname: string;\n readonly queryKeys: readonly string[];\n}\n\nexport interface DataParameter {\n readonly path: string;\n readonly position:\n \"path\" | \"query\" | \"body\" | \"header\" | \"cookie\" | \"variable\" | \"form\" | \"unknown\";\n readonly type?: string;\n readonly source?: string;\n readonly condition?: string;\n readonly sensitive: boolean;\n readonly valueState: \"not-collected\";\n readonly evidenceIds: readonly string[];\n}\n\nexport interface DataResponseDescriptor {\n readonly consumedFields: readonly string[];\n}\n\nexport interface RequestOrigin {\n readonly componentSourceId?: string;\n readonly triggerCallsiteId?: string;\n readonly requestCallsiteId: string;\n readonly sourceVersion: string;\n}\n\nexport interface DataDependency {\n readonly id: string;\n readonly kind: \"http\" | \"graphql\" | \"rpc\" | \"server-action\" | \"unknown\";\n readonly direction: \"read\" | \"write\" | \"read-write\" | \"unknown\";\n readonly execution: ExecutionState;\n readonly proof: ProofState;\n readonly association: AssociationKind;\n readonly method?: string;\n readonly operation?: string;\n readonly url?: SanitizedObservedUrl;\n readonly parameters: readonly DataParameter[];\n readonly response: DataResponseDescriptor;\n readonly origin?: RequestOrigin;\n readonly suppliedBindings: readonly string[];\n readonly locationIds: readonly string[];\n readonly evidenceIds: readonly string[];\n readonly observationIds: readonly string[];\n}\n\nexport interface NetworkObservation {\n readonly schemaVersion: typeof DATA_FLOW_SCHEMA_VERSION;\n readonly id: string;\n readonly pageEpoch: string;\n readonly routeEpoch: string;\n readonly requestCallsiteId?: string;\n readonly invocationId?: string;\n readonly componentSourceId?: string;\n readonly triggerCallsiteId?: string;\n readonly sourceVersion?: string;\n readonly transport: \"fetch\" | \"trpc\" | \"xhr\";\n readonly method: string;\n readonly operation?: string;\n readonly url: SanitizedObservedUrl;\n readonly outcome: \"dispatched\";\n readonly freshness: FreshnessState;\n readonly diagnosticIds: readonly string[];\n}\n\nexport interface AnalysisBaseline {\n readonly registryEpoch: string;\n readonly analyzerVersion: string;\n readonly adapterSetHash: string;\n readonly analyzedSourceVersions: readonly string[];\n}\n\nexport interface ReportCompleteness {\n readonly complete: boolean;\n readonly visitedModules: number;\n readonly visitedCallsites: number;\n readonly frontierCount: number;\n readonly truncatedBy?: \"depth\" | \"modules\" | \"callsites\" | \"bytes\" | \"timeout\";\n}\n\nexport interface ComponentIdentity {\n readonly componentSourceId?: string;\n readonly displayName?: string;\n readonly source: EvidenceSourceRef;\n}\n\nexport interface ComponentDataFlowReport {\n readonly schemaVersion: typeof DATA_FLOW_SCHEMA_VERSION;\n readonly reportId: string;\n readonly baseline: AnalysisBaseline;\n readonly capability: DataFlowCapability;\n readonly component: ComponentIdentity;\n readonly dependencies: readonly DataDependency[];\n readonly evidence: readonly EvidenceRef[];\n readonly diagnostics: readonly DataFlowDiagnostic[];\n readonly completeness: ReportCompleteness;\n}\n\nexport interface PageDataFlowReport {\n readonly schemaVersion: typeof DATA_FLOW_SCHEMA_VERSION;\n readonly reportId: string;\n readonly baseline: AnalysisBaseline;\n readonly capability: DataFlowCapability;\n readonly dependencies: readonly DataDependency[];\n readonly evidence: readonly EvidenceRef[];\n readonly diagnostics: readonly DataFlowDiagnostic[];\n readonly completeness: ReportCompleteness;\n}\n\nconst boundedText = (maximum: number): z.ZodString =>\n z.string().trim().min(1).max(maximum);\nconst opaqueIdSchema = boundedText(128).regex(/^[A-Za-z0-9_-]+$/u);\nconst diagnosticCodeSchema = z.enum(DATA_FLOW_DIAGNOSTIC_CODES);\nconst evidenceSourceSchema = z.strictObject({\n fileId: opaqueIdSchema,\n displayPath: boundedText(1_024),\n line: z.number().int().positive(),\n column: z.number().int().positive(),\n sourceVersion: opaqueIdSchema,\n});\n\nconst sanitizedObservedUrlSchema = z.strictObject({\n origin: boundedText(512).optional(),\n pathname: boundedText(2_048),\n queryKeys: z.array(boundedText(256)).max(DEFAULT_DATA_FLOW_LIMITS.reportMaxFields),\n});\nconst dataParameterSchema = z.strictObject({\n path: boundedText(1_024),\n position: z.enum([\n \"path\",\n \"query\",\n \"body\",\n \"header\",\n \"cookie\",\n \"variable\",\n \"form\",\n \"unknown\",\n ]),\n type: boundedText(512).optional(),\n source: boundedText(1_024).optional(),\n condition: boundedText(1_024).optional(),\n sensitive: z.boolean(),\n valueState: z.literal(\"not-collected\"),\n evidenceIds: z.array(opaqueIdSchema).max(DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence),\n});\nconst dataResponseSchema = z.strictObject({\n consumedFields: z\n .array(boundedText(1_024))\n .max(DEFAULT_DATA_FLOW_LIMITS.reportMaxFields),\n});\nconst requestOriginSchema = z.strictObject({\n componentSourceId: opaqueIdSchema.optional(),\n triggerCallsiteId: opaqueIdSchema.optional(),\n requestCallsiteId: opaqueIdSchema,\n sourceVersion: opaqueIdSchema,\n});\nconst capabilityReasonSchema = z.strictObject({\n code: diagnosticCodeSchema,\n retryable: z.boolean(),\n});\nconst capabilitySchema = z.strictObject({\n enabled: z.boolean(),\n staticAnalysis: z.enum([\"available\", \"partial\", \"unavailable\"]),\n runtimeObservation: z.literal(\"dispatch-only\"),\n responseShape: z.literal(\"consumed-fields-only\"),\n aiAssistance: z.literal(\"disabled\"),\n reasons: z\n .array(capabilityReasonSchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.capabilityMaxReasons),\n});\nconst evidenceSchema = z.strictObject({\n id: opaqueIdSchema,\n kind: z.enum([\n \"source-anchor\",\n \"import-resolution\",\n \"symbol-edge\",\n \"trigger-edge\",\n \"call-edge\",\n \"data-binding\",\n \"adapter-rule\",\n \"runtime-observation\",\n \"runtime-reference\",\n \"diagnostic\",\n ]),\n source: evidenceSourceSchema.optional(),\n adapter: z\n .strictObject({ id: boundedText(128), version: boundedText(64) })\n .optional(),\n summaryKey: boundedText(256),\n});\nconst diagnosticSchema = z.strictObject({\n id: opaqueIdSchema,\n code: diagnosticCodeSchema,\n severity: z.enum([\"info\", \"warning\", \"error\"]),\n retryable: z.boolean(),\n evidenceIds: z.array(opaqueIdSchema).max(DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence),\n});\nconst baselineSchema = z.strictObject({\n registryEpoch: opaqueIdSchema,\n analyzerVersion: boundedText(64),\n adapterSetHash: boundedText(128),\n analyzedSourceVersions: z\n .array(opaqueIdSchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.graphMaxModules),\n});\nconst completenessSchema = z.strictObject({\n complete: z.boolean(),\n visitedModules: z.number().int().nonnegative(),\n visitedCallsites: z.number().int().nonnegative(),\n frontierCount: z.number().int().nonnegative(),\n truncatedBy: z.enum([\"depth\", \"modules\", \"callsites\", \"bytes\", \"timeout\"]).optional(),\n});\n\nexport const dataDependencySchema = z.strictObject({\n id: opaqueIdSchema,\n kind: z.enum([\"http\", \"graphql\", \"rpc\", \"server-action\", \"unknown\"]),\n direction: z.enum([\"read\", \"write\", \"read-write\", \"unknown\"]),\n execution: z.enum(DATA_FLOW_EXECUTION_STATES),\n proof: z.enum(DATA_FLOW_PROOF_STATES),\n association: z.enum(DATA_FLOW_ASSOCIATION_KINDS),\n method: boundedText(32).optional(),\n operation: boundedText(512).optional(),\n url: sanitizedObservedUrlSchema.optional(),\n parameters: z\n .array(dataParameterSchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.reportMaxFields),\n response: dataResponseSchema,\n origin: requestOriginSchema.optional(),\n suppliedBindings: z\n .array(boundedText(1_024))\n .max(DEFAULT_DATA_FLOW_LIMITS.graphMaxCallsites),\n locationIds: z.array(opaqueIdSchema).max(DEFAULT_DATA_FLOW_LIMITS.graphMaxCallsites),\n evidenceIds: z.array(opaqueIdSchema).max(DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence),\n observationIds: z\n .array(opaqueIdSchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.observationMaxEntries),\n});\n\nexport const networkObservationSchema = z.strictObject({\n schemaVersion: z.literal(DATA_FLOW_SCHEMA_VERSION),\n id: opaqueIdSchema,\n pageEpoch: opaqueIdSchema,\n routeEpoch: opaqueIdSchema,\n requestCallsiteId: opaqueIdSchema.optional(),\n invocationId: opaqueIdSchema.optional(),\n componentSourceId: opaqueIdSchema.optional(),\n triggerCallsiteId: opaqueIdSchema.optional(),\n sourceVersion: opaqueIdSchema.optional(),\n transport: z.enum([\"fetch\", \"trpc\", \"xhr\"]),\n method: boundedText(32),\n operation: boundedText(512).optional(),\n url: sanitizedObservedUrlSchema,\n outcome: z.literal(\"dispatched\"),\n freshness: z.enum(DATA_FLOW_FRESHNESS_STATES),\n diagnosticIds: z\n .array(opaqueIdSchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence),\n});\n\nconst componentIdentitySchema = z.strictObject({\n componentSourceId: opaqueIdSchema.optional(),\n displayName: boundedText(256).optional(),\n source: evidenceSourceSchema,\n});\n\nexport const componentDataFlowReportSchema = z.strictObject({\n schemaVersion: z.literal(DATA_FLOW_SCHEMA_VERSION),\n reportId: opaqueIdSchema,\n baseline: baselineSchema,\n capability: capabilitySchema,\n component: componentIdentitySchema,\n dependencies: z\n .array(dataDependencySchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.graphMaxCallsites),\n evidence: z.array(evidenceSchema).max(DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence),\n diagnostics: z\n .array(diagnosticSchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.reportMaxDiagnostics),\n completeness: completenessSchema,\n});\n\nexport const pageDataFlowReportSchema = z.strictObject({\n schemaVersion: z.literal(DATA_FLOW_SCHEMA_VERSION),\n reportId: opaqueIdSchema,\n baseline: baselineSchema,\n capability: capabilitySchema,\n dependencies: z\n .array(dataDependencySchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.graphMaxCallsites),\n evidence: z.array(evidenceSchema).max(DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence),\n diagnostics: z\n .array(diagnosticSchema)\n .max(DEFAULT_DATA_FLOW_LIMITS.reportMaxDiagnostics),\n completeness: completenessSchema,\n});\n\nexport const runtimeDataFlowConfigSchema: z.ZodType<RuntimeDataFlowConfig> =\n z.strictObject({\n enabled: z.boolean(),\n runtime: z.literal(\"dispatch\"),\n limits: z.strictObject({\n observationMaxEntries: z.number().int().positive(),\n observationMaxBytes: z.number().int().positive(),\n observationTtlMs: z.number().int().positive(),\n reportMaxBytes: z.number().int().positive(),\n }),\n });\n","export const DEFAULT_DATA_FLOW_LIMITS = Object.freeze({\n observationMaxEntries: 100,\n observationMaxBytes: 256 * 1_024,\n observationTtlMs: 300_000,\n protocolRequestMaxBytes: 32 * 1_024,\n reportMaxBytes: 128 * 1_024,\n reportMaxEvidence: 200,\n reportMaxDiagnostics: 256,\n capabilityMaxReasons: 64,\n graphMaxDepth: 5,\n graphMaxModules: 50,\n graphMaxCallsites: 100,\n analysisTimeoutMs: 2_000,\n reportMaxFields: 100,\n} as const);\n\nexport type DataFlowLimits = Readonly<{\n [Key in keyof typeof DEFAULT_DATA_FLOW_LIMITS]: number;\n}>;\n\nexport const DATA_FLOW_URL_QUERY_KEY_LIMIT = DEFAULT_DATA_FLOW_LIMITS.reportMaxFields;\n\nexport const DEFAULT_RUNTIME_DATA_FLOW_LIMITS = Object.freeze({\n observationMaxEntries: DEFAULT_DATA_FLOW_LIMITS.observationMaxEntries,\n observationMaxBytes: DEFAULT_DATA_FLOW_LIMITS.observationMaxBytes,\n observationTtlMs: DEFAULT_DATA_FLOW_LIMITS.observationTtlMs,\n reportMaxBytes: DEFAULT_DATA_FLOW_LIMITS.reportMaxBytes,\n});\n\nexport type RuntimeDataFlowLimits = Readonly<{\n [Key in keyof typeof DEFAULT_RUNTIME_DATA_FLOW_LIMITS]: number;\n}>;\n","export const DATA_FLOW_SCHEMA_VERSION = 1 as const;\n","import {\n type ComponentDataFlowReport,\n type DataDependency,\n type DataFlowDiagnostic,\n type DataFlowDiagnosticCode,\n type EvidenceRef,\n type PageDataFlowReport,\n type ReportCompleteness,\n} from \"./data-flow.js\";\nimport { DEFAULT_DATA_FLOW_LIMITS } from \"./data-flow-limits.js\";\n\ntype DataFlowReport = ComponentDataFlowReport | PageDataFlowReport;\n\nexport interface DataFlowCollectionLimitOptions {\n readonly forceTruncation?: boolean;\n readonly maximumDependencies?: number;\n readonly mode?: \"analysis\" | \"observation\";\n readonly truncatedBy?: ReportCompleteness[\"truncatedBy\"];\n}\n\ninterface LimitedDependency {\n readonly dependency: DataDependency;\n readonly trimmed: boolean;\n}\n\nfunction prefix<T>(values: readonly T[], maximum: number): readonly T[] {\n return Object.freeze(values.slice(0, Math.max(0, maximum)));\n}\n\nfunction limitDependency(dependency: DataDependency): LimitedDependency {\n const queryKeys =\n dependency.url === undefined\n ? undefined\n : prefix(dependency.url.queryKeys, DEFAULT_DATA_FLOW_LIMITS.reportMaxFields);\n const parameters = prefix(\n dependency.parameters,\n DEFAULT_DATA_FLOW_LIMITS.reportMaxFields,\n ).map((parameter) =>\n Object.freeze({\n ...parameter,\n evidenceIds: prefix(\n parameter.evidenceIds,\n DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence,\n ),\n }),\n );\n const consumedFields = prefix(\n dependency.response.consumedFields,\n DEFAULT_DATA_FLOW_LIMITS.reportMaxFields,\n );\n const suppliedBindings = prefix(\n dependency.suppliedBindings,\n DEFAULT_DATA_FLOW_LIMITS.graphMaxCallsites,\n );\n const locationIds = prefix(\n dependency.locationIds,\n DEFAULT_DATA_FLOW_LIMITS.graphMaxCallsites,\n );\n const evidenceIds = prefix(\n dependency.evidenceIds,\n DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence,\n );\n const observationIds = prefix(\n dependency.observationIds,\n DEFAULT_DATA_FLOW_LIMITS.observationMaxEntries,\n );\n const trimmed =\n queryKeys?.length !== dependency.url?.queryKeys.length ||\n parameters.length !== dependency.parameters.length ||\n parameters.some(\n (parameter, index) =>\n parameter.evidenceIds.length !==\n dependency.parameters[index]?.evidenceIds.length,\n ) ||\n consumedFields.length !== dependency.response.consumedFields.length ||\n suppliedBindings.length !== dependency.suppliedBindings.length ||\n locationIds.length !== dependency.locationIds.length ||\n evidenceIds.length !== dependency.evidenceIds.length ||\n observationIds.length !== dependency.observationIds.length;\n\n if (!trimmed) return Object.freeze({ dependency, trimmed: false });\n\n return Object.freeze({\n dependency: Object.freeze({\n ...dependency,\n ...(dependency.url === undefined\n ? {}\n : {\n url: Object.freeze({\n ...dependency.url,\n queryKeys: queryKeys ?? Object.freeze([]),\n }),\n }),\n parameters: Object.freeze(parameters),\n response: Object.freeze({ consumedFields }),\n suppliedBindings,\n locationIds,\n evidenceIds,\n observationIds,\n }),\n trimmed: true,\n });\n}\n\nfunction referencedEvidenceIds(\n dependencies: readonly DataDependency[],\n diagnostics: readonly DataFlowDiagnostic[],\n): readonly string[] {\n return Object.freeze([\n ...new Set([\n ...dependencies.flatMap((dependency) => [\n ...dependency.evidenceIds,\n ...dependency.parameters.flatMap((parameter) => parameter.evidenceIds),\n ]),\n ...diagnostics.flatMap((diagnostic) => diagnostic.evidenceIds),\n ]),\n ]);\n}\n\nfunction prioritizeEvidence(\n evidence: readonly EvidenceRef[],\n referencedIds: readonly string[],\n retainUnreferenced: boolean,\n): readonly EvidenceRef[] {\n const byId = new Map(evidence.map((entry) => [entry.id, entry] as const));\n const ordered: EvidenceRef[] = [];\n const retained = new Set<string>();\n\n for (const id of referencedIds) {\n const entry = byId.get(id);\n if (entry !== undefined && !retained.has(id)) {\n ordered.push(entry);\n retained.add(id);\n }\n }\n if (retainUnreferenced) {\n for (const entry of evidence) {\n if (!retained.has(entry.id)) ordered.push(entry);\n }\n }\n\n return prefix(ordered, DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence);\n}\n\nfunction pruneEvidenceReferences(\n dependency: DataDependency,\n retainedIds: ReadonlySet<string>,\n): DataDependency {\n return Object.freeze({\n ...dependency,\n parameters: Object.freeze(\n dependency.parameters.map((parameter) =>\n Object.freeze({\n ...parameter,\n evidenceIds: Object.freeze(\n parameter.evidenceIds.filter((id) => retainedIds.has(id)),\n ),\n }),\n ),\n ),\n evidenceIds: Object.freeze(\n dependency.evidenceIds.filter((id) => retainedIds.has(id)),\n ),\n });\n}\n\nfunction truncationCode(mode: \"analysis\" | \"observation\"): DataFlowDiagnosticCode {\n return mode === \"analysis\"\n ? \"DATA_FLOW_ANALYSIS_TRUNCATED\"\n : \"DATA_FLOW_OBSERVATION_DROPPED\";\n}\n\nexport function limitDataFlowReportCollections(\n report: ComponentDataFlowReport,\n options?: DataFlowCollectionLimitOptions,\n): ComponentDataFlowReport;\nexport function limitDataFlowReportCollections(\n report: PageDataFlowReport,\n options?: DataFlowCollectionLimitOptions,\n): PageDataFlowReport;\nexport function limitDataFlowReportCollections(\n report: DataFlowReport,\n options: DataFlowCollectionLimitOptions = {},\n): DataFlowReport {\n const maximumDependencies = Math.min(\n Math.max(\n 0,\n options.maximumDependencies ?? DEFAULT_DATA_FLOW_LIMITS.graphMaxCallsites,\n ),\n DEFAULT_DATA_FLOW_LIMITS.graphMaxCallsites,\n );\n const dependencyResults = prefix(report.dependencies, maximumDependencies).map(\n limitDependency,\n );\n const dependencies = dependencyResults.map(({ dependency }) => dependency);\n const analyzedSourceVersions = prefix(\n report.baseline.analyzedSourceVersions,\n DEFAULT_DATA_FLOW_LIMITS.graphMaxModules,\n );\n const collectionTrimmed =\n report.dependencies.length > dependencies.length ||\n dependencyResults.some(({ trimmed }) => trimmed) ||\n report.baseline.analyzedSourceVersions.length > analyzedSourceVersions.length ||\n report.capability.reasons.length > DEFAULT_DATA_FLOW_LIMITS.capabilityMaxReasons ||\n report.evidence.length > DEFAULT_DATA_FLOW_LIMITS.reportMaxEvidence ||\n report.diagnostics.length > DEFAULT_DATA_FLOW_LIMITS.reportMaxDiagnostics;\n const truncated = options.forceTruncation === true || collectionTrimmed;\n if (!truncated) return report;\n\n const mode = options.mode ?? \"analysis\";\n const code = truncationCode(mode);\n const diagnosticId = `${report.reportId}_collection_${mode}`;\n const reasons = Object.freeze([\n ...report.capability.reasons\n .filter((reason) => reason.code !== code)\n .slice(0, DEFAULT_DATA_FLOW_LIMITS.capabilityMaxReasons - 1),\n Object.freeze({ code, retryable: false }),\n ]);\n const diagnostics = Object.freeze([\n ...report.diagnostics\n .filter((diagnostic) => diagnostic.id !== diagnosticId)\n .slice(0, DEFAULT_DATA_FLOW_LIMITS.reportMaxDiagnostics - 1),\n Object.freeze({\n id: diagnosticId,\n code,\n severity: \"warning\" as const,\n retryable: false,\n evidenceIds: Object.freeze([]),\n }),\n ]);\n const referencedIds = referencedEvidenceIds(dependencies, diagnostics);\n const evidence = prioritizeEvidence(\n report.evidence,\n referencedIds,\n report.dependencies.length === dependencies.length,\n );\n const retainedEvidenceIds = new Set(evidence.map(({ id }) => id));\n const prunedDependencies = Object.freeze(\n dependencies.map((dependency) =>\n pruneEvidenceReferences(dependency, retainedEvidenceIds),\n ),\n );\n const prunedDiagnostics = Object.freeze(\n diagnostics.map((diagnostic) =>\n Object.freeze({\n ...diagnostic,\n evidenceIds: Object.freeze(\n diagnostic.evidenceIds.filter((id) => retainedEvidenceIds.has(id)),\n ),\n }),\n ),\n );\n const removedDependencies = report.dependencies.length - dependencies.length;\n const removedModules =\n report.baseline.analyzedSourceVersions.length - analyzedSourceVersions.length;\n const derivedTruncation: ReportCompleteness[\"truncatedBy\"] =\n removedModules > 0 && removedDependencies === 0 ? \"modules\" : \"callsites\";\n\n return Object.freeze({\n ...report,\n baseline: Object.freeze({\n ...report.baseline,\n analyzedSourceVersions,\n }),\n capability: Object.freeze({\n ...report.capability,\n ...(mode === \"analysis\" && report.capability.staticAnalysis === \"available\"\n ? { staticAnalysis: \"partial\" as const }\n : {}),\n reasons,\n }),\n dependencies: prunedDependencies,\n evidence,\n diagnostics: prunedDiagnostics,\n ...(mode === \"analysis\"\n ? {\n completeness: Object.freeze({\n ...report.completeness,\n complete: false,\n frontierCount:\n report.completeness.frontierCount +\n removedDependencies +\n removedModules +\n (collectionTrimmed && removedDependencies === 0 && removedModules === 0\n ? 1\n : 0),\n truncatedBy:\n options.truncatedBy ??\n report.completeness.truncatedBy ??\n derivedTruncation,\n }),\n }\n : {}),\n });\n}\n","import { z } from \"zod\";\n\nimport { SPOTPATCH_API_BASE } from \"../protocol/endpoints.js\";\nimport { MAX_ANNOTATION_TARGETS, SPOTPATCH_LOCALE_PREFERENCES } from \"./annotation.js\";\nimport { SPOTPATCH_EDITOR_PREFERENCES } from \"./editor.js\";\nimport type { ContextBudget } from \"./code-context.js\";\nimport { AGENT_APPLY_MODES, type RuntimeAiConfig } from \"./agent.js\";\nimport {\n runtimeDataFlowConfigSchema,\n type RuntimeDataFlowConfig,\n} from \"./data-flow.js\";\n\nexport const SPOTPATCH_NEXT_BUNDLERS = Object.freeze([\"turbopack\", \"webpack\"] as const);\nexport const SPOTPATCH_NEXT_ROUTER_KINDS = Object.freeze([\n \"app\",\n \"pages\",\n \"hybrid\",\n] as const);\n\nexport type SpotPatchNextBundler = (typeof SPOTPATCH_NEXT_BUNDLERS)[number];\nexport type SpotPatchNextRouterKind = (typeof SPOTPATCH_NEXT_ROUTER_KINDS)[number];\n\ninterface RuntimeConfigBase {\n readonly apiBase: typeof SPOTPATCH_API_BASE;\n readonly ai: RuntimeAiConfig;\n readonly budget: Readonly<ContextBudget>;\n readonly dataFlow: RuntimeDataFlowConfig;\n readonly debug: boolean;\n readonly editor: (typeof SPOTPATCH_EDITOR_PREFERENCES)[number];\n readonly frameworkVersion: string;\n readonly locale: (typeof SPOTPATCH_LOCALE_PREFERENCES)[number];\n readonly maxTargets: number;\n readonly redact: boolean;\n readonly sessionId: string;\n readonly sessionToken: string;\n readonly shortcut: string;\n readonly spotPatchVersion: string;\n}\n\nexport type SpotPatchRuntimeConfig = RuntimeConfigBase &\n (\n | Readonly<{\n framework: \"vite\";\n }>\n | Readonly<{\n bundler: SpotPatchNextBundler;\n framework: \"next\";\n routerKind: SpotPatchNextRouterKind;\n }>\n );\n\nconst boundedText = (maximum: number): z.ZodString =>\n z.string().trim().min(1).max(maximum);\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/u);\nconst runtimeAiModelSchema = z.strictObject({\n id: profileIdSchema,\n label: boundedText(100),\n});\nconst runtimeAiProviderSchema = z\n .strictObject({\n id: profileIdSchema,\n label: boundedText(100),\n protocol: z.enum([\"responses\", \"chat-completions\"]),\n models: z.array(runtimeAiModelSchema).min(1).max(64),\n defaultModel: profileIdSchema,\n })\n .refine(\n ({ defaultModel, models }) =>\n models.some(({ id }) => id === defaultModel) &&\n new Set(models.map(({ id }) => id)).size === models.length,\n { message: \"Runtime AI model profiles are inconsistent.\" },\n );\nconst runtimeAiConfigSchema = z.discriminatedUnion(\"enabled\", [\n z.strictObject({ enabled: z.literal(false) }),\n z\n .strictObject({\n enabled: z.literal(true),\n providers: z.array(runtimeAiProviderSchema).min(1).max(32),\n defaultProvider: profileIdSchema,\n applyMode: z.enum(AGENT_APPLY_MODES),\n })\n .refine(\n ({ defaultProvider, providers }) =>\n providers.some(({ id }) => id === defaultProvider) &&\n new Set(providers.map(({ id }) => id)).size === providers.length,\n { message: \"Runtime AI provider profiles are inconsistent.\" },\n ),\n]);\nconst positiveInteger = z.number().int().positive();\nconst runtimeConfigBaseShape = {\n apiBase: z.literal(SPOTPATCH_API_BASE),\n ai: runtimeAiConfigSchema,\n budget: z.strictObject({\n totalCharacters: positiveInteger,\n domCharacters: positiveInteger,\n cssCharacters: positiveInteger,\n codeCharacters: positiveInteger,\n maxCodeLines: positiveInteger,\n maxComponentDepth: positiveInteger,\n }),\n debug: z.boolean(),\n dataFlow: runtimeDataFlowConfigSchema,\n editor: z.enum(SPOTPATCH_EDITOR_PREFERENCES),\n frameworkVersion: boundedText(64),\n locale: z.enum(SPOTPATCH_LOCALE_PREFERENCES),\n maxTargets: z.number().int().min(1).max(MAX_ANNOTATION_TARGETS),\n redact: z.boolean(),\n sessionId: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u),\n sessionToken: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u),\n shortcut: boundedText(128),\n spotPatchVersion: boundedText(64),\n} as const;\n\nexport const runtimeConfigSchema: z.ZodType<SpotPatchRuntimeConfig> =\n z.discriminatedUnion(\"framework\", [\n z.strictObject({\n ...runtimeConfigBaseShape,\n framework: z.literal(\"vite\"),\n }),\n z.strictObject({\n ...runtimeConfigBaseShape,\n bundler: z.enum(SPOTPATCH_NEXT_BUNDLERS),\n framework: z.literal(\"next\"),\n routerKind: z.enum(SPOTPATCH_NEXT_ROUTER_KINDS),\n }),\n ]);\n","export const SPOTPATCH_API_BASE = \"/__spotpatch/v1\" as const;\nexport const SPOTPATCH_TOKEN_HEADER = \"X-SpotPatch-Token\" as const;\n\nexport const SPOTPATCH_ENDPOINTS = Object.freeze({\n bootstrap: `${SPOTPATCH_API_BASE}/bootstrap`,\n sourceContext: `${SPOTPATCH_API_BASE}/source-context`,\n openEditor: `${SPOTPATCH_API_BASE}/open-editor`,\n dataFlowComponentReport: `${SPOTPATCH_API_BASE}/data-flow/component-report`,\n dataFlowPageReport: `${SPOTPATCH_API_BASE}/data-flow/page-report`,\n agentCapability: `${SPOTPATCH_API_BASE}/agent/capability`,\n agentWorkspaceHealth: `${SPOTPATCH_API_BASE}/agent/workspace-health`,\n agentJobs: `${SPOTPATCH_API_BASE}/agent/jobs`,\n});\n\nexport type AgentJobAction = \"events\" | \"result\" | \"cancel\" | \"apply\" | \"revert\";\n\nexport function getAgentJobEndpoint(jobId: string, action: AgentJobAction): string {\n return `${SPOTPATCH_ENDPOINTS.agentJobs}/${encodeURIComponent(jobId)}/${action}`;\n}\n","export const SPOTPATCH_EDITOR_PREFERENCES = [\"auto\", \"vscode\", \"cursor\"] as const;\n\nexport type SpotPatchEditorPreference = (typeof SPOTPATCH_EDITOR_PREFERENCES)[number];\n\nexport interface EditorOpenResult {\n readonly editor: SpotPatchEditorPreference;\n}\n","import type { ErrorCode } from \"../errors/error-code.js\";\n\nexport type AiProviderProtocol = \"responses\" | \"chat-completions\";\nexport type AiProviderAuthentication = \"bearer\" | \"x-api-key\";\nexport const AGENT_APPLY_MODES = Object.freeze([\n \"review\",\n \"auto\",\n \"trusted-auto\",\n] as const);\nexport type AgentApplyMode = (typeof AGENT_APPLY_MODES)[number];\nexport type AgentWorkingTreeMode = \"require-clean\" | \"include-local-changes\";\n\nexport interface AiModelProfile {\n readonly label: string;\n readonly model: string;\n}\n\nexport interface OpenAICompatibleProviderOptions {\n readonly type: \"openai-compatible\";\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly authentication?: AiProviderAuthentication;\n readonly baseURL: string;\n readonly apiKeyEnv: string;\n readonly models: Readonly<Record<string, AiModelProfile>>;\n readonly defaultModel: string;\n}\n\nexport interface AgentCheckDefinition {\n readonly label: string;\n readonly command: string;\n readonly args?: readonly string[];\n readonly required?: boolean;\n readonly timeoutMs?: number;\n}\n\nexport interface AgentLimits {\n readonly maxTurns: number;\n readonly maxToolCalls: number;\n readonly maxChangedFiles: number;\n readonly maxDiffBytes: number;\n readonly maxReadBytesPerFile: number;\n readonly maxToolOutputCharacters: number;\n readonly maxProviderResponseBytes: number;\n readonly providerConnectTimeoutMs: number;\n readonly providerFirstByteTimeoutMs: number;\n readonly providerIdleTimeoutMs: number;\n readonly checkTimeoutMs: number;\n readonly jobTimeoutMs: number;\n}\n\nexport const DEFAULT_AGENT_LIMITS = Object.freeze({\n maxTurns: 20,\n maxToolCalls: 80,\n maxChangedFiles: 20,\n maxDiffBytes: 512_000,\n maxReadBytesPerFile: 256_000,\n maxToolOutputCharacters: 40_000,\n maxProviderResponseBytes: 2_000_000,\n providerConnectTimeoutMs: 15_000,\n providerFirstByteTimeoutMs: 30_000,\n providerIdleTimeoutMs: 60_000,\n checkTimeoutMs: 120_000,\n jobTimeoutMs: 600_000,\n} satisfies AgentLimits);\n\nexport interface AiExecutionOptions {\n readonly isolation?: \"git-worktree\";\n readonly applyMode?: AgentApplyMode;\n readonly checks?: Readonly<Record<string, AgentCheckDefinition>>;\n readonly limits?: Partial<AgentLimits>;\n}\n\nexport interface AiOptions {\n readonly providers: Readonly<Record<string, OpenAICompatibleProviderOptions>>;\n readonly defaultProvider: string;\n readonly execution?: AiExecutionOptions;\n}\n\nexport interface ResolvedAiModelProfile extends AiModelProfile {\n readonly id: string;\n}\n\nexport interface ResolvedOpenAICompatibleProviderOptions {\n readonly id: string;\n readonly type: \"openai-compatible\";\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly authentication: AiProviderAuthentication;\n readonly baseURL: string;\n readonly apiKeyEnv: string;\n readonly models: Readonly<Record<string, ResolvedAiModelProfile>>;\n readonly defaultModel: string;\n}\n\nexport interface ResolvedAgentCheckDefinition {\n readonly id: string;\n readonly label: string;\n readonly command: string;\n readonly args: readonly string[];\n readonly required: boolean;\n readonly timeoutMs: number;\n}\n\nexport interface ResolvedAiExecutionOptions {\n readonly isolation: \"git-worktree\";\n readonly applyMode: AgentApplyMode;\n readonly checks: Readonly<Record<string, ResolvedAgentCheckDefinition>>;\n readonly limits: Readonly<AgentLimits>;\n}\n\nexport interface ResolvedAiOptions {\n readonly providers: Readonly<Record<string, ResolvedOpenAICompatibleProviderOptions>>;\n readonly defaultProvider: string;\n readonly execution: ResolvedAiExecutionOptions;\n}\n\nexport interface RuntimeAiModelProfile {\n readonly id: string;\n readonly label: string;\n}\n\nexport interface RuntimeAiProviderProfile {\n readonly id: string;\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly models: readonly RuntimeAiModelProfile[];\n readonly defaultModel: string;\n}\n\nexport type RuntimeAiConfig =\n | Readonly<{ enabled: false }>\n | Readonly<{\n enabled: true;\n providers: readonly RuntimeAiProviderProfile[];\n defaultProvider: string;\n applyMode: AgentApplyMode;\n }>;\n\nexport const AGENT_JOB_STATUSES = Object.freeze([\n \"queued\",\n \"preparing\",\n \"running\",\n \"validating\",\n \"awaiting-review\",\n \"applying\",\n \"applied\",\n \"completed\",\n \"cancelling\",\n \"cancelled\",\n \"reverting\",\n \"reverted\",\n \"failed\",\n] as const);\n\nexport type AgentJobStatus = (typeof AGENT_JOB_STATUSES)[number];\n\nexport const AGENT_CAPABILITY_STATES = Object.freeze([\n \"unknown\",\n \"probing\",\n \"agent-ready\",\n \"prompt-only\",\n \"unavailable\",\n] as const);\n\nexport type AgentCapabilityState = (typeof AGENT_CAPABILITY_STATES)[number];\n\nexport interface AgentCapabilitySnapshot {\n readonly providerProfileId: string;\n readonly providerLabel: string;\n readonly modelProfileId: string;\n readonly modelLabel: string;\n readonly protocol: AiProviderProtocol;\n readonly state: AgentCapabilityState;\n readonly authenticated: boolean;\n readonly modelAvailable: boolean;\n readonly toolCalling: boolean;\n readonly toolResultContinuation: boolean;\n readonly streaming: boolean;\n readonly checkedAt?: string;\n readonly errorCode?: ErrorCode;\n}\n\nexport const AGENT_WORKSPACE_STATES = Object.freeze([\n \"ready\",\n \"consent-required\",\n \"blocked\",\n] as const);\n\nexport const AGENT_WORKSPACE_SNAPSHOT_LIMITS = Object.freeze({\n maxUntrackedFiles: 1_000,\n maxUntrackedBytes: 20 * 1024 * 1024,\n});\n\nexport type AgentWorkspaceState = (typeof AGENT_WORKSPACE_STATES)[number];\n\nexport interface AgentWorkspaceChangeSummary {\n readonly staged: number;\n readonly unstaged: number;\n readonly untracked: number;\n readonly conflicted: number;\n readonly total: number;\n}\n\nexport interface AgentWorkspaceHealthSnapshot {\n readonly state: AgentWorkspaceState;\n readonly checkedAt: string;\n readonly changes: AgentWorkspaceChangeSummary;\n readonly canIncludeLocalChanges: boolean;\n readonly errorCode?: ErrorCode;\n}\n\nexport const AGENT_FILE_CHANGE_KINDS = Object.freeze([\n \"added\",\n \"modified\",\n \"deleted\",\n] as const);\n\nexport type AgentFileChangeKind = (typeof AGENT_FILE_CHANGE_KINDS)[number];\n\nexport const AGENT_CHECK_STATUSES = Object.freeze([\n \"passed\",\n \"failed\",\n \"cancelled\",\n \"timed-out\",\n] as const);\n\nexport type AgentCheckStatus = (typeof AGENT_CHECK_STATUSES)[number];\n\nexport interface AgentChangedFile {\n readonly relativePath: string;\n readonly kind: AgentFileChangeKind;\n readonly additions: number;\n readonly deletions: number;\n}\n\nexport interface AgentCheckResult {\n readonly checkId: string;\n readonly label: string;\n readonly status: AgentCheckStatus;\n readonly durationMs: number;\n readonly output: string;\n}\n\nexport interface AgentJobSnapshot {\n readonly jobId: string;\n readonly status: AgentJobStatus;\n readonly providerProfileId: string;\n readonly providerLabel: string;\n readonly modelProfileId: string;\n readonly modelLabel: string;\n readonly phaseMessage: string;\n readonly createdAt: string;\n readonly updatedAt: string;\n readonly canCancel: boolean;\n readonly canApply: boolean;\n readonly canRevert: boolean;\n readonly errorCode?: ErrorCode;\n}\n\nexport interface AgentJobResult {\n readonly jobId: string;\n readonly summary: string;\n readonly diff: string;\n readonly files: readonly AgentChangedFile[];\n readonly checks: readonly AgentCheckResult[];\n}\n\nexport interface AgentJobResultResponse {\n readonly snapshot: AgentJobSnapshot;\n readonly result?: AgentJobResult;\n}\n","export const SOURCE_MARKER_ATTRIBUTE = \"data-spotpatch-source\" as const;\n\nconst SOURCE_MARKER_PATTERN = /^([A-Za-z0-9_-]+):([1-9]\\d*):([1-9]\\d*)$/;\n\nexport interface SourceMarker {\n readonly fileId: string;\n readonly line: number;\n readonly column: number;\n}\n\nexport function formatSourceMarker(marker: SourceMarker): string {\n return [marker.fileId, String(marker.line), String(marker.column)].join(\":\");\n}\n\nexport function parseSourceMarker(value: string | null): SourceMarker | undefined {\n if (value === null) {\n return undefined;\n }\n\n const match = SOURCE_MARKER_PATTERN.exec(value);\n\n if (match === null) {\n return undefined;\n }\n\n const fileId = match[1];\n const line = Number(match[2]);\n const column = Number(match[3]);\n\n if (\n fileId === undefined ||\n !Number.isSafeInteger(line) ||\n !Number.isSafeInteger(column)\n ) {\n return undefined;\n }\n\n return Object.freeze({ fileId, line, column });\n}\n","import { z } from \"zod\";\n\nimport {\n MAX_ANNOTATION_INSTRUCTION_CHARACTERS,\n MAX_ANNOTATION_TARGETS,\n MAX_TARGET_INSTRUCTION_CHARACTERS,\n SPOTPATCH_LOCALES,\n type SpotAnnotation,\n} from \"../model/annotation.js\";\nimport { AGENT_APPLY_MODES, type AgentApplyMode } from \"../model/agent.js\";\n\nexport const runtimeBootstrapRequestSchema = z.strictObject({});\n\nconst sourceCoordinatesSchema = z.strictObject({\n fileId: z.string().min(1).max(128),\n line: z.number().int().positive(),\n column: z.number().int().positive(),\n});\n\nexport const sourceContextRequestSchema = sourceCoordinatesSchema\n .extend({\n maxLines: z.number().int().positive(),\n })\n .strict();\n\nexport const openEditorRequestSchema = sourceCoordinatesSchema.strict();\n\nconst dataFlowSourceCoordinatesRequestSchema = sourceCoordinatesSchema\n .extend({\n schemaVersion: z.literal(1),\n sourceVersion: z.string().min(1).max(128).optional(),\n })\n .strict();\n\nconst dataFlowComponentIdentityRequestSchema = z.strictObject({\n schemaVersion: z.literal(1),\n componentSourceId: z.string().min(1).max(128),\n sourceVersion: z.string().min(1).max(128),\n});\n\nexport const dataFlowComponentReportRequestSchema = z.union([\n dataFlowSourceCoordinatesRequestSchema,\n dataFlowComponentIdentityRequestSchema,\n]);\n\nexport const dataFlowPageReportRequestSchema = z.strictObject({\n schemaVersion: z.literal(1),\n targets: z\n .array(dataFlowComponentReportRequestSchema)\n .min(1)\n .max(MAX_ANNOTATION_TARGETS),\n});\n\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);\n\nconst boundedString = (maximum: number): z.ZodString => z.string().max(maximum);\nconst sourceRefSchema = z.strictObject({\n fileId: boundedString(128).optional(),\n relativePath: boundedString(1_024).optional(),\n line: z.number().int().positive().optional(),\n column: z.number().int().positive().optional(),\n origin: z.enum([\"jsx-host\", \"react-fiber\", \"dom-ancestor\", \"none\"]),\n confidence: z.enum([\"exact\", \"probable\", \"approximate\", \"unknown\"]),\n});\nconst matchedStyleRuleSchema = z.strictObject({\n selector: boundedString(2_048),\n declarations: boundedString(8_192),\n source: boundedString(1_024).optional(),\n media: boundedString(1_024).optional(),\n});\nconst codeContextSchema = z.strictObject({\n relativePath: boundedString(1_024),\n language: z.enum([\"tsx\", \"jsx\"]),\n startLine: z.number().int().positive(),\n endLine: z.number().int().positive(),\n excerpt: boundedString(16_000),\n boundary: z.enum([\"component\", \"nearby-lines\"]),\n});\nconst pageContextSchema = z.strictObject({\n url: boundedString(2_048),\n pathname: boundedString(2_048),\n title: boundedString(1_024),\n viewportWidth: z.number().nonnegative(),\n viewportHeight: z.number().nonnegative(),\n devicePixelRatio: z.number().positive(),\n});\n\nexport const spotTargetContextRequestSchema = z.strictObject({\n instruction: z.string().trim().min(1).max(MAX_TARGET_INSTRUCTION_CHARACTERS),\n page: pageContextSchema.optional(),\n source: sourceRefSchema,\n react: z.strictObject({\n supported: z.boolean(),\n version: boundedString(64).optional(),\n componentName: boundedString(256).optional(),\n componentSourceId: boundedString(128).optional(),\n sourceVersion: boundedString(128).optional(),\n componentStack: z.array(boundedString(256)).max(64),\n source: sourceRefSchema.optional(),\n }),\n element: z.strictObject({\n tagName: boundedString(128),\n selector: boundedString(2_048),\n sanitizedHtml: boundedString(8_192),\n textPreview: boundedString(2_048).optional(),\n role: boundedString(256).optional(),\n rect: z.strictObject({\n x: z.number(),\n y: z.number(),\n width: z.number().nonnegative(),\n height: z.number().nonnegative(),\n }),\n }),\n styles: z.strictObject({\n classNames: z.array(boundedString(512)).max(256),\n inlineStyle: boundedString(8_192).optional(),\n matchedRules: z.array(matchedStyleRuleSchema).max(256),\n computed: z.record(boundedString(256), boundedString(2_048)),\n warnings: z.array(boundedString(1_024)).max(64),\n }),\n code: codeContextSchema.optional(),\n warnings: z.array(boundedString(1_024)).max(64),\n});\n\nexport const spotAnnotationRequestSchema = z\n .strictObject({\n schemaVersion: z.literal(3),\n id: boundedString(128),\n locale: z.enum(SPOTPATCH_LOCALES),\n page: pageContextSchema,\n targets: z.array(spotTargetContextRequestSchema).min(1).max(MAX_ANNOTATION_TARGETS),\n createdAt: z.iso.datetime(),\n })\n .superRefine((annotation, context) => {\n const total = annotation.targets.reduce(\n (characters, target) => characters + target.instruction.length,\n 0,\n );\n\n if (total > MAX_ANNOTATION_INSTRUCTION_CHARACTERS) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined target instructions exceed the annotation limit.\",\n path: [\"targets\"],\n });\n }\n });\n\nexport const agentCapabilityRequestSchema = z.strictObject({\n providerProfileId: profileIdSchema,\n modelProfileId: profileIdSchema,\n});\n\nexport const agentWorkspaceHealthRequestSchema = z.strictObject({});\n\nexport const agentJobCreateRequestSchema = z.strictObject({\n annotation: spotAnnotationRequestSchema,\n applyMode: z.enum(AGENT_APPLY_MODES).optional(),\n providerProfileId: profileIdSchema,\n modelProfileId: profileIdSchema,\n providerDataConsent: z.literal(true),\n trustedFastModeConsent: z.literal(true).optional(),\n workingTreeMode: z\n .enum([\"require-clean\", \"include-local-changes\"])\n .default(\"require-clean\"),\n});\n\nexport const agentJobActionRequestSchema = z.strictObject({});\n\nexport type SourceContextRequest = z.infer<typeof sourceContextRequestSchema>;\nexport type RuntimeBootstrapRequest = z.infer<typeof runtimeBootstrapRequestSchema>;\nexport type OpenEditorRequest = z.infer<typeof openEditorRequestSchema>;\nexport type DataFlowComponentReportRequest = z.infer<\n typeof dataFlowComponentReportRequestSchema\n>;\nexport type DataFlowPageReportRequest = z.infer<typeof dataFlowPageReportRequestSchema>;\nexport type AgentCapabilityRequest = z.infer<typeof agentCapabilityRequestSchema>;\nexport interface AgentJobCreateRequest {\n readonly annotation: SpotAnnotation;\n readonly applyMode?: AgentApplyMode;\n readonly providerProfileId: string;\n readonly modelProfileId: string;\n readonly providerDataConsent: true;\n readonly trustedFastModeConsent?: true;\n readonly workingTreeMode: \"require-clean\" | \"include-local-changes\";\n}\n","import { z } from \"zod\";\n\nimport { ERROR_CODES } from \"../errors/error-code.js\";\nimport {\n AGENT_CAPABILITY_STATES,\n AGENT_CHECK_STATUSES,\n AGENT_FILE_CHANGE_KINDS,\n AGENT_JOB_STATUSES,\n AGENT_WORKSPACE_STATES,\n} from \"../model/agent.js\";\n\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);\nconst boundedString = (maximum: number): z.ZodString => z.string().max(maximum);\nconst errorCodeSchema = z.enum(ERROR_CODES);\n\nexport const agentCapabilitySnapshotSchema = z.strictObject({\n providerProfileId: profileIdSchema,\n providerLabel: boundedString(100),\n modelProfileId: profileIdSchema,\n modelLabel: boundedString(100),\n protocol: z.enum([\"responses\", \"chat-completions\"]),\n state: z.enum(AGENT_CAPABILITY_STATES),\n authenticated: z.boolean(),\n modelAvailable: z.boolean(),\n toolCalling: z.boolean(),\n toolResultContinuation: z.boolean(),\n streaming: z.boolean(),\n checkedAt: z.iso.datetime().optional(),\n errorCode: errorCodeSchema.optional(),\n});\n\nexport const agentWorkspaceHealthSnapshotSchema = z\n .strictObject({\n state: z.enum(AGENT_WORKSPACE_STATES),\n checkedAt: z.iso.datetime(),\n changes: z.strictObject({\n staged: z.number().int().nonnegative(),\n unstaged: z.number().int().nonnegative(),\n untracked: z.number().int().nonnegative(),\n conflicted: z.number().int().nonnegative(),\n total: z.number().int().nonnegative(),\n }),\n canIncludeLocalChanges: z.boolean(),\n errorCode: errorCodeSchema.optional(),\n })\n .refine(\n ({ state, changes, canIncludeLocalChanges, errorCode }) => {\n const countsAreConsistent =\n changes.total >= changes.staged &&\n changes.total >= changes.unstaged &&\n changes.total >= changes.untracked &&\n changes.total >= changes.conflicted &&\n changes.total <= changes.staged + changes.unstaged + changes.untracked;\n\n if (!countsAreConsistent) {\n return false;\n }\n\n if (state === \"ready\") {\n return (\n changes.total === 0 && !canIncludeLocalChanges && errorCode === undefined\n );\n }\n\n if (state === \"consent-required\") {\n return (\n changes.total > 0 &&\n changes.conflicted === 0 &&\n canIncludeLocalChanges &&\n errorCode === undefined\n );\n }\n\n return !canIncludeLocalChanges && errorCode !== undefined;\n },\n { message: \"Agent workspace health fields are inconsistent.\" },\n );\n\nexport const agentChangedFileSchema = z.strictObject({\n relativePath: boundedString(1_024),\n kind: z.enum(AGENT_FILE_CHANGE_KINDS),\n additions: z.number().int().nonnegative(),\n deletions: z.number().int().nonnegative(),\n});\n\nexport const agentCheckResultSchema = z.strictObject({\n checkId: profileIdSchema,\n label: boundedString(100),\n status: z.enum(AGENT_CHECK_STATUSES),\n durationMs: z.number().int().nonnegative(),\n output: boundedString(80_000),\n});\n\nexport const agentJobSnapshotSchema = z.strictObject({\n jobId: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/),\n status: z.enum(AGENT_JOB_STATUSES),\n providerProfileId: profileIdSchema,\n providerLabel: boundedString(100),\n modelProfileId: profileIdSchema,\n modelLabel: boundedString(100),\n phaseMessage: boundedString(1_024),\n createdAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n canCancel: z.boolean(),\n canApply: z.boolean(),\n canRevert: z.boolean(),\n errorCode: errorCodeSchema.optional(),\n});\n\nexport const agentJobResultSchema = z.strictObject({\n jobId: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/),\n summary: boundedString(80_000),\n diff: boundedString(1_000_000),\n files: z.array(agentChangedFileSchema).max(100),\n checks: z.array(agentCheckResultSchema).max(100),\n});\n\nexport const agentJobResultResponseSchema = z\n .strictObject({\n snapshot: agentJobSnapshotSchema,\n result: agentJobResultSchema.optional(),\n })\n .superRefine((value, context) => {\n if (value.result !== undefined && value.result.jobId !== value.snapshot.jobId) {\n context.addIssue({\n code: \"custom\",\n message: \"Agent result and snapshot job IDs must match.\",\n path: [\"result\", \"jobId\"],\n });\n }\n });\n\nconst agentJobEventBaseSchema = z.strictObject({\n schemaVersion: z.literal(2),\n sequence: z.number().int().positive(),\n jobId: z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/),\n status: z.enum(AGENT_JOB_STATUSES),\n timestamp: z.iso.datetime(),\n});\n\nexport const agentJobEventSchema = z\n .discriminatedUnion(\"type\", [\n agentJobEventBaseSchema.extend({\n type: z.literal(\"snapshot\"),\n data: z.strictObject({ snapshot: agentJobSnapshotSchema }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"phase\"),\n data: z.strictObject({ message: boundedString(1_024) }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"tool\"),\n data: z.strictObject({\n turn: z.number().int().positive(),\n toolCallId: boundedString(256),\n toolName: boundedString(100),\n state: z.enum([\"started\", \"succeeded\", \"failed\"]),\n relativePath: boundedString(1_024).optional(),\n checkLabel: boundedString(100).optional(),\n }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"check\"),\n data: z.strictObject({ result: agentCheckResultSchema }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"result-ready\"),\n data: z.strictObject({ hasResult: z.literal(true) }),\n }),\n agentJobEventBaseSchema.extend({\n type: z.literal(\"error\"),\n data: z.strictObject({\n code: errorCodeSchema,\n message: boundedString(1_024),\n }),\n }),\n ])\n .superRefine((event, context) => {\n if (event.type !== \"snapshot\") {\n return;\n }\n\n if (event.data.snapshot.jobId !== event.jobId) {\n context.addIssue({\n code: \"custom\",\n message: \"Agent event and snapshot job IDs must match.\",\n path: [\"data\", \"snapshot\", \"jobId\"],\n });\n }\n\n if (event.data.snapshot.status !== event.status) {\n context.addIssue({\n code: \"custom\",\n message: \"Agent event and snapshot statuses must match.\",\n path: [\"data\", \"snapshot\", \"status\"],\n });\n }\n });\n","export const SPOTPATCH_REPOSITORY_URL =\n \"https://github.com/huanglvjing/spotpatch\" as const;\n"],"mappings":"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","names":["import_zod","boundedText","import_zod","profileIdSchema","import_zod","profileIdSchema","boundedString"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { R as ReportCompleteness, C as ComponentDataFlowReport, P as PageDataFlowReport, S as SPOTPATCH_API_BASE, a as RuntimeDataFlowConfig } from './data-flow-runtime-zwbvImvl.cjs';
|
|
2
|
+
export { A as AgentJobAction, b as AnalysisBaseline, c as AssociationKind, d as ComponentIdentity, D as DATA_FLOW_ASSOCIATION_KINDS, e as DATA_FLOW_DIAGNOSTIC_CODES, f as DATA_FLOW_EXECUTION_STATES, g as DATA_FLOW_FRESHNESS_STATES, h as DATA_FLOW_PROOF_STATES, i as DATA_FLOW_SCHEMA_VERSION, j as DATA_FLOW_URL_QUERY_KEY_LIMIT, k as DEFAULT_DATA_FLOW_LIMITS, l as DEFAULT_RUNTIME_DATA_FLOW_LIMITS, m as DataDependency, n as DataFlowCapability, o as DataFlowCapabilityReason, p as DataFlowDiagnostic, q as DataFlowDiagnosticCode, r as DataFlowLimits, s as DataParameter, t as DataResponseDescriptor, E as EvidenceRef, u as EvidenceSourceRef, v as ExecutionState, F as FreshnessState, N as NetworkObservation, w as ProofState, x as RequestOrigin, y as RuntimeDataFlowLimits, z as SPOTPATCH_ENDPOINTS, B as SPOTPATCH_TOKEN_HEADER, G as SanitizedObservedUrl, H as componentDataFlowReportSchema, I as dataDependencySchema, J as getAgentJobEndpoint, K as networkObservationSchema, L as pageDataFlowReportSchema, M as runtimeDataFlowConfigSchema } from './data-flow-runtime-zwbvImvl.cjs';
|
|
1
3
|
import { z } from 'zod';
|
|
2
4
|
|
|
3
5
|
declare const ERROR_CODES: {
|
|
@@ -8,6 +10,9 @@ declare const ERROR_CODES: {
|
|
|
8
10
|
readonly SOURCE_OUTSIDE_ROOT: "SOURCE_OUTSIDE_ROOT";
|
|
9
11
|
readonly SOURCE_TOO_LARGE: "SOURCE_TOO_LARGE";
|
|
10
12
|
readonly EDITOR_OPEN_FAILED: "EDITOR_OPEN_FAILED";
|
|
13
|
+
readonly DATA_FLOW_DISABLED: "DATA_FLOW_DISABLED";
|
|
14
|
+
readonly DATA_FLOW_SOURCE_STALE: "DATA_FLOW_SOURCE_STALE";
|
|
15
|
+
readonly DATA_FLOW_ANALYSIS_CANCELLED: "DATA_FLOW_ANALYSIS_CANCELLED";
|
|
11
16
|
readonly AI_DISABLED: "AI_DISABLED";
|
|
12
17
|
readonly PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED";
|
|
13
18
|
readonly PROVIDER_AUTH_FAILED: "PROVIDER_AUTH_FAILED";
|
|
@@ -77,6 +82,8 @@ interface ReactContext {
|
|
|
77
82
|
readonly supported: boolean;
|
|
78
83
|
readonly version?: string;
|
|
79
84
|
readonly componentName?: string;
|
|
85
|
+
readonly componentSourceId?: string;
|
|
86
|
+
readonly sourceVersion?: string;
|
|
80
87
|
readonly componentStack: readonly string[];
|
|
81
88
|
readonly source?: SourceRef;
|
|
82
89
|
}
|
|
@@ -145,18 +152,27 @@ interface SpotAnnotation {
|
|
|
145
152
|
readonly createdAt: string;
|
|
146
153
|
}
|
|
147
154
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
declare
|
|
155
|
+
/**
|
|
156
|
+
* Syntax names shared by the compiler and Node analyzer.
|
|
157
|
+
*
|
|
158
|
+
* These are recognition inputs, not support claims. An adapter still has to prove
|
|
159
|
+
* the imported package/symbol before it can attribute a request.
|
|
160
|
+
*/
|
|
161
|
+
declare const DATA_FLOW_QUERY_ADAPTER_MODULES: readonly ["@tanstack/react-query", "react-query"];
|
|
162
|
+
declare const DATA_FLOW_QUERY_HOOK_NAMES: readonly ["useInfiniteQuery", "useMutation", "useQuery"];
|
|
163
|
+
declare const DATA_FLOW_TRPC_CLIENT_FACTORY_NAMES: readonly ["createTRPCClient", "createTRPCProxyClient"];
|
|
164
|
+
declare const DATA_FLOW_TRPC_PROXY_FACTORY_NAMES: readonly ["createTRPCNext", "createTRPCReact"];
|
|
165
|
+
declare const DATA_FLOW_TRPC_ROOT_FACTORY_NAMES: readonly ["createTRPCClient", "createTRPCProxyClient", "createTRPCNext", "createTRPCReact", "createTRPCContext", "createTRPCOptionsProxy"];
|
|
166
|
+
declare const DATA_FLOW_TRPC_REQUEST_METHODS: readonly ["infiniteQueryOptions", "mutate", "mutateAsync", "mutationOptions", "query", "queryOptions", "refetch", "subscribe", "subscriptionOptions", "useInfiniteQuery", "useMutation", "useQuery", "useSubscription", "useSuspenseInfiniteQuery", "useSuspenseQuery"];
|
|
167
|
+
|
|
168
|
+
interface DataFlowCollectionLimitOptions {
|
|
169
|
+
readonly forceTruncation?: boolean;
|
|
170
|
+
readonly maximumDependencies?: number;
|
|
171
|
+
readonly mode?: "analysis" | "observation";
|
|
172
|
+
readonly truncatedBy?: ReportCompleteness["truncatedBy"];
|
|
173
|
+
}
|
|
174
|
+
declare function limitDataFlowReportCollections(report: ComponentDataFlowReport, options?: DataFlowCollectionLimitOptions): ComponentDataFlowReport;
|
|
175
|
+
declare function limitDataFlowReportCollections(report: PageDataFlowReport, options?: DataFlowCollectionLimitOptions): PageDataFlowReport;
|
|
160
176
|
|
|
161
177
|
declare const SPOTPATCH_EDITOR_PREFERENCES: readonly ["auto", "vscode", "cursor"];
|
|
162
178
|
type SpotPatchEditorPreference = (typeof SPOTPATCH_EDITOR_PREFERENCES)[number];
|
|
@@ -372,6 +388,7 @@ interface RuntimeConfigBase {
|
|
|
372
388
|
readonly apiBase: typeof SPOTPATCH_API_BASE;
|
|
373
389
|
readonly ai: RuntimeAiConfig;
|
|
374
390
|
readonly budget: Readonly<ContextBudget>;
|
|
391
|
+
readonly dataFlow: RuntimeDataFlowConfig;
|
|
375
392
|
readonly debug: boolean;
|
|
376
393
|
readonly editor: (typeof SPOTPATCH_EDITOR_PREFERENCES)[number];
|
|
377
394
|
readonly frameworkVersion: string;
|
|
@@ -413,6 +430,31 @@ declare const openEditorRequestSchema: z.ZodObject<{
|
|
|
413
430
|
line: z.ZodNumber;
|
|
414
431
|
column: z.ZodNumber;
|
|
415
432
|
}, z.core.$strict>;
|
|
433
|
+
declare const dataFlowComponentReportRequestSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
434
|
+
fileId: z.ZodString;
|
|
435
|
+
line: z.ZodNumber;
|
|
436
|
+
column: z.ZodNumber;
|
|
437
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
438
|
+
sourceVersion: z.ZodOptional<z.ZodString>;
|
|
439
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
440
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
441
|
+
componentSourceId: z.ZodString;
|
|
442
|
+
sourceVersion: z.ZodString;
|
|
443
|
+
}, z.core.$strict>]>;
|
|
444
|
+
declare const dataFlowPageReportRequestSchema: z.ZodObject<{
|
|
445
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
446
|
+
targets: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
447
|
+
fileId: z.ZodString;
|
|
448
|
+
line: z.ZodNumber;
|
|
449
|
+
column: z.ZodNumber;
|
|
450
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
451
|
+
sourceVersion: z.ZodOptional<z.ZodString>;
|
|
452
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
453
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
454
|
+
componentSourceId: z.ZodString;
|
|
455
|
+
sourceVersion: z.ZodString;
|
|
456
|
+
}, z.core.$strict>]>>;
|
|
457
|
+
}, z.core.$strict>;
|
|
416
458
|
declare const spotTargetContextRequestSchema: z.ZodObject<{
|
|
417
459
|
instruction: z.ZodString;
|
|
418
460
|
page: z.ZodOptional<z.ZodObject<{
|
|
@@ -445,6 +487,8 @@ declare const spotTargetContextRequestSchema: z.ZodObject<{
|
|
|
445
487
|
supported: z.ZodBoolean;
|
|
446
488
|
version: z.ZodOptional<z.ZodString>;
|
|
447
489
|
componentName: z.ZodOptional<z.ZodString>;
|
|
490
|
+
componentSourceId: z.ZodOptional<z.ZodString>;
|
|
491
|
+
sourceVersion: z.ZodOptional<z.ZodString>;
|
|
448
492
|
componentStack: z.ZodArray<z.ZodString>;
|
|
449
493
|
source: z.ZodOptional<z.ZodObject<{
|
|
450
494
|
fileId: z.ZodOptional<z.ZodString>;
|
|
@@ -553,6 +597,8 @@ declare const spotAnnotationRequestSchema: z.ZodObject<{
|
|
|
553
597
|
supported: z.ZodBoolean;
|
|
554
598
|
version: z.ZodOptional<z.ZodString>;
|
|
555
599
|
componentName: z.ZodOptional<z.ZodString>;
|
|
600
|
+
componentSourceId: z.ZodOptional<z.ZodString>;
|
|
601
|
+
sourceVersion: z.ZodOptional<z.ZodString>;
|
|
556
602
|
componentStack: z.ZodArray<z.ZodString>;
|
|
557
603
|
source: z.ZodOptional<z.ZodObject<{
|
|
558
604
|
fileId: z.ZodOptional<z.ZodString>;
|
|
@@ -669,6 +715,8 @@ declare const agentJobCreateRequestSchema: z.ZodObject<{
|
|
|
669
715
|
supported: z.ZodBoolean;
|
|
670
716
|
version: z.ZodOptional<z.ZodString>;
|
|
671
717
|
componentName: z.ZodOptional<z.ZodString>;
|
|
718
|
+
componentSourceId: z.ZodOptional<z.ZodString>;
|
|
719
|
+
sourceVersion: z.ZodOptional<z.ZodString>;
|
|
672
720
|
componentStack: z.ZodArray<z.ZodString>;
|
|
673
721
|
source: z.ZodOptional<z.ZodObject<{
|
|
674
722
|
fileId: z.ZodOptional<z.ZodString>;
|
|
@@ -750,6 +798,8 @@ declare const agentJobActionRequestSchema: z.ZodObject<{}, z.core.$strict>;
|
|
|
750
798
|
type SourceContextRequest = z.infer<typeof sourceContextRequestSchema>;
|
|
751
799
|
type RuntimeBootstrapRequest = z.infer<typeof runtimeBootstrapRequestSchema>;
|
|
752
800
|
type OpenEditorRequest = z.infer<typeof openEditorRequestSchema>;
|
|
801
|
+
type DataFlowComponentReportRequest = z.infer<typeof dataFlowComponentReportRequestSchema>;
|
|
802
|
+
type DataFlowPageReportRequest = z.infer<typeof dataFlowPageReportRequestSchema>;
|
|
753
803
|
type AgentCapabilityRequest = z.infer<typeof agentCapabilityRequestSchema>;
|
|
754
804
|
interface AgentJobCreateRequest {
|
|
755
805
|
readonly annotation: SpotAnnotation;
|
|
@@ -817,10 +867,10 @@ declare const agentCapabilitySnapshotSchema: z.ZodObject<{
|
|
|
817
867
|
}>;
|
|
818
868
|
state: z.ZodEnum<{
|
|
819
869
|
unknown: "unknown";
|
|
870
|
+
unavailable: "unavailable";
|
|
820
871
|
probing: "probing";
|
|
821
872
|
"agent-ready": "agent-ready";
|
|
822
873
|
"prompt-only": "prompt-only";
|
|
823
|
-
unavailable: "unavailable";
|
|
824
874
|
}>;
|
|
825
875
|
authenticated: z.ZodBoolean;
|
|
826
876
|
modelAvailable: z.ZodBoolean;
|
|
@@ -836,6 +886,9 @@ declare const agentCapabilitySnapshotSchema: z.ZodObject<{
|
|
|
836
886
|
readonly SOURCE_OUTSIDE_ROOT: "SOURCE_OUTSIDE_ROOT";
|
|
837
887
|
readonly SOURCE_TOO_LARGE: "SOURCE_TOO_LARGE";
|
|
838
888
|
readonly EDITOR_OPEN_FAILED: "EDITOR_OPEN_FAILED";
|
|
889
|
+
readonly DATA_FLOW_DISABLED: "DATA_FLOW_DISABLED";
|
|
890
|
+
readonly DATA_FLOW_SOURCE_STALE: "DATA_FLOW_SOURCE_STALE";
|
|
891
|
+
readonly DATA_FLOW_ANALYSIS_CANCELLED: "DATA_FLOW_ANALYSIS_CANCELLED";
|
|
839
892
|
readonly AI_DISABLED: "AI_DISABLED";
|
|
840
893
|
readonly PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED";
|
|
841
894
|
readonly PROVIDER_AUTH_FAILED: "PROVIDER_AUTH_FAILED";
|
|
@@ -887,6 +940,9 @@ declare const agentWorkspaceHealthSnapshotSchema: z.ZodObject<{
|
|
|
887
940
|
readonly SOURCE_OUTSIDE_ROOT: "SOURCE_OUTSIDE_ROOT";
|
|
888
941
|
readonly SOURCE_TOO_LARGE: "SOURCE_TOO_LARGE";
|
|
889
942
|
readonly EDITOR_OPEN_FAILED: "EDITOR_OPEN_FAILED";
|
|
943
|
+
readonly DATA_FLOW_DISABLED: "DATA_FLOW_DISABLED";
|
|
944
|
+
readonly DATA_FLOW_SOURCE_STALE: "DATA_FLOW_SOURCE_STALE";
|
|
945
|
+
readonly DATA_FLOW_ANALYSIS_CANCELLED: "DATA_FLOW_ANALYSIS_CANCELLED";
|
|
890
946
|
readonly AI_DISABLED: "AI_DISABLED";
|
|
891
947
|
readonly PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED";
|
|
892
948
|
readonly PROVIDER_AUTH_FAILED: "PROVIDER_AUTH_FAILED";
|
|
@@ -972,6 +1028,9 @@ declare const agentJobSnapshotSchema: z.ZodObject<{
|
|
|
972
1028
|
readonly SOURCE_OUTSIDE_ROOT: "SOURCE_OUTSIDE_ROOT";
|
|
973
1029
|
readonly SOURCE_TOO_LARGE: "SOURCE_TOO_LARGE";
|
|
974
1030
|
readonly EDITOR_OPEN_FAILED: "EDITOR_OPEN_FAILED";
|
|
1031
|
+
readonly DATA_FLOW_DISABLED: "DATA_FLOW_DISABLED";
|
|
1032
|
+
readonly DATA_FLOW_SOURCE_STALE: "DATA_FLOW_SOURCE_STALE";
|
|
1033
|
+
readonly DATA_FLOW_ANALYSIS_CANCELLED: "DATA_FLOW_ANALYSIS_CANCELLED";
|
|
975
1034
|
readonly AI_DISABLED: "AI_DISABLED";
|
|
976
1035
|
readonly PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED";
|
|
977
1036
|
readonly PROVIDER_AUTH_FAILED: "PROVIDER_AUTH_FAILED";
|
|
@@ -1063,6 +1122,9 @@ declare const agentJobResultResponseSchema: z.ZodObject<{
|
|
|
1063
1122
|
readonly SOURCE_OUTSIDE_ROOT: "SOURCE_OUTSIDE_ROOT";
|
|
1064
1123
|
readonly SOURCE_TOO_LARGE: "SOURCE_TOO_LARGE";
|
|
1065
1124
|
readonly EDITOR_OPEN_FAILED: "EDITOR_OPEN_FAILED";
|
|
1125
|
+
readonly DATA_FLOW_DISABLED: "DATA_FLOW_DISABLED";
|
|
1126
|
+
readonly DATA_FLOW_SOURCE_STALE: "DATA_FLOW_SOURCE_STALE";
|
|
1127
|
+
readonly DATA_FLOW_ANALYSIS_CANCELLED: "DATA_FLOW_ANALYSIS_CANCELLED";
|
|
1066
1128
|
readonly AI_DISABLED: "AI_DISABLED";
|
|
1067
1129
|
readonly PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED";
|
|
1068
1130
|
readonly PROVIDER_AUTH_FAILED: "PROVIDER_AUTH_FAILED";
|
|
@@ -1176,6 +1238,9 @@ declare const agentJobEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
1176
1238
|
readonly SOURCE_OUTSIDE_ROOT: "SOURCE_OUTSIDE_ROOT";
|
|
1177
1239
|
readonly SOURCE_TOO_LARGE: "SOURCE_TOO_LARGE";
|
|
1178
1240
|
readonly EDITOR_OPEN_FAILED: "EDITOR_OPEN_FAILED";
|
|
1241
|
+
readonly DATA_FLOW_DISABLED: "DATA_FLOW_DISABLED";
|
|
1242
|
+
readonly DATA_FLOW_SOURCE_STALE: "DATA_FLOW_SOURCE_STALE";
|
|
1243
|
+
readonly DATA_FLOW_ANALYSIS_CANCELLED: "DATA_FLOW_ANALYSIS_CANCELLED";
|
|
1179
1244
|
readonly AI_DISABLED: "AI_DISABLED";
|
|
1180
1245
|
readonly PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED";
|
|
1181
1246
|
readonly PROVIDER_AUTH_FAILED: "PROVIDER_AUTH_FAILED";
|
|
@@ -1351,6 +1416,9 @@ declare const agentJobEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
1351
1416
|
readonly SOURCE_OUTSIDE_ROOT: "SOURCE_OUTSIDE_ROOT";
|
|
1352
1417
|
readonly SOURCE_TOO_LARGE: "SOURCE_TOO_LARGE";
|
|
1353
1418
|
readonly EDITOR_OPEN_FAILED: "EDITOR_OPEN_FAILED";
|
|
1419
|
+
readonly DATA_FLOW_DISABLED: "DATA_FLOW_DISABLED";
|
|
1420
|
+
readonly DATA_FLOW_SOURCE_STALE: "DATA_FLOW_SOURCE_STALE";
|
|
1421
|
+
readonly DATA_FLOW_ANALYSIS_CANCELLED: "DATA_FLOW_ANALYSIS_CANCELLED";
|
|
1354
1422
|
readonly AI_DISABLED: "AI_DISABLED";
|
|
1355
1423
|
readonly PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED";
|
|
1356
1424
|
readonly PROVIDER_AUTH_FAILED: "PROVIDER_AUTH_FAILED";
|
|
@@ -1397,4 +1465,4 @@ type ApiResponse<T> = ApiSuccess<T> | ApiFailure;
|
|
|
1397
1465
|
|
|
1398
1466
|
declare const SPOTPATCH_REPOSITORY_URL: "https://github.com/huanglvjing/spotpatch";
|
|
1399
1467
|
|
|
1400
|
-
export { AGENT_APPLY_MODES, AGENT_CAPABILITY_STATES, AGENT_CHECK_STATUSES, AGENT_FILE_CHANGE_KINDS, AGENT_JOB_STATUSES, AGENT_WORKSPACE_SNAPSHOT_LIMITS, AGENT_WORKSPACE_STATES, type AgentApplyMode, type AgentCapabilityRequest, type AgentCapabilitySnapshot, type AgentCapabilityState, type AgentChangedFile, type AgentCheckDefinition, type AgentCheckResult, type AgentCheckStatus, type AgentFileChangeKind, type
|
|
1468
|
+
export { AGENT_APPLY_MODES, AGENT_CAPABILITY_STATES, AGENT_CHECK_STATUSES, AGENT_FILE_CHANGE_KINDS, AGENT_JOB_STATUSES, AGENT_WORKSPACE_SNAPSHOT_LIMITS, AGENT_WORKSPACE_STATES, type AgentApplyMode, type AgentCapabilityRequest, type AgentCapabilitySnapshot, type AgentCapabilityState, type AgentChangedFile, type AgentCheckDefinition, type AgentCheckResult, type AgentCheckStatus, type AgentFileChangeKind, type AgentJobCreateRequest, type AgentJobEvent, type AgentJobResult, type AgentJobResultResponse, type AgentJobSnapshot, type AgentJobStatus, type AgentLimits, type AgentWorkingTreeMode, type AgentWorkspaceChangeSummary, type AgentWorkspaceHealthSnapshot, type AgentWorkspaceState, type AiExecutionOptions, type AiModelProfile, type AiOptions, type AiProviderAuthentication, type AiProviderProtocol, type ApiFailure, type ApiResponse, type ApiSuccess, type CodeContext, ComponentDataFlowReport, type ContextBudget, DATA_FLOW_QUERY_ADAPTER_MODULES, DATA_FLOW_QUERY_HOOK_NAMES, DATA_FLOW_TRPC_CLIENT_FACTORY_NAMES, DATA_FLOW_TRPC_PROXY_FACTORY_NAMES, DATA_FLOW_TRPC_REQUEST_METHODS, DATA_FLOW_TRPC_ROOT_FACTORY_NAMES, DEFAULT_AGENT_LIMITS, type DataFlowCollectionLimitOptions, type DataFlowComponentReportRequest, type DataFlowPageReportRequest, ERROR_CODES, type EditorOpenResult, type ElementContext, type ErrorCode, MAX_ANNOTATION_INSTRUCTION_CHARACTERS, MAX_ANNOTATION_TARGETS, MAX_TARGET_INSTRUCTION_CHARACTERS, type MatchedStyleRule, type OpenAICompatibleProviderOptions, type OpenEditorRequest, type PageContext, PageDataFlowReport, type ReactContext, ReportCompleteness, type ResolvedAgentCheckDefinition, type ResolvedAiExecutionOptions, type ResolvedAiModelProfile, type ResolvedAiOptions, type ResolvedOpenAICompatibleProviderOptions, type RuntimeAiConfig, type RuntimeAiModelProfile, type RuntimeAiProviderProfile, type RuntimeBootstrapRequest, RuntimeDataFlowConfig, SOURCE_MARKER_ATTRIBUTE, SPOTPATCH_API_BASE, SPOTPATCH_EDITOR_PREFERENCES, SPOTPATCH_LOCALES, SPOTPATCH_LOCALE_PREFERENCES, SPOTPATCH_NEXT_BUNDLERS, SPOTPATCH_NEXT_ROUTER_KINDS, SPOTPATCH_REPOSITORY_URL, type SourceConfidence, type SourceContextRequest, type SourceMarker, type SourceOrigin, type SourceRef, type SpotAnnotation, type SpotPatchEditorPreference, SpotPatchError, type SpotPatchLocale, type SpotPatchLocalePreference, type SpotPatchNextBundler, type SpotPatchNextRouterKind, type SpotPatchRuntimeConfig, type SpotTargetContext, type StyleContext, agentCapabilityRequestSchema, agentCapabilitySnapshotSchema, agentChangedFileSchema, agentCheckResultSchema, agentJobActionRequestSchema, agentJobCreateRequestSchema, agentJobEventSchema, agentJobResultResponseSchema, agentJobResultSchema, agentJobSnapshotSchema, agentWorkspaceHealthRequestSchema, agentWorkspaceHealthSnapshotSchema, dataFlowComponentReportRequestSchema, dataFlowPageReportRequestSchema, formatSourceMarker, isSensitiveName, limitDataFlowReportCollections, openEditorRequestSchema, parseSourceMarker, redactSensitiveText, runtimeBootstrapRequestSchema, runtimeConfigSchema, sanitizeUrl, sourceContextRequestSchema, spotAnnotationRequestSchema, spotTargetContextRequestSchema };
|