@spotpatch/shared 1.14.2 → 1.15.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.
Files changed (40) hide show
  1. package/dist/{chunk-CLQ6MIJB.js → chunk-R3BQKCCY.js} +4 -3
  2. package/dist/chunk-R3BQKCCY.js.map +1 -0
  3. package/dist/{chunk-EWJTKNL4.js → chunk-RWFGFW4N.js} +3 -2
  4. package/dist/chunk-RWFGFW4N.js.map +1 -0
  5. package/dist/{contextual-ask-BpbkpFFf.d.cts → contextual-ask-BbmHG3Z8.d.cts} +12 -1
  6. package/dist/{contextual-ask-BpbkpFFf.d.ts → contextual-ask-BbmHG3Z8.d.ts} +12 -1
  7. package/dist/contextual-ask-browser.cjs +2 -1
  8. package/dist/contextual-ask-browser.cjs.map +1 -1
  9. package/dist/contextual-ask-browser.d.cts +1 -1
  10. package/dist/contextual-ask-browser.d.ts +1 -1
  11. package/dist/contextual-ask-browser.js +1 -1
  12. package/dist/contextual-ask-node.cjs +4 -2
  13. package/dist/contextual-ask-node.cjs.map +1 -1
  14. package/dist/contextual-ask-node.d.cts +2 -2
  15. package/dist/contextual-ask-node.d.ts +2 -2
  16. package/dist/contextual-ask-node.js +2 -2
  17. package/dist/data-flow-runtime.d.cts +1 -1
  18. package/dist/data-flow-runtime.d.ts +1 -1
  19. package/dist/external-agent-node.cjs +2 -1
  20. package/dist/external-agent-node.cjs.map +1 -1
  21. package/dist/external-agent-node.d.cts +35 -35
  22. package/dist/external-agent-node.d.ts +35 -35
  23. package/dist/external-agent-node.js +2 -1
  24. package/dist/external-agent-node.js.map +1 -1
  25. package/dist/external-handoff-browser.d.cts +2 -2
  26. package/dist/external-handoff-browser.d.ts +2 -2
  27. package/dist/index.cjs +4 -2
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +29 -29
  30. package/dist/index.d.ts +29 -29
  31. package/dist/index.js +2 -2
  32. package/package.json +1 -1
  33. package/dist/chunk-CLQ6MIJB.js.map +0 -1
  34. package/dist/chunk-EWJTKNL4.js.map +0 -1
  35. package/dist/{data-flow-runtime-w43iwvGA.d.cts → data-flow-runtime-Bfm5LbHE.d.cts} +8 -8
  36. package/dist/{data-flow-runtime-DhWpQoik.d.ts → data-flow-runtime-tyqGH1OS.d.ts} +8 -8
  37. package/dist/{external-agent-control-DKxQACUv.d.ts → external-agent-control-yC4ToQXg.d.cts} +28 -28
  38. package/dist/{external-agent-control-DKxQACUv.d.cts → external-agent-control-yC4ToQXg.d.ts} +28 -28
  39. package/dist/{external-handoff-5zHu-fz2.d.ts → external-handoff-BpoxbpPk.d.ts} +37 -37
  40. package/dist/{external-handoff-DeiIvR-2.d.cts → external-handoff-D1Ua2jIA.d.cts} +37 -37
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/contextual-ask-node.ts","../src/model/context-schema.ts","../src/model/annotation.ts","../src/model/contextual-ask.ts","../src/errors/error-code.ts","../src/protocol/contextual-ask-constants.ts","../src/protocol/contextual-ask.ts","../src/protocol/endpoints.ts"],"sourcesContent":["import type { SpotAnnotation } from \"./model/annotation.js\";\nimport { spotAnnotationSchema } from \"./model/context-schema.js\";\nimport {\n spotChangeTaskEnvelopeSchema,\n type SpotChangeTaskEnvelope,\n} from \"./model/contextual-ask.js\";\n\n/**\n * Temporary migration boundary for existing Change consumers.\n * Ask envelopes are intentionally excluded both by the public type and runtime parser.\n */\nexport function adaptChangeEnvelopeToSpotAnnotationV3(\n envelope: SpotChangeTaskEnvelope,\n): SpotAnnotation {\n const change = spotChangeTaskEnvelopeSchema.parse(envelope);\n const instructions = new Map(\n change.task.instructions.map((instruction) => [\n instruction.targetId,\n instruction.instruction,\n ]),\n );\n const firstTarget = change.selection.targets[0];\n if (firstTarget === undefined) {\n throw new TypeError(\"A Change envelope must contain at least one target.\");\n }\n const targets = change.selection.targets.map(({ targetId, page, ...target }) => {\n const instruction = instructions.get(targetId);\n if (instruction === undefined) {\n throw new TypeError(\"A Change target must have an instruction.\");\n }\n return { ...target, page, instruction };\n });\n\n const annotation = spotAnnotationSchema.parse({\n schemaVersion: 3,\n id: change.taskId,\n locale: change.selection.locale,\n page: firstTarget.page,\n targets,\n createdAt: change.createdAt,\n });\n // JSON protocol objects cannot carry explicit `undefined`; strict parsing above\n // therefore satisfies the legacy interface's exact-optional-property contract.\n return annotation as unknown as SpotAnnotation;\n}\n\nexport {\n askAnswerBlockSchema,\n askAnswerDraftBlockSchema,\n askAnswerDraftSchema,\n askAnswerResultSchema,\n askAnswerWarningSchema,\n askDraftCitationSchema,\n askDraftOriginSchema,\n askSourceReferenceSchema,\n contextualAskCapabilitySchema,\n contextualAskExecutorCapabilitySchema,\n contextualAskExecutorPreferenceSchema,\n contextualAskOptionsSchema,\n spotAskTaskEnvelopeSchema,\n spotChangeTaskEnvelopeSchema,\n spotSelectionContextSchema,\n spotSelectionTargetSchema,\n spotTaskEnvelopeSchema,\n} from \"./model/contextual-ask.js\";\nexport {\n askJobActionRequestSchema,\n askJobCreateRequestSchema,\n askJobEventSchema,\n askJobEventsRequestSchema,\n askJobResultResponseSchema,\n askJobSnapshotSchema,\n contextualAskCapabilityRequestSchema,\n} from \"./protocol/contextual-ask.js\";\n\nexport type {\n AskAnswerBlock,\n AskAnswerDraft,\n AskAnswerDraftBlock,\n AskAnswerResult,\n AskAnswerWarning,\n AskDraftCitation,\n AskDraftOrigin,\n AskSourceReference,\n ContextualAskCapability,\n ContextualAskExecutorCapability,\n ContextualAskExecutorPreference,\n ContextualAskOptions,\n SpotAskTaskEnvelope,\n SpotChangeTaskEnvelope,\n SpotSelectionContext,\n SpotSelectionTarget,\n SpotTaskEnvelope,\n} from \"./model/contextual-ask.js\";\nexport type {\n AskJobActionRequest,\n AskJobCreateRequest,\n AskJobEvent,\n AskJobEventsRequest,\n AskJobResultResponse,\n AskJobSnapshot,\n ContextualAskCapabilityRequest,\n} from \"./protocol/contextual-ask.js\";\nexport {\n ASK_ANSWER_WARNING_CODES,\n ASK_EXECUTOR_ANSWER_WARNING_CODES,\n ASK_FILE_COUNT_BUCKETS,\n ASK_JOB_STATUSES,\n ASK_READ_ACTIVITY_STATES,\n ASK_SOURCE_CONFIDENCES,\n CONTEXTUAL_ASK_EXECUTOR_KINDS,\n CONTEXTUAL_ASK_EXECUTOR_STATES,\n CONTEXTUAL_ASK_LIMITS,\n CONTEXTUAL_ASK_PERMISSION_PROFILE,\n CONTEXTUAL_ASK_SCHEMA_VERSION,\n type AskAnswerWarningCode,\n type AskExecutorAnswerWarningCode,\n type AskFileCountBucket,\n type AskJobStatus,\n type AskReadActivityState,\n type AskSourceConfidence,\n type ContextualAskExecutorKind,\n type ContextualAskExecutorState,\n} from \"./protocol/contextual-ask-constants.js\";\nexport {\n getAskJobEndpoint,\n SPOTPATCH_ENDPOINTS,\n SPOTPATCH_TOKEN_HEADER,\n type AskJobAction,\n} from \"./protocol/endpoints.js\";\nexport {\n CONTEXTUAL_ASK_ERROR_CODES,\n type ContextualAskErrorCode,\n} from \"./errors/error-code.js\";\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} from \"./annotation.js\";\n\nconst boundedString = (maximum: number): z.ZodString => z.string().max(maximum);\n\nexport const 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\", \"astro-host\", \"react-fiber\", \"dom-ancestor\", \"none\"]),\n confidence: z.enum([\"exact\", \"probable\", \"approximate\", \"unknown\"]),\n});\n\nexport const 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});\n\nexport const codeContextSchema = z.strictObject({\n relativePath: boundedString(1_024),\n language: z.enum([\"tsx\", \"jsx\", \"astro\"]),\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});\n\nexport const 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 spotTargetContextSchema = 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 spotAnnotationSchema = 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(spotTargetContextSchema).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 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","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 { CONTEXTUAL_ASK_ERROR_CODES } from \"../errors/error-code.js\";\nimport {\n ASK_ANSWER_WARNING_CODES,\n ASK_EXECUTOR_ANSWER_WARNING_CODES,\n ASK_SOURCE_CONFIDENCES,\n CONTEXTUAL_ASK_EXECUTOR_KINDS,\n CONTEXTUAL_ASK_EXECUTOR_STATES,\n CONTEXTUAL_ASK_LIMITS,\n CONTEXTUAL_ASK_SCHEMA_VERSION,\n} from \"../protocol/contextual-ask-constants.js\";\nimport {\n MAX_ANNOTATION_INSTRUCTION_CHARACTERS,\n MAX_TARGET_INSTRUCTION_CHARACTERS,\n SPOTPATCH_LOCALES,\n} from \"./annotation.js\";\nimport { pageContextSchema, spotTargetContextSchema } from \"./context-schema.js\";\n\nconst limits = CONTEXTUAL_ASK_LIMITS;\nexport const contextualAskBoundedText = (maximum: number): z.ZodString =>\n z.string().trim().min(1).max(maximum);\nexport const contextualAskOpaqueIdSchema = z\n .string()\n .min(1)\n .max(limits.maximumIdCharacters)\n .regex(/^[A-Za-z0-9_-]+$/u);\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(limits.maximumProfileIdCharacters)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/u);\nconst contentHashSchema = z\n .string()\n .length(limits.contentHashHexCharacters)\n .regex(/^[a-f0-9]+$/u);\nexport const contextualAskRelativePathSchema = z\n .string()\n .min(1)\n .max(limits.maximumRelativePathCharacters)\n .refine(\n (value) =>\n !value.startsWith(\"/\") &&\n !value.includes(\"\\\\\") &&\n !Array.from(value).some((character) => {\n const codePoint = character.codePointAt(0);\n return codePoint !== undefined && (codePoint <= 31 || codePoint === 127);\n }) &&\n !/^[A-Za-z]:/u.test(value) &&\n value\n .split(\"/\")\n .every((segment) => segment !== \"\" && segment !== \".\" && segment !== \"..\"),\n { message: \"Expected a safe project-relative POSIX path.\" },\n );\n\nexport const contextualAskExecutorPreferenceSchema = z.discriminatedUnion(\"kind\", [\n z.strictObject({\n kind: z.literal(\"configured-key\"),\n providerProfileId: profileIdSchema,\n modelProfileId: profileIdSchema,\n }),\n z.strictObject({ kind: z.literal(\"managed-codex\") }),\n]);\n\nexport const contextualAskOptionsSchema = z.union([\n z.boolean(),\n z.strictObject({\n defaultExecutor: contextualAskExecutorPreferenceSchema.optional(),\n }),\n]);\n\nexport const spotSelectionTargetSchema = spotTargetContextSchema\n .omit({ instruction: true, page: true })\n .extend({\n targetId: contextualAskOpaqueIdSchema,\n page: pageContextSchema,\n })\n .strict();\n\nexport const spotSelectionContextSchema = z\n .strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n selectionId: contextualAskOpaqueIdSchema,\n locale: z.enum(SPOTPATCH_LOCALES),\n targets: z.array(spotSelectionTargetSchema).min(1).max(limits.maximumTargets),\n createdAt: z.iso.datetime(),\n })\n .superRefine((selection, context) => {\n const targetIds = selection.targets.map((target) => target.targetId);\n if (new Set(targetIds).size !== targetIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Selection target IDs must be unique.\",\n path: [\"targets\"],\n });\n }\n });\n\nexport const askDraftOriginSchema = z\n .strictObject({\n kind: z.literal(\"contextual-ask\"),\n askJobId: contextualAskOpaqueIdSchema,\n question: contextualAskBoundedText(limits.maximumQuestionCharacters),\n answerDigest: contextualAskBoundedText(limits.maximumQuestionCharacters),\n sourceIds: z.array(contextualAskOpaqueIdSchema).max(limits.maximumSources),\n })\n .superRefine((origin, context) => {\n if (new Set(origin.sourceIds).size !== origin.sourceIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Ask origin source IDs must be unique.\",\n path: [\"sourceIds\"],\n });\n }\n });\n\nconst askTaskSchema = z.strictObject({\n kind: z.literal(\"ask\"),\n question: contextualAskBoundedText(limits.maximumQuestionCharacters),\n});\nconst changeInstructionSchema = z.strictObject({\n targetId: contextualAskOpaqueIdSchema,\n instruction: contextualAskBoundedText(MAX_TARGET_INSTRUCTION_CHARACTERS),\n});\nconst changeTaskSchema = z.strictObject({\n kind: z.literal(\"change\"),\n instructions: z.array(changeInstructionSchema).min(1).max(limits.maximumTargets),\n origin: askDraftOriginSchema.optional(),\n});\nconst envelopeBaseShape = {\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n taskId: contextualAskOpaqueIdSchema,\n selection: spotSelectionContextSchema,\n createdAt: z.iso.datetime(),\n} as const;\n\nexport const spotAskTaskEnvelopeSchema = z.strictObject({\n ...envelopeBaseShape,\n task: askTaskSchema,\n});\n\nexport const spotChangeTaskEnvelopeSchema = z\n .strictObject({\n ...envelopeBaseShape,\n task: changeTaskSchema,\n })\n .superRefine((envelope, context) => {\n const targetIds = envelope.selection.targets.map((target) => target.targetId);\n const instructionIds = envelope.task.instructions.map(\n (instruction) => instruction.targetId,\n );\n if (\n new Set(instructionIds).size !== instructionIds.length ||\n instructionIds.length !== targetIds.length ||\n targetIds.some((targetId) => !instructionIds.includes(targetId))\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Change instructions must map one-to-one to selection targets.\",\n path: [\"task\", \"instructions\"],\n });\n }\n const total = envelope.task.instructions.reduce(\n (characters, instruction) => characters + instruction.instruction.length,\n 0,\n );\n if (total > MAX_ANNOTATION_INSTRUCTION_CHARACTERS) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined change instructions exceed the task limit.\",\n path: [\"task\", \"instructions\"],\n });\n }\n });\n\nexport const spotTaskEnvelopeSchema = z.union([\n spotAskTaskEnvelopeSchema,\n spotChangeTaskEnvelopeSchema,\n]);\n\nexport const askAnswerWarningSchema = z.strictObject({\n code: z.enum(ASK_ANSWER_WARNING_CODES),\n});\n\nconst askExecutorAnswerWarningSchema = z.strictObject({\n code: z.enum(ASK_EXECUTOR_ANSWER_WARNING_CODES),\n});\n\nexport const askDraftCitationSchema = z\n .strictObject({\n handleId: contextualAskOpaqueIdSchema,\n startLine: z.number().int().positive(),\n endLine: z.number().int().positive(),\n })\n .refine((citation) => citation.endLine >= citation.startLine, {\n message: \"Citation endLine must not precede startLine.\",\n });\n\nconst draftCitationListSchema = z\n .array(askDraftCitationSchema)\n .max(limits.maximumSources);\nconst draftParagraphBlockSchema = z.strictObject({\n kind: z.literal(\"paragraph\"),\n text: contextualAskBoundedText(limits.maximumAnswerCharacters),\n citations: draftCitationListSchema,\n});\nconst draftListBlockSchema = z.strictObject({\n kind: z.literal(\"list\"),\n items: z\n .array(\n z.strictObject({\n text: contextualAskBoundedText(limits.maximumAnswerCharacters),\n citations: draftCitationListSchema,\n }),\n )\n .min(1)\n .max(limits.maximumAnswerBlocks),\n});\nconst draftCodeBlockSchema = z.strictObject({\n kind: z.literal(\"code\"),\n code: z.string().min(1).max(limits.maximumAnswerCharacters),\n language: contextualAskBoundedText(limits.maximumLanguageCharacters).optional(),\n citations: draftCitationListSchema,\n});\nexport const askAnswerDraftBlockSchema = z.discriminatedUnion(\"kind\", [\n draftParagraphBlockSchema,\n draftListBlockSchema,\n draftCodeBlockSchema,\n]);\n\nfunction draftCharacters(\n blocks: readonly z.infer<typeof askAnswerDraftBlockSchema>[],\n): number {\n return blocks.reduce((total, block) => {\n if (block.kind === \"paragraph\") return total + block.text.length;\n if (block.kind === \"code\") return total + block.code.length;\n return (\n total + block.items.reduce((itemTotal, item) => itemTotal + item.text.length, 0)\n );\n }, 0);\n}\n\nexport const askAnswerDraftSchema = z\n .strictObject({\n blocks: z.array(askAnswerDraftBlockSchema).min(1).max(limits.maximumAnswerBlocks),\n warnings: z.array(askExecutorAnswerWarningSchema).max(limits.maximumAnswerBlocks),\n })\n .superRefine((answer, context) => {\n if (draftCharacters(answer.blocks) > limits.maximumAnswerCharacters) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined answer text exceeds the answer limit.\",\n path: [\"blocks\"],\n });\n }\n const citations = answer.blocks.flatMap((block) =>\n block.kind === \"list\"\n ? block.items.flatMap((item) => item.citations)\n : block.citations,\n );\n if (\n citations.length === 0 &&\n !answer.warnings.some((warning) => warning.code === \"insufficient-evidence\")\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"An uncited answer draft must declare insufficient evidence.\",\n path: [\"warnings\"],\n });\n }\n const distinct = new Set(\n citations.map(\n (citation) =>\n `${citation.handleId}:${String(citation.startLine)}:${String(citation.endLine)}`,\n ),\n );\n if (distinct.size > limits.maximumSources) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer references exceed the source limit.\",\n path: [\"blocks\"],\n });\n }\n });\n\nconst sourceIdListSchema = z\n .array(contextualAskOpaqueIdSchema)\n .max(limits.maximumSources);\nconst paragraphBlockSchema = z.strictObject({\n kind: z.literal(\"paragraph\"),\n text: contextualAskBoundedText(limits.maximumAnswerCharacters),\n sourceIds: sourceIdListSchema,\n});\nconst listBlockSchema = z.strictObject({\n kind: z.literal(\"list\"),\n items: z\n .array(\n z.strictObject({\n text: contextualAskBoundedText(limits.maximumAnswerCharacters),\n sourceIds: sourceIdListSchema,\n }),\n )\n .min(1)\n .max(limits.maximumAnswerBlocks),\n});\nconst codeBlockSchema = z.strictObject({\n kind: z.literal(\"code\"),\n code: z.string().min(1).max(limits.maximumAnswerCharacters),\n language: contextualAskBoundedText(limits.maximumLanguageCharacters).optional(),\n sourceIds: sourceIdListSchema,\n});\nexport const askAnswerBlockSchema = z.discriminatedUnion(\"kind\", [\n paragraphBlockSchema,\n listBlockSchema,\n codeBlockSchema,\n]);\n\nexport const askSourceReferenceSchema = z\n .strictObject({\n sourceId: contextualAskOpaqueIdSchema,\n label: contextualAskBoundedText(limits.maximumLabelCharacters),\n relativePath: contextualAskRelativePathSchema,\n fileId: contextualAskOpaqueIdSchema,\n startLine: z.number().int().positive(),\n endLine: z.number().int().positive(),\n confidence: z.enum(ASK_SOURCE_CONFIDENCES),\n targetIds: z.array(contextualAskOpaqueIdSchema).min(1).max(limits.maximumTargets),\n sourceVersion: contextualAskBoundedText(limits.maximumIdCharacters).optional(),\n contentHash: contentHashSchema,\n })\n .superRefine((source, context) => {\n if (source.endLine < source.startLine) {\n context.addIssue({\n code: \"custom\",\n message: \"Source endLine must not precede startLine.\",\n path: [\"endLine\"],\n });\n }\n if (new Set(source.targetIds).size !== source.targetIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Source target IDs must be unique.\",\n path: [\"targetIds\"],\n });\n }\n });\n\nfunction resultBlockCharacters(\n blocks: readonly z.infer<typeof askAnswerBlockSchema>[],\n): number {\n return blocks.reduce((total, block) => {\n if (block.kind === \"paragraph\") return total + block.text.length;\n if (block.kind === \"code\") return total + block.code.length;\n return (\n total + block.items.reduce((itemTotal, item) => itemTotal + item.text.length, 0)\n );\n }, 0);\n}\n\nexport const askAnswerResultSchema = z\n .strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n jobId: contextualAskOpaqueIdSchema,\n selectionId: contextualAskOpaqueIdSchema,\n contextHash: contentHashSchema,\n executor: z.strictObject({\n executorId: contextualAskOpaqueIdSchema,\n kind: z.enum(CONTEXTUAL_ASK_EXECUTOR_KINDS),\n label: contextualAskBoundedText(limits.maximumLabelCharacters),\n modelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),\n }),\n blocks: z.array(askAnswerBlockSchema).min(1).max(limits.maximumAnswerBlocks),\n sources: z.array(askSourceReferenceSchema).max(limits.maximumSources),\n warnings: z.array(askAnswerWarningSchema).max(limits.maximumAnswerBlocks),\n createdAt: z.iso.datetime(),\n expiresAt: z.iso.datetime(),\n })\n .superRefine((answer, context) => {\n if (Date.parse(answer.expiresAt) <= Date.parse(answer.createdAt)) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer expiry must follow creation.\",\n path: [\"expiresAt\"],\n });\n }\n if (resultBlockCharacters(answer.blocks) > limits.maximumAnswerCharacters) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined answer text exceeds the answer limit.\",\n path: [\"blocks\"],\n });\n }\n const sourceIds = answer.sources.map((source) => source.sourceId);\n if (new Set(sourceIds).size !== sourceIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer source IDs must be unique.\",\n path: [\"sources\"],\n });\n }\n const available = new Set(sourceIds);\n const references = answer.blocks.flatMap((block) =>\n block.kind === \"list\"\n ? block.items.flatMap((item) => item.sourceIds)\n : block.sourceIds,\n );\n if (\n references.length === 0 &&\n !answer.warnings.some((warning) => warning.code === \"insufficient-evidence\")\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"An uncited answer must declare insufficient evidence.\",\n path: [\"warnings\"],\n });\n }\n if (references.some((sourceId) => !available.has(sourceId))) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer blocks reference an unknown source ID.\",\n path: [\"blocks\"],\n });\n }\n if (sourceIds.some((sourceId) => !references.includes(sourceId))) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer sources must be referenced by at least one block.\",\n path: [\"sources\"],\n });\n }\n });\n\nexport const contextualAskExecutorCapabilitySchema = z\n .strictObject({\n executorId: contextualAskOpaqueIdSchema,\n kind: z.enum(CONTEXTUAL_ASK_EXECUTOR_KINDS),\n label: contextualAskBoundedText(limits.maximumLabelCharacters),\n requestedModelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),\n effectiveModelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),\n models: z\n .array(contextualAskBoundedText(limits.maximumLabelCharacters))\n .min(1)\n .max(limits.maximumModels)\n .refine((models) => new Set(models).size === models.length)\n .optional(),\n state: z.enum(CONTEXTUAL_ASK_EXECUTOR_STATES),\n providerDataConsentRequired: z.boolean(),\n readOnlyProven: z.boolean(),\n errorCode: z.enum(CONTEXTUAL_ASK_ERROR_CODES).optional(),\n })\n .superRefine((executor, context) => {\n if (\n (executor.state === \"ready\" &&\n (!executor.readOnlyProven || executor.errorCode !== undefined)) ||\n (executor.state !== \"ready\" && executor.errorCode === undefined)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Executor capability fields are inconsistent.\",\n });\n }\n });\n\nexport const contextualAskCapabilitySchema = z\n .strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n enabled: z.boolean(),\n executors: z\n .array(contextualAskExecutorCapabilitySchema)\n .max(limits.maximumExecutors),\n safety: z.strictObject({\n selectionRequired: z.literal(true),\n singleTurn: z.literal(true),\n writesAllowed: z.literal(false),\n historyStored: z.literal(false),\n }),\n checkedAt: z.iso.datetime(),\n })\n .superRefine((capability, context) => {\n if (\n (!capability.enabled && capability.executors.length > 0) ||\n new Set(capability.executors.map((executor) => executor.executorId)).size !==\n capability.executors.length\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Contextual Ask capability fields are inconsistent.\",\n path: [\"executors\"],\n });\n }\n });\n\nexport type ContextualAskExecutorPreference = z.infer<\n typeof contextualAskExecutorPreferenceSchema\n>;\nexport type ContextualAskOptions = z.infer<typeof contextualAskOptionsSchema>;\nexport type SpotSelectionTarget = z.infer<typeof spotSelectionTargetSchema>;\nexport type SpotSelectionContext = z.infer<typeof spotSelectionContextSchema>;\nexport type AskDraftOrigin = z.infer<typeof askDraftOriginSchema>;\nexport type SpotAskTaskEnvelope = z.infer<typeof spotAskTaskEnvelopeSchema>;\nexport type SpotChangeTaskEnvelope = z.infer<typeof spotChangeTaskEnvelopeSchema>;\nexport type SpotTaskEnvelope = z.infer<typeof spotTaskEnvelopeSchema>;\nexport type AskAnswerWarning = z.infer<typeof askAnswerWarningSchema>;\nexport type AskDraftCitation = z.infer<typeof askDraftCitationSchema>;\nexport type AskAnswerDraftBlock = z.infer<typeof askAnswerDraftBlockSchema>;\nexport type AskAnswerDraft = z.infer<typeof askAnswerDraftSchema>;\nexport type AskAnswerBlock = z.infer<typeof askAnswerBlockSchema>;\nexport type AskSourceReference = z.infer<typeof askSourceReferenceSchema>;\nexport type AskAnswerResult = z.infer<typeof askAnswerResultSchema>;\nexport type ContextualAskExecutorCapability = z.infer<\n typeof contextualAskExecutorCapabilitySchema\n>;\nexport type ContextualAskCapability = z.infer<typeof contextualAskCapabilitySchema>;\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 EXTERNAL_HANDOFF_DISABLED: \"EXTERNAL_HANDOFF_DISABLED\",\n EXTERNAL_HANDOFF_UNAVAILABLE: \"EXTERNAL_HANDOFF_UNAVAILABLE\",\n HANDOFF_VALIDATION_FAILED: \"HANDOFF_VALIDATION_FAILED\",\n HANDOFF_SOURCE_STALE: \"HANDOFF_SOURCE_STALE\",\n HANDOFF_NOT_FOUND: \"HANDOFF_NOT_FOUND\",\n HANDOFF_EXPIRED: \"HANDOFF_EXPIRED\",\n HANDOFF_CURSOR_INVALID: \"HANDOFF_CURSOR_INVALID\",\n HANDOFF_RESPONSE_TOO_LARGE: \"HANDOFF_RESPONSE_TOO_LARGE\",\n BRIDGE_UNAUTHORIZED: \"BRIDGE_UNAUTHORIZED\",\n BRIDGE_PROTOCOL_MISMATCH: \"BRIDGE_PROTOCOL_MISMATCH\",\n BRIDGE_BUSY: \"BRIDGE_BUSY\",\n EXTERNAL_AGENT_BUSY: \"EXTERNAL_AGENT_BUSY\",\n ACTIVE_ADAPTER_CONFLICT: \"ACTIVE_ADAPTER_CONFLICT\",\n ACTIVE_ADAPTER_LEASE_INVALID: \"ACTIVE_ADAPTER_LEASE_INVALID\",\n ACTIVE_DISPATCH_INVALID: \"ACTIVE_DISPATCH_INVALID\",\n SESSION_NOT_FOUND: \"SESSION_NOT_FOUND\",\n SESSION_AMBIGUOUS: \"SESSION_AMBIGUOUS\",\n SESSION_CLOSED: \"SESSION_CLOSED\",\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 const CONTEXTUAL_ASK_ERROR_CODES = Object.freeze([\n \"ASK_DISABLED\",\n \"ASK_SELECTION_REQUIRED\",\n \"ASK_SELECTION_STALE\",\n \"ASK_QUESTION_INVALID\",\n \"ASK_EXECUTOR_UNAVAILABLE\",\n \"ASK_TIMEOUT\",\n \"ASK_CONSENT_REQUIRED\",\n \"ASK_BUSY\",\n \"ASK_IDEMPOTENCY_CONFLICT\",\n \"ASK_SOURCE_SCOPE_DENIED\",\n \"ASK_LIMIT_EXCEEDED\",\n \"ASK_ANSWER_INVALID\",\n \"ASK_WRITE_ATTEMPTED\",\n \"ASK_CANCELLED\",\n \"ASK_RESULT_EXPIRED\",\n \"ASK_PROTOCOL_INCOMPATIBLE\",\n] as const);\n\nexport type ContextualAskErrorCode = (typeof CONTEXTUAL_ASK_ERROR_CODES)[number];\n\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\nexport const ERROR_CODE_VALUES = Object.freeze(Object.values(ERROR_CODES));\n\nexport function isErrorCode(value: unknown): value is ErrorCode {\n return (\n typeof value === \"string\" &&\n (ERROR_CODE_VALUES as readonly string[]).includes(value)\n );\n}\n","export const CONTEXTUAL_ASK_SCHEMA_VERSION = 1 as const;\n\nexport const CONTEXTUAL_ASK_LIMITS = Object.freeze({\n maximumTargets: 20,\n maximumQuestionCharacters: 4_000,\n maximumAnswerCharacters: 40_000,\n maximumAnswerBlocks: 40,\n maximumSources: 64,\n maximumReadFiles: 32,\n maximumReadBytesPerFile: 64 * 1_024,\n maximumReadBytesTotal: 512 * 1_024,\n maximumToolCalls: 48,\n maximumModelTurns: 12,\n jobTimeoutMs: 300_000,\n resultTtlMs: 900_000,\n maximumActiveJobsPerSession: 1,\n maximumRetainedResultsPerSession: 1,\n maximumRetainedEvents: 256,\n maximumEventSubscribers: 4,\n eventHeartbeatMs: 15_000,\n maximumRequestBodyBytes: 256 * 1_024,\n maximumSearchQueryCharacters: 256,\n maximumSearchResults: 64,\n maximumSearchPreviewCharacters: 500,\n capabilityTimeoutMs: 30_000,\n maximumIdCharacters: 128,\n maximumProfileIdCharacters: 64,\n maximumLabelCharacters: 256,\n maximumRelativePathCharacters: 1_024,\n maximumLanguageCharacters: 64,\n maximumPhaseMessageCharacters: 1_024,\n maximumExecutors: 32,\n maximumModels: 800,\n contentHashHexCharacters: 64,\n} as const);\n\nexport const CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([\n \"configured-key\",\n \"managed-codex\",\n] as const);\nexport type ContextualAskExecutorKind = (typeof CONTEXTUAL_ASK_EXECUTOR_KINDS)[number];\n\nexport const CONTEXTUAL_ASK_EXECUTOR_STATES = Object.freeze([\n \"ready\",\n \"degraded\",\n \"unavailable\",\n] as const);\nexport type ContextualAskExecutorState =\n (typeof CONTEXTUAL_ASK_EXECUTOR_STATES)[number];\n\nexport const ASK_JOB_STATUSES = Object.freeze([\n \"queued\",\n \"authorizing\",\n \"running\",\n \"cancelling\",\n \"answered\",\n \"cancelled\",\n \"failed\",\n] as const);\nexport type AskJobStatus = (typeof ASK_JOB_STATUSES)[number];\n\nexport const ASK_ANSWER_WARNING_CODES = Object.freeze([\n \"insufficient-evidence\",\n \"partial-context\",\n \"source-truncated\",\n \"source-stale\",\n] as const);\nexport type AskAnswerWarningCode = (typeof ASK_ANSWER_WARNING_CODES)[number];\n\n/** Warnings an executor may declare from its own evidence assessment. */\nexport const ASK_EXECUTOR_ANSWER_WARNING_CODES = Object.freeze([\n \"insufficient-evidence\",\n \"partial-context\",\n] as const satisfies readonly AskAnswerWarningCode[]);\nexport type AskExecutorAnswerWarningCode =\n (typeof ASK_EXECUTOR_ANSWER_WARNING_CODES)[number];\n\nexport const ASK_READ_ACTIVITY_STATES = Object.freeze([\n \"started\",\n \"succeeded\",\n \"failed\",\n] as const);\nexport type AskReadActivityState = (typeof ASK_READ_ACTIVITY_STATES)[number];\n\nexport const ASK_FILE_COUNT_BUCKETS = Object.freeze([\"one\", \"few\", \"many\"] as const);\nexport type AskFileCountBucket = (typeof ASK_FILE_COUNT_BUCKETS)[number];\n\nexport const ASK_SOURCE_CONFIDENCES = Object.freeze([\n \"exact\",\n \"probable\",\n \"approximate\",\n] as const);\nexport type AskSourceConfidence = (typeof ASK_SOURCE_CONFIDENCES)[number];\n\nexport const CONTEXTUAL_ASK_PERMISSION_PROFILE = \"spotpatch-ask-readonly\" as const;\n","import { z } from \"zod\";\n\nimport { CONTEXTUAL_ASK_ERROR_CODES } from \"../errors/error-code.js\";\nimport {\n askAnswerResultSchema,\n contextualAskBoundedText,\n contextualAskOpaqueIdSchema,\n contextualAskRelativePathSchema,\n spotAskTaskEnvelopeSchema,\n} from \"../model/contextual-ask.js\";\nimport {\n ASK_FILE_COUNT_BUCKETS,\n ASK_JOB_STATUSES,\n ASK_READ_ACTIVITY_STATES,\n CONTEXTUAL_ASK_EXECUTOR_KINDS,\n CONTEXTUAL_ASK_LIMITS,\n CONTEXTUAL_ASK_SCHEMA_VERSION,\n} from \"./contextual-ask-constants.js\";\n\nconst limits = CONTEXTUAL_ASK_LIMITS;\nconst timestampSchema = z.iso.datetime();\n\nexport const contextualAskCapabilityRequestSchema = z.strictObject({});\n\nexport const askJobCreateRequestSchema = z.strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n requestId: contextualAskOpaqueIdSchema,\n envelope: spotAskTaskEnvelopeSchema,\n executorId: contextualAskOpaqueIdSchema,\n model: contextualAskBoundedText(limits.maximumLabelCharacters).optional(),\n providerDataConsent: z.literal(true),\n});\n\nexport const askJobActionRequestSchema = z.strictObject({});\n\nexport const askJobEventsRequestSchema = z.strictObject({\n afterSequence: z.number().int().nonnegative().optional(),\n});\n\nconst askJobExecutorSnapshotSchema = z.strictObject({\n executorId: contextualAskOpaqueIdSchema,\n kind: z.enum(CONTEXTUAL_ASK_EXECUTOR_KINDS),\n label: contextualAskBoundedText(limits.maximumLabelCharacters),\n modelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),\n});\n\nexport const askJobSnapshotSchema = z\n .strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n jobId: contextualAskOpaqueIdSchema,\n selectionId: contextualAskOpaqueIdSchema,\n status: z.enum(ASK_JOB_STATUSES),\n executor: askJobExecutorSnapshotSchema,\n phaseMessage: contextualAskBoundedText(\n limits.maximumPhaseMessageCharacters,\n ).optional(),\n createdAt: timestampSchema,\n updatedAt: timestampSchema,\n canCancel: z.boolean(),\n errorCode: z.enum(CONTEXTUAL_ASK_ERROR_CODES).optional(),\n })\n .superRefine((snapshot, context) => {\n if (Date.parse(snapshot.updatedAt) < Date.parse(snapshot.createdAt)) {\n context.addIssue({\n code: \"custom\",\n message: \"Job updatedAt must not precede createdAt.\",\n path: [\"updatedAt\"],\n });\n }\n\n const cancellable = [\"queued\", \"authorizing\", \"running\"].includes(snapshot.status);\n if (snapshot.canCancel !== cancellable) {\n context.addIssue({\n code: \"custom\",\n message: \"Job canCancel does not match its status.\",\n path: [\"canCancel\"],\n });\n }\n\n if (\n (snapshot.status === \"failed\" && snapshot.errorCode === undefined) ||\n (snapshot.status === \"failed\" && snapshot.errorCode === \"ASK_CANCELLED\") ||\n (snapshot.status === \"cancelled\" && snapshot.errorCode !== \"ASK_CANCELLED\") ||\n (snapshot.status !== \"failed\" &&\n snapshot.status !== \"cancelled\" &&\n snapshot.errorCode !== undefined)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Job errorCode does not match its terminal status.\",\n path: [\"errorCode\"],\n });\n }\n });\n\nexport const askJobResultResponseSchema = z\n .strictObject({\n snapshot: askJobSnapshotSchema,\n result: askAnswerResultSchema.optional(),\n })\n .superRefine((response, context) => {\n const answered = response.snapshot.status === \"answered\";\n if (answered !== (response.result !== undefined)) {\n context.addIssue({\n code: \"custom\",\n message: \"Only an answered job must contain an answer result.\",\n path: [\"result\"],\n });\n return;\n }\n if (\n response.result !== undefined &&\n (response.result.jobId !== response.snapshot.jobId ||\n response.result.selectionId !== response.snapshot.selectionId ||\n response.result.executor.executorId !== response.snapshot.executor.executorId)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer result identity does not match the job snapshot.\",\n path: [\"result\"],\n });\n }\n });\n\nconst askJobEventBaseShape = {\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n sequence: z.number().int().positive(),\n jobId: contextualAskOpaqueIdSchema,\n status: z.enum(ASK_JOB_STATUSES),\n timestamp: timestampSchema,\n} as const;\n\nconst askJobSnapshotEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"snapshot\"),\n snapshot: askJobSnapshotSchema,\n});\n\nconst askJobPhaseEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"phase\"),\n message: contextualAskBoundedText(limits.maximumPhaseMessageCharacters),\n});\n\nconst askReadSourceActivitySchema = z.strictObject({\n kind: z.literal(\"source\"),\n sourceId: contextualAskOpaqueIdSchema,\n relativePath: contextualAskRelativePathSchema,\n});\n\nconst askReadFileCountActivitySchema = z.strictObject({\n kind: z.literal(\"file-count\"),\n bucket: z.enum(ASK_FILE_COUNT_BUCKETS),\n});\n\nconst askJobReadActivityEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"read-activity\"),\n activity: z.discriminatedUnion(\"kind\", [\n askReadSourceActivitySchema,\n askReadFileCountActivitySchema,\n ]),\n state: z.enum(ASK_READ_ACTIVITY_STATES),\n});\n\nconst askJobAnswerReadyEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"answer-ready\"),\n});\n\nconst askJobErrorEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"error\"),\n errorCode: z.enum(CONTEXTUAL_ASK_ERROR_CODES),\n});\n\nexport const askJobEventSchema = z\n .discriminatedUnion(\"type\", [\n askJobSnapshotEventSchema,\n askJobPhaseEventSchema,\n askJobReadActivityEventSchema,\n askJobAnswerReadyEventSchema,\n askJobErrorEventSchema,\n ])\n .superRefine((event, context) => {\n if (\n event.type === \"snapshot\" &&\n (event.snapshot.jobId !== event.jobId || event.snapshot.status !== event.status)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Snapshot event identity does not match its envelope.\",\n path: [\"snapshot\"],\n });\n }\n if (event.type === \"read-activity\" && event.status !== \"running\") {\n context.addIssue({\n code: \"custom\",\n message: \"Read activity is only valid while a job is running.\",\n path: [\"status\"],\n });\n }\n if (\n event.type === \"phase\" &&\n [\"answered\", \"cancelled\", \"failed\"].includes(event.status)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Phase events cannot report a terminal state.\",\n path: [\"status\"],\n });\n }\n if (event.type === \"answer-ready\" && event.status !== \"answered\") {\n context.addIssue({\n code: \"custom\",\n message: \"Answer-ready must report the answered state.\",\n path: [\"status\"],\n });\n }\n if (event.type === \"error\" && ![\"failed\", \"cancelled\"].includes(event.status)) {\n context.addIssue({\n code: \"custom\",\n message: \"Error events must report a terminal error state.\",\n path: [\"status\"],\n });\n }\n if (\n event.type === \"error\" &&\n ((event.status === \"cancelled\" && event.errorCode !== \"ASK_CANCELLED\") ||\n (event.status === \"failed\" && event.errorCode === \"ASK_CANCELLED\"))\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Error event code does not match its status.\",\n path: [\"errorCode\"],\n });\n }\n });\n\nexport type ContextualAskCapabilityRequest = z.infer<\n typeof contextualAskCapabilityRequestSchema\n>;\nexport type AskJobCreateRequest = z.infer<typeof askJobCreateRequestSchema>;\nexport type AskJobActionRequest = z.infer<typeof askJobActionRequestSchema>;\nexport type AskJobEventsRequest = z.infer<typeof askJobEventsRequestSchema>;\nexport type AskJobSnapshot = z.infer<typeof askJobSnapshotSchema>;\nexport type AskJobResultResponse = z.infer<typeof askJobResultResponseSchema>;\nexport type AskJobEvent = z.infer<typeof askJobEventSchema>;\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 askCapability: `${SPOTPATCH_API_BASE}/ask/capability`,\n askJobs: `${SPOTPATCH_API_BASE}/ask/jobs`,\n externalHandoffCapability: `${SPOTPATCH_API_BASE}/external-handoff/capability`,\n externalHandoffPublish: `${SPOTPATCH_API_BASE}/external-handoff/publish`,\n externalHandoffStatus: `${SPOTPATCH_API_BASE}/external-handoff/status`,\n externalHandoffResolveDelivery: `${SPOTPATCH_API_BASE}/external-handoff/resolve-delivery`,\n externalAgentControlStatus: `${SPOTPATCH_API_BASE}/external-agent/control/status`,\n externalAgentControlConnect: `${SPOTPATCH_API_BASE}/external-agent/control/connect`,\n externalAgentControlDisconnect: `${SPOTPATCH_API_BASE}/external-agent/control/disconnect`,\n externalAgentControlCancel: `${SPOTPATCH_API_BASE}/external-agent/control/cancel`,\n externalAgentEvents: `${SPOTPATCH_API_BASE}/external-agent/events`,\n externalAgentResult: `${SPOTPATCH_API_BASE}/external-agent/result`,\n});\n\nexport type AgentJobAction = \"events\" | \"result\" | \"cancel\" | \"apply\" | \"revert\";\nexport type AskJobAction = \"events\" | \"result\" | \"cancel\";\n\nexport function getAgentJobEndpoint(jobId: string, action: AgentJobAction): string {\n return `${SPOTPATCH_ENDPOINTS.agentJobs}/${encodeURIComponent(jobId)}/${action}`;\n}\n\nexport function getAskJobEndpoint(\n jobId: string,\n action: AskJobAction,\n options: Readonly<{ afterSequence?: number }> = {},\n): string {\n const endpoint = `${SPOTPATCH_ENDPOINTS.askJobs}/${encodeURIComponent(jobId)}/${action}`;\n if (action !== \"events\" && options.afterSequence !== undefined) {\n throw new RangeError(\"afterSequence is only valid for the events endpoint.\");\n }\n if (options.afterSequence === undefined) return endpoint;\n if (!Number.isSafeInteger(options.afterSequence) || options.afterSequence < 0) {\n throw new RangeError(\"afterSequence must be a non-negative safe integer.\");\n }\n return `${endpoint}?afterSequence=${String(options.afterSequence)}`;\n}\n"],"mappings":"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","names":["import_zod","import_zod","limits"]}
1
+ {"version":3,"sources":["../src/contextual-ask-node.ts","../src/model/context-schema.ts","../src/model/annotation.ts","../src/model/contextual-ask.ts","../src/errors/error-code.ts","../src/protocol/contextual-ask-constants.ts","../src/protocol/contextual-ask.ts","../src/protocol/endpoints.ts"],"sourcesContent":["import type { SpotAnnotation } from \"./model/annotation.js\";\nimport { spotAnnotationSchema } from \"./model/context-schema.js\";\nimport {\n spotChangeTaskEnvelopeSchema,\n type SpotChangeTaskEnvelope,\n} from \"./model/contextual-ask.js\";\n\n/**\n * Temporary migration boundary for existing Change consumers.\n * Ask envelopes are intentionally excluded both by the public type and runtime parser.\n */\nexport function adaptChangeEnvelopeToSpotAnnotationV3(\n envelope: SpotChangeTaskEnvelope,\n): SpotAnnotation {\n const change = spotChangeTaskEnvelopeSchema.parse(envelope);\n const instructions = new Map(\n change.task.instructions.map((instruction) => [\n instruction.targetId,\n instruction.instruction,\n ]),\n );\n const firstTarget = change.selection.targets[0];\n if (firstTarget === undefined) {\n throw new TypeError(\"A Change envelope must contain at least one target.\");\n }\n const targets = change.selection.targets.map(({ targetId, page, ...target }) => {\n const instruction = instructions.get(targetId);\n if (instruction === undefined) {\n throw new TypeError(\"A Change target must have an instruction.\");\n }\n return { ...target, page, instruction };\n });\n\n const annotation = spotAnnotationSchema.parse({\n schemaVersion: 3,\n id: change.taskId,\n locale: change.selection.locale,\n page: firstTarget.page,\n targets,\n createdAt: change.createdAt,\n });\n // JSON protocol objects cannot carry explicit `undefined`; strict parsing above\n // therefore satisfies the legacy interface's exact-optional-property contract.\n return annotation as unknown as SpotAnnotation;\n}\n\nexport {\n askAnswerBlockSchema,\n askAnswerDraftBlockSchema,\n askAnswerDraftSchema,\n askAnswerResultSchema,\n askAnswerWarningSchema,\n askDraftCitationSchema,\n askDraftOriginSchema,\n askSourceReferenceSchema,\n contextualAskCapabilitySchema,\n contextualAskExecutorCapabilitySchema,\n contextualAskExecutorPreferenceSchema,\n contextualAskOptionsSchema,\n spotAskTaskEnvelopeSchema,\n spotChangeTaskEnvelopeSchema,\n spotSelectionContextSchema,\n spotSelectionTargetSchema,\n spotTaskEnvelopeSchema,\n} from \"./model/contextual-ask.js\";\nexport {\n askJobActionRequestSchema,\n askJobCreateRequestSchema,\n askJobEventSchema,\n askJobEventsRequestSchema,\n askJobResultResponseSchema,\n askJobSnapshotSchema,\n contextualAskCapabilityRequestSchema,\n} from \"./protocol/contextual-ask.js\";\n\nexport type {\n AskAnswerBlock,\n AskAnswerDraft,\n AskAnswerDraftBlock,\n AskAnswerResult,\n AskAnswerWarning,\n AskDraftCitation,\n AskDraftOrigin,\n AskSourceReference,\n ContextualAskCapability,\n ContextualAskExecutorCapability,\n ContextualAskExecutorPreference,\n ContextualAskOptions,\n SpotAskTaskEnvelope,\n SpotChangeTaskEnvelope,\n SpotSelectionContext,\n SpotSelectionTarget,\n SpotTaskEnvelope,\n} from \"./model/contextual-ask.js\";\nexport type {\n AskJobActionRequest,\n AskJobCreateRequest,\n AskJobEvent,\n AskJobEventsRequest,\n AskJobResultResponse,\n AskJobSnapshot,\n ContextualAskCapabilityRequest,\n} from \"./protocol/contextual-ask.js\";\nexport {\n ASK_ANSWER_WARNING_CODES,\n ASK_EXECUTOR_ANSWER_WARNING_CODES,\n ASK_FILE_COUNT_BUCKETS,\n ASK_JOB_STATUSES,\n ASK_READ_ACTIVITY_STATES,\n ASK_SOURCE_CONFIDENCES,\n CONTEXTUAL_ASK_EXECUTOR_KINDS,\n CONTEXTUAL_ASK_EXECUTOR_STATES,\n CONTEXTUAL_ASK_LIMITS,\n CONTEXTUAL_ASK_PERMISSION_PROFILE,\n CONTEXTUAL_ASK_SCHEMA_VERSION,\n type AskAnswerWarningCode,\n type AskExecutorAnswerWarningCode,\n type AskFileCountBucket,\n type AskJobStatus,\n type AskReadActivityState,\n type AskSourceConfidence,\n type ContextualAskExecutorKind,\n type ContextualAskExecutorState,\n} from \"./protocol/contextual-ask-constants.js\";\nexport {\n getAskJobEndpoint,\n SPOTPATCH_ENDPOINTS,\n SPOTPATCH_TOKEN_HEADER,\n type AskJobAction,\n} from \"./protocol/endpoints.js\";\nexport {\n CONTEXTUAL_ASK_ERROR_CODES,\n type ContextualAskErrorCode,\n} from \"./errors/error-code.js\";\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} from \"./annotation.js\";\n\nconst boundedString = (maximum: number): z.ZodString => z.string().max(maximum);\n\nexport const 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\", \"astro-host\", \"react-fiber\", \"dom-ancestor\", \"none\"]),\n confidence: z.enum([\"exact\", \"probable\", \"approximate\", \"unknown\"]),\n});\n\nexport const 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});\n\nexport const codeContextSchema = z.strictObject({\n relativePath: boundedString(1_024),\n language: z.enum([\"tsx\", \"jsx\", \"astro\"]),\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});\n\nexport const 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 spotTargetContextSchema = 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 spotAnnotationSchema = 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(spotTargetContextSchema).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 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","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 { CONTEXTUAL_ASK_ERROR_CODES } from \"../errors/error-code.js\";\nimport {\n ASK_ANSWER_WARNING_CODES,\n ASK_EXECUTOR_ANSWER_WARNING_CODES,\n ASK_SOURCE_CONFIDENCES,\n CONTEXTUAL_ASK_EXECUTOR_KINDS,\n CONTEXTUAL_ASK_EXECUTOR_STATES,\n CONTEXTUAL_ASK_LIMITS,\n CONTEXTUAL_ASK_SCHEMA_VERSION,\n} from \"../protocol/contextual-ask-constants.js\";\nimport {\n MAX_ANNOTATION_INSTRUCTION_CHARACTERS,\n MAX_TARGET_INSTRUCTION_CHARACTERS,\n SPOTPATCH_LOCALES,\n} from \"./annotation.js\";\nimport { pageContextSchema, spotTargetContextSchema } from \"./context-schema.js\";\n\nconst limits = CONTEXTUAL_ASK_LIMITS;\nexport const contextualAskBoundedText = (maximum: number): z.ZodString =>\n z.string().trim().min(1).max(maximum);\nexport const contextualAskOpaqueIdSchema = z\n .string()\n .min(1)\n .max(limits.maximumIdCharacters)\n .regex(/^[A-Za-z0-9_-]+$/u);\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(limits.maximumProfileIdCharacters)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/u);\nconst contentHashSchema = z\n .string()\n .length(limits.contentHashHexCharacters)\n .regex(/^[a-f0-9]+$/u);\nexport const contextualAskRelativePathSchema = z\n .string()\n .min(1)\n .max(limits.maximumRelativePathCharacters)\n .refine(\n (value) =>\n !value.startsWith(\"/\") &&\n !value.includes(\"\\\\\") &&\n !Array.from(value).some((character) => {\n const codePoint = character.codePointAt(0);\n return codePoint !== undefined && (codePoint <= 31 || codePoint === 127);\n }) &&\n !/^[A-Za-z]:/u.test(value) &&\n value\n .split(\"/\")\n .every((segment) => segment !== \"\" && segment !== \".\" && segment !== \"..\"),\n { message: \"Expected a safe project-relative POSIX path.\" },\n );\n\nexport const contextualAskExecutorPreferenceSchema = z.discriminatedUnion(\"kind\", [\n z.strictObject({\n kind: z.literal(\"configured-key\"),\n providerProfileId: profileIdSchema,\n modelProfileId: profileIdSchema,\n }),\n z.strictObject({ kind: z.literal(\"managed-codex\") }),\n z.strictObject({ kind: z.literal(\"claude-code\") }),\n]);\n\nexport const contextualAskOptionsSchema = z.union([\n z.boolean(),\n z.strictObject({\n defaultExecutor: contextualAskExecutorPreferenceSchema.optional(),\n }),\n]);\n\nexport const spotSelectionTargetSchema = spotTargetContextSchema\n .omit({ instruction: true, page: true })\n .extend({\n targetId: contextualAskOpaqueIdSchema,\n page: pageContextSchema,\n })\n .strict();\n\nexport const spotSelectionContextSchema = z\n .strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n selectionId: contextualAskOpaqueIdSchema,\n locale: z.enum(SPOTPATCH_LOCALES),\n targets: z.array(spotSelectionTargetSchema).min(1).max(limits.maximumTargets),\n createdAt: z.iso.datetime(),\n })\n .superRefine((selection, context) => {\n const targetIds = selection.targets.map((target) => target.targetId);\n if (new Set(targetIds).size !== targetIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Selection target IDs must be unique.\",\n path: [\"targets\"],\n });\n }\n });\n\nexport const askDraftOriginSchema = z\n .strictObject({\n kind: z.literal(\"contextual-ask\"),\n askJobId: contextualAskOpaqueIdSchema,\n question: contextualAskBoundedText(limits.maximumQuestionCharacters),\n answerDigest: contextualAskBoundedText(limits.maximumQuestionCharacters),\n sourceIds: z.array(contextualAskOpaqueIdSchema).max(limits.maximumSources),\n })\n .superRefine((origin, context) => {\n if (new Set(origin.sourceIds).size !== origin.sourceIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Ask origin source IDs must be unique.\",\n path: [\"sourceIds\"],\n });\n }\n });\n\nconst askTaskSchema = z.strictObject({\n kind: z.literal(\"ask\"),\n question: contextualAskBoundedText(limits.maximumQuestionCharacters),\n});\nconst changeInstructionSchema = z.strictObject({\n targetId: contextualAskOpaqueIdSchema,\n instruction: contextualAskBoundedText(MAX_TARGET_INSTRUCTION_CHARACTERS),\n});\nconst changeTaskSchema = z.strictObject({\n kind: z.literal(\"change\"),\n instructions: z.array(changeInstructionSchema).min(1).max(limits.maximumTargets),\n origin: askDraftOriginSchema.optional(),\n});\nconst envelopeBaseShape = {\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n taskId: contextualAskOpaqueIdSchema,\n selection: spotSelectionContextSchema,\n createdAt: z.iso.datetime(),\n} as const;\n\nexport const spotAskTaskEnvelopeSchema = z.strictObject({\n ...envelopeBaseShape,\n task: askTaskSchema,\n});\n\nexport const spotChangeTaskEnvelopeSchema = z\n .strictObject({\n ...envelopeBaseShape,\n task: changeTaskSchema,\n })\n .superRefine((envelope, context) => {\n const targetIds = envelope.selection.targets.map((target) => target.targetId);\n const instructionIds = envelope.task.instructions.map(\n (instruction) => instruction.targetId,\n );\n if (\n new Set(instructionIds).size !== instructionIds.length ||\n instructionIds.length !== targetIds.length ||\n targetIds.some((targetId) => !instructionIds.includes(targetId))\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Change instructions must map one-to-one to selection targets.\",\n path: [\"task\", \"instructions\"],\n });\n }\n const total = envelope.task.instructions.reduce(\n (characters, instruction) => characters + instruction.instruction.length,\n 0,\n );\n if (total > MAX_ANNOTATION_INSTRUCTION_CHARACTERS) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined change instructions exceed the task limit.\",\n path: [\"task\", \"instructions\"],\n });\n }\n });\n\nexport const spotTaskEnvelopeSchema = z.union([\n spotAskTaskEnvelopeSchema,\n spotChangeTaskEnvelopeSchema,\n]);\n\nexport const askAnswerWarningSchema = z.strictObject({\n code: z.enum(ASK_ANSWER_WARNING_CODES),\n});\n\nconst askExecutorAnswerWarningSchema = z.strictObject({\n code: z.enum(ASK_EXECUTOR_ANSWER_WARNING_CODES),\n});\n\nexport const askDraftCitationSchema = z\n .strictObject({\n handleId: contextualAskOpaqueIdSchema,\n startLine: z.number().int().positive(),\n endLine: z.number().int().positive(),\n })\n .refine((citation) => citation.endLine >= citation.startLine, {\n message: \"Citation endLine must not precede startLine.\",\n });\n\nconst draftCitationListSchema = z\n .array(askDraftCitationSchema)\n .max(limits.maximumSources);\nconst draftParagraphBlockSchema = z.strictObject({\n kind: z.literal(\"paragraph\"),\n text: contextualAskBoundedText(limits.maximumAnswerCharacters),\n citations: draftCitationListSchema,\n});\nconst draftListBlockSchema = z.strictObject({\n kind: z.literal(\"list\"),\n items: z\n .array(\n z.strictObject({\n text: contextualAskBoundedText(limits.maximumAnswerCharacters),\n citations: draftCitationListSchema,\n }),\n )\n .min(1)\n .max(limits.maximumAnswerBlocks),\n});\nconst draftCodeBlockSchema = z.strictObject({\n kind: z.literal(\"code\"),\n code: z.string().min(1).max(limits.maximumAnswerCharacters),\n language: contextualAskBoundedText(limits.maximumLanguageCharacters).optional(),\n citations: draftCitationListSchema,\n});\nexport const askAnswerDraftBlockSchema = z.discriminatedUnion(\"kind\", [\n draftParagraphBlockSchema,\n draftListBlockSchema,\n draftCodeBlockSchema,\n]);\n\nfunction draftCharacters(\n blocks: readonly z.infer<typeof askAnswerDraftBlockSchema>[],\n): number {\n return blocks.reduce((total, block) => {\n if (block.kind === \"paragraph\") return total + block.text.length;\n if (block.kind === \"code\") return total + block.code.length;\n return (\n total + block.items.reduce((itemTotal, item) => itemTotal + item.text.length, 0)\n );\n }, 0);\n}\n\nexport const askAnswerDraftSchema = z\n .strictObject({\n blocks: z.array(askAnswerDraftBlockSchema).min(1).max(limits.maximumAnswerBlocks),\n warnings: z.array(askExecutorAnswerWarningSchema).max(limits.maximumAnswerBlocks),\n })\n .superRefine((answer, context) => {\n if (draftCharacters(answer.blocks) > limits.maximumAnswerCharacters) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined answer text exceeds the answer limit.\",\n path: [\"blocks\"],\n });\n }\n const citations = answer.blocks.flatMap((block) =>\n block.kind === \"list\"\n ? block.items.flatMap((item) => item.citations)\n : block.citations,\n );\n if (\n citations.length === 0 &&\n !answer.warnings.some((warning) => warning.code === \"insufficient-evidence\")\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"An uncited answer draft must declare insufficient evidence.\",\n path: [\"warnings\"],\n });\n }\n const distinct = new Set(\n citations.map(\n (citation) =>\n `${citation.handleId}:${String(citation.startLine)}:${String(citation.endLine)}`,\n ),\n );\n if (distinct.size > limits.maximumSources) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer references exceed the source limit.\",\n path: [\"blocks\"],\n });\n }\n });\n\nconst sourceIdListSchema = z\n .array(contextualAskOpaqueIdSchema)\n .max(limits.maximumSources);\nconst paragraphBlockSchema = z.strictObject({\n kind: z.literal(\"paragraph\"),\n text: contextualAskBoundedText(limits.maximumAnswerCharacters),\n sourceIds: sourceIdListSchema,\n});\nconst listBlockSchema = z.strictObject({\n kind: z.literal(\"list\"),\n items: z\n .array(\n z.strictObject({\n text: contextualAskBoundedText(limits.maximumAnswerCharacters),\n sourceIds: sourceIdListSchema,\n }),\n )\n .min(1)\n .max(limits.maximumAnswerBlocks),\n});\nconst codeBlockSchema = z.strictObject({\n kind: z.literal(\"code\"),\n code: z.string().min(1).max(limits.maximumAnswerCharacters),\n language: contextualAskBoundedText(limits.maximumLanguageCharacters).optional(),\n sourceIds: sourceIdListSchema,\n});\nexport const askAnswerBlockSchema = z.discriminatedUnion(\"kind\", [\n paragraphBlockSchema,\n listBlockSchema,\n codeBlockSchema,\n]);\n\nexport const askSourceReferenceSchema = z\n .strictObject({\n sourceId: contextualAskOpaqueIdSchema,\n label: contextualAskBoundedText(limits.maximumLabelCharacters),\n relativePath: contextualAskRelativePathSchema,\n fileId: contextualAskOpaqueIdSchema,\n startLine: z.number().int().positive(),\n endLine: z.number().int().positive(),\n confidence: z.enum(ASK_SOURCE_CONFIDENCES),\n targetIds: z.array(contextualAskOpaqueIdSchema).min(1).max(limits.maximumTargets),\n sourceVersion: contextualAskBoundedText(limits.maximumIdCharacters).optional(),\n contentHash: contentHashSchema,\n })\n .superRefine((source, context) => {\n if (source.endLine < source.startLine) {\n context.addIssue({\n code: \"custom\",\n message: \"Source endLine must not precede startLine.\",\n path: [\"endLine\"],\n });\n }\n if (new Set(source.targetIds).size !== source.targetIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Source target IDs must be unique.\",\n path: [\"targetIds\"],\n });\n }\n });\n\nfunction resultBlockCharacters(\n blocks: readonly z.infer<typeof askAnswerBlockSchema>[],\n): number {\n return blocks.reduce((total, block) => {\n if (block.kind === \"paragraph\") return total + block.text.length;\n if (block.kind === \"code\") return total + block.code.length;\n return (\n total + block.items.reduce((itemTotal, item) => itemTotal + item.text.length, 0)\n );\n }, 0);\n}\n\nexport const askAnswerResultSchema = z\n .strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n jobId: contextualAskOpaqueIdSchema,\n selectionId: contextualAskOpaqueIdSchema,\n contextHash: contentHashSchema,\n executor: z.strictObject({\n executorId: contextualAskOpaqueIdSchema,\n kind: z.enum(CONTEXTUAL_ASK_EXECUTOR_KINDS),\n label: contextualAskBoundedText(limits.maximumLabelCharacters),\n modelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),\n }),\n blocks: z.array(askAnswerBlockSchema).min(1).max(limits.maximumAnswerBlocks),\n sources: z.array(askSourceReferenceSchema).max(limits.maximumSources),\n warnings: z.array(askAnswerWarningSchema).max(limits.maximumAnswerBlocks),\n createdAt: z.iso.datetime(),\n expiresAt: z.iso.datetime(),\n })\n .superRefine((answer, context) => {\n if (Date.parse(answer.expiresAt) <= Date.parse(answer.createdAt)) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer expiry must follow creation.\",\n path: [\"expiresAt\"],\n });\n }\n if (resultBlockCharacters(answer.blocks) > limits.maximumAnswerCharacters) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined answer text exceeds the answer limit.\",\n path: [\"blocks\"],\n });\n }\n const sourceIds = answer.sources.map((source) => source.sourceId);\n if (new Set(sourceIds).size !== sourceIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer source IDs must be unique.\",\n path: [\"sources\"],\n });\n }\n const available = new Set(sourceIds);\n const references = answer.blocks.flatMap((block) =>\n block.kind === \"list\"\n ? block.items.flatMap((item) => item.sourceIds)\n : block.sourceIds,\n );\n if (\n references.length === 0 &&\n !answer.warnings.some((warning) => warning.code === \"insufficient-evidence\")\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"An uncited answer must declare insufficient evidence.\",\n path: [\"warnings\"],\n });\n }\n if (references.some((sourceId) => !available.has(sourceId))) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer blocks reference an unknown source ID.\",\n path: [\"blocks\"],\n });\n }\n if (sourceIds.some((sourceId) => !references.includes(sourceId))) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer sources must be referenced by at least one block.\",\n path: [\"sources\"],\n });\n }\n });\n\nexport const contextualAskExecutorCapabilitySchema = z\n .strictObject({\n executorId: contextualAskOpaqueIdSchema,\n kind: z.enum(CONTEXTUAL_ASK_EXECUTOR_KINDS),\n label: contextualAskBoundedText(limits.maximumLabelCharacters),\n requestedModelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),\n effectiveModelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),\n models: z\n .array(contextualAskBoundedText(limits.maximumLabelCharacters))\n .min(1)\n .max(limits.maximumModels)\n .refine((models) => new Set(models).size === models.length)\n .optional(),\n state: z.enum(CONTEXTUAL_ASK_EXECUTOR_STATES),\n providerDataConsentRequired: z.boolean(),\n readOnlyProven: z.boolean(),\n errorCode: z.enum(CONTEXTUAL_ASK_ERROR_CODES).optional(),\n })\n .superRefine((executor, context) => {\n if (\n (executor.state === \"ready\" &&\n (!executor.readOnlyProven || executor.errorCode !== undefined)) ||\n (executor.state !== \"ready\" && executor.errorCode === undefined)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Executor capability fields are inconsistent.\",\n });\n }\n });\n\nexport const contextualAskCapabilitySchema = z\n .strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n enabled: z.boolean(),\n executors: z\n .array(contextualAskExecutorCapabilitySchema)\n .max(limits.maximumExecutors),\n safety: z.strictObject({\n selectionRequired: z.literal(true),\n singleTurn: z.literal(true),\n writesAllowed: z.literal(false),\n historyStored: z.literal(false),\n }),\n checkedAt: z.iso.datetime(),\n })\n .superRefine((capability, context) => {\n if (\n (!capability.enabled && capability.executors.length > 0) ||\n new Set(capability.executors.map((executor) => executor.executorId)).size !==\n capability.executors.length\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Contextual Ask capability fields are inconsistent.\",\n path: [\"executors\"],\n });\n }\n });\n\nexport type ContextualAskExecutorPreference = z.infer<\n typeof contextualAskExecutorPreferenceSchema\n>;\nexport type ContextualAskOptions = z.infer<typeof contextualAskOptionsSchema>;\nexport type SpotSelectionTarget = z.infer<typeof spotSelectionTargetSchema>;\nexport type SpotSelectionContext = z.infer<typeof spotSelectionContextSchema>;\nexport type AskDraftOrigin = z.infer<typeof askDraftOriginSchema>;\nexport type SpotAskTaskEnvelope = z.infer<typeof spotAskTaskEnvelopeSchema>;\nexport type SpotChangeTaskEnvelope = z.infer<typeof spotChangeTaskEnvelopeSchema>;\nexport type SpotTaskEnvelope = z.infer<typeof spotTaskEnvelopeSchema>;\nexport type AskAnswerWarning = z.infer<typeof askAnswerWarningSchema>;\nexport type AskDraftCitation = z.infer<typeof askDraftCitationSchema>;\nexport type AskAnswerDraftBlock = z.infer<typeof askAnswerDraftBlockSchema>;\nexport type AskAnswerDraft = z.infer<typeof askAnswerDraftSchema>;\nexport type AskAnswerBlock = z.infer<typeof askAnswerBlockSchema>;\nexport type AskSourceReference = z.infer<typeof askSourceReferenceSchema>;\nexport type AskAnswerResult = z.infer<typeof askAnswerResultSchema>;\nexport type ContextualAskExecutorCapability = z.infer<\n typeof contextualAskExecutorCapabilitySchema\n>;\nexport type ContextualAskCapability = z.infer<typeof contextualAskCapabilitySchema>;\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 EXTERNAL_HANDOFF_DISABLED: \"EXTERNAL_HANDOFF_DISABLED\",\n EXTERNAL_HANDOFF_UNAVAILABLE: \"EXTERNAL_HANDOFF_UNAVAILABLE\",\n HANDOFF_VALIDATION_FAILED: \"HANDOFF_VALIDATION_FAILED\",\n HANDOFF_SOURCE_STALE: \"HANDOFF_SOURCE_STALE\",\n HANDOFF_NOT_FOUND: \"HANDOFF_NOT_FOUND\",\n HANDOFF_EXPIRED: \"HANDOFF_EXPIRED\",\n HANDOFF_CURSOR_INVALID: \"HANDOFF_CURSOR_INVALID\",\n HANDOFF_RESPONSE_TOO_LARGE: \"HANDOFF_RESPONSE_TOO_LARGE\",\n BRIDGE_UNAUTHORIZED: \"BRIDGE_UNAUTHORIZED\",\n BRIDGE_PROTOCOL_MISMATCH: \"BRIDGE_PROTOCOL_MISMATCH\",\n BRIDGE_BUSY: \"BRIDGE_BUSY\",\n EXTERNAL_AGENT_BUSY: \"EXTERNAL_AGENT_BUSY\",\n ACTIVE_ADAPTER_CONFLICT: \"ACTIVE_ADAPTER_CONFLICT\",\n ACTIVE_ADAPTER_LEASE_INVALID: \"ACTIVE_ADAPTER_LEASE_INVALID\",\n ACTIVE_DISPATCH_INVALID: \"ACTIVE_DISPATCH_INVALID\",\n SESSION_NOT_FOUND: \"SESSION_NOT_FOUND\",\n SESSION_AMBIGUOUS: \"SESSION_AMBIGUOUS\",\n SESSION_CLOSED: \"SESSION_CLOSED\",\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 const CONTEXTUAL_ASK_ERROR_CODES = Object.freeze([\n \"ASK_DISABLED\",\n \"ASK_SELECTION_REQUIRED\",\n \"ASK_SELECTION_STALE\",\n \"ASK_QUESTION_INVALID\",\n \"ASK_EXECUTOR_UNAVAILABLE\",\n \"ASK_TIMEOUT\",\n \"ASK_CONSENT_REQUIRED\",\n \"ASK_BUSY\",\n \"ASK_IDEMPOTENCY_CONFLICT\",\n \"ASK_SOURCE_SCOPE_DENIED\",\n \"ASK_LIMIT_EXCEEDED\",\n \"ASK_ANSWER_INVALID\",\n \"ASK_WRITE_ATTEMPTED\",\n \"ASK_CANCELLED\",\n \"ASK_RESULT_EXPIRED\",\n \"ASK_PROTOCOL_INCOMPATIBLE\",\n] as const);\n\nexport type ContextualAskErrorCode = (typeof CONTEXTUAL_ASK_ERROR_CODES)[number];\n\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\nexport const ERROR_CODE_VALUES = Object.freeze(Object.values(ERROR_CODES));\n\nexport function isErrorCode(value: unknown): value is ErrorCode {\n return (\n typeof value === \"string\" &&\n (ERROR_CODE_VALUES as readonly string[]).includes(value)\n );\n}\n","export const CONTEXTUAL_ASK_SCHEMA_VERSION = 1 as const;\n\nexport const CONTEXTUAL_ASK_LIMITS = Object.freeze({\n maximumTargets: 20,\n maximumQuestionCharacters: 4_000,\n maximumAnswerCharacters: 40_000,\n maximumAnswerBlocks: 40,\n maximumSources: 64,\n maximumReadFiles: 32,\n maximumReadBytesPerFile: 64 * 1_024,\n maximumReadBytesTotal: 512 * 1_024,\n maximumToolCalls: 48,\n maximumModelTurns: 12,\n jobTimeoutMs: 300_000,\n resultTtlMs: 900_000,\n maximumActiveJobsPerSession: 1,\n maximumRetainedResultsPerSession: 1,\n maximumRetainedEvents: 256,\n maximumEventSubscribers: 4,\n eventHeartbeatMs: 15_000,\n maximumRequestBodyBytes: 256 * 1_024,\n maximumSearchQueryCharacters: 256,\n maximumSearchResults: 64,\n maximumSearchPreviewCharacters: 500,\n capabilityTimeoutMs: 30_000,\n maximumIdCharacters: 128,\n maximumProfileIdCharacters: 64,\n maximumLabelCharacters: 256,\n maximumRelativePathCharacters: 1_024,\n maximumLanguageCharacters: 64,\n maximumPhaseMessageCharacters: 1_024,\n maximumExecutors: 32,\n maximumModels: 800,\n contentHashHexCharacters: 64,\n} as const);\n\nexport const CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([\n \"configured-key\",\n \"managed-codex\",\n \"claude-code\",\n] as const);\nexport type ContextualAskExecutorKind = (typeof CONTEXTUAL_ASK_EXECUTOR_KINDS)[number];\n\nexport const CONTEXTUAL_ASK_EXECUTOR_STATES = Object.freeze([\n \"ready\",\n \"degraded\",\n \"unavailable\",\n] as const);\nexport type ContextualAskExecutorState =\n (typeof CONTEXTUAL_ASK_EXECUTOR_STATES)[number];\n\nexport const ASK_JOB_STATUSES = Object.freeze([\n \"queued\",\n \"authorizing\",\n \"running\",\n \"cancelling\",\n \"answered\",\n \"cancelled\",\n \"failed\",\n] as const);\nexport type AskJobStatus = (typeof ASK_JOB_STATUSES)[number];\n\nexport const ASK_ANSWER_WARNING_CODES = Object.freeze([\n \"insufficient-evidence\",\n \"partial-context\",\n \"source-truncated\",\n \"source-stale\",\n] as const);\nexport type AskAnswerWarningCode = (typeof ASK_ANSWER_WARNING_CODES)[number];\n\n/** Warnings an executor may declare from its own evidence assessment. */\nexport const ASK_EXECUTOR_ANSWER_WARNING_CODES = Object.freeze([\n \"insufficient-evidence\",\n \"partial-context\",\n] as const satisfies readonly AskAnswerWarningCode[]);\nexport type AskExecutorAnswerWarningCode =\n (typeof ASK_EXECUTOR_ANSWER_WARNING_CODES)[number];\n\nexport const ASK_READ_ACTIVITY_STATES = Object.freeze([\n \"started\",\n \"succeeded\",\n \"failed\",\n] as const);\nexport type AskReadActivityState = (typeof ASK_READ_ACTIVITY_STATES)[number];\n\nexport const ASK_FILE_COUNT_BUCKETS = Object.freeze([\"one\", \"few\", \"many\"] as const);\nexport type AskFileCountBucket = (typeof ASK_FILE_COUNT_BUCKETS)[number];\n\nexport const ASK_SOURCE_CONFIDENCES = Object.freeze([\n \"exact\",\n \"probable\",\n \"approximate\",\n] as const);\nexport type AskSourceConfidence = (typeof ASK_SOURCE_CONFIDENCES)[number];\n\nexport const CONTEXTUAL_ASK_PERMISSION_PROFILE = \"spotpatch-ask-readonly\" as const;\n","import { z } from \"zod\";\n\nimport { CONTEXTUAL_ASK_ERROR_CODES } from \"../errors/error-code.js\";\nimport {\n askAnswerResultSchema,\n contextualAskBoundedText,\n contextualAskOpaqueIdSchema,\n contextualAskRelativePathSchema,\n spotAskTaskEnvelopeSchema,\n} from \"../model/contextual-ask.js\";\nimport {\n ASK_FILE_COUNT_BUCKETS,\n ASK_JOB_STATUSES,\n ASK_READ_ACTIVITY_STATES,\n CONTEXTUAL_ASK_EXECUTOR_KINDS,\n CONTEXTUAL_ASK_LIMITS,\n CONTEXTUAL_ASK_SCHEMA_VERSION,\n} from \"./contextual-ask-constants.js\";\n\nconst limits = CONTEXTUAL_ASK_LIMITS;\nconst timestampSchema = z.iso.datetime();\n\nexport const contextualAskCapabilityRequestSchema = z.strictObject({});\n\nexport const askJobCreateRequestSchema = z.strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n requestId: contextualAskOpaqueIdSchema,\n envelope: spotAskTaskEnvelopeSchema,\n executorId: contextualAskOpaqueIdSchema,\n model: contextualAskBoundedText(limits.maximumLabelCharacters).optional(),\n providerDataConsent: z.literal(true),\n});\n\nexport const askJobActionRequestSchema = z.strictObject({});\n\nexport const askJobEventsRequestSchema = z.strictObject({\n afterSequence: z.number().int().nonnegative().optional(),\n});\n\nconst askJobExecutorSnapshotSchema = z.strictObject({\n executorId: contextualAskOpaqueIdSchema,\n kind: z.enum(CONTEXTUAL_ASK_EXECUTOR_KINDS),\n label: contextualAskBoundedText(limits.maximumLabelCharacters),\n modelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),\n});\n\nexport const askJobSnapshotSchema = z\n .strictObject({\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n jobId: contextualAskOpaqueIdSchema,\n selectionId: contextualAskOpaqueIdSchema,\n status: z.enum(ASK_JOB_STATUSES),\n executor: askJobExecutorSnapshotSchema,\n phaseMessage: contextualAskBoundedText(\n limits.maximumPhaseMessageCharacters,\n ).optional(),\n createdAt: timestampSchema,\n updatedAt: timestampSchema,\n canCancel: z.boolean(),\n errorCode: z.enum(CONTEXTUAL_ASK_ERROR_CODES).optional(),\n })\n .superRefine((snapshot, context) => {\n if (Date.parse(snapshot.updatedAt) < Date.parse(snapshot.createdAt)) {\n context.addIssue({\n code: \"custom\",\n message: \"Job updatedAt must not precede createdAt.\",\n path: [\"updatedAt\"],\n });\n }\n\n const cancellable = [\"queued\", \"authorizing\", \"running\"].includes(snapshot.status);\n if (snapshot.canCancel !== cancellable) {\n context.addIssue({\n code: \"custom\",\n message: \"Job canCancel does not match its status.\",\n path: [\"canCancel\"],\n });\n }\n\n if (\n (snapshot.status === \"failed\" && snapshot.errorCode === undefined) ||\n (snapshot.status === \"failed\" && snapshot.errorCode === \"ASK_CANCELLED\") ||\n (snapshot.status === \"cancelled\" && snapshot.errorCode !== \"ASK_CANCELLED\") ||\n (snapshot.status !== \"failed\" &&\n snapshot.status !== \"cancelled\" &&\n snapshot.errorCode !== undefined)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Job errorCode does not match its terminal status.\",\n path: [\"errorCode\"],\n });\n }\n });\n\nexport const askJobResultResponseSchema = z\n .strictObject({\n snapshot: askJobSnapshotSchema,\n result: askAnswerResultSchema.optional(),\n })\n .superRefine((response, context) => {\n const answered = response.snapshot.status === \"answered\";\n if (answered !== (response.result !== undefined)) {\n context.addIssue({\n code: \"custom\",\n message: \"Only an answered job must contain an answer result.\",\n path: [\"result\"],\n });\n return;\n }\n if (\n response.result !== undefined &&\n (response.result.jobId !== response.snapshot.jobId ||\n response.result.selectionId !== response.snapshot.selectionId ||\n response.result.executor.executorId !== response.snapshot.executor.executorId)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Answer result identity does not match the job snapshot.\",\n path: [\"result\"],\n });\n }\n });\n\nconst askJobEventBaseShape = {\n schemaVersion: z.literal(CONTEXTUAL_ASK_SCHEMA_VERSION),\n sequence: z.number().int().positive(),\n jobId: contextualAskOpaqueIdSchema,\n status: z.enum(ASK_JOB_STATUSES),\n timestamp: timestampSchema,\n} as const;\n\nconst askJobSnapshotEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"snapshot\"),\n snapshot: askJobSnapshotSchema,\n});\n\nconst askJobPhaseEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"phase\"),\n message: contextualAskBoundedText(limits.maximumPhaseMessageCharacters),\n});\n\nconst askReadSourceActivitySchema = z.strictObject({\n kind: z.literal(\"source\"),\n sourceId: contextualAskOpaqueIdSchema,\n relativePath: contextualAskRelativePathSchema,\n});\n\nconst askReadFileCountActivitySchema = z.strictObject({\n kind: z.literal(\"file-count\"),\n bucket: z.enum(ASK_FILE_COUNT_BUCKETS),\n});\n\nconst askJobReadActivityEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"read-activity\"),\n activity: z.discriminatedUnion(\"kind\", [\n askReadSourceActivitySchema,\n askReadFileCountActivitySchema,\n ]),\n state: z.enum(ASK_READ_ACTIVITY_STATES),\n});\n\nconst askJobAnswerReadyEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"answer-ready\"),\n});\n\nconst askJobErrorEventSchema = z.strictObject({\n ...askJobEventBaseShape,\n type: z.literal(\"error\"),\n errorCode: z.enum(CONTEXTUAL_ASK_ERROR_CODES),\n});\n\nexport const askJobEventSchema = z\n .discriminatedUnion(\"type\", [\n askJobSnapshotEventSchema,\n askJobPhaseEventSchema,\n askJobReadActivityEventSchema,\n askJobAnswerReadyEventSchema,\n askJobErrorEventSchema,\n ])\n .superRefine((event, context) => {\n if (\n event.type === \"snapshot\" &&\n (event.snapshot.jobId !== event.jobId || event.snapshot.status !== event.status)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Snapshot event identity does not match its envelope.\",\n path: [\"snapshot\"],\n });\n }\n if (event.type === \"read-activity\" && event.status !== \"running\") {\n context.addIssue({\n code: \"custom\",\n message: \"Read activity is only valid while a job is running.\",\n path: [\"status\"],\n });\n }\n if (\n event.type === \"phase\" &&\n [\"answered\", \"cancelled\", \"failed\"].includes(event.status)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Phase events cannot report a terminal state.\",\n path: [\"status\"],\n });\n }\n if (event.type === \"answer-ready\" && event.status !== \"answered\") {\n context.addIssue({\n code: \"custom\",\n message: \"Answer-ready must report the answered state.\",\n path: [\"status\"],\n });\n }\n if (event.type === \"error\" && ![\"failed\", \"cancelled\"].includes(event.status)) {\n context.addIssue({\n code: \"custom\",\n message: \"Error events must report a terminal error state.\",\n path: [\"status\"],\n });\n }\n if (\n event.type === \"error\" &&\n ((event.status === \"cancelled\" && event.errorCode !== \"ASK_CANCELLED\") ||\n (event.status === \"failed\" && event.errorCode === \"ASK_CANCELLED\"))\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Error event code does not match its status.\",\n path: [\"errorCode\"],\n });\n }\n });\n\nexport type ContextualAskCapabilityRequest = z.infer<\n typeof contextualAskCapabilityRequestSchema\n>;\nexport type AskJobCreateRequest = z.infer<typeof askJobCreateRequestSchema>;\nexport type AskJobActionRequest = z.infer<typeof askJobActionRequestSchema>;\nexport type AskJobEventsRequest = z.infer<typeof askJobEventsRequestSchema>;\nexport type AskJobSnapshot = z.infer<typeof askJobSnapshotSchema>;\nexport type AskJobResultResponse = z.infer<typeof askJobResultResponseSchema>;\nexport type AskJobEvent = z.infer<typeof askJobEventSchema>;\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 askCapability: `${SPOTPATCH_API_BASE}/ask/capability`,\n askJobs: `${SPOTPATCH_API_BASE}/ask/jobs`,\n externalHandoffCapability: `${SPOTPATCH_API_BASE}/external-handoff/capability`,\n externalHandoffPublish: `${SPOTPATCH_API_BASE}/external-handoff/publish`,\n externalHandoffStatus: `${SPOTPATCH_API_BASE}/external-handoff/status`,\n externalHandoffResolveDelivery: `${SPOTPATCH_API_BASE}/external-handoff/resolve-delivery`,\n externalAgentControlStatus: `${SPOTPATCH_API_BASE}/external-agent/control/status`,\n externalAgentControlConnect: `${SPOTPATCH_API_BASE}/external-agent/control/connect`,\n externalAgentControlDisconnect: `${SPOTPATCH_API_BASE}/external-agent/control/disconnect`,\n externalAgentControlCancel: `${SPOTPATCH_API_BASE}/external-agent/control/cancel`,\n externalAgentEvents: `${SPOTPATCH_API_BASE}/external-agent/events`,\n externalAgentResult: `${SPOTPATCH_API_BASE}/external-agent/result`,\n});\n\nexport type AgentJobAction = \"events\" | \"result\" | \"cancel\" | \"apply\" | \"revert\";\nexport type AskJobAction = \"events\" | \"result\" | \"cancel\";\n\nexport function getAgentJobEndpoint(jobId: string, action: AgentJobAction): string {\n return `${SPOTPATCH_ENDPOINTS.agentJobs}/${encodeURIComponent(jobId)}/${action}`;\n}\n\nexport function getAskJobEndpoint(\n jobId: string,\n action: AskJobAction,\n options: Readonly<{ afterSequence?: number }> = {},\n): string {\n const endpoint = `${SPOTPATCH_ENDPOINTS.askJobs}/${encodeURIComponent(jobId)}/${action}`;\n if (action !== \"events\" && options.afterSequence !== undefined) {\n throw new RangeError(\"afterSequence is only valid for the events endpoint.\");\n }\n if (options.afterSequence === undefined) return endpoint;\n if (!Number.isSafeInteger(options.afterSequence) || options.afterSequence < 0) {\n throw new RangeError(\"afterSequence must be a non-negative safe integer.\");\n }\n return `${endpoint}?afterSequence=${String(options.afterSequence)}`;\n}\n"],"mappings":"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","names":["import_zod","import_zod","limits"]}
@@ -1,6 +1,6 @@
1
1
  import { S as SpotAnnotation } from './annotation-Cz-NNgR4.cjs';
2
- import { G as SpotChangeTaskEnvelope } from './contextual-ask-BpbkpFFf.cjs';
3
- export { A as ASK_ANSWER_WARNING_CODES, a as ASK_EXECUTOR_ANSWER_WARNING_CODES, b as ASK_FILE_COUNT_BUCKETS, c as ASK_JOB_STATUSES, d as ASK_READ_ACTIVITY_STATES, e as ASK_SOURCE_CONFIDENCES, f as AskAnswerBlock, K as AskAnswerDraft, L as AskAnswerDraftBlock, g as AskAnswerResult, h as AskAnswerWarning, i as AskAnswerWarningCode, M as AskDraftCitation, j as AskDraftOrigin, k as AskExecutorAnswerWarningCode, l as AskFileCountBucket, m as AskJobActionRequest, n as AskJobCreateRequest, o as AskJobEvent, p as AskJobEventsRequest, q as AskJobResultResponse, r as AskJobSnapshot, s as AskJobStatus, t as AskReadActivityState, u as AskSourceConfidence, v as AskSourceReference, C as CONTEXTUAL_ASK_EXECUTOR_KINDS, w as CONTEXTUAL_ASK_EXECUTOR_STATES, x as CONTEXTUAL_ASK_LIMITS, N as CONTEXTUAL_ASK_PERMISSION_PROFILE, y as CONTEXTUAL_ASK_SCHEMA_VERSION, z as ContextualAskCapability, B as ContextualAskCapabilityRequest, D as ContextualAskExecutorCapability, E as ContextualAskExecutorKind, O as ContextualAskExecutorPreference, F as ContextualAskExecutorState, P as ContextualAskOptions, S as SpotAskTaskEnvelope, H as SpotSelectionContext, I as SpotSelectionTarget, J as SpotTaskEnvelope, Q as askAnswerBlockSchema, R as askAnswerDraftBlockSchema, T as askAnswerDraftSchema, U as askAnswerResultSchema, V as askAnswerWarningSchema, W as askDraftCitationSchema, X as askDraftOriginSchema, Y as askJobActionRequestSchema, Z as askJobCreateRequestSchema, _ as askJobEventSchema, $ as askJobEventsRequestSchema, a0 as askJobResultResponseSchema, a1 as askJobSnapshotSchema, a2 as askSourceReferenceSchema, a3 as contextualAskCapabilityRequestSchema, a4 as contextualAskCapabilitySchema, a5 as contextualAskExecutorCapabilitySchema, a6 as contextualAskExecutorPreferenceSchema, a7 as contextualAskOptionsSchema, a8 as spotAskTaskEnvelopeSchema, a9 as spotChangeTaskEnvelopeSchema, aa as spotSelectionContextSchema, ab as spotSelectionTargetSchema, ac as spotTaskEnvelopeSchema } from './contextual-ask-BpbkpFFf.cjs';
2
+ import { G as SpotChangeTaskEnvelope } from './contextual-ask-BbmHG3Z8.cjs';
3
+ export { A as ASK_ANSWER_WARNING_CODES, a as ASK_EXECUTOR_ANSWER_WARNING_CODES, b as ASK_FILE_COUNT_BUCKETS, c as ASK_JOB_STATUSES, d as ASK_READ_ACTIVITY_STATES, e as ASK_SOURCE_CONFIDENCES, f as AskAnswerBlock, K as AskAnswerDraft, L as AskAnswerDraftBlock, g as AskAnswerResult, h as AskAnswerWarning, i as AskAnswerWarningCode, M as AskDraftCitation, j as AskDraftOrigin, k as AskExecutorAnswerWarningCode, l as AskFileCountBucket, m as AskJobActionRequest, n as AskJobCreateRequest, o as AskJobEvent, p as AskJobEventsRequest, q as AskJobResultResponse, r as AskJobSnapshot, s as AskJobStatus, t as AskReadActivityState, u as AskSourceConfidence, v as AskSourceReference, C as CONTEXTUAL_ASK_EXECUTOR_KINDS, w as CONTEXTUAL_ASK_EXECUTOR_STATES, x as CONTEXTUAL_ASK_LIMITS, N as CONTEXTUAL_ASK_PERMISSION_PROFILE, y as CONTEXTUAL_ASK_SCHEMA_VERSION, z as ContextualAskCapability, B as ContextualAskCapabilityRequest, D as ContextualAskExecutorCapability, E as ContextualAskExecutorKind, O as ContextualAskExecutorPreference, F as ContextualAskExecutorState, P as ContextualAskOptions, S as SpotAskTaskEnvelope, H as SpotSelectionContext, I as SpotSelectionTarget, J as SpotTaskEnvelope, Q as askAnswerBlockSchema, R as askAnswerDraftBlockSchema, T as askAnswerDraftSchema, U as askAnswerResultSchema, V as askAnswerWarningSchema, W as askDraftCitationSchema, X as askDraftOriginSchema, Y as askJobActionRequestSchema, Z as askJobCreateRequestSchema, _ as askJobEventSchema, $ as askJobEventsRequestSchema, a0 as askJobResultResponseSchema, a1 as askJobSnapshotSchema, a2 as askSourceReferenceSchema, a3 as contextualAskCapabilityRequestSchema, a4 as contextualAskCapabilitySchema, a5 as contextualAskExecutorCapabilitySchema, a6 as contextualAskExecutorPreferenceSchema, a7 as contextualAskOptionsSchema, a8 as spotAskTaskEnvelopeSchema, a9 as spotChangeTaskEnvelopeSchema, aa as spotSelectionContextSchema, ab as spotSelectionTargetSchema, ac as spotTaskEnvelopeSchema } from './contextual-ask-BbmHG3Z8.cjs';
4
4
  export { A as AskJobAction, S as SPOTPATCH_ENDPOINTS, a as SPOTPATCH_TOKEN_HEADER, g as getAskJobEndpoint } from './endpoints-O3ohYyAo.cjs';
5
5
  export { C as CONTEXTUAL_ASK_ERROR_CODES, a as ContextualAskErrorCode } from './error-code-DRz2eqcB.cjs';
6
6
  import 'zod';
@@ -1,6 +1,6 @@
1
1
  import { S as SpotAnnotation } from './annotation-Cz-NNgR4.js';
2
- import { G as SpotChangeTaskEnvelope } from './contextual-ask-BpbkpFFf.js';
3
- export { A as ASK_ANSWER_WARNING_CODES, a as ASK_EXECUTOR_ANSWER_WARNING_CODES, b as ASK_FILE_COUNT_BUCKETS, c as ASK_JOB_STATUSES, d as ASK_READ_ACTIVITY_STATES, e as ASK_SOURCE_CONFIDENCES, f as AskAnswerBlock, K as AskAnswerDraft, L as AskAnswerDraftBlock, g as AskAnswerResult, h as AskAnswerWarning, i as AskAnswerWarningCode, M as AskDraftCitation, j as AskDraftOrigin, k as AskExecutorAnswerWarningCode, l as AskFileCountBucket, m as AskJobActionRequest, n as AskJobCreateRequest, o as AskJobEvent, p as AskJobEventsRequest, q as AskJobResultResponse, r as AskJobSnapshot, s as AskJobStatus, t as AskReadActivityState, u as AskSourceConfidence, v as AskSourceReference, C as CONTEXTUAL_ASK_EXECUTOR_KINDS, w as CONTEXTUAL_ASK_EXECUTOR_STATES, x as CONTEXTUAL_ASK_LIMITS, N as CONTEXTUAL_ASK_PERMISSION_PROFILE, y as CONTEXTUAL_ASK_SCHEMA_VERSION, z as ContextualAskCapability, B as ContextualAskCapabilityRequest, D as ContextualAskExecutorCapability, E as ContextualAskExecutorKind, O as ContextualAskExecutorPreference, F as ContextualAskExecutorState, P as ContextualAskOptions, S as SpotAskTaskEnvelope, H as SpotSelectionContext, I as SpotSelectionTarget, J as SpotTaskEnvelope, Q as askAnswerBlockSchema, R as askAnswerDraftBlockSchema, T as askAnswerDraftSchema, U as askAnswerResultSchema, V as askAnswerWarningSchema, W as askDraftCitationSchema, X as askDraftOriginSchema, Y as askJobActionRequestSchema, Z as askJobCreateRequestSchema, _ as askJobEventSchema, $ as askJobEventsRequestSchema, a0 as askJobResultResponseSchema, a1 as askJobSnapshotSchema, a2 as askSourceReferenceSchema, a3 as contextualAskCapabilityRequestSchema, a4 as contextualAskCapabilitySchema, a5 as contextualAskExecutorCapabilitySchema, a6 as contextualAskExecutorPreferenceSchema, a7 as contextualAskOptionsSchema, a8 as spotAskTaskEnvelopeSchema, a9 as spotChangeTaskEnvelopeSchema, aa as spotSelectionContextSchema, ab as spotSelectionTargetSchema, ac as spotTaskEnvelopeSchema } from './contextual-ask-BpbkpFFf.js';
2
+ import { G as SpotChangeTaskEnvelope } from './contextual-ask-BbmHG3Z8.js';
3
+ export { A as ASK_ANSWER_WARNING_CODES, a as ASK_EXECUTOR_ANSWER_WARNING_CODES, b as ASK_FILE_COUNT_BUCKETS, c as ASK_JOB_STATUSES, d as ASK_READ_ACTIVITY_STATES, e as ASK_SOURCE_CONFIDENCES, f as AskAnswerBlock, K as AskAnswerDraft, L as AskAnswerDraftBlock, g as AskAnswerResult, h as AskAnswerWarning, i as AskAnswerWarningCode, M as AskDraftCitation, j as AskDraftOrigin, k as AskExecutorAnswerWarningCode, l as AskFileCountBucket, m as AskJobActionRequest, n as AskJobCreateRequest, o as AskJobEvent, p as AskJobEventsRequest, q as AskJobResultResponse, r as AskJobSnapshot, s as AskJobStatus, t as AskReadActivityState, u as AskSourceConfidence, v as AskSourceReference, C as CONTEXTUAL_ASK_EXECUTOR_KINDS, w as CONTEXTUAL_ASK_EXECUTOR_STATES, x as CONTEXTUAL_ASK_LIMITS, N as CONTEXTUAL_ASK_PERMISSION_PROFILE, y as CONTEXTUAL_ASK_SCHEMA_VERSION, z as ContextualAskCapability, B as ContextualAskCapabilityRequest, D as ContextualAskExecutorCapability, E as ContextualAskExecutorKind, O as ContextualAskExecutorPreference, F as ContextualAskExecutorState, P as ContextualAskOptions, S as SpotAskTaskEnvelope, H as SpotSelectionContext, I as SpotSelectionTarget, J as SpotTaskEnvelope, Q as askAnswerBlockSchema, R as askAnswerDraftBlockSchema, T as askAnswerDraftSchema, U as askAnswerResultSchema, V as askAnswerWarningSchema, W as askDraftCitationSchema, X as askDraftOriginSchema, Y as askJobActionRequestSchema, Z as askJobCreateRequestSchema, _ as askJobEventSchema, $ as askJobEventsRequestSchema, a0 as askJobResultResponseSchema, a1 as askJobSnapshotSchema, a2 as askSourceReferenceSchema, a3 as contextualAskCapabilityRequestSchema, a4 as contextualAskCapabilitySchema, a5 as contextualAskExecutorCapabilitySchema, a6 as contextualAskExecutorPreferenceSchema, a7 as contextualAskOptionsSchema, a8 as spotAskTaskEnvelopeSchema, a9 as spotChangeTaskEnvelopeSchema, aa as spotSelectionContextSchema, ab as spotSelectionTargetSchema, ac as spotTaskEnvelopeSchema } from './contextual-ask-BbmHG3Z8.js';
4
4
  export { A as AskJobAction, S as SPOTPATCH_ENDPOINTS, a as SPOTPATCH_TOKEN_HEADER, g as getAskJobEndpoint } from './endpoints-O3ohYyAo.js';
5
5
  export { C as CONTEXTUAL_ASK_ERROR_CODES, a as ContextualAskErrorCode } from './error-code-DRz2eqcB.js';
6
6
  import 'zod';
@@ -23,7 +23,7 @@ import {
23
23
  spotSelectionContextSchema,
24
24
  spotSelectionTargetSchema,
25
25
  spotTaskEnvelopeSchema
26
- } from "./chunk-CLQ6MIJB.js";
26
+ } from "./chunk-R3BQKCCY.js";
27
27
  import {
28
28
  ASK_ANSWER_WARNING_CODES,
29
29
  ASK_EXECUTOR_ANSWER_WARNING_CODES,
@@ -36,7 +36,7 @@ import {
36
36
  CONTEXTUAL_ASK_LIMITS,
37
37
  CONTEXTUAL_ASK_PERMISSION_PROFILE,
38
38
  CONTEXTUAL_ASK_SCHEMA_VERSION
39
- } from "./chunk-EWJTKNL4.js";
39
+ } from "./chunk-RWFGFW4N.js";
40
40
  import {
41
41
  CONTEXTUAL_ASK_ERROR_CODES,
42
42
  spotAnnotationSchema
@@ -1,3 +1,3 @@
1
- export { h as DATA_FLOW_SCHEMA_VERSION, i as DATA_FLOW_URL_QUERY_KEY_LIMIT, N as NetworkObservation, a as RuntimeDataFlowConfig, x as RuntimeDataFlowLimits, S as SanitizedObservedUrl } from './data-flow-runtime-w43iwvGA.cjs';
1
+ export { h as DATA_FLOW_SCHEMA_VERSION, i as DATA_FLOW_URL_QUERY_KEY_LIMIT, N as NetworkObservation, a as RuntimeDataFlowConfig, x as RuntimeDataFlowLimits, S as SanitizedObservedUrl } from './data-flow-runtime-Bfm5LbHE.cjs';
2
2
  export { b as SPOTPATCH_API_BASE } from './endpoints-O3ohYyAo.cjs';
3
3
  import 'zod';
@@ -1,3 +1,3 @@
1
- export { h as DATA_FLOW_SCHEMA_VERSION, i as DATA_FLOW_URL_QUERY_KEY_LIMIT, N as NetworkObservation, a as RuntimeDataFlowConfig, x as RuntimeDataFlowLimits, S as SanitizedObservedUrl } from './data-flow-runtime-DhWpQoik.js';
1
+ export { h as DATA_FLOW_SCHEMA_VERSION, i as DATA_FLOW_URL_QUERY_KEY_LIMIT, N as NetworkObservation, a as RuntimeDataFlowConfig, x as RuntimeDataFlowLimits, S as SanitizedObservedUrl } from './data-flow-runtime-tyqGH1OS.js';
2
2
  export { b as SPOTPATCH_API_BASE } from './endpoints-O3ohYyAo.js';
3
3
  import 'zod';
@@ -543,6 +543,7 @@ var SPOTPATCH_BRIDGE_PATHS = Object.freeze({
543
543
  });
544
544
  var EXTERNAL_HANDOFF_PROJECT_KEY_SALT = "spotpatch-external-agent-project-v1";
545
545
  var execFileAsync = (0, import_node_util.promisify)(import_node_child_process.execFile);
546
+ var WINDOWS_ACL_COMMAND_TIMEOUT_MS = 3e4;
546
547
  var WINDOWS_ACL_VERIFY_ATTEMPTS = 3;
547
548
  var WINDOWS_ACL_RETRY_DELAY_MS = 25;
548
549
  var WINDOWS_ACL_SCRIPT = String.raw`
@@ -718,7 +719,7 @@ async function verifyWindowsAcl(candidate, kind, initialize) {
718
719
  SPOTPATCH_ACL_OPERATION: initialize ? "initialize" : "verify",
719
720
  SPOTPATCH_ACL_TARGET: candidate
720
721
  },
721
- timeout: 1e4,
722
+ timeout: WINDOWS_ACL_COMMAND_TIMEOUT_MS,
722
723
  windowsHide: true
723
724
  }
724
725
  );