@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.
- package/dist/{annotation-Cz-NNgR4.d.cts → annotation-eo_ltNRm.d.cts} +24 -1
- package/dist/{annotation-Cz-NNgR4.d.ts → annotation-eo_ltNRm.d.ts} +24 -1
- package/dist/{chunk-JTZFOTPT.js → chunk-7777QFBJ.js} +2 -2
- package/dist/{chunk-CLQ6MIJB.js → chunk-D7R32NFF.js} +5 -4
- package/dist/chunk-D7R32NFF.js.map +1 -0
- package/dist/{chunk-R6QJFNT2.js → chunk-FCY5V76A.js} +31 -1
- package/dist/chunk-FCY5V76A.js.map +1 -0
- package/dist/{chunk-EWJTKNL4.js → chunk-RWFGFW4N.js} +3 -2
- package/dist/chunk-RWFGFW4N.js.map +1 -0
- package/dist/{contextual-ask-BpbkpFFf.d.cts → contextual-ask-Dz3Mh9LR.d.cts} +117 -1
- package/dist/{contextual-ask-BpbkpFFf.d.ts → contextual-ask-Dz3Mh9LR.d.ts} +117 -1
- package/dist/contextual-ask-browser.cjs +2 -1
- package/dist/contextual-ask-browser.cjs.map +1 -1
- package/dist/contextual-ask-browser.d.cts +1 -1
- package/dist/contextual-ask-browser.d.ts +1 -1
- package/dist/contextual-ask-browser.js +1 -1
- package/dist/contextual-ask-node.cjs +28 -2
- package/dist/contextual-ask-node.cjs.map +1 -1
- package/dist/contextual-ask-node.d.cts +3 -3
- package/dist/contextual-ask-node.d.ts +3 -3
- package/dist/contextual-ask-node.js +3 -3
- package/dist/external-agent-node.cjs +26 -0
- package/dist/external-agent-node.cjs.map +1 -1
- package/dist/external-agent-node.d.cts +32 -2
- package/dist/external-agent-node.d.ts +32 -2
- package/dist/external-agent-node.js +2 -2
- package/dist/{external-handoff-5zHu-fz2.d.ts → external-handoff-BaPiKnYG.d.ts} +31 -1
- package/dist/{external-handoff-DeiIvR-2.d.cts → external-handoff-ByHmcwWv.d.cts} +31 -1
- package/dist/external-handoff-browser.d.cts +2 -2
- package/dist/external-handoff-browser.d.ts +2 -2
- package/dist/index.cjs +38 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +49 -4
- package/dist/index.d.ts +49 -4
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-CLQ6MIJB.js.map +0 -1
- package/dist/chunk-EWJTKNL4.js.map +0 -1
- package/dist/chunk-R6QJFNT2.js.map +0 -1
- /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,
|
|
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,
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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;
|