@spotpatch/shared 1.14.3 → 1.16.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 (41) hide show
  1. package/dist/{annotation-Cz-NNgR4.d.cts → annotation-eo_ltNRm.d.cts} +24 -1
  2. package/dist/{annotation-Cz-NNgR4.d.ts → annotation-eo_ltNRm.d.ts} +24 -1
  3. package/dist/{chunk-JTZFOTPT.js → chunk-7777QFBJ.js} +2 -2
  4. package/dist/{chunk-CLQ6MIJB.js → chunk-D7R32NFF.js} +5 -4
  5. package/dist/chunk-D7R32NFF.js.map +1 -0
  6. package/dist/{chunk-R6QJFNT2.js → chunk-FCY5V76A.js} +31 -1
  7. package/dist/chunk-FCY5V76A.js.map +1 -0
  8. package/dist/{chunk-EWJTKNL4.js → chunk-RWFGFW4N.js} +3 -2
  9. package/dist/chunk-RWFGFW4N.js.map +1 -0
  10. package/dist/{contextual-ask-BpbkpFFf.d.cts → contextual-ask-Dz3Mh9LR.d.cts} +117 -1
  11. package/dist/{contextual-ask-BpbkpFFf.d.ts → contextual-ask-Dz3Mh9LR.d.ts} +117 -1
  12. package/dist/contextual-ask-browser.cjs +2 -1
  13. package/dist/contextual-ask-browser.cjs.map +1 -1
  14. package/dist/contextual-ask-browser.d.cts +1 -1
  15. package/dist/contextual-ask-browser.d.ts +1 -1
  16. package/dist/contextual-ask-browser.js +1 -1
  17. package/dist/contextual-ask-node.cjs +28 -2
  18. package/dist/contextual-ask-node.cjs.map +1 -1
  19. package/dist/contextual-ask-node.d.cts +3 -3
  20. package/dist/contextual-ask-node.d.ts +3 -3
  21. package/dist/contextual-ask-node.js +3 -3
  22. package/dist/external-agent-node.cjs +26 -0
  23. package/dist/external-agent-node.cjs.map +1 -1
  24. package/dist/external-agent-node.d.cts +32 -2
  25. package/dist/external-agent-node.d.ts +32 -2
  26. package/dist/external-agent-node.js +2 -2
  27. package/dist/{external-handoff-5zHu-fz2.d.ts → external-handoff-BaPiKnYG.d.ts} +31 -1
  28. package/dist/{external-handoff-DeiIvR-2.d.cts → external-handoff-ByHmcwWv.d.cts} +31 -1
  29. package/dist/external-handoff-browser.d.cts +2 -2
  30. package/dist/external-handoff-browser.d.ts +2 -2
  31. package/dist/index.cjs +38 -2
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +49 -4
  34. package/dist/index.d.ts +49 -4
  35. package/dist/index.js +12 -4
  36. package/dist/index.js.map +1 -1
  37. package/package.json +1 -1
  38. package/dist/chunk-CLQ6MIJB.js.map +0 -1
  39. package/dist/chunk-EWJTKNL4.js.map +0 -1
  40. package/dist/chunk-R6QJFNT2.js.map +0 -1
  41. /package/dist/{chunk-JTZFOTPT.js.map → chunk-7777QFBJ.js.map} +0 -0
@@ -15,6 +15,28 @@ interface CodeContext {
15
15
  readonly boundary: "component" | "nearby-lines";
16
16
  }
17
17
 
18
+ /** Capture evidence is framework-neutral and never grants source access. */
19
+ declare const ELEMENT_INSTANCE_LIMITS: Readonly<{
20
+ idCharacters: 128;
21
+ contextCharacters: 1200;
22
+ labelCharacters: 160;
23
+ selectorCharacters: 2048;
24
+ ancestorDepth: 8;
25
+ locatorDepth: 32;
26
+ }>;
27
+ declare const ELEMENT_INSTANCE_STATES: readonly ["captured", "changed", "detached", "restored"];
28
+ declare const ELEMENT_INSTANCE_HINT_ATTRIBUTE = "data-spotpatch-instance";
29
+ interface ElementInstanceContext {
30
+ /** Opaque capture identity, not a framework key or a business record ID. */
31
+ readonly id: string;
32
+ readonly state: (typeof ELEMENT_INSTANCE_STATES)[number];
33
+ readonly selectorStatus: "unique-at-capture" | "unavailable";
34
+ readonly label: string;
35
+ /** Sanitized nearby DOM scope; it is not a proven component boundary. */
36
+ readonly context: string;
37
+ }
38
+ declare const INSTANCE_SELECTION_INSTRUCTIONS = "Selected targets can be different rendered instances of the same source. Preserve each target and its instruction even when source locations match. Instance IDs identify captures, not business records. Selectors are capture-time evidence, never stable record IDs. Nearby DOM context is not a proven component boundary. Changed, detached, or restored instances are historical snapshots; verify their identity before changing code. Follow the requested scope: a selected instance does not by itself authorize changes to every instance or imply instance-only changes. For an instance-only request, establish the corresponding record/condition and check the shared component's impact; if evidence is insufficient, explain what is missing rather than guessing.";
39
+
18
40
  type SourceConfidence = "exact" | "probable" | "approximate" | "unknown";
19
41
  type SourceOrigin = "jsx-host" | "astro-host" | "react-fiber" | "dom-ancestor" | "none";
20
42
  interface SourceRef {
@@ -58,6 +80,7 @@ interface PageContext {
58
80
  readonly devicePixelRatio: number;
59
81
  }
60
82
  interface ElementContext {
83
+ readonly instance?: ElementInstanceContext;
61
84
  readonly tagName: string;
62
85
  readonly selector: string;
63
86
  readonly sanitizedHtml: string;
@@ -99,4 +122,4 @@ interface SpotAnnotation {
99
122
  readonly createdAt: string;
100
123
  }
101
124
 
102
- export { type ContextBudget as C, type ElementContext as E, MAX_ANNOTATION_INSTRUCTION_CHARACTERS as M, type PageContext as P, type ReactContext as R, type SpotAnnotation as S, type SpotPatchLocale as a, SPOTPATCH_LOCALE_PREFERENCES as b, type CodeContext as c, MAX_ANNOTATION_TARGETS as d, MAX_TARGET_INSTRUCTION_CHARACTERS as e, type MatchedStyleRule as f, SPOTPATCH_LOCALES as g, type SourceConfidence as h, type SourceOrigin as i, type SourceRef as j, type SpotPatchLocalePreference as k, type SpotTargetContext as l, type StyleContext as m };
125
+ export { type ContextBudget as C, ELEMENT_INSTANCE_HINT_ATTRIBUTE as E, INSTANCE_SELECTION_INSTRUCTIONS as I, MAX_ANNOTATION_INSTRUCTION_CHARACTERS as M, type PageContext as P, type ReactContext as R, type SpotAnnotation as S, type SpotPatchLocale as a, SPOTPATCH_LOCALE_PREFERENCES as b, type CodeContext as c, ELEMENT_INSTANCE_LIMITS as d, ELEMENT_INSTANCE_STATES as e, type ElementContext as f, type ElementInstanceContext as g, MAX_ANNOTATION_TARGETS as h, MAX_TARGET_INSTRUCTION_CHARACTERS as i, type MatchedStyleRule as j, SPOTPATCH_LOCALES as k, type SourceConfidence as l, type SourceOrigin as m, type SourceRef as n, type SpotPatchLocalePreference as o, type SpotTargetContext as p, type StyleContext as q };
@@ -15,6 +15,28 @@ interface CodeContext {
15
15
  readonly boundary: "component" | "nearby-lines";
16
16
  }
17
17
 
18
+ /** Capture evidence is framework-neutral and never grants source access. */
19
+ declare const ELEMENT_INSTANCE_LIMITS: Readonly<{
20
+ idCharacters: 128;
21
+ contextCharacters: 1200;
22
+ labelCharacters: 160;
23
+ selectorCharacters: 2048;
24
+ ancestorDepth: 8;
25
+ locatorDepth: 32;
26
+ }>;
27
+ declare const ELEMENT_INSTANCE_STATES: readonly ["captured", "changed", "detached", "restored"];
28
+ declare const ELEMENT_INSTANCE_HINT_ATTRIBUTE = "data-spotpatch-instance";
29
+ interface ElementInstanceContext {
30
+ /** Opaque capture identity, not a framework key or a business record ID. */
31
+ readonly id: string;
32
+ readonly state: (typeof ELEMENT_INSTANCE_STATES)[number];
33
+ readonly selectorStatus: "unique-at-capture" | "unavailable";
34
+ readonly label: string;
35
+ /** Sanitized nearby DOM scope; it is not a proven component boundary. */
36
+ readonly context: string;
37
+ }
38
+ declare const INSTANCE_SELECTION_INSTRUCTIONS = "Selected targets can be different rendered instances of the same source. Preserve each target and its instruction even when source locations match. Instance IDs identify captures, not business records. Selectors are capture-time evidence, never stable record IDs. Nearby DOM context is not a proven component boundary. Changed, detached, or restored instances are historical snapshots; verify their identity before changing code. Follow the requested scope: a selected instance does not by itself authorize changes to every instance or imply instance-only changes. For an instance-only request, establish the corresponding record/condition and check the shared component's impact; if evidence is insufficient, explain what is missing rather than guessing.";
39
+
18
40
  type SourceConfidence = "exact" | "probable" | "approximate" | "unknown";
19
41
  type SourceOrigin = "jsx-host" | "astro-host" | "react-fiber" | "dom-ancestor" | "none";
20
42
  interface SourceRef {
@@ -58,6 +80,7 @@ interface PageContext {
58
80
  readonly devicePixelRatio: number;
59
81
  }
60
82
  interface ElementContext {
83
+ readonly instance?: ElementInstanceContext;
61
84
  readonly tagName: string;
62
85
  readonly selector: string;
63
86
  readonly sanitizedHtml: string;
@@ -99,4 +122,4 @@ interface SpotAnnotation {
99
122
  readonly createdAt: string;
100
123
  }
101
124
 
102
- export { type ContextBudget as C, type ElementContext as E, MAX_ANNOTATION_INSTRUCTION_CHARACTERS as M, type PageContext as P, type ReactContext as R, type SpotAnnotation as S, type SpotPatchLocale as a, SPOTPATCH_LOCALE_PREFERENCES as b, type CodeContext as c, MAX_ANNOTATION_TARGETS as d, MAX_TARGET_INSTRUCTION_CHARACTERS as e, type MatchedStyleRule as f, SPOTPATCH_LOCALES as g, type SourceConfidence as h, type SourceOrigin as i, type SourceRef as j, type SpotPatchLocalePreference as k, type SpotTargetContext as l, type StyleContext as m };
125
+ export { type ContextBudget as C, ELEMENT_INSTANCE_HINT_ATTRIBUTE as E, INSTANCE_SELECTION_INSTRUCTIONS as I, MAX_ANNOTATION_INSTRUCTION_CHARACTERS as M, type PageContext as P, type ReactContext as R, type SpotAnnotation as S, type SpotPatchLocale as a, SPOTPATCH_LOCALE_PREFERENCES as b, type CodeContext as c, ELEMENT_INSTANCE_LIMITS as d, ELEMENT_INSTANCE_STATES as e, type ElementContext as f, type ElementInstanceContext as g, MAX_ANNOTATION_TARGETS as h, MAX_TARGET_INSTRUCTION_CHARACTERS as i, type MatchedStyleRule as j, SPOTPATCH_LOCALES as k, type SourceConfidence as l, type SourceOrigin as m, type SourceRef as n, type SpotPatchLocalePreference as o, type SpotTargetContext as p, type StyleContext as q };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MAX_ANNOTATION_TARGETS,
3
3
  spotAnnotationSchema
4
- } from "./chunk-R6QJFNT2.js";
4
+ } from "./chunk-FCY5V76A.js";
5
5
  import {
6
6
  EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,
7
7
  EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES,
@@ -263,4 +263,4 @@ export {
263
263
  externalHandoffStatusResultSchema,
264
264
  SpotPatchError
265
265
  };
266
- //# sourceMappingURL=chunk-JTZFOTPT.js.map
266
+ //# sourceMappingURL=chunk-7777QFBJ.js.map
@@ -9,7 +9,7 @@ import {
9
9
  CONTEXTUAL_ASK_EXECUTOR_STATES,
10
10
  CONTEXTUAL_ASK_LIMITS,
11
11
  CONTEXTUAL_ASK_SCHEMA_VERSION
12
- } from "./chunk-EWJTKNL4.js";
12
+ } from "./chunk-RWFGFW4N.js";
13
13
  import {
14
14
  CONTEXTUAL_ASK_ERROR_CODES,
15
15
  MAX_ANNOTATION_INSTRUCTION_CHARACTERS,
@@ -17,7 +17,7 @@ import {
17
17
  SPOTPATCH_LOCALES,
18
18
  pageContextSchema,
19
19
  spotTargetContextSchema
20
- } from "./chunk-R6QJFNT2.js";
20
+ } from "./chunk-FCY5V76A.js";
21
21
 
22
22
  // src/model/contextual-ask.ts
23
23
  import { z } from "zod";
@@ -39,7 +39,8 @@ var contextualAskExecutorPreferenceSchema = z.discriminatedUnion("kind", [
39
39
  providerProfileId: profileIdSchema,
40
40
  modelProfileId: profileIdSchema
41
41
  }),
42
- z.strictObject({ kind: z.literal("managed-codex") })
42
+ z.strictObject({ kind: z.literal("managed-codex") }),
43
+ z.strictObject({ kind: z.literal("claude-code") })
43
44
  ]);
44
45
  var contextualAskOptionsSchema = z.union([
45
46
  z.boolean(),
@@ -583,4 +584,4 @@ export {
583
584
  askJobResultResponseSchema,
584
585
  askJobEventSchema
585
586
  };
586
- //# sourceMappingURL=chunk-CLQ6MIJB.js.map
587
+ //# sourceMappingURL=chunk-D7R32NFF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model/contextual-ask.ts","../src/protocol/contextual-ask.ts"],"sourcesContent":["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","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"],"mappings":"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","names":["z","limits","z"]}
@@ -1,3 +1,21 @@
1
+ // src/model/element-instance.ts
2
+ var ELEMENT_INSTANCE_LIMITS = Object.freeze({
3
+ idCharacters: 128,
4
+ contextCharacters: 1200,
5
+ labelCharacters: 160,
6
+ selectorCharacters: 2048,
7
+ ancestorDepth: 8,
8
+ locatorDepth: 32
9
+ });
10
+ var ELEMENT_INSTANCE_STATES = [
11
+ "captured",
12
+ "changed",
13
+ "detached",
14
+ "restored"
15
+ ];
16
+ var ELEMENT_INSTANCE_HINT_ATTRIBUTE = "data-spotpatch-instance";
17
+ var INSTANCE_SELECTION_INSTRUCTIONS = "Selected targets can be different rendered instances of the same source. Preserve each target and its instruction even when source locations match. Instance IDs identify captures, not business records. Selectors are capture-time evidence, never stable record IDs. Nearby DOM context is not a proven component boundary. Changed, detached, or restored instances are historical snapshots; verify their identity before changing code. Follow the requested scope: a selected instance does not by itself authorize changes to every instance or imply instance-only changes. For an instance-only request, establish the corresponding record/condition and check the shared component's impact; if evidence is insufficient, explain what is missing rather than guessing.";
18
+
1
19
  // src/model/annotation.ts
2
20
  var MAX_ANNOTATION_TARGETS = 20;
3
21
  var MAX_TARGET_INSTRUCTION_CHARACTERS = 2e3;
@@ -11,6 +29,13 @@ var SPOTPATCH_LOCALE_PREFERENCES = Object.freeze([
11
29
  // src/model/context-schema.ts
12
30
  import { z } from "zod";
13
31
  var boundedString = (maximum) => z.string().max(maximum);
32
+ var elementInstanceContextSchema = z.strictObject({
33
+ id: z.string().min(1).max(ELEMENT_INSTANCE_LIMITS.idCharacters).regex(/^[A-Za-z0-9_-]+$/u),
34
+ state: z.enum(ELEMENT_INSTANCE_STATES),
35
+ selectorStatus: z.enum(["unique-at-capture", "unavailable"]),
36
+ label: boundedString(ELEMENT_INSTANCE_LIMITS.labelCharacters),
37
+ context: boundedString(ELEMENT_INSTANCE_LIMITS.contextCharacters)
38
+ });
14
39
  var sourceRefSchema = z.strictObject({
15
40
  fileId: boundedString(128).optional(),
16
41
  relativePath: boundedString(1024).optional(),
@@ -55,6 +80,7 @@ var spotTargetContextSchema = z.strictObject({
55
80
  source: sourceRefSchema.optional()
56
81
  }),
57
82
  element: z.strictObject({
83
+ instance: elementInstanceContextSchema.optional(),
58
84
  tagName: boundedString(128),
59
85
  selector: boundedString(2048),
60
86
  sanitizedHtml: boundedString(8192),
@@ -179,6 +205,10 @@ function isErrorCode(value) {
179
205
  }
180
206
 
181
207
  export {
208
+ ELEMENT_INSTANCE_LIMITS,
209
+ ELEMENT_INSTANCE_STATES,
210
+ ELEMENT_INSTANCE_HINT_ATTRIBUTE,
211
+ INSTANCE_SELECTION_INSTRUCTIONS,
182
212
  MAX_ANNOTATION_TARGETS,
183
213
  MAX_TARGET_INSTRUCTION_CHARACTERS,
184
214
  MAX_ANNOTATION_INSTRUCTION_CHARACTERS,
@@ -192,4 +222,4 @@ export {
192
222
  ERROR_CODE_VALUES,
193
223
  isErrorCode
194
224
  };
195
- //# sourceMappingURL=chunk-R6QJFNT2.js.map
225
+ //# sourceMappingURL=chunk-FCY5V76A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model/element-instance.ts","../src/model/annotation.ts","../src/model/context-schema.ts","../src/errors/error-code.ts"],"sourcesContent":["/** Capture evidence is framework-neutral and never grants source access. */\nexport const ELEMENT_INSTANCE_LIMITS = Object.freeze({\n idCharacters: 128,\n contextCharacters: 1_200,\n labelCharacters: 160,\n selectorCharacters: 2_048,\n ancestorDepth: 8,\n locatorDepth: 32,\n});\n\nexport const ELEMENT_INSTANCE_STATES = [\n \"captured\",\n \"changed\",\n \"detached\",\n \"restored\",\n] as const;\n\nexport const ELEMENT_INSTANCE_HINT_ATTRIBUTE = \"data-spotpatch-instance\";\n\nexport interface ElementInstanceContext {\n /** Opaque capture identity, not a framework key or a business record ID. */\n readonly id: string;\n readonly state: (typeof ELEMENT_INSTANCE_STATES)[number];\n readonly selectorStatus: \"unique-at-capture\" | \"unavailable\";\n readonly label: string;\n /** Sanitized nearby DOM scope; it is not a proven component boundary. */\n readonly context: string;\n}\n\nexport const INSTANCE_SELECTION_INSTRUCTIONS =\n \"Selected targets can be different rendered instances of the same source. Preserve each target and its instruction even when source locations match. Instance IDs identify captures, not business records. Selectors are capture-time evidence, never stable record IDs. Nearby DOM context is not a proven component boundary. Changed, detached, or restored instances are historical snapshots; verify their identity before changing code. Follow the requested scope: a selected instance does not by itself authorize changes to every instance or imply instance-only changes. For an instance-only request, establish the corresponding record/condition and check the shared component's impact; if evidence is insufficient, explain what is missing rather than guessing.\";\n","import type { CodeContext } from \"./code-context.js\";\nimport type { ElementInstanceContext } from \"./element-instance.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 instance?: ElementInstanceContext;\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\";\nimport {\n ELEMENT_INSTANCE_LIMITS,\n ELEMENT_INSTANCE_STATES,\n} from \"./element-instance.js\";\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 elementInstanceContextSchema = z.strictObject({\n id: z\n .string()\n .min(1)\n .max(ELEMENT_INSTANCE_LIMITS.idCharacters)\n .regex(/^[A-Za-z0-9_-]+$/u),\n state: z.enum(ELEMENT_INSTANCE_STATES),\n selectorStatus: z.enum([\"unique-at-capture\", \"unavailable\"]),\n label: boundedString(ELEMENT_INSTANCE_LIMITS.labelCharacters),\n context: boundedString(ELEMENT_INSTANCE_LIMITS.contextCharacters),\n});\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 instance: elementInstanceContextSchema.optional(),\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","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"],"mappings":"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","names":[]}
@@ -35,7 +35,8 @@ var CONTEXTUAL_ASK_LIMITS = Object.freeze({
35
35
  });
36
36
  var CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([
37
37
  "configured-key",
38
- "managed-codex"
38
+ "managed-codex",
39
+ "claude-code"
39
40
  ]);
40
41
  var CONTEXTUAL_ASK_EXECUTOR_STATES = Object.freeze([
41
42
  "ready",
@@ -87,4 +88,4 @@ export {
87
88
  ASK_SOURCE_CONFIDENCES,
88
89
  CONTEXTUAL_ASK_PERMISSION_PROFILE
89
90
  };
90
- //# sourceMappingURL=chunk-EWJTKNL4.js.map
91
+ //# sourceMappingURL=chunk-RWFGFW4N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/protocol/contextual-ask-constants.ts"],"sourcesContent":["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"],"mappings":";AAAO,IAAM,gCAAgC;AAEtC,IAAM,wBAAwB,OAAO,OAAO;AAAA,EACjD,gBAAgB;AAAA,EAChB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,yBAAyB,KAAK;AAAA,EAC9B,uBAAuB,MAAM;AAAA,EAC7B,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,6BAA6B;AAAA,EAC7B,kCAAkC;AAAA,EAClC,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,kBAAkB;AAAA,EAClB,yBAAyB,MAAM;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,sBAAsB;AAAA,EACtB,gCAAgC;AAAA,EAChC,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,4BAA4B;AAAA,EAC5B,wBAAwB;AAAA,EACxB,+BAA+B;AAAA,EAC/B,2BAA2B;AAAA,EAC3B,+BAA+B;AAAA,EAC/B,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,0BAA0B;AAC5B,CAAU;AAEH,IAAM,gCAAgC,OAAO,OAAO;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAGH,IAAM,iCAAiC,OAAO,OAAO;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAIH,IAAM,mBAAmB,OAAO,OAAO;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAGH,IAAM,2BAA2B,OAAO,OAAO;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAIH,IAAM,oCAAoC,OAAO,OAAO;AAAA,EAC7D;AAAA,EACA;AACF,CAAoD;AAI7C,IAAM,2BAA2B,OAAO,OAAO;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAGH,IAAM,yBAAyB,OAAO,OAAO,CAAC,OAAO,OAAO,MAAM,CAAU;AAG5E,IAAM,yBAAyB,OAAO,OAAO;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAGH,IAAM,oCAAoC;","names":[]}
@@ -34,7 +34,7 @@ declare const CONTEXTUAL_ASK_LIMITS: Readonly<{
34
34
  readonly maximumModels: 800;
35
35
  readonly contentHashHexCharacters: 64;
36
36
  }>;
37
- declare const CONTEXTUAL_ASK_EXECUTOR_KINDS: readonly ["configured-key", "managed-codex"];
37
+ declare const CONTEXTUAL_ASK_EXECUTOR_KINDS: readonly ["configured-key", "managed-codex", "claude-code"];
38
38
  type ContextualAskExecutorKind = (typeof CONTEXTUAL_ASK_EXECUTOR_KINDS)[number];
39
39
  declare const CONTEXTUAL_ASK_EXECUTOR_STATES: readonly ["ready", "degraded", "unavailable"];
40
40
  type ContextualAskExecutorState = (typeof CONTEXTUAL_ASK_EXECUTOR_STATES)[number];
@@ -59,6 +59,8 @@ declare const contextualAskExecutorPreferenceSchema: z.ZodDiscriminatedUnion<[z.
59
59
  modelProfileId: z.ZodString;
60
60
  }, z.core.$strict>, z.ZodObject<{
61
61
  kind: z.ZodLiteral<"managed-codex">;
62
+ }, z.core.$strict>, z.ZodObject<{
63
+ kind: z.ZodLiteral<"claude-code">;
62
64
  }, z.core.$strict>], "kind">;
63
65
  declare const contextualAskOptionsSchema: z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
64
66
  defaultExecutor: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -67,6 +69,8 @@ declare const contextualAskOptionsSchema: z.ZodUnion<readonly [z.ZodBoolean, z.Z
67
69
  modelProfileId: z.ZodString;
68
70
  }, z.core.$strict>, z.ZodObject<{
69
71
  kind: z.ZodLiteral<"managed-codex">;
72
+ }, z.core.$strict>, z.ZodObject<{
73
+ kind: z.ZodLiteral<"claude-code">;
70
74
  }, z.core.$strict>], "kind">>;
71
75
  }, z.core.$strict>]>;
72
76
  declare const spotSelectionTargetSchema: z.ZodObject<{
@@ -117,6 +121,21 @@ declare const spotSelectionTargetSchema: z.ZodObject<{
117
121
  }, z.core.$strict>>;
118
122
  }, z.core.$strict>;
119
123
  element: z.ZodObject<{
124
+ instance: z.ZodOptional<z.ZodObject<{
125
+ id: z.ZodString;
126
+ state: z.ZodEnum<{
127
+ captured: "captured";
128
+ changed: "changed";
129
+ detached: "detached";
130
+ restored: "restored";
131
+ }>;
132
+ selectorStatus: z.ZodEnum<{
133
+ unavailable: "unavailable";
134
+ "unique-at-capture": "unique-at-capture";
135
+ }>;
136
+ label: z.ZodString;
137
+ context: z.ZodString;
138
+ }, z.core.$strict>>;
120
139
  tagName: z.ZodString;
121
140
  selector: z.ZodString;
122
141
  sanitizedHtml: z.ZodString;
@@ -222,6 +241,21 @@ declare const spotSelectionContextSchema: z.ZodObject<{
222
241
  }, z.core.$strict>>;
223
242
  }, z.core.$strict>;
224
243
  element: z.ZodObject<{
244
+ instance: z.ZodOptional<z.ZodObject<{
245
+ id: z.ZodString;
246
+ state: z.ZodEnum<{
247
+ captured: "captured";
248
+ changed: "changed";
249
+ detached: "detached";
250
+ restored: "restored";
251
+ }>;
252
+ selectorStatus: z.ZodEnum<{
253
+ unavailable: "unavailable";
254
+ "unique-at-capture": "unique-at-capture";
255
+ }>;
256
+ label: z.ZodString;
257
+ context: z.ZodString;
258
+ }, z.core.$strict>>;
225
259
  tagName: z.ZodString;
226
260
  selector: z.ZodString;
227
261
  sanitizedHtml: z.ZodString;
@@ -343,6 +377,21 @@ declare const spotAskTaskEnvelopeSchema: z.ZodObject<{
343
377
  }, z.core.$strict>>;
344
378
  }, z.core.$strict>;
345
379
  element: z.ZodObject<{
380
+ instance: z.ZodOptional<z.ZodObject<{
381
+ id: z.ZodString;
382
+ state: z.ZodEnum<{
383
+ captured: "captured";
384
+ changed: "changed";
385
+ detached: "detached";
386
+ restored: "restored";
387
+ }>;
388
+ selectorStatus: z.ZodEnum<{
389
+ unavailable: "unavailable";
390
+ "unique-at-capture": "unique-at-capture";
391
+ }>;
392
+ label: z.ZodString;
393
+ context: z.ZodString;
394
+ }, z.core.$strict>>;
346
395
  tagName: z.ZodString;
347
396
  selector: z.ZodString;
348
397
  sanitizedHtml: z.ZodString;
@@ -469,6 +518,21 @@ declare const spotChangeTaskEnvelopeSchema: z.ZodObject<{
469
518
  }, z.core.$strict>>;
470
519
  }, z.core.$strict>;
471
520
  element: z.ZodObject<{
521
+ instance: z.ZodOptional<z.ZodObject<{
522
+ id: z.ZodString;
523
+ state: z.ZodEnum<{
524
+ captured: "captured";
525
+ changed: "changed";
526
+ detached: "detached";
527
+ restored: "restored";
528
+ }>;
529
+ selectorStatus: z.ZodEnum<{
530
+ unavailable: "unavailable";
531
+ "unique-at-capture": "unique-at-capture";
532
+ }>;
533
+ label: z.ZodString;
534
+ context: z.ZodString;
535
+ }, z.core.$strict>>;
472
536
  tagName: z.ZodString;
473
537
  selector: z.ZodString;
474
538
  sanitizedHtml: z.ZodString;
@@ -585,6 +649,21 @@ declare const spotTaskEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
585
649
  }, z.core.$strict>>;
586
650
  }, z.core.$strict>;
587
651
  element: z.ZodObject<{
652
+ instance: z.ZodOptional<z.ZodObject<{
653
+ id: z.ZodString;
654
+ state: z.ZodEnum<{
655
+ captured: "captured";
656
+ changed: "changed";
657
+ detached: "detached";
658
+ restored: "restored";
659
+ }>;
660
+ selectorStatus: z.ZodEnum<{
661
+ unavailable: "unavailable";
662
+ "unique-at-capture": "unique-at-capture";
663
+ }>;
664
+ label: z.ZodString;
665
+ context: z.ZodString;
666
+ }, z.core.$strict>>;
588
667
  tagName: z.ZodString;
589
668
  selector: z.ZodString;
590
669
  sanitizedHtml: z.ZodString;
@@ -710,6 +789,21 @@ declare const spotTaskEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
710
789
  }, z.core.$strict>>;
711
790
  }, z.core.$strict>;
712
791
  element: z.ZodObject<{
792
+ instance: z.ZodOptional<z.ZodObject<{
793
+ id: z.ZodString;
794
+ state: z.ZodEnum<{
795
+ captured: "captured";
796
+ changed: "changed";
797
+ detached: "detached";
798
+ restored: "restored";
799
+ }>;
800
+ selectorStatus: z.ZodEnum<{
801
+ unavailable: "unavailable";
802
+ "unique-at-capture": "unique-at-capture";
803
+ }>;
804
+ label: z.ZodString;
805
+ context: z.ZodString;
806
+ }, z.core.$strict>>;
713
807
  tagName: z.ZodString;
714
808
  selector: z.ZodString;
715
809
  sanitizedHtml: z.ZodString;
@@ -883,6 +977,7 @@ declare const askAnswerResultSchema: z.ZodObject<{
883
977
  kind: z.ZodEnum<{
884
978
  "configured-key": "configured-key";
885
979
  "managed-codex": "managed-codex";
980
+ "claude-code": "claude-code";
886
981
  }>;
887
982
  label: z.ZodString;
888
983
  modelLabel: z.ZodString;
@@ -935,6 +1030,7 @@ declare const contextualAskExecutorCapabilitySchema: z.ZodObject<{
935
1030
  kind: z.ZodEnum<{
936
1031
  "configured-key": "configured-key";
937
1032
  "managed-codex": "managed-codex";
1033
+ "claude-code": "claude-code";
938
1034
  }>;
939
1035
  label: z.ZodString;
940
1036
  requestedModelLabel: z.ZodString;
@@ -974,6 +1070,7 @@ declare const contextualAskCapabilitySchema: z.ZodObject<{
974
1070
  kind: z.ZodEnum<{
975
1071
  "configured-key": "configured-key";
976
1072
  "managed-codex": "managed-codex";
1073
+ "claude-code": "claude-code";
977
1074
  }>;
978
1075
  label: z.ZodString;
979
1076
  requestedModelLabel: z.ZodString;
@@ -1097,6 +1194,21 @@ declare const askJobCreateRequestSchema: z.ZodObject<{
1097
1194
  }, z.core.$strict>>;
1098
1195
  }, z.core.$strict>;
1099
1196
  element: z.ZodObject<{
1197
+ instance: z.ZodOptional<z.ZodObject<{
1198
+ id: z.ZodString;
1199
+ state: z.ZodEnum<{
1200
+ captured: "captured";
1201
+ changed: "changed";
1202
+ detached: "detached";
1203
+ restored: "restored";
1204
+ }>;
1205
+ selectorStatus: z.ZodEnum<{
1206
+ unavailable: "unavailable";
1207
+ "unique-at-capture": "unique-at-capture";
1208
+ }>;
1209
+ label: z.ZodString;
1210
+ context: z.ZodString;
1211
+ }, z.core.$strict>>;
1100
1212
  tagName: z.ZodString;
1101
1213
  selector: z.ZodString;
1102
1214
  sanitizedHtml: z.ZodString;
@@ -1177,6 +1289,7 @@ declare const askJobSnapshotSchema: z.ZodObject<{
1177
1289
  kind: z.ZodEnum<{
1178
1290
  "configured-key": "configured-key";
1179
1291
  "managed-codex": "managed-codex";
1292
+ "claude-code": "claude-code";
1180
1293
  }>;
1181
1294
  label: z.ZodString;
1182
1295
  modelLabel: z.ZodString;
@@ -1223,6 +1336,7 @@ declare const askJobResultResponseSchema: z.ZodObject<{
1223
1336
  kind: z.ZodEnum<{
1224
1337
  "configured-key": "configured-key";
1225
1338
  "managed-codex": "managed-codex";
1339
+ "claude-code": "claude-code";
1226
1340
  }>;
1227
1341
  label: z.ZodString;
1228
1342
  modelLabel: z.ZodString;
@@ -1260,6 +1374,7 @@ declare const askJobResultResponseSchema: z.ZodObject<{
1260
1374
  kind: z.ZodEnum<{
1261
1375
  "configured-key": "configured-key";
1262
1376
  "managed-codex": "managed-codex";
1377
+ "claude-code": "claude-code";
1263
1378
  }>;
1264
1379
  label: z.ZodString;
1265
1380
  modelLabel: z.ZodString;
@@ -1328,6 +1443,7 @@ declare const askJobEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1328
1443
  kind: z.ZodEnum<{
1329
1444
  "configured-key": "configured-key";
1330
1445
  "managed-codex": "managed-codex";
1446
+ "claude-code": "claude-code";
1331
1447
  }>;
1332
1448
  label: z.ZodString;
1333
1449
  modelLabel: z.ZodString;