@case-framework/survey-assistant 0.3.0 → 0.5.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/README.md +20 -4
- package/dist/capabilities-default.d.mts +1 -1
- package/dist/capabilities-default.mjs +1 -1
- package/dist/{constants-DrGZXtQf.d.mts → constants-DbrJxxOh.d.mts} +5 -2
- package/dist/constants-DbrJxxOh.d.mts.map +1 -0
- package/dist/{controller-proxy-DmBdzqKs.d.mts → controller-proxy-BdKF2yrq.d.mts} +2 -2
- package/dist/{controller-proxy-DmBdzqKs.d.mts.map → controller-proxy-BdKF2yrq.d.mts.map} +1 -1
- package/dist/{controller-proxy-CpkQRezb.mjs → controller-proxy-jWIPOZAv.mjs} +17 -8
- package/dist/controller-proxy-jWIPOZAv.mjs.map +1 -0
- package/dist/{engine-CWTuN3o2.mjs → engine-DcSdLRle.mjs} +172 -12
- package/dist/engine-DcSdLRle.mjs.map +1 -0
- package/dist/engine.d.mts +2 -2
- package/dist/engine.mjs +3 -3
- package/dist/{form-authoring-DCd9XfXf.mjs → form-authoring-BQh40yDb.mjs} +2 -2
- package/dist/{form-authoring-DCd9XfXf.mjs.map → form-authoring-BQh40yDb.mjs.map} +1 -1
- package/dist/{index-D4OitUg4.d.mts → index-BApnIiCI.d.mts} +7 -4
- package/dist/index-BApnIiCI.d.mts.map +1 -0
- package/dist/{index-Bo4dHAo8.d.mts → index-Da_Hb9-1.d.mts} +28 -4
- package/dist/index-Da_Hb9-1.d.mts.map +1 -0
- package/dist/{index-DZk20e3k.d.mts → index-DhNQKOwr.d.mts} +9 -5
- package/dist/index-DhNQKOwr.d.mts.map +1 -0
- package/dist/{index-Dxgg0-D_.d.mts → index-dV6df0W3.d.mts} +11 -5
- package/dist/index-dV6df0W3.d.mts.map +1 -0
- package/dist/{memory-thread-repository-acbz6HZJ.mjs → memory-thread-repository-CvYZwni6.mjs} +87 -28
- package/dist/memory-thread-repository-CvYZwni6.mjs.map +1 -0
- package/dist/{protocol-DATvkr1S.mjs → protocol-DJUP4gc0.mjs} +10 -4
- package/dist/protocol-DJUP4gc0.mjs.map +1 -0
- package/dist/protocol.d.mts +1 -1
- package/dist/protocol.mjs +1 -1
- package/dist/{react-Br5YE8H-.mjs → react-CY6N7lVi.mjs} +25 -5
- package/dist/react-CY6N7lVi.mjs.map +1 -0
- package/dist/react-integration.d.mts +1 -1
- package/dist/react-integration.mjs +1 -1
- package/dist/react.d.mts +2 -2
- package/dist/react.mjs +2 -2
- package/dist/{request-context-BEjnaaFr.mjs → request-context-D1sC54ZA.mjs} +3 -3
- package/dist/request-context-D1sC54ZA.mjs.map +1 -0
- package/dist/server-agent.d.mts +8 -6
- package/dist/server-agent.d.mts.map +1 -1
- package/dist/server-agent.mjs +4 -3
- package/dist/server-agent.mjs.map +1 -1
- package/dist/server-runtime.d.mts +354 -7
- package/dist/server-runtime.d.mts.map +1 -1
- package/dist/server-runtime.mjs +361 -24
- package/dist/server-runtime.mjs.map +1 -1
- package/dist/server-tasks.d.mts +1 -1
- package/dist/server-tasks.mjs +5 -4
- package/dist/server-tasks.mjs.map +1 -1
- package/dist/server-tools.d.mts +1 -1
- package/dist/server-tools.mjs +1 -1
- package/dist/server.d.mts +7 -7
- package/dist/server.d.mts.map +1 -1
- package/dist/server.mjs +2 -2
- package/dist/storage-postgres.mjs +3 -0
- package/dist/storage-postgres.mjs.map +1 -1
- package/dist/{tasks-DQgL449A.d.mts → tasks-CCtxjhwh.d.mts} +3 -3
- package/dist/{tasks-DQgL449A.d.mts.map → tasks-CCtxjhwh.d.mts.map} +1 -1
- package/dist/{thread-handlers-CeYl45xG.d.mts → thread-handlers-Bt9cDo-F.d.mts} +21 -6
- package/dist/{thread-handlers-CeYl45xG.d.mts.map → thread-handlers-Bt9cDo-F.d.mts.map} +1 -1
- package/dist/{tools-Dg9HZrYU.mjs → tools-3tq-XqI0.mjs} +31 -6
- package/dist/{tools-Dg9HZrYU.mjs.map → tools-3tq-XqI0.mjs.map} +1 -1
- package/dist/ui.css +1 -1
- package/dist/ui.d.mts +3 -3
- package/dist/ui.d.mts.map +1 -1
- package/dist/ui.mjs +438 -140
- package/dist/ui.mjs.map +1 -1
- package/docs/integration.md +113 -58
- package/package.json +3 -3
- package/dist/constants-DrGZXtQf.d.mts.map +0 -1
- package/dist/controller-proxy-CpkQRezb.mjs.map +0 -1
- package/dist/engine-CWTuN3o2.mjs.map +0 -1
- package/dist/index-Bo4dHAo8.d.mts.map +0 -1
- package/dist/index-D4OitUg4.d.mts.map +0 -1
- package/dist/index-DZk20e3k.d.mts.map +0 -1
- package/dist/index-Dxgg0-D_.d.mts.map +0 -1
- package/dist/memory-thread-repository-acbz6HZJ.mjs.map +0 -1
- package/dist/protocol-DATvkr1S.mjs.map +0 -1
- package/dist/react-Br5YE8H-.mjs.map +0 -1
- package/dist/request-context-BEjnaaFr.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-DJUP4gc0.mjs","names":[],"sources":["../src/protocol/errors.ts","../src/protocol/content.ts","../src/protocol/operations.ts","../src/protocol/capabilities.ts","../src/protocol/document.ts","../src/protocol/threads.ts","../src/protocol/tasks.ts","../src/protocol/models.ts","../src/protocol/lifecycle.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const surveyAssistantErrorCodeSchema = z.enum([\n \"attachment_unavailable\",\n \"authorization_failed\",\n \"model_unavailable\",\n \"rate_limited\",\n \"request_failed\",\n]);\n\nexport type SurveyAssistantErrorCode = z.infer<typeof surveyAssistantErrorCodeSchema>;\n\nexport const surveyAssistantErrorInfoSchema = z.object({\n code: surveyAssistantErrorCodeSchema,\n detail: z.string().optional(),\n retryable: z.boolean().optional(),\n});\n\nexport type SurveyAssistantErrorInfo = z.infer<typeof surveyAssistantErrorInfoSchema>;\n\nconst ERROR_PREFIX = \"case-survey-assistant-error:\";\n\nexport const serializeSurveyAssistantError = (error: SurveyAssistantErrorInfo): string =>\n `${ERROR_PREFIX}${JSON.stringify(surveyAssistantErrorInfoSchema.parse(error))}`;\n\nexport const parseSurveyAssistantError = (value: unknown): SurveyAssistantErrorInfo => {\n if (typeof value === \"object\" && value !== null && \"code\" in value) {\n const parsed = surveyAssistantErrorInfoSchema.safeParse({\n code: value.code,\n detail:\n \"detail\" in value && typeof value.detail === \"string\"\n ? value.detail\n : \"message\" in value && typeof value.message === \"string\"\n ? value.message\n : undefined,\n retryable:\n \"retryable\" in value && typeof value.retryable === \"boolean\"\n ? value.retryable\n : undefined,\n });\n if (parsed.success) return parsed.data;\n }\n\n const message =\n value instanceof Error\n ? value.message\n : typeof value === \"string\"\n ? value\n : typeof value === \"object\" && value !== null && \"message\" in value\n ? String(value.message)\n : \"\";\n\n if (message.startsWith(ERROR_PREFIX)) {\n try {\n const parsed = surveyAssistantErrorInfoSchema.safeParse(\n JSON.parse(message.slice(ERROR_PREFIX.length)),\n );\n if (parsed.success) return parsed.data;\n } catch {\n // Fall through to the stable generic category.\n }\n }\n\n return {\n code: \"request_failed\",\n ...(message.trim() ? { detail: message.trim() } : {}),\n };\n};\n","import { z } from \"zod\";\nimport type { Content, JsonValue as CoreJsonValue } from \"@case-framework/survey-core\";\n\nexport const jsonValueSchema: z.ZodType<CoreJsonValue> = z.lazy(() =>\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(jsonValueSchema),\n z.record(z.string(), jsonValueSchema),\n ]),\n);\n\nconst contentAttributesSchema = z.record(z.string(), jsonValueSchema);\n\nconst richTextStyleSchema = z.object({\n weight: z.enum([\"strong\", \"normal\"]).optional(),\n italic: z.enum([\"italic\", \"normal\"]).optional(),\n underline: z.enum([\"underline\", \"none\"]).optional(),\n color: z.enum([\"primary\", \"accent\", \"default\"]).optional(),\n});\n\nconst richTextTextInlineSchema = z.object({\n type: z.literal(\"text\"),\n text: z.string().max(20_000),\n style: richTextStyleSchema.optional(),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextTemplateInlineSchema = z.object({\n type: z.literal(\"template\"),\n key: z.string().min(1).max(240),\n style: richTextStyleSchema.optional(),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextLineBreakInlineSchema = z.object({\n type: z.literal(\"lineBreak\"),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextLinkChildInlineSchema = z.discriminatedUnion(\"type\", [\n richTextTextInlineSchema,\n richTextTemplateInlineSchema,\n richTextLineBreakInlineSchema,\n]);\n\nconst richTextLinkInlineSchema = z.object({\n type: z.literal(\"link\"),\n href: z.string().min(1).max(2000),\n target: z.string().max(120).nullable().optional(),\n rel: z.string().max(240).nullable().optional(),\n title: z.string().max(1000).nullable().optional(),\n attrs: contentAttributesSchema.optional(),\n children: z.array(richTextLinkChildInlineSchema).max(200),\n});\n\nconst richTextInlineExtensionSchema = z.object({\n type: z.literal(\"inlineExtension\"),\n name: z.string().min(1).max(120),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextInlineSchema = z.discriminatedUnion(\"type\", [\n richTextTextInlineSchema,\n richTextTemplateInlineSchema,\n richTextLinkInlineSchema,\n richTextLineBreakInlineSchema,\n richTextInlineExtensionSchema,\n]);\n\nconst textAlignmentSchema = z.enum([\"left\", \"center\", \"right\", \"justify\"]);\n\nconst richTextParagraphBlockSchema = z.object({\n type: z.literal(\"paragraph\"),\n children: z.array(richTextInlineSchema).max(500),\n alignment: textAlignmentSchema.optional(),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextHeadingBlockSchema = z.object({\n type: z.literal(\"heading\"),\n level: z.union([z.literal(1), z.literal(2)]),\n children: z.array(richTextInlineSchema).max(500),\n alignment: textAlignmentSchema.optional(),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextListItemBlockSchema = z.object({\n type: z.literal(\"listItem\"),\n children: z.array(richTextParagraphBlockSchema).max(100),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextBulletListBlockSchema = z.object({\n type: z.literal(\"bulletList\"),\n items: z.array(richTextListItemBlockSchema).max(100),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextImageDimensionSchema = z.union([\n z.object({ unit: z.literal(\"px\"), value: z.number().finite().nonnegative() }),\n z.object({ unit: z.literal(\"%\"), value: z.number().finite().nonnegative() }),\n]);\n\nconst richTextImageSourceSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"asset\"), assetId: z.string().min(1).max(240) }),\n z.object({ type: z.literal(\"external\"), url: z.string().min(1).max(2000) }),\n]);\n\nconst richTextImageBlockSchema = z.object({\n type: z.literal(\"image\"),\n source: richTextImageSourceSchema,\n alt: z.string().max(2000).optional(),\n caption: z.array(richTextParagraphBlockSchema).max(20).optional(),\n size: z\n .object({\n width: richTextImageDimensionSchema.optional(),\n height: richTextImageDimensionSchema.optional(),\n maxWidth: richTextImageDimensionSchema.optional(),\n maxHeight: richTextImageDimensionSchema.optional(),\n })\n .optional(),\n alignment: textAlignmentSchema.optional(),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextInfoBoxBlockSchema = z.object({\n type: z.literal(\"infoBox\"),\n tone: z.enum([\"info\", \"warning\"]).optional(),\n title: z.array(richTextInlineSchema).max(100).optional(),\n collapsible: z.boolean().optional(),\n defaultOpen: z.boolean().optional(),\n children: z.array(richTextParagraphBlockSchema).max(100),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextSeparatorBlockSchema = z.object({\n type: z.literal(\"separator\"),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextBlockExtensionSchema = z.object({\n type: z.literal(\"blockExtension\"),\n name: z.string().min(1).max(120),\n attrs: contentAttributesSchema.optional(),\n});\n\nconst richTextBlockSchema = z.discriminatedUnion(\"type\", [\n richTextParagraphBlockSchema,\n richTextHeadingBlockSchema,\n richTextBulletListBlockSchema,\n richTextImageBlockSchema,\n richTextInfoBoxBlockSchema,\n richTextSeparatorBlockSchema,\n richTextBlockExtensionSchema,\n]);\n\nexport const surveyContentSchema: z.ZodType<Content> = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"md\"), content: z.string().max(20_000) }),\n z.object({ type: z.literal(\"plain\"), content: z.string().max(20_000) }),\n z.object({\n type: z.literal(\"richText\"),\n version: z.literal(1),\n doc: z.object({\n type: z.literal(\"doc\"),\n blocks: z.array(richTextBlockSchema).max(200),\n }),\n }),\n]) as z.ZodType<Content>;\n\nexport type SurveyContent = z.infer<typeof surveyContentSchema>;\nexport type JsonValue = z.infer<typeof jsonValueSchema>;\n","import { z } from \"zod\";\nimport type {\n JsonPatchOperation as CoreJsonPatchOperation,\n RawSurveyAsset,\n RawSurveyItem,\n RichTextImageDimension,\n SurveyContentImageSource,\n} from \"@case-framework/survey-core\";\nimport { SURVEY_EDITOR_ITEM_COLORS } from \"@case-framework/survey-core/editor/colors\";\nimport { jsonValueSchema, surveyContentSchema, type SurveyContent } from \"./content\";\n\ninterface OperationBase {\n id?: string;\n}\n\ninterface ItemTranslation {\n locale: string;\n contentKey: string;\n plainText?: string;\n content?: SurveyContent;\n}\n\ninterface CreateItemOperation extends OperationBase {\n kind: \"create-item\";\n target: { parentItemId: string; index?: number };\n item: Omit<RawSurveyItem, \"id\"> & { id?: string };\n translations?: ItemTranslation[];\n}\n\ninterface UpdateItemKeyOperation extends OperationBase {\n kind: \"update-item-key\";\n itemId: string;\n key: string;\n}\n\ninterface UpdateItemLabelOperation extends OperationBase {\n kind: \"update-item-label\";\n itemId: string;\n itemLabel: string;\n}\n\ntype ItemColor = (typeof SURVEY_EDITOR_ITEM_COLORS)[number];\n\ninterface UpdateItemColorOperation extends OperationBase {\n kind: \"update-item-color\";\n itemId: string;\n color: ItemColor;\n}\n\ninterface UpdateItemTranslationOperation extends OperationBase, ItemTranslation {\n kind: \"update-item-translation\";\n itemId: string;\n}\n\ninterface UpdatePlacedImageOperation extends OperationBase {\n kind: \"update-placed-image\";\n itemId: string;\n locale: string;\n contentKey: string;\n /** Zero-based index among image blocks in this rich-text content value. */\n imageIndex: number;\n /** Optional guard that prevents editing a different image after content changed. */\n expectedAssetId?: string;\n changes: {\n source?: SurveyContentImageSource;\n alt?: string | null;\n caption?: string | null;\n width?: RichTextImageDimension | null;\n height?: RichTextImageDimension | null;\n maxWidth?: RichTextImageDimension | null;\n maxHeight?: RichTextImageDimension | null;\n alignment?: \"left\" | \"center\" | \"right\" | null;\n };\n}\n\ninterface PatchItemConfigOperation extends OperationBase {\n kind: \"patch-item-config\";\n itemId: string;\n /** JSON Patch paths are relative to the item's config root. */\n patches: CoreJsonPatchOperation[];\n}\n\ninterface FormTarget {\n itemId: string;\n /** When present, target the inline embedded form on this choice option. */\n optionId?: string;\n}\n\ninterface UpsertFormFieldGroupOperation extends OperationBase {\n kind: \"upsert-form-field-group\";\n target: FormTarget;\n index?: number;\n group: Record<string, unknown> & { id: string };\n translations?: ItemTranslation[];\n}\n\ninterface RemoveFormFieldGroupOperation extends OperationBase {\n kind: \"remove-form-field-group\";\n target: FormTarget;\n groupId: string;\n}\n\ninterface ReorderFormFieldGroupsOperation extends OperationBase {\n kind: \"reorder-form-field-groups\";\n target: FormTarget;\n groupIds: string[];\n}\n\ninterface UpsertFormFieldOperation extends OperationBase {\n kind: \"upsert-form-field\";\n target: FormTarget;\n groupId: string;\n index?: number;\n field: Record<string, unknown> & { id: string; key: string; type: string };\n translations?: ItemTranslation[];\n}\n\ninterface RemoveFormFieldOperation extends OperationBase {\n kind: \"remove-form-field\";\n target: FormTarget;\n fieldId: string;\n}\n\ninterface MoveFormFieldOperation extends OperationBase {\n kind: \"move-form-field\";\n target: FormTarget;\n fieldId: string;\n targetGroupId: string;\n index?: number;\n}\n\ninterface SetEmbeddedFormOperation extends OperationBase {\n kind: \"set-embedded-form\";\n itemId: string;\n optionId: string;\n form: Record<string, unknown> & { id: string; fieldGroups: unknown[] };\n translations?: ItemTranslation[];\n}\n\ninterface RemoveEmbeddedFormOperation extends OperationBase {\n kind: \"remove-embedded-form\";\n itemId: string;\n optionId: string;\n}\n\ninterface ChoiceOptionInput {\n id?: string;\n key?: string;\n label: string;\n}\n\ninterface AddChoiceOptionOperation extends OperationBase {\n kind: \"add-choice-option\";\n itemId: string;\n locale?: string;\n index?: number;\n option: ChoiceOptionInput;\n}\n\ninterface UpdateChoiceOptionLabelOperation extends OperationBase {\n kind: \"update-choice-option-label\";\n itemId: string;\n optionId: string;\n locale?: string;\n label: string;\n}\n\ninterface RemoveChoiceOptionOperation extends OperationBase {\n kind: \"remove-choice-option\";\n itemId: string;\n optionId: string;\n}\n\ninterface ReorderChoiceOptionsOperation extends OperationBase {\n kind: \"reorder-choice-options\";\n itemId: string;\n optionIds: string[];\n}\n\ninterface RemoveItemOperation extends OperationBase {\n kind: \"remove-item\";\n itemId: string;\n includeChildren?: boolean;\n}\n\ninterface MoveItemOperation extends OperationBase {\n kind: \"move-item\";\n itemId: string;\n target: { parentItemId: string; index?: number };\n}\n\ninterface ReorderItemsOperation extends OperationBase {\n kind: \"reorder-items\";\n parentItemId: string;\n itemIds: string[];\n}\n\ninterface UpdateSurveyMetadataOperation extends OperationBase {\n kind: \"update-survey-metadata\";\n values: Record<string, string | null>;\n}\n\ninterface UpdateSurveyPaginationOperation extends OperationBase {\n kind: \"update-survey-pagination\";\n value: { large: number; small: number } | null;\n}\n\ninterface UpdateSurveyTranslationOperation\n extends OperationBase, Omit<ItemTranslation, \"contentKey\"> {\n kind: \"update-survey-translation\";\n surface: \"surveyCardContent\" | \"navigationContent\" | \"validationMessages\";\n contentKey: string;\n}\n\ninterface AddSurveyLocaleOperation extends OperationBase {\n kind: \"add-survey-locale\";\n locale: string;\n}\n\ninterface RemoveSurveyLocaleOperation extends OperationBase {\n kind: \"remove-survey-locale\";\n locale: string;\n}\n\ninterface SetImageAssetOperation extends OperationBase {\n kind: \"set-image-asset\";\n assetId: string;\n asset: RawSurveyAsset;\n}\n\ninterface UpdateImageAssetMetadataOperation extends OperationBase {\n kind: \"update-image-asset-metadata\";\n assetId: string;\n metadata: {\n name?: string | null;\n filename?: string | null;\n alt?: string | null;\n width?: number | null;\n height?: number | null;\n };\n}\n\ninterface RemoveImageAssetOperation extends OperationBase {\n kind: \"remove-image-asset\";\n assetId: string;\n}\n\ninterface SurveyPatchOperation extends OperationBase {\n kind: \"survey-json-patch\";\n patches: CoreJsonPatchOperation[];\n}\n\ntype SurveyOperationShape =\n | CreateItemOperation\n | UpdateItemKeyOperation\n | UpdateItemLabelOperation\n | UpdateItemColorOperation\n | UpdateItemTranslationOperation\n | UpdatePlacedImageOperation\n | PatchItemConfigOperation\n | UpsertFormFieldGroupOperation\n | RemoveFormFieldGroupOperation\n | ReorderFormFieldGroupsOperation\n | UpsertFormFieldOperation\n | RemoveFormFieldOperation\n | MoveFormFieldOperation\n | SetEmbeddedFormOperation\n | RemoveEmbeddedFormOperation\n | AddChoiceOptionOperation\n | UpdateChoiceOptionLabelOperation\n | RemoveChoiceOptionOperation\n | ReorderChoiceOptionsOperation\n | RemoveItemOperation\n | MoveItemOperation\n | ReorderItemsOperation\n | UpdateSurveyMetadataOperation\n | UpdateSurveyPaginationOperation\n | UpdateSurveyTranslationOperation\n | AddSurveyLocaleOperation\n | RemoveSurveyLocaleOperation\n | SetImageAssetOperation\n | UpdateImageAssetMetadataOperation\n | RemoveImageAssetOperation\n | SurveyPatchOperation;\n\nexport type SurveyOperationKind = SurveyOperationShape[\"kind\"];\n\ninterface SurveyValidationIssueShape {\n severity: \"error\" | \"warning\";\n code: string;\n message: string;\n operationIndex?: number;\n operationId?: string;\n itemId?: string;\n}\n\ninterface SurveyValidationResultShape {\n valid: boolean;\n issues: SurveyValidationIssueShape[];\n warnings: SurveyValidationIssueShape[];\n normalizedOperations: SurveyOperationShape[];\n}\n\nconst operationIdSchema = z\n .string()\n .min(1)\n .max(120)\n .optional()\n .describe(\"Optional client/model supplied id for correlating validation issues.\");\nconst itemIdentifierSchema = z\n .string()\n .min(1)\n .max(240)\n .describe(\"Survey item id, key, or fullKey.\");\nconst itemKeySchema = z\n .string()\n .min(1)\n .max(120)\n .describe(\"New item key. It must be unique among siblings.\");\n\nconst itemTranslationSchema = z\n .object({\n locale: z.string().min(1).max(40),\n contentKey: z\n .string()\n .min(1)\n .max(240)\n .describe('Item translation content key, for example \"label\" or \"content\".'),\n plainText: z\n .string()\n .max(20_000)\n .optional()\n .describe(\"Simple text content to persist for the translation key.\"),\n content: surveyContentSchema\n .optional()\n .describe(\n 'Structured survey content to persist for the translation key. Use { \"type\": \"richText\", \"version\": 1, \"doc\": ... } for formatted text.',\n ),\n })\n .refine(\n (translation) => translation.plainText !== undefined || translation.content !== undefined,\n {\n message: \"Provide either plainText or content for a translation.\",\n },\n );\n\nconst choiceOptionInputSchema = z.object({\n id: z\n .string()\n .min(1)\n .max(120)\n .optional()\n .describe(\"Optional stable option id. If omitted, the validator derives a unique id.\"),\n key: z\n .string()\n .min(1)\n .max(120)\n .optional()\n .describe(\"Optional coding key. If omitted, the validator derives a unique key.\"),\n label: z\n .string()\n .min(1)\n .max(1000)\n .describe(\n \"Respondent-visible option label as a plain string. Do not pass a translation object here; add-choice-option creates the matching translation in its locale.\",\n ),\n});\n\nconst rawSurveyItemForCreateSchema = z\n .object({\n id: z.string().min(1).max(120).optional(),\n key: itemKeySchema,\n itemType: z.string().min(1).max(120),\n metadata: z.record(z.string(), z.string()).optional(),\n config: z\n .unknown()\n .optional()\n .describe(\n 'Optional item-type config. For choiceItem, provide response options as config.options, for example [{ \"label\": \"Fuji\" }, { \"label\": \"Gala\" }]. Use config.maxSelection: 1 for single choice, null for unlimited multiple choice / select-all-that-apply, or a number greater than 1 for capped multiple choice. Put an inline embeddedForm directly on a new choice option; default an eligible one-field embeddedForm to authoringMode \"simple\" and use \"custom\" for blank or structured follow-ups. For formItem, use authoringMode \"simple\" only with one field group containing one field; use \"custom\" for blank or multi-field forms. The validator converts option labels into options.<optionId>.label translations.',\n ),\n validations: z.record(z.string(), z.any()).optional(),\n displayConditions: z.any().optional(),\n disabledConditions: z.any().optional(),\n prefills: z.array(z.any()).optional(),\n })\n .passthrough();\n\nconst jsonPointerPathSchema = z\n .string()\n .max(500)\n .describe(\n 'JSON Pointer path into the survey document, for example \"/surveyItems/1/config/options/0/key\" or \"/translations/en/itemTranslations/<itemId>/title\".',\n );\n\nexport const jsonPatchOperationSchema: z.ZodType<CoreJsonPatchOperation> = z.discriminatedUnion(\n \"op\",\n [\n z.object({ op: z.literal(\"add\"), path: jsonPointerPathSchema, value: jsonValueSchema }),\n z.object({ op: z.literal(\"replace\"), path: jsonPointerPathSchema, value: jsonValueSchema }),\n z.object({ op: z.literal(\"test\"), path: jsonPointerPathSchema, value: jsonValueSchema }),\n z.object({ op: z.literal(\"remove\"), path: jsonPointerPathSchema }),\n z.object({ op: z.literal(\"move\"), from: jsonPointerPathSchema, path: jsonPointerPathSchema }),\n z.object({ op: z.literal(\"copy\"), from: jsonPointerPathSchema, path: jsonPointerPathSchema }),\n ],\n) as z.ZodType<CoreJsonPatchOperation>;\n\nexport const createItemOperationSchema: z.ZodType<CreateItemOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"create-item\"),\n target: z.object({\n parentItemId: z\n .string()\n .max(240)\n .describe(\n \"Parent group item id, key, or fullKey where the new item should be inserted. Use the root group id/key for top-level items.\",\n ),\n index: z.number().int().min(0).optional(),\n }),\n item: rawSurveyItemForCreateSchema,\n translations: z\n .array(itemTranslationSchema)\n .optional()\n .describe(\n 'Operation-level item translations for visible content, for example [{ \"locale\": \"en\", \"contentKey\": \"title\", \"plainText\": \"Question text\" }]. Put this property inside the create-item operation beside target and item, never beside the survey_change operations array. For formatted content, use the \"content\" field with a richText object. Form select/dropdown option labels must be translations at fields.<fieldId>.options.<optionId>.label.',\n ),\n}) as z.ZodType<CreateItemOperation>;\n\nexport const updateItemKeyOperationSchema: z.ZodType<UpdateItemKeyOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"update-item-key\"),\n itemId: itemIdentifierSchema,\n key: itemKeySchema,\n});\n\nexport const updateItemLabelOperationSchema: z.ZodType<UpdateItemLabelOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"update-item-label\"),\n itemId: itemIdentifierSchema,\n itemLabel: z.string().max(200),\n});\n\nexport const updateItemColorOperationSchema: z.ZodType<UpdateItemColorOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"update-item-color\"),\n itemId: itemIdentifierSchema,\n color: z\n .enum(SURVEY_EDITOR_ITEM_COLORS)\n .describe(\"One of the Survey Editor's supported item-color swatches.\"),\n});\n\nexport const updateItemTranslationOperationSchema: z.ZodType<UpdateItemTranslationOperation> = z\n .object({\n id: operationIdSchema,\n kind: z.literal(\"update-item-translation\"),\n itemId: itemIdentifierSchema,\n locale: z.string().min(1).max(40),\n contentKey: z\n .string()\n .min(1)\n .max(240)\n .describe('Item translation content key, for example \"label\".'),\n plainText: z\n .string()\n .max(20_000)\n .optional()\n .describe(\"Simple text content to persist for the translation key.\"),\n content: surveyContentSchema\n .optional()\n .describe(\n 'Structured survey content to persist for the translation key. Use { \"type\": \"richText\", \"version\": 1, \"doc\": ... } for formatted text.',\n ),\n })\n .refine((operation) => operation.plainText !== undefined || operation.content !== undefined, {\n message: \"Provide either plainText or content for update-item-translation.\",\n }) as z.ZodType<UpdateItemTranslationOperation>;\n\nconst placedImageDimensionSchema: z.ZodType<RichTextImageDimension> = z.union([\n z.object({ unit: z.literal(\"px\"), value: z.number().finite().nonnegative() }),\n z.object({ unit: z.literal(\"%\"), value: z.number().finite().nonnegative().max(100) }),\n]);\n\nconst placedImageSourceSchema: z.ZodType<SurveyContentImageSource> = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"asset\"), assetId: z.string().min(1).max(240) }),\n z.object({ type: z.literal(\"external\"), url: z.string().min(1).max(2000) }),\n]);\n\nexport const updatePlacedImageOperationSchema: z.ZodType<UpdatePlacedImageOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"update-placed-image\"),\n itemId: itemIdentifierSchema,\n locale: z.string().min(1).max(40),\n contentKey: z.string().min(1).max(240),\n imageIndex: z\n .number()\n .int()\n .nonnegative()\n .describe(\"Zero-based index among image blocks in the selected rich-text content value.\"),\n expectedAssetId: z.string().min(1).max(240).optional(),\n changes: z\n .object({\n source: placedImageSourceSchema.optional(),\n alt: z.string().max(2000).nullable().optional(),\n caption: z.string().max(20_000).nullable().optional(),\n width: placedImageDimensionSchema.nullable().optional(),\n height: placedImageDimensionSchema.nullable().optional(),\n maxWidth: placedImageDimensionSchema.nullable().optional(),\n maxHeight: placedImageDimensionSchema.nullable().optional(),\n alignment: z.enum([\"left\", \"center\", \"right\"]).nullable().optional(),\n })\n .refine((changes) => Object.values(changes).some((value) => value !== undefined), {\n message: \"Provide at least one placed-image property to change.\",\n }),\n});\n\nexport const patchItemConfigOperationSchema: z.ZodType<PatchItemConfigOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"patch-item-config\"),\n itemId: itemIdentifierSchema,\n patches: z\n .array(jsonPatchOperationSchema)\n .min(1)\n .max(100)\n .describe(\n 'JSON Patch operations relative to this item\\'s config root, for example [{ \"op\": \"replace\", \"path\": \"/max\", \"value\": 7 }]. Inspect the item first and do not include /surveyItems/<index>/config in these paths.',\n ),\n});\n\nconst formTargetSchema: z.ZodType<FormTarget> = z.object({\n itemId: itemIdentifierSchema,\n optionId: z\n .string()\n .min(1)\n .max(240)\n .optional()\n .describe(\"Choice option id when targeting an inline embedded form.\"),\n});\n\nconst formTranslationsSchema = z\n .array(itemTranslationSchema)\n .max(100)\n .optional()\n .describe(\n \"Translations written atomically with this form structure change. Put this property inside the form operation object, never beside the survey_change operations array. Content keys are relative to the form; embedded-form prefixes are added automatically.\",\n );\n\nconst formFieldInputSchema = z\n .object({\n id: z.string().min(1).max(120),\n key: z.string().min(1).max(120),\n type: z.enum([\"input\", \"textarea\", \"number\", \"datepicker\", \"switch\", \"select\", \"slider\"]),\n controller: z.record(z.string(), z.unknown()),\n required: z.boolean().optional(),\n validations: z.array(z.record(z.string(), z.unknown())).optional(),\n })\n .passthrough();\n\nconst formFieldGroupInputSchema = z\n .object({\n id: z.string().min(1).max(120),\n layout: z\n .object({\n base: z.number().int().min(1).max(4),\n xs: z.number().int().min(1).max(4),\n sm: z.number().int().min(1).max(4),\n md: z.number().int().min(1).max(4),\n xl: z.number().int().min(1).max(4),\n })\n .describe(\n \"Responsive column counts from 1 to 4. Use 1 at every breakpoint for a lone full-width field.\",\n )\n .optional(),\n fields: z.array(formFieldInputSchema).max(200).optional(),\n hasDisplayCondition: z.boolean().optional(),\n })\n .passthrough();\n\nexport const upsertFormFieldGroupOperationSchema: z.ZodType<UpsertFormFieldGroupOperation> =\n z.object({\n id: operationIdSchema,\n kind: z.literal(\"upsert-form-field-group\"),\n target: formTargetSchema,\n index: z.number().int().min(0).optional(),\n group: formFieldGroupInputSchema,\n translations: formTranslationsSchema,\n }) as z.ZodType<UpsertFormFieldGroupOperation>;\n\nexport const removeFormFieldGroupOperationSchema: z.ZodType<RemoveFormFieldGroupOperation> =\n z.object({\n id: operationIdSchema,\n kind: z.literal(\"remove-form-field-group\"),\n target: formTargetSchema,\n groupId: z.string().min(1).max(240),\n });\n\nexport const reorderFormFieldGroupsOperationSchema: z.ZodType<ReorderFormFieldGroupsOperation> =\n z.object({\n id: operationIdSchema,\n kind: z.literal(\"reorder-form-field-groups\"),\n target: formTargetSchema,\n groupIds: z\n .array(z.string().min(1).max(240))\n .min(1)\n .max(100)\n .describe(\n \"Complete desired order containing every existing form-field group id exactly once.\",\n ),\n });\n\nexport const upsertFormFieldOperationSchema: z.ZodType<UpsertFormFieldOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"upsert-form-field\"),\n target: formTargetSchema,\n groupId: z.string().min(1).max(240),\n index: z.number().int().min(0).optional(),\n field: formFieldInputSchema,\n translations: formTranslationsSchema,\n}) as z.ZodType<UpsertFormFieldOperation>;\n\nexport const removeFormFieldOperationSchema: z.ZodType<RemoveFormFieldOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"remove-form-field\"),\n target: formTargetSchema,\n fieldId: z.string().min(1).max(240),\n});\n\nexport const moveFormFieldOperationSchema: z.ZodType<MoveFormFieldOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"move-form-field\"),\n target: formTargetSchema,\n fieldId: z.string().min(1).max(240),\n targetGroupId: z.string().min(1).max(240),\n index: z.number().int().min(0).optional(),\n});\n\nexport const setEmbeddedFormOperationSchema: z.ZodType<SetEmbeddedFormOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"set-embedded-form\"),\n itemId: itemIdentifierSchema,\n optionId: z.string().min(1).max(240),\n form: z\n .object({\n id: z.string().min(1).max(120),\n authoringMode: z\n .enum([\"simple\", \"custom\"])\n .optional()\n .describe(\n 'Use \"simple\" only for exactly one field group containing exactly one field; omitted or malformed simple mode normalizes to \"custom\".',\n ),\n fieldGroups: z.array(formFieldGroupInputSchema).max(100),\n })\n .passthrough(),\n translations: formTranslationsSchema,\n}) as z.ZodType<SetEmbeddedFormOperation>;\n\nexport const removeEmbeddedFormOperationSchema: z.ZodType<RemoveEmbeddedFormOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"remove-embedded-form\"),\n itemId: itemIdentifierSchema,\n optionId: z.string().min(1).max(240),\n});\n\nexport const addChoiceOptionOperationSchema: z.ZodType<AddChoiceOptionOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"add-choice-option\"),\n itemId: itemIdentifierSchema,\n locale: z.string().min(1).max(40).optional(),\n index: z.number().int().min(0).optional(),\n option: choiceOptionInputSchema,\n});\n\nexport const updateChoiceOptionLabelOperationSchema: z.ZodType<UpdateChoiceOptionLabelOperation> =\n z.object({\n id: operationIdSchema,\n kind: z.literal(\"update-choice-option-label\"),\n itemId: itemIdentifierSchema,\n optionId: z\n .string()\n .min(1)\n .max(240)\n .describe(\"Existing choice option id, key, or current visible label.\"),\n locale: z.string().min(1).max(40).optional(),\n label: z.string().min(1).max(1000).describe(\"New respondent-visible option label.\"),\n });\n\nexport const removeChoiceOptionOperationSchema: z.ZodType<RemoveChoiceOptionOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"remove-choice-option\"),\n itemId: itemIdentifierSchema,\n optionId: z\n .string()\n .min(1)\n .max(240)\n .describe(\"Existing choice option id, key, or current visible label.\"),\n});\n\nexport const reorderChoiceOptionsOperationSchema: z.ZodType<ReorderChoiceOptionsOperation> =\n z.object({\n id: operationIdSchema,\n kind: z.literal(\"reorder-choice-options\"),\n itemId: itemIdentifierSchema,\n optionIds: z\n .array(z.string().min(1).max(240))\n .min(1)\n .max(100)\n .describe(\n \"Complete desired order of existing choice options. Entries can be option ids, keys, or current visible labels.\",\n ),\n });\n\nexport const removeItemOperationSchema: z.ZodType<RemoveItemOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"remove-item\"),\n itemId: itemIdentifierSchema,\n includeChildren: z\n .boolean()\n .optional()\n .describe(\"Must be true when removing a group item that has children.\"),\n});\n\nexport const moveItemOperationSchema: z.ZodType<MoveItemOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"move-item\"),\n itemId: itemIdentifierSchema,\n target: z\n .object({\n parentItemId: itemIdentifierSchema,\n index: z.number().int().min(0).optional(),\n })\n .describe(\n \"A different parent group and optional insertion index. Omit unchanged placements; use reorder-items for sibling order within the current parent.\",\n ),\n});\n\nexport const reorderItemsOperationSchema: z.ZodType<ReorderItemsOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"reorder-items\"),\n parentItemId: itemIdentifierSchema,\n itemIds: z\n .array(itemIdentifierSchema)\n .min(1)\n .max(200)\n .describe(\n \"Complete desired order containing every existing direct child of the parent group exactly once.\",\n ),\n});\n\nexport const updateSurveyMetadataOperationSchema: z.ZodType<UpdateSurveyMetadataOperation> =\n z.object({\n id: operationIdSchema,\n kind: z.literal(\"update-survey-metadata\"),\n values: z.record(z.string().min(1).max(240), z.string().max(20_000).nullable()),\n });\n\nexport const updateSurveyPaginationOperationSchema: z.ZodType<UpdateSurveyPaginationOperation> =\n z.object({\n id: operationIdSchema,\n kind: z.literal(\"update-survey-pagination\"),\n value: z\n .object({\n large: z.number().int().min(1).max(1000),\n small: z.number().int().min(1).max(1000),\n })\n .nullable(),\n });\n\nexport const updateSurveyTranslationOperationSchema: z.ZodType<UpdateSurveyTranslationOperation> = z\n .object({\n id: operationIdSchema,\n kind: z.literal(\"update-survey-translation\"),\n locale: z.string().min(1).max(40),\n surface: z.enum([\"surveyCardContent\", \"navigationContent\", \"validationMessages\"]),\n contentKey: z.string().min(1).max(240),\n plainText: z.string().max(20_000).optional(),\n content: surveyContentSchema.optional(),\n })\n .refine((operation) => operation.plainText !== undefined || operation.content !== undefined, {\n message: \"Provide either plainText or content for update-survey-translation.\",\n }) as z.ZodType<UpdateSurveyTranslationOperation>;\n\nconst surveyLocaleSchema = z.string().trim().min(1).max(40);\n\nexport const addSurveyLocaleOperationSchema: z.ZodType<AddSurveyLocaleOperation> = z\n .object({\n id: operationIdSchema,\n kind: z.literal(\"add-survey-locale\"),\n locale: surveyLocaleSchema.describe(\"New, currently absent survey locale code.\"),\n })\n .describe(\"Register an empty survey locale through the editor locale-management API.\");\n\nexport const removeSurveyLocaleOperationSchema: z.ZodType<RemoveSurveyLocaleOperation> = z\n .object({\n id: operationIdSchema,\n kind: z.literal(\"remove-survey-locale\"),\n locale: surveyLocaleSchema.describe(\"Exact existing survey locale code to remove.\"),\n })\n .describe(\n \"Destructively remove a survey locale and all survey-level and item-level translations stored for it.\",\n );\n\nconst imageAssetMetadataSchema = z.object({\n name: z.string().max(500).optional(),\n filename: z.string().max(500).optional(),\n alt: z.string().max(2000).optional(),\n width: z.number().int().positive().optional(),\n height: z.number().int().positive().optional(),\n});\n\nconst rawSurveyImageAssetSchema: z.ZodType<RawSurveyAsset> = z.object({\n kind: z.literal(\"image\"),\n source: z.object({\n type: z.literal(\"embedded\"),\n mediaType: z.string().regex(/^image\\//),\n encoding: z.literal(\"base64\"),\n data: z.string().min(1).max(8_000_000),\n }),\n metadata: imageAssetMetadataSchema.optional(),\n});\n\nexport const setImageAssetOperationSchema: z.ZodType<SetImageAssetOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"set-image-asset\"),\n assetId: z.string().min(1).max(240),\n asset: rawSurveyImageAssetSchema,\n});\n\nexport const updateImageAssetMetadataOperationSchema: z.ZodType<UpdateImageAssetMetadataOperation> =\n z.object({\n id: operationIdSchema,\n kind: z.literal(\"update-image-asset-metadata\"),\n assetId: z.string().min(1).max(240),\n metadata: z.object({\n name: z.string().max(500).nullable().optional(),\n filename: z.string().max(500).nullable().optional(),\n alt: z.string().max(2000).nullable().optional(),\n width: z.number().int().positive().nullable().optional(),\n height: z.number().int().positive().nullable().optional(),\n }),\n });\n\nexport const removeImageAssetOperationSchema: z.ZodType<RemoveImageAssetOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"remove-image-asset\"),\n assetId: z.string().min(1).max(240),\n});\n\nexport const surveyPatchOperationSchema: z.ZodType<SurveyPatchOperation> = z.object({\n id: operationIdSchema,\n kind: z.literal(\"survey-json-patch\"),\n patches: z\n .array(jsonPatchOperationSchema)\n .min(1)\n .max(100)\n .describe(\n \"Batch of JSON Patch operations applied to the survey document. Use this for raw survey edits such as reordering group items, editing item config, survey metadata, template values, translations/locales, or maxItemsPerPage.\",\n ),\n});\n\n// Public annotations keep declaration output compact. Runtime values are still\n// the concrete Zod objects required by discriminatedUnion.\nconst asDiscriminable = <T>(schema: z.ZodType<T>) => schema as unknown as z.ZodObject;\n\nexport const surveyOperationSchemasByKind = {\n \"create-item\": createItemOperationSchema,\n \"update-item-key\": updateItemKeyOperationSchema,\n \"update-item-label\": updateItemLabelOperationSchema,\n \"update-item-color\": updateItemColorOperationSchema,\n \"update-item-translation\": updateItemTranslationOperationSchema,\n \"update-placed-image\": updatePlacedImageOperationSchema,\n \"patch-item-config\": patchItemConfigOperationSchema,\n \"upsert-form-field-group\": upsertFormFieldGroupOperationSchema,\n \"remove-form-field-group\": removeFormFieldGroupOperationSchema,\n \"reorder-form-field-groups\": reorderFormFieldGroupsOperationSchema,\n \"upsert-form-field\": upsertFormFieldOperationSchema,\n \"remove-form-field\": removeFormFieldOperationSchema,\n \"move-form-field\": moveFormFieldOperationSchema,\n \"set-embedded-form\": setEmbeddedFormOperationSchema,\n \"remove-embedded-form\": removeEmbeddedFormOperationSchema,\n \"add-choice-option\": addChoiceOptionOperationSchema,\n \"update-choice-option-label\": updateChoiceOptionLabelOperationSchema,\n \"remove-choice-option\": removeChoiceOptionOperationSchema,\n \"reorder-choice-options\": reorderChoiceOptionsOperationSchema,\n \"remove-item\": removeItemOperationSchema,\n \"move-item\": moveItemOperationSchema,\n \"reorder-items\": reorderItemsOperationSchema,\n \"update-survey-metadata\": updateSurveyMetadataOperationSchema,\n \"update-survey-pagination\": updateSurveyPaginationOperationSchema,\n \"update-survey-translation\": updateSurveyTranslationOperationSchema,\n \"add-survey-locale\": addSurveyLocaleOperationSchema,\n \"remove-survey-locale\": removeSurveyLocaleOperationSchema,\n \"set-image-asset\": setImageAssetOperationSchema,\n \"update-image-asset-metadata\": updateImageAssetMetadataOperationSchema,\n \"remove-image-asset\": removeImageAssetOperationSchema,\n \"survey-json-patch\": surveyPatchOperationSchema,\n} as const satisfies Record<SurveyOperationKind, z.ZodType>;\n\nconst surveyOperationSchemaOptions = Object.values(surveyOperationSchemasByKind).map((schema) =>\n asDiscriminable(schema as z.ZodType),\n) as [z.ZodObject, z.ZodObject, ...z.ZodObject[]];\n\nexport const surveyOperationSchema: z.ZodType<SurveyOperationShape> = z.discriminatedUnion(\n \"kind\",\n surveyOperationSchemaOptions,\n) as unknown as z.ZodType<SurveyOperationShape>;\n\nexport const surveyValidationIssueSchema: z.ZodType<SurveyValidationIssueShape> = z.object({\n severity: z.enum([\"error\", \"warning\"]),\n code: z.string(),\n message: z.string(),\n operationIndex: z.number().int().nonnegative().optional(),\n operationId: z.string().optional(),\n itemId: z.string().optional(),\n});\n\nexport const surveyValidationResultSchema: z.ZodType<SurveyValidationResultShape> = z.object({\n valid: z.boolean(),\n issues: z.array(surveyValidationIssueSchema),\n warnings: z.array(surveyValidationIssueSchema),\n normalizedOperations: z.array(surveyOperationSchema),\n});\n\nexport type JsonPatchOperation = z.infer<typeof jsonPatchOperationSchema>;\nexport type SurveyOperation = z.infer<typeof surveyOperationSchema>;\n\nexport const SURVEY_OPERATION_KINDS = Object.freeze(\n Object.keys(surveyOperationSchemasByKind),\n) as readonly [SurveyOperationKind, ...SurveyOperationKind[]];\nexport type SurveyValidationIssue = z.infer<typeof surveyValidationIssueSchema>;\nexport type SurveyValidationResult = z.infer<typeof surveyValidationResultSchema>;\n\n// Compatibility names retained while app and survey-ui public APIs migrate.\nexport const surveyJsonPatchOperationSchema = jsonPatchOperationSchema;\nexport const surveyAssistantCreateItemOperationSchema = createItemOperationSchema;\nexport const surveyAssistantUpdateItemKeyOperationSchema = updateItemKeyOperationSchema;\nexport const surveyAssistantUpdateItemLabelOperationSchema = updateItemLabelOperationSchema;\nexport const surveyAssistantUpdateItemColorOperationSchema = updateItemColorOperationSchema;\nexport const surveyAssistantUpdateItemTranslationOperationSchema =\n updateItemTranslationOperationSchema;\nexport const surveyAssistantAddChoiceOptionOperationSchema = addChoiceOptionOperationSchema;\nexport const surveyAssistantUpdateChoiceOptionLabelOperationSchema =\n updateChoiceOptionLabelOperationSchema;\nexport const surveyAssistantRemoveChoiceOptionOperationSchema = removeChoiceOptionOperationSchema;\nexport const surveyAssistantReorderChoiceOptionsOperationSchema =\n reorderChoiceOptionsOperationSchema;\nexport const surveyAssistantRemoveItemOperationSchema = removeItemOperationSchema;\nexport const surveyAssistantSurveyJsonPatchOperationSchema = surveyPatchOperationSchema;\nexport const surveyAssistantOperationSchema = surveyOperationSchema;\nexport const surveyAssistantValidationIssueSchema = surveyValidationIssueSchema;\nexport const surveyAssistantValidationResultSchema = surveyValidationResultSchema;\n\nexport type SurveyAssistantOperation = SurveyOperation;\nexport type SurveyAssistantValidationIssue = SurveyValidationIssue;\nexport type SurveyAssistantValidationResult = SurveyValidationResult;\nexport type SurveyAssistantSurveyJsonPatchOperation = z.infer<typeof surveyPatchOperationSchema>;\n","import { z } from \"zod\";\nimport { SURVEY_OPERATION_KINDS } from \"./operations\";\n\nexport const assistantItemCreateModeSchema = z.enum([\n \"deterministic\",\n \"interactive-only\",\n \"unsupported\",\n]);\n\nexport const assistantContentSurfaceSchema = z.object({\n key: z.string().min(1),\n role: z.enum([\"primary\", \"secondary\", \"option\", \"field\", \"validation\"]),\n format: z.enum([\"plain\", \"rich\"]),\n requiredOnCreate: z.boolean().optional(),\n pattern: z.boolean().optional(),\n aliases: z.array(z.string().min(1)).optional(),\n});\n\nexport const assistantResponseSlotSchema = z.object({\n key: z.string().min(1),\n valueType: z.string().min(1),\n});\n\nexport const assistantItemAuthoringSchema = z.object({\n compactHint: z.string().min(1).max(240).optional(),\n configSummary: z.string().min(1).max(1000).optional(),\n});\n\nexport const assistantCreationPresetSchema = z.object({\n id: z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$/),\n});\n\nexport const assistantItemTypeManifestSchema = z.object({\n itemType: z.string().min(1),\n capabilityVersion: z.string().min(1),\n displayName: z.string().min(1),\n description: z.string().optional(),\n defaultItemKeyPrefix: z.string().min(1).optional(),\n create: assistantItemCreateModeSchema,\n supportedOperations: z.array(z.enum(SURVEY_OPERATION_KINDS)),\n contentSurfaces: z.array(assistantContentSurfaceSchema),\n responseSlots: z.array(assistantResponseSlotSchema).optional(),\n creationPresets: z.array(assistantCreationPresetSchema).max(100).optional(),\n referenceTopics: z.array(z.string().min(1)).optional(),\n authoring: assistantItemAuthoringSchema.optional(),\n});\n\nexport const surveyAssistantCapabilityManifestSchema = z.object({\n digest: z.string().min(1),\n itemTypes: z.array(assistantItemTypeManifestSchema),\n});\n\nexport type AssistantItemCreateMode = z.infer<typeof assistantItemCreateModeSchema>;\nexport type AssistantContentSurface = z.infer<typeof assistantContentSurfaceSchema>;\nexport type AssistantResponseSlot = z.infer<typeof assistantResponseSlotSchema>;\nexport type AssistantItemAuthoring = z.infer<typeof assistantItemAuthoringSchema>;\nexport type AssistantCreationPreset = z.infer<typeof assistantCreationPresetSchema>;\nexport type AssistantItemTypeManifest = z.infer<typeof assistantItemTypeManifestSchema>;\nexport type SurveyAssistantCapabilityManifest = z.infer<\n typeof surveyAssistantCapabilityManifestSchema\n>;\n","import type { RawSurvey } from \"@case-framework/survey-core\";\nimport { z } from \"zod\";\nimport { surveyContentSchema } from \"./content\";\nimport {\n surveyAssistantCapabilityManifestSchema,\n type AssistantItemTypeManifest,\n type SurveyAssistantCapabilityManifest,\n} from \"./capabilities\";\n\ninterface SurveyDocumentVersionShape {\n sessionId: string | null;\n revision: number;\n historyIndex: number;\n contentHash: string;\n capabilityDigest: string;\n}\n\ninterface SurveyEditorUIContextShape {\n view: \"item-editor\" | \"preview-mode\" | \"translation-mode\" | \"asset-manager\";\n selectedItemId?: string;\n selectedLocale: string;\n focusItemId?: string;\n recentItemIds?: string[];\n activeSurface?: string;\n openPanels?: string[];\n highlights?: Array<{\n kind: string;\n itemId?: string;\n componentId?: string;\n label?: string;\n details?: string;\n }>;\n history?: {\n currentIndex: number;\n totalEntries: number;\n canUndo: boolean;\n canRedo: boolean;\n recent: Array<{\n index: number;\n kind: \"survey-snapshot\" | \"asset-change\";\n label: string;\n source?: \"user\" | \"system\" | \"assistant\";\n timestamp: number;\n isCurrent: boolean;\n }>;\n };\n}\n\ninterface SurveyDocumentSnapshotShape {\n protocolVersion: 1;\n version: SurveyDocumentVersionShape;\n survey: RawSurvey;\n ui: SurveyEditorUIContextShape;\n capabilities: SurveyAssistantCapabilityManifest;\n createdAt: string;\n}\n\nexport const SURVEY_ASSISTANT_PROTOCOL_VERSION = 1 as const;\nexport const surveyAssistantProtocolVersionSchema = z.literal(SURVEY_ASSISTANT_PROTOCOL_VERSION);\n\nexport const surveyDocumentVersionSchema: z.ZodType<SurveyDocumentVersionShape> = z.object({\n sessionId: z.string().nullable(),\n revision: z.number().int().nonnegative(),\n historyIndex: z.number().int(),\n contentHash: z.string().min(1),\n capabilityDigest: z.string().min(1),\n});\n\nexport const surveyEditorUIContextSchema: z.ZodType<SurveyEditorUIContextShape> = z.object({\n view: z.enum([\"item-editor\", \"preview-mode\", \"translation-mode\", \"asset-manager\"]),\n selectedItemId: z.string().optional(),\n selectedLocale: z.string().min(1),\n focusItemId: z.string().optional(),\n recentItemIds: z.array(z.string()).max(10).optional(),\n activeSurface: z.string().max(120).optional(),\n openPanels: z.array(z.string().max(120)).max(12).optional(),\n highlights: z\n .array(\n z.object({\n kind: z.string().min(1).max(80),\n itemId: z.string().optional(),\n componentId: z.string().optional(),\n label: z.string().max(240).optional(),\n details: z.string().max(1000).optional(),\n }),\n )\n .max(12)\n .optional(),\n history: z\n .object({\n currentIndex: z.number().int(),\n totalEntries: z.number().int().nonnegative(),\n canUndo: z.boolean(),\n canRedo: z.boolean(),\n recent: z\n .array(\n z.object({\n index: z.number().int().nonnegative(),\n kind: z.enum([\"survey-snapshot\", \"asset-change\"]),\n label: z.string(),\n source: z.enum([\"user\", \"system\", \"assistant\"]).optional(),\n timestamp: z.number().nonnegative(),\n isCurrent: z.boolean(),\n }),\n )\n .max(12),\n })\n .optional(),\n});\n\nconst rawSurveyItemSchema = z\n .object({\n id: z.string().min(1),\n key: z.string().min(1),\n itemType: z.string().min(1),\n })\n .passthrough();\n\nconst rawSurveyTranslationsSchema = z.record(\n z.string(),\n z\n .object({\n itemTranslations: z.record(z.string(), z.record(z.string(), surveyContentSchema)).optional(),\n })\n .passthrough(),\n);\n\nexport const rawSurveyDocumentSchema: z.ZodType<RawSurvey> = z\n .object({\n $schema: z.string().min(1),\n surveyItems: z.array(rawSurveyItemSchema).min(1),\n translations: rawSurveyTranslationsSchema.optional(),\n })\n .passthrough() as z.ZodType<RawSurvey>;\n\nexport const surveyDocumentSnapshotSchema: z.ZodType<SurveyDocumentSnapshotShape> = z.object({\n protocolVersion: surveyAssistantProtocolVersionSchema,\n version: surveyDocumentVersionSchema,\n survey: rawSurveyDocumentSchema,\n ui: surveyEditorUIContextSchema,\n capabilities: surveyAssistantCapabilityManifestSchema,\n createdAt: z.string().min(1),\n});\n\nexport const surveyAssistantSnapshotSchema = surveyDocumentSnapshotSchema;\nexport const surveyAssistantSnapshotPayloadSchema = surveyDocumentSnapshotSchema;\n\nexport type SurveyAssistantProtocolVersion = z.infer<typeof surveyAssistantProtocolVersionSchema>;\nexport type SurveyDocumentVersion = z.infer<typeof surveyDocumentVersionSchema>;\nexport type SurveyEditorUIContext = z.infer<typeof surveyEditorUIContextSchema>;\nexport type RawSurveyDocument = z.infer<typeof rawSurveyDocumentSchema>;\nexport type SurveyDocumentSnapshot = z.infer<typeof surveyDocumentSnapshotSchema>;\n\n// Compatibility names for host adapters while the public API converges on\n// SurveyDocumentSnapshot. They are aliases, not alternate wire shapes.\nexport type SurveyAssistantSnapshot = SurveyDocumentSnapshot;\nexport type SurveyAssistantSnapshotPayload = SurveyDocumentSnapshot;\nexport type SurveyAssistantItemCreateStrategy =\n SurveyAssistantCapabilityManifest[\"itemTypes\"][number][\"create\"];\nexport type SurveyAssistantItemTypeManifestEntry = AssistantItemTypeManifest;\nexport type SurveyAssistantItemRegistryManifest = SurveyAssistantCapabilityManifest;\nexport type SurveyAssistantDraftChangePrecondition = SurveyDocumentVersion;\nexport const surveyAssistantDraftChangePreconditionSchema = surveyDocumentVersionSchema;\n","import { z } from \"zod\";\n\nexport const SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE = \"data-survey-assistant-attachment\" as const;\n\nexport interface SurveyAssistantAttachmentReference {\n documentId?: string;\n filename: string;\n mediaType: string;\n bytes: number;\n}\n\nexport const surveyAssistantThreadSchema = z.object({\n id: z.string().min(1).max(240),\n title: z.string().min(1).max(160),\n titleMode: z.enum([\"automatic\", \"manual\"]),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport const surveyAssistantThreadListSchema = z.object({\n nextCursor: z.string().min(1).max(240).optional(),\n threads: z.array(surveyAssistantThreadSchema),\n});\n\nexport const surveyAssistantThreadTranscriptSchema = z.object({\n nextCursor: z.string().min(1).max(240).optional(),\n thread: surveyAssistantThreadSchema,\n messages: z.array(z.unknown()),\n});\n\nexport const createSurveyAssistantThreadInputSchema = z.object({\n title: z.string().trim().min(1).max(160).optional(),\n});\n\nexport const updateSurveyAssistantThreadInputSchema = z.union([\n z.object({\n mode: z.literal(\"automatic\"),\n title: z.string().trim().min(1).max(160).optional(),\n }),\n z.object({\n mode: z.literal(\"manual\").optional(),\n title: z.string().trim().min(1).max(160),\n }),\n]);\n\nexport type SurveyAssistantThreadTitleMode = \"automatic\" | \"manual\";\nexport type SurveyAssistantThread = z.infer<typeof surveyAssistantThreadSchema>;\nexport type SurveyAssistantThreadList = z.infer<typeof surveyAssistantThreadListSchema>;\nexport type SurveyAssistantThreadTranscript = z.infer<typeof surveyAssistantThreadTranscriptSchema>;\nexport type CreateSurveyAssistantThreadInput = z.infer<\n typeof createSurveyAssistantThreadInputSchema\n>;\nexport type UpdateSurveyAssistantThreadInput = z.infer<\n typeof updateSurveyAssistantThreadInputSchema\n>;\n","import { z } from \"zod\";\n\nexport const surveyAssistantTaskInvocationModeSchema = z.enum([\"user\", \"background\"]);\n\nexport type SurveyAssistantTaskInvocationMode = z.infer<\n typeof surveyAssistantTaskInvocationModeSchema\n>;\n\nexport const surveyAssistantSuggestedTextSchema = z.object({ text: z.string().min(1) });\n\nexport type SurveyAssistantSuggestedText = z.infer<typeof surveyAssistantSuggestedTextSchema>;\n\nexport const surveyAssistantKeySuggestionCategorySchema = z.enum([\n \"survey-pattern\",\n \"compact\",\n \"preferred\",\n \"fair\",\n]);\n\nexport type SurveyAssistantKeySuggestionCategory = z.infer<\n typeof surveyAssistantKeySuggestionCategorySchema\n>;\n\nexport const surveyAssistantKeySuggestionSchema = surveyAssistantSuggestedTextSchema.extend({\n category: surveyAssistantKeySuggestionCategorySchema,\n rationale: z.string().optional(),\n});\n\nexport type SurveyAssistantKeySuggestion = z.infer<typeof surveyAssistantKeySuggestionSchema>;\n\nexport const surveyAssistantSuggestItemKeyInputSchema = z.object({\n itemId: z.string().min(1),\n draftKey: z.string(),\n currentKey: z.string(),\n siblingKeys: z.array(z.string()),\n maxSuggestions: z.number().int().positive().optional(),\n});\n\nexport type SurveyAssistantSuggestItemKeyInput = z.infer<\n typeof surveyAssistantSuggestItemKeyInputSchema\n>;\n\nexport const surveyAssistantSuggestItemKeyResultSchema = z.object({\n suggestions: z.array(surveyAssistantKeySuggestionSchema),\n});\n\nexport type SurveyAssistantSuggestItemKeyResult = z.infer<\n typeof surveyAssistantSuggestItemKeyResultSchema\n>;\n\nexport type SurveyAssistantLabelSuggestion = SurveyAssistantSuggestedText;\n\nexport const surveyAssistantSuggestItemLabelInputSchema = z.object({\n itemId: z.string().min(1),\n draftLabel: z.string(),\n itemType: z.string().min(1),\n locale: z.string().min(1).optional(),\n maxSuggestions: z.number().int().positive().optional(),\n});\n\nexport type SurveyAssistantSuggestItemLabelInput = z.infer<\n typeof surveyAssistantSuggestItemLabelInputSchema\n>;\n\nexport const surveyAssistantSuggestItemLabelResultSchema = z.object({\n suggestions: z.array(surveyAssistantSuggestedTextSchema),\n});\n\nexport type SurveyAssistantSuggestItemLabelResult = z.infer<\n typeof surveyAssistantSuggestItemLabelResultSchema\n>;\n\nexport const surveyAssistantTranslateContentEntrySchema = z.object({\n id: z.string().min(1),\n text: z.string(),\n kind: z.string().min(1),\n});\n\nexport type SurveyAssistantTranslateContentEntry = z.infer<\n typeof surveyAssistantTranslateContentEntrySchema\n>;\n\nexport const surveyAssistantTranslateContentInputSchema = z.object({\n sourceLocale: z.string().min(1),\n targetLocales: z.array(z.string().min(1)).min(1),\n entries: z.array(surveyAssistantTranslateContentEntrySchema).min(1),\n});\n\nexport type SurveyAssistantTranslateContentInput = z.infer<\n typeof surveyAssistantTranslateContentInputSchema\n>;\n\nexport const surveyAssistantTranslateContentResultSchema = z.object({\n translations: z.record(z.string(), z.record(z.string(), z.string())),\n});\n\nexport type SurveyAssistantTranslateContentResult = z.infer<\n typeof surveyAssistantTranslateContentResultSchema\n>;\n\nexport const surveyAssistantTaskItemSummarySchema = z.object({\n id: z.string().min(1),\n key: z.string(),\n fullKey: z.string(),\n itemType: z.string().min(1),\n itemLabel: z.string().optional(),\n visibleText: z.array(\n z.object({\n locale: z.string().min(1),\n contentKey: z.string().min(1),\n text: z.string(),\n }),\n ),\n visibleTextTruncated: z.boolean(),\n});\n\nexport type SurveyAssistantTaskItemSummary = z.infer<typeof surveyAssistantTaskItemSummarySchema>;\n\nconst namingRelationshipSchema = z.enum([\"sibling\", \"same-type\", \"survey\"]);\n\nexport const surveyAssistantTaskContextSchema = z.object({\n document: z.object({\n revision: z.number().int().nonnegative(),\n contentHash: z.string().min(1),\n capabilityDigest: z.string().min(1),\n }),\n survey: z.object({\n key: z.string().optional(),\n locales: z.array(z.string()),\n itemCount: z.number().int().nonnegative(),\n selectedLocale: z.string().min(1),\n }),\n focus: z\n .object({\n item: surveyAssistantTaskItemSummarySchema,\n parent: surveyAssistantTaskItemSummarySchema.optional(),\n ancestorPath: z.array(surveyAssistantTaskItemSummarySchema),\n siblingKeys: z.array(z.string()),\n siblingItems: z.array(surveyAssistantTaskItemSummarySchema),\n siblingItemCount: z.number().int().nonnegative(),\n siblingItemsTruncated: z.boolean(),\n relatedItems: z.array(surveyAssistantTaskItemSummarySchema),\n relatedItemCount: z.number().int().nonnegative(),\n relatedItemsTruncated: z.boolean(),\n })\n .optional(),\n naming: z\n .object({\n keyExamples: z.array(\n z.object({\n itemId: z.string().min(1),\n itemType: z.string().min(1),\n key: z.string(),\n relationship: namingRelationshipSchema,\n }),\n ),\n keyExampleCount: z.number().int().nonnegative(),\n keyExamplesTruncated: z.boolean(),\n labelExamples: z.array(\n z.object({\n itemId: z.string().min(1),\n itemType: z.string().min(1),\n key: z.string(),\n label: z.string(),\n relationship: namingRelationshipSchema,\n }),\n ),\n labelExampleCount: z.number().int().nonnegative(),\n labelExamplesTruncated: z.boolean(),\n })\n .optional(),\n translation: z\n .object({\n examples: z.array(\n z.object({\n itemId: z.string().min(1),\n contentKey: z.string().min(1),\n values: z.record(z.string(), z.string()),\n }),\n ),\n exampleCount: z.number().int().nonnegative(),\n examplesTruncated: z.boolean(),\n })\n .optional(),\n});\n\nexport type SurveyAssistantTaskContext = z.infer<typeof surveyAssistantTaskContextSchema>;\n\nconst taskRequestBase = {\n context: surveyAssistantTaskContextSchema,\n mode: surveyAssistantTaskInvocationModeSchema.optional(),\n modelId: z.string().trim().min(1).max(240).optional(),\n resourceId: z.string().trim().min(1).max(240).optional(),\n surveyId: z.string().trim().min(1).max(240).optional(),\n};\n\nexport const surveyAssistantTaskRequestSchema = z.discriminatedUnion(\"taskId\", [\n z.object({\n ...taskRequestBase,\n taskId: z.literal(\"suggest-item-key\"),\n input: surveyAssistantSuggestItemKeyInputSchema,\n }),\n z.object({\n ...taskRequestBase,\n taskId: z.literal(\"suggest-item-label\"),\n input: surveyAssistantSuggestItemLabelInputSchema,\n }),\n z.object({\n ...taskRequestBase,\n taskId: z.literal(\"translate-content\"),\n input: surveyAssistantTranslateContentInputSchema,\n }),\n]);\n\nexport type SurveyAssistantTaskRequest = z.infer<typeof surveyAssistantTaskRequestSchema>;\n","import { z } from \"zod\";\n\nexport const surveyAssistantModelOptionSchema = z.object({\n id: z.string().trim().min(1).max(240),\n label: z.string().trim().min(1).max(240),\n});\n\nexport const surveyAssistantModelCatalogSchema = z\n .object({\n defaultModelId: z.string().trim().min(1).max(240),\n models: z.array(surveyAssistantModelOptionSchema).min(1),\n })\n .refine(\n ({ defaultModelId, models }) => models.some((model) => model.id === defaultModelId),\n \"The default model must be present in the model catalog.\",\n );\n\nexport type SurveyAssistantModelOption = z.infer<typeof surveyAssistantModelOptionSchema>;\nexport type SurveyAssistantModelCatalog = z.infer<typeof surveyAssistantModelCatalogSchema>;\n","import { z } from \"zod\";\nimport {\n surveyAssistantProtocolVersionSchema,\n surveyDocumentVersionSchema,\n type SurveyDocumentVersion,\n} from \"./document\";\nimport {\n surveyOperationSchema,\n surveyValidationIssueSchema,\n surveyValidationResultSchema,\n type SurveyOperation,\n type SurveyValidationIssue,\n type SurveyValidationResult,\n} from \"./operations\";\n\nexport interface SurveyChangeSetShape {\n protocolVersion: 1;\n id: string;\n turnId: string;\n status: \"validated\" | \"rejected\";\n summary: string;\n operations: SurveyOperation[];\n supersedesChangeIds?: string[];\n precondition?: SurveyDocumentVersion;\n postChange?: SurveyAssistantPostChangeProjectionShape;\n verification?: SurveyAssistantChangeVerificationShape;\n validation: SurveyValidationResult;\n createdAt: string;\n}\n\nconst surveyAssistantChangeVerificationReasonValues = [\n \"substantial-change\",\n \"complex-change\",\n \"bounded-preview\",\n \"new-audit-findings\",\n] as const;\n\ninterface SurveyAssistantChangeVerificationShape {\n required: boolean;\n reasons: Array<(typeof surveyAssistantChangeVerificationReasonValues)[number]>;\n newAuditFindingCount: number;\n auditFindings: Array<{\n code: string;\n severity: \"error\" | \"warning\" | \"info\";\n category:\n | \"structure\"\n | \"content\"\n | \"localization\"\n | \"logic\"\n | \"responses\"\n | \"assets\"\n | \"quality\";\n itemId?: string;\n locale?: string;\n contentKey?: string;\n messagePreview: string;\n messageLength: number;\n truncated: boolean;\n }>;\n truncated: boolean;\n}\n\ninterface SurveyAssistantPostChangeProjectionShape {\n version: SurveyDocumentVersion;\n itemCount: number;\n localeCount: number;\n locales: string[];\n targetCount: number;\n touchedTargets: string[];\n touchedItemCount: number;\n availableTouchedItemCount: number;\n touchedItems: Array<{\n itemId: string;\n itemType: string;\n key: string;\n fullKey: string;\n itemLabel?: string;\n translationCount: number;\n translations: Array<{\n locale: string;\n contentKey: string;\n textPreview: string;\n textLength: number;\n truncated: boolean;\n }>;\n responseSlotCount: number;\n responseSlots: string[];\n }>;\n truncated: boolean;\n}\n\nconst surveyAssistantTurnTerminationReasonValues = [\n \"client-abort\",\n \"first-response-timeout\",\n \"idle-timeout\",\n \"max-duration\",\n \"max-steps\",\n \"length-limit\",\n \"content-filter\",\n \"provider-error\",\n \"stream-error\",\n \"incomplete-response\",\n] as const;\n\ninterface SurveyAssistantTurnFinalShape {\n protocolVersion: 1;\n turnId: string;\n status: \"completed\" | \"failed\" | \"aborted\";\n executableChangeSetIds: string[];\n blockedChangeSetIds?: string[];\n startedAt?: string;\n durationMs?: number;\n terminationReason?: (typeof surveyAssistantTurnTerminationReasonValues)[number];\n createdAt: string;\n}\n\ntype SurveyAssistantApplyPolicyShape = \"auto\" | \"review\" | \"deny\";\n\nexport const SURVEY_ASSISTANT_TURN_FINAL_DATA_NAME = \"survey-assistant-turn-final\" as const;\nexport const SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE =\n `data-${SURVEY_ASSISTANT_TURN_FINAL_DATA_NAME}` as const;\n\ntype SurveyApplyStatusShape = \"applied\" | \"rejected\" | \"stale\" | \"failed\";\n\ninterface SurveyApplyResultShape {\n status: SurveyApplyStatusShape;\n changeId: string;\n summary: string;\n message: string;\n appliedOperations: number;\n issues?: SurveyValidationIssue[];\n}\n\ninterface SurveyBatchApplyResultShape {\n results: SurveyApplyResultShape[];\n}\n\ninterface SurveyAssistantApplyOutcomeResultShape {\n status: SurveyApplyStatusShape;\n changeId: string;\n summary: string;\n message: string;\n appliedOperations: number;\n}\n\ninterface SurveyAssistantPreparedChangeShape {\n changeId: string;\n status: \"validated\" | \"rejected\";\n summary: string;\n operationCount: number;\n}\n\nconst surveyAssistantApplyOutcomeStatusValues = [\n \"not-applied\",\n \"apply-failed\",\n \"settle-failed\",\n] as const;\n\ninterface SurveyAssistantApplyOutcomeShape {\n protocolVersion: 1;\n turnId: string;\n status: (typeof surveyAssistantApplyOutcomeStatusValues)[number];\n message: string;\n results?: SurveyAssistantApplyOutcomeResultShape[];\n preparedChanges?: SurveyAssistantPreparedChangeShape[];\n createdAt: string;\n}\n\ninterface ApplyReceiptShape {\n protocolVersion: 1;\n turnId: string;\n changeSetId: string;\n beforeVersion: SurveyDocumentVersion;\n afterVersion?: SurveyDocumentVersion;\n status: SurveyApplyStatusShape;\n operationCount: number;\n commit?: { id?: string; index?: number };\n issues?: SurveyValidationIssue[];\n createdAt: string;\n}\n\nexport const surveyChangeSetSchema: z.ZodType<SurveyChangeSetShape> = z.object({\n protocolVersion: surveyAssistantProtocolVersionSchema.default(1),\n id: z.string().min(1),\n turnId: z.string().min(1),\n status: z.enum([\"validated\", \"rejected\"]),\n summary: z.string().min(1).max(500),\n operations: z.array(surveyOperationSchema),\n supersedesChangeIds: z.array(z.string().min(1)).max(100).optional(),\n precondition: surveyDocumentVersionSchema.optional(),\n postChange: z\n .object({\n version: surveyDocumentVersionSchema,\n itemCount: z.number().int().nonnegative(),\n localeCount: z.number().int().nonnegative(),\n locales: z.array(z.string().min(1)).max(32),\n targetCount: z.number().int().nonnegative(),\n touchedTargets: z.array(z.string().min(1)).max(16),\n touchedItemCount: z.number().int().nonnegative(),\n availableTouchedItemCount: z.number().int().nonnegative(),\n touchedItems: z\n .array(\n z.object({\n itemId: z.string().min(1),\n itemType: z.string().min(1),\n key: z.string().min(1),\n fullKey: z.string().min(1),\n itemLabel: z.string().optional(),\n translationCount: z.number().int().nonnegative(),\n translations: z\n .array(\n z.object({\n locale: z.string().min(1),\n contentKey: z.string().min(1),\n textPreview: z.string(),\n textLength: z.number().int().nonnegative(),\n truncated: z.boolean(),\n }),\n )\n .max(12),\n responseSlotCount: z.number().int().nonnegative(),\n responseSlots: z.array(z.string().min(1)).max(12),\n }),\n )\n .max(6),\n truncated: z.boolean(),\n })\n .optional(),\n verification: z\n .object({\n required: z.boolean(),\n reasons: z\n .array(z.enum(surveyAssistantChangeVerificationReasonValues))\n .min(1)\n .max(surveyAssistantChangeVerificationReasonValues.length),\n newAuditFindingCount: z.number().int().nonnegative(),\n auditFindings: z\n .array(\n z.object({\n code: z.string().min(1),\n severity: z.enum([\"error\", \"warning\", \"info\"]),\n category: z.enum([\n \"structure\",\n \"content\",\n \"localization\",\n \"logic\",\n \"responses\",\n \"assets\",\n \"quality\",\n ]),\n itemId: z.string().min(1).optional(),\n locale: z.string().min(1).optional(),\n contentKey: z.string().min(1).optional(),\n messagePreview: z.string(),\n messageLength: z.number().int().nonnegative(),\n truncated: z.boolean(),\n }),\n )\n .max(8),\n truncated: z.boolean(),\n })\n .optional(),\n validation: surveyValidationResultSchema,\n createdAt: z.string().min(1),\n});\n\nexport const surveyAssistantTurnTerminationReasonSchema = z.enum(\n surveyAssistantTurnTerminationReasonValues,\n);\n\nexport const surveyAssistantTurnFinalSchema: z.ZodType<SurveyAssistantTurnFinalShape> = z\n .object({\n protocolVersion: surveyAssistantProtocolVersionSchema,\n turnId: z.string().min(1),\n status: z.enum([\"completed\", \"failed\", \"aborted\"]),\n executableChangeSetIds: z.array(z.string().min(1)),\n blockedChangeSetIds: z.array(z.string().min(1)).max(100).optional(),\n startedAt: z.string().datetime().optional(),\n durationMs: z.number().int().nonnegative().optional(),\n terminationReason: surveyAssistantTurnTerminationReasonSchema.optional(),\n createdAt: z.string().min(1),\n })\n .superRefine((value, context) => {\n if (value.status !== \"completed\" && value.executableChangeSetIds.length > 0) {\n context.addIssue({\n code: \"custom\",\n message: \"Failed or aborted turns cannot authorize executable change sets.\",\n path: [\"executableChangeSetIds\"],\n });\n }\n\n if (new Set(value.executableChangeSetIds).size !== value.executableChangeSetIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Executable change-set ids must be unique.\",\n path: [\"executableChangeSetIds\"],\n });\n }\n\n const blockedChangeSetIds = value.blockedChangeSetIds ?? [];\n if (new Set(blockedChangeSetIds).size !== blockedChangeSetIds.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Blocked change-set ids must be unique.\",\n path: [\"blockedChangeSetIds\"],\n });\n }\n\n if (blockedChangeSetIds.length > 0 && value.executableChangeSetIds.length > 0) {\n context.addIssue({\n code: \"custom\",\n message: \"A blocked turn cannot authorize executable change sets.\",\n path: [\"executableChangeSetIds\"],\n });\n }\n\n if (value.status === \"completed\" && value.terminationReason !== undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"Completed turns cannot have a failure or abort reason.\",\n path: [\"terminationReason\"],\n });\n }\n }) as z.ZodType<SurveyAssistantTurnFinalShape>;\n\nexport const surveyAssistantApplyPolicySchema: z.ZodType<SurveyAssistantApplyPolicyShape> = z.enum([\n \"auto\",\n \"review\",\n \"deny\",\n]);\n\nexport const surveyApplyStatusSchema: z.ZodType<SurveyApplyStatusShape> = z.enum([\n \"applied\",\n \"rejected\",\n \"stale\",\n \"failed\",\n]);\n\nexport const surveyApplyResultSchema: z.ZodType<SurveyApplyResultShape> = z.object({\n status: surveyApplyStatusSchema,\n changeId: z.string(),\n summary: z.string(),\n message: z.string(),\n appliedOperations: z.number().int().nonnegative(),\n issues: z.array(surveyValidationIssueSchema).optional(),\n});\n\nexport const surveyBatchApplyResultSchema: z.ZodType<SurveyBatchApplyResultShape> = z.object({\n results: z.array(surveyApplyResultSchema),\n});\n\nexport const surveyAssistantApplyOutcomeSchema: z.ZodType<SurveyAssistantApplyOutcomeShape> =\n z.object({\n protocolVersion: surveyAssistantProtocolVersionSchema,\n turnId: z.string().min(1),\n status: z.enum(surveyAssistantApplyOutcomeStatusValues),\n message: z.string().min(1).max(2_000),\n results: z\n .array(\n z.object({\n status: surveyApplyStatusSchema,\n changeId: z.string().min(1).max(240),\n summary: z.string().min(1).max(500),\n message: z.string().min(1).max(2_000),\n appliedOperations: z.number().int().nonnegative(),\n }),\n )\n .max(100)\n .optional(),\n preparedChanges: z\n .array(\n z.object({\n changeId: z.string().min(1).max(240),\n status: z.enum([\"validated\", \"rejected\"]),\n summary: z.string().min(1).max(500),\n operationCount: z.number().int().nonnegative(),\n }),\n )\n .max(24)\n .optional(),\n createdAt: z.string().min(1),\n });\n\nexport const applyReceiptSchema: z.ZodType<ApplyReceiptShape> = z.object({\n protocolVersion: surveyAssistantProtocolVersionSchema,\n turnId: z.string().min(1),\n changeSetId: z.string().min(1),\n beforeVersion: surveyDocumentVersionSchema,\n afterVersion: surveyDocumentVersionSchema.optional(),\n status: surveyApplyStatusSchema,\n operationCount: z.number().int().nonnegative(),\n commit: z\n .object({\n id: z.string().min(1).optional(),\n index: z.number().int().optional(),\n })\n .optional(),\n issues: z.array(surveyValidationIssueSchema).optional(),\n createdAt: z.string().min(1),\n});\n\nexport type SurveyChangeSet = z.infer<typeof surveyChangeSetSchema>;\nexport type SurveyAssistantTurnFinal = z.infer<typeof surveyAssistantTurnFinalSchema>;\nexport type SurveyAssistantTurnTerminationReason = z.infer<\n typeof surveyAssistantTurnTerminationReasonSchema\n>;\nexport type SurveyAssistantApplyPolicy = z.infer<typeof surveyAssistantApplyPolicySchema>;\nexport type SurveyApplyStatus = z.infer<typeof surveyApplyStatusSchema>;\nexport type SurveyApplyResult = z.infer<typeof surveyApplyResultSchema>;\nexport type SurveyBatchApplyResult = z.infer<typeof surveyBatchApplyResultSchema>;\nexport type SurveyAssistantApplyOutcome = z.infer<typeof surveyAssistantApplyOutcomeSchema>;\nexport type ApplyReceipt = z.infer<typeof applyReceiptSchema>;\n\n// Compatibility names retained until the UI and host public APIs can make a\n// breaking terminology change.\nexport const surveyAssistantDraftChangeEventSchema = surveyChangeSetSchema;\nexport type SurveyAssistantDraftChangeEvent = SurveyChangeSet;\nexport type SurveyAssistantApplyStatus = SurveyApplyStatus;\nexport type SurveyAssistantApplyResult = SurveyApplyResult;\nexport type SurveyAssistantBatchApplyResult = SurveyBatchApplyResult;\n"],"mappings":"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"}
|
package/dist/protocol.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { a as AssistantResponseSlot, c as assistantItemAuthoringSchema, d as assistantResponseSlotSchema, f as surveyAssistantCapabilityManifestSchema, i as AssistantItemTypeManifest, l as assistantItemCreateModeSchema, n as AssistantItemAuthoring, o as SurveyAssistantCapabilityManifest, r as AssistantItemCreateMode, s as assistantContentSurfaceSchema, t as AssistantContentSurface, u as assistantItemTypeManifestSchema } from "./capabilities-CnsVuJ1k.mjs";
|
|
2
|
-
import { A as surveyAssistantTaskRequestSchema, B as SurveyAssistantThreadTranscript, C as surveyAssistantSuggestItemKeyResultSchema, D as surveyAssistantTaskContextSchema, E as surveyAssistantSuggestedTextSchema, F as SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, G as surveyAssistantThreadTranscriptSchema, H as createSurveyAssistantThreadInputSchema, I as SurveyAssistantAttachmentReference, J as SurveyAssistantErrorInfo, K as updateSurveyAssistantThreadInputSchema, L as SurveyAssistantThread, M as surveyAssistantTranslateContentInputSchema, N as surveyAssistantTranslateContentResultSchema, O as surveyAssistantTaskInvocationModeSchema, P as CreateSurveyAssistantThreadInput, Q as surveyAssistantErrorInfoSchema, R as SurveyAssistantThreadList, S as surveyAssistantSuggestItemKeyInputSchema, T as surveyAssistantSuggestItemLabelResultSchema, U as surveyAssistantThreadListSchema, V as UpdateSurveyAssistantThreadInput, W as surveyAssistantThreadSchema, X as serializeSurveyAssistantError, Y as parseSurveyAssistantError, Z as surveyAssistantErrorCodeSchema, _ as SurveyAssistantTranslateContentEntry, a as SurveyAssistantKeySuggestion, b as surveyAssistantKeySuggestionCategorySchema, c as SurveyAssistantSuggestItemKeyInput, d as SurveyAssistantSuggestItemLabelResult, f as SurveyAssistantSuggestedText, g as SurveyAssistantTaskRequest, h as SurveyAssistantTaskItemSummary, i as surveyAssistantModelOptionSchema, j as surveyAssistantTranslateContentEntrySchema, k as surveyAssistantTaskItemSummarySchema, l as SurveyAssistantSuggestItemKeyResult, m as SurveyAssistantTaskInvocationMode, n as SurveyAssistantModelOption, o as SurveyAssistantKeySuggestionCategory, p as SurveyAssistantTaskContext, q as SurveyAssistantErrorCode, r as surveyAssistantModelCatalogSchema, s as SurveyAssistantLabelSuggestion, t as SurveyAssistantModelCatalog, u as SurveyAssistantSuggestItemLabelInput, v as SurveyAssistantTranslateContentInput, w as surveyAssistantSuggestItemLabelInputSchema, x as surveyAssistantKeySuggestionSchema, y as SurveyAssistantTranslateContentResult, z as SurveyAssistantThreadTitleMode } from "./index-
|
|
2
|
+
import { A as surveyAssistantTaskRequestSchema, B as SurveyAssistantThreadTranscript, C as surveyAssistantSuggestItemKeyResultSchema, D as surveyAssistantTaskContextSchema, E as surveyAssistantSuggestedTextSchema, F as SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, G as surveyAssistantThreadTranscriptSchema, H as createSurveyAssistantThreadInputSchema, I as SurveyAssistantAttachmentReference, J as SurveyAssistantErrorInfo, K as updateSurveyAssistantThreadInputSchema, L as SurveyAssistantThread, M as surveyAssistantTranslateContentInputSchema, N as surveyAssistantTranslateContentResultSchema, O as surveyAssistantTaskInvocationModeSchema, P as CreateSurveyAssistantThreadInput, Q as surveyAssistantErrorInfoSchema, R as SurveyAssistantThreadList, S as surveyAssistantSuggestItemKeyInputSchema, T as surveyAssistantSuggestItemLabelResultSchema, U as surveyAssistantThreadListSchema, V as UpdateSurveyAssistantThreadInput, W as surveyAssistantThreadSchema, X as serializeSurveyAssistantError, Y as parseSurveyAssistantError, Z as surveyAssistantErrorCodeSchema, _ as SurveyAssistantTranslateContentEntry, a as SurveyAssistantKeySuggestion, b as surveyAssistantKeySuggestionCategorySchema, c as SurveyAssistantSuggestItemKeyInput, d as SurveyAssistantSuggestItemLabelResult, f as SurveyAssistantSuggestedText, g as SurveyAssistantTaskRequest, h as SurveyAssistantTaskItemSummary, i as surveyAssistantModelOptionSchema, j as surveyAssistantTranslateContentEntrySchema, k as surveyAssistantTaskItemSummarySchema, l as SurveyAssistantSuggestItemKeyResult, m as SurveyAssistantTaskInvocationMode, n as SurveyAssistantModelOption, o as SurveyAssistantKeySuggestionCategory, p as SurveyAssistantTaskContext, q as SurveyAssistantErrorCode, r as surveyAssistantModelCatalogSchema, s as SurveyAssistantLabelSuggestion, t as SurveyAssistantModelCatalog, u as SurveyAssistantSuggestItemLabelInput, v as SurveyAssistantTranslateContentInput, w as surveyAssistantSuggestItemLabelInputSchema, x as surveyAssistantKeySuggestionSchema, y as SurveyAssistantTranslateContentResult, z as SurveyAssistantThreadTitleMode } from "./index-BApnIiCI.mjs";
|
|
3
3
|
import { $ as surveyAssistantUpdateItemKeyOperationSchema, A as SurveyAssistantSurveyJsonPatchOperation, At as surveyAssistantSnapshotSchema, B as patchItemConfigOperationSchema, C as surveyAssistantTurnFinalSchema, Ct as SurveyDocumentSnapshot, D as JsonPatchOperation, Dt as surveyAssistantDraftChangePreconditionSchema, E as surveyChangeSetSchema, Et as rawSurveyDocumentSchema, F as SurveyValidationIssue, Ft as SurveyContent, G as surveyAssistantCreateItemOperationSchema, H as removeItemOperationSchema, I as SurveyValidationResult, It as jsonValueSchema, J as surveyAssistantRemoveItemOperationSchema, K as surveyAssistantOperationSchema, L as addChoiceOptionOperationSchema, Lt as surveyContentSchema, M as SurveyAssistantValidationResult, Mt as surveyDocumentVersionSchema, N as SurveyOperation, Nt as surveyEditorUIContextSchema, O as SURVEY_OPERATION_KINDS, Ot as surveyAssistantProtocolVersionSchema, P as SurveyOperationKind, Pt as JsonValue, Q as surveyAssistantUpdateItemColorOperationSchema, R as createItemOperationSchema, S as surveyAssistantDraftChangeEventSchema, St as SurveyAssistantSnapshotPayload, T as surveyBatchApplyResultSchema, Tt as SurveyEditorUIContext, U as reorderChoiceOptionsOperationSchema, V as removeChoiceOptionOperationSchema, W as surveyAssistantAddChoiceOptionOperationSchema, X as surveyAssistantSurveyJsonPatchOperationSchema, Y as surveyAssistantReorderChoiceOptionsOperationSchema, Z as surveyAssistantUpdateChoiceOptionLabelOperationSchema, _ as applyReceiptSchema, _t as SurveyAssistantItemCreateStrategy, a as SurveyApplyStatus, at as surveyOperationSchema, b as surveyAssistantApplyOutcomeSchema, bt as SurveyAssistantProtocolVersion, c as SurveyAssistantApplyResult, ct as surveyValidationResultSchema, d as SurveyAssistantDraftChangeEvent, dt as updateItemKeyOperationSchema, et as surveyAssistantUpdateItemLabelOperationSchema, f as SurveyAssistantTurnFinal, ft as updateItemLabelOperationSchema, gt as SurveyAssistantDraftChangePrecondition, h as SurveyChangeSet, ht as SURVEY_ASSISTANT_PROTOCOL_VERSION, i as SurveyApplyResult, it as surveyJsonPatchOperationSchema, j as SurveyAssistantValidationIssue, jt as surveyDocumentSnapshotSchema, k as SurveyAssistantOperation, kt as surveyAssistantSnapshotPayloadSchema, l as SurveyAssistantApplyStatus, lt as updateChoiceOptionLabelOperationSchema, m as SurveyBatchApplyResult, mt as RawSurveyDocument, n as SURVEY_ASSISTANT_TURN_FINAL_DATA_NAME, nt as surveyAssistantValidationIssueSchema, o as SurveyAssistantApplyOutcome, ot as surveyPatchOperationSchema, p as SurveyAssistantTurnTerminationReason, pt as updateItemTranslationOperationSchema, q as surveyAssistantRemoveChoiceOptionOperationSchema, r as SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE, rt as surveyAssistantValidationResultSchema, s as SurveyAssistantApplyPolicy, st as surveyValidationIssueSchema, t as ApplyReceipt, tt as surveyAssistantUpdateItemTranslationOperationSchema, u as SurveyAssistantBatchApplyResult, ut as updateItemColorOperationSchema, v as surveyApplyResultSchema, vt as SurveyAssistantItemRegistryManifest, w as surveyAssistantTurnTerminationReasonSchema, wt as SurveyDocumentVersion, x as surveyAssistantApplyPolicySchema, xt as SurveyAssistantSnapshot, y as surveyApplyStatusSchema, yt as SurveyAssistantItemTypeManifestEntry, z as jsonPatchOperationSchema } from "./lifecycle-DWv5CiSu.mjs";
|
|
4
4
|
export { ApplyReceipt, AssistantContentSurface, AssistantItemAuthoring, AssistantItemCreateMode, AssistantItemTypeManifest, AssistantResponseSlot, CreateSurveyAssistantThreadInput, JsonPatchOperation, JsonValue, RawSurveyDocument, SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, SURVEY_ASSISTANT_PROTOCOL_VERSION, SURVEY_ASSISTANT_TURN_FINAL_DATA_NAME, SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE, SURVEY_OPERATION_KINDS, SurveyApplyResult, SurveyApplyStatus, SurveyAssistantApplyOutcome, SurveyAssistantApplyPolicy, SurveyAssistantApplyResult, SurveyAssistantApplyStatus, SurveyAssistantAttachmentReference, SurveyAssistantBatchApplyResult, SurveyAssistantCapabilityManifest, SurveyAssistantDraftChangeEvent, SurveyAssistantDraftChangePrecondition, SurveyAssistantErrorCode, SurveyAssistantErrorInfo, SurveyAssistantItemCreateStrategy, SurveyAssistantItemRegistryManifest, SurveyAssistantItemTypeManifestEntry, SurveyAssistantKeySuggestion, SurveyAssistantKeySuggestionCategory, SurveyAssistantLabelSuggestion, SurveyAssistantModelCatalog, SurveyAssistantModelOption, SurveyAssistantOperation, SurveyAssistantProtocolVersion, SurveyAssistantSnapshot, SurveyAssistantSnapshotPayload, SurveyAssistantSuggestItemKeyInput, SurveyAssistantSuggestItemKeyResult, SurveyAssistantSuggestItemLabelInput, SurveyAssistantSuggestItemLabelResult, SurveyAssistantSuggestedText, SurveyAssistantSurveyJsonPatchOperation, SurveyAssistantTaskContext, SurveyAssistantTaskInvocationMode, SurveyAssistantTaskItemSummary, SurveyAssistantTaskRequest, SurveyAssistantThread, SurveyAssistantThreadList, SurveyAssistantThreadTitleMode, SurveyAssistantThreadTranscript, SurveyAssistantTranslateContentEntry, SurveyAssistantTranslateContentInput, SurveyAssistantTranslateContentResult, SurveyAssistantTurnFinal, SurveyAssistantTurnTerminationReason, SurveyAssistantValidationIssue, SurveyAssistantValidationResult, SurveyBatchApplyResult, SurveyChangeSet, SurveyContent, SurveyDocumentSnapshot, SurveyDocumentVersion, SurveyEditorUIContext, SurveyOperation, SurveyOperationKind, SurveyValidationIssue, SurveyValidationResult, UpdateSurveyAssistantThreadInput, addChoiceOptionOperationSchema, applyReceiptSchema, assistantContentSurfaceSchema, assistantItemAuthoringSchema, assistantItemCreateModeSchema, assistantItemTypeManifestSchema, assistantResponseSlotSchema, createItemOperationSchema, createSurveyAssistantThreadInputSchema, jsonPatchOperationSchema, jsonValueSchema, parseSurveyAssistantError, patchItemConfigOperationSchema, rawSurveyDocumentSchema, removeChoiceOptionOperationSchema, removeItemOperationSchema, reorderChoiceOptionsOperationSchema, serializeSurveyAssistantError, surveyApplyResultSchema, surveyApplyStatusSchema, surveyAssistantAddChoiceOptionOperationSchema, surveyAssistantApplyOutcomeSchema, surveyAssistantApplyPolicySchema, surveyAssistantCapabilityManifestSchema, surveyAssistantCreateItemOperationSchema, surveyAssistantDraftChangeEventSchema, surveyAssistantDraftChangePreconditionSchema, surveyAssistantErrorCodeSchema, surveyAssistantErrorInfoSchema, surveyAssistantKeySuggestionCategorySchema, surveyAssistantKeySuggestionSchema, surveyAssistantModelCatalogSchema, surveyAssistantModelOptionSchema, surveyAssistantOperationSchema, surveyAssistantProtocolVersionSchema, surveyAssistantRemoveChoiceOptionOperationSchema, surveyAssistantRemoveItemOperationSchema, surveyAssistantReorderChoiceOptionsOperationSchema, surveyAssistantSnapshotPayloadSchema, surveyAssistantSnapshotSchema, surveyAssistantSuggestItemKeyInputSchema, surveyAssistantSuggestItemKeyResultSchema, surveyAssistantSuggestItemLabelInputSchema, surveyAssistantSuggestItemLabelResultSchema, surveyAssistantSuggestedTextSchema, surveyAssistantSurveyJsonPatchOperationSchema, surveyAssistantTaskContextSchema, surveyAssistantTaskInvocationModeSchema, surveyAssistantTaskItemSummarySchema, surveyAssistantTaskRequestSchema, surveyAssistantThreadListSchema, surveyAssistantThreadSchema, surveyAssistantThreadTranscriptSchema, surveyAssistantTranslateContentEntrySchema, surveyAssistantTranslateContentInputSchema, surveyAssistantTranslateContentResultSchema, surveyAssistantTurnFinalSchema, surveyAssistantTurnTerminationReasonSchema, surveyAssistantUpdateChoiceOptionLabelOperationSchema, surveyAssistantUpdateItemColorOperationSchema, surveyAssistantUpdateItemKeyOperationSchema, surveyAssistantUpdateItemLabelOperationSchema, surveyAssistantUpdateItemTranslationOperationSchema, surveyAssistantValidationIssueSchema, surveyAssistantValidationResultSchema, surveyBatchApplyResultSchema, surveyChangeSetSchema, surveyContentSchema, surveyDocumentSnapshotSchema, surveyDocumentVersionSchema, surveyEditorUIContextSchema, surveyJsonPatchOperationSchema, surveyOperationSchema, surveyPatchOperationSchema, surveyValidationIssueSchema, surveyValidationResultSchema, updateChoiceOptionLabelOperationSchema, updateItemColorOperationSchema, updateItemKeyOperationSchema, updateItemLabelOperationSchema, updateItemTranslationOperationSchema, updateSurveyAssistantThreadInputSchema };
|
package/dist/protocol.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as jsonPatchOperationSchema, A as createSurveyAssistantThreadInputSchema, At as surveyContentSchema, B as surveyAssistantSnapshotSchema, C as surveyAssistantTaskInvocationModeSchema, Ct as surveyValidationResultSchema, D as surveyAssistantTranslateContentInputSchema, Dt as updateItemLabelOperationSchema, E as surveyAssistantTranslateContentEntrySchema, Et as updateItemKeyOperationSchema, F as SURVEY_ASSISTANT_PROTOCOL_VERSION, G as assistantItemAuthoringSchema, H as surveyDocumentVersionSchema, I as rawSurveyDocumentSchema, J as assistantResponseSlotSchema, K as assistantItemCreateModeSchema, L as surveyAssistantDraftChangePreconditionSchema, M as surveyAssistantThreadSchema, Mt as serializeSurveyAssistantError, N as surveyAssistantThreadTranscriptSchema, Nt as surveyAssistantErrorCodeSchema, O as surveyAssistantTranslateContentResultSchema, Ot as updateItemTranslationOperationSchema, P as updateSurveyAssistantThreadInputSchema, Pt as surveyAssistantErrorInfoSchema, Q as createItemOperationSchema, R as surveyAssistantProtocolVersionSchema, S as surveyAssistantTaskContextSchema, St as surveyValidationIssueSchema, T as surveyAssistantTaskRequestSchema, Tt as updateItemColorOperationSchema, U as surveyEditorUIContextSchema, V as surveyDocumentSnapshotSchema, W as assistantContentSurfaceSchema, X as SURVEY_OPERATION_KINDS, Y as surveyAssistantCapabilityManifestSchema, Z as addChoiceOptionOperationSchema, _ as surveyAssistantSuggestItemKeyInputSchema, _t as surveyAssistantValidationResultSchema, a as surveyApplyStatusSchema, at as surveyAssistantCreateItemOperationSchema, b as surveyAssistantSuggestItemLabelResultSchema, c as surveyAssistantDraftChangeEventSchema, ct as surveyAssistantRemoveItemOperationSchema, d as surveyBatchApplyResultSchema, dt as surveyAssistantUpdateChoiceOptionLabelOperationSchema, et as patchItemConfigOperationSchema, f as surveyChangeSetSchema, ft as surveyAssistantUpdateItemColorOperationSchema, g as surveyAssistantKeySuggestionSchema, gt as surveyAssistantValidationIssueSchema, h as surveyAssistantKeySuggestionCategorySchema, ht as surveyAssistantUpdateItemTranslationOperationSchema, i as surveyApplyResultSchema, it as surveyAssistantAddChoiceOptionOperationSchema, j as surveyAssistantThreadListSchema, jt as parseSurveyAssistantError, k as SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, kt as jsonValueSchema, l as surveyAssistantTurnFinalSchema, lt as surveyAssistantReorderChoiceOptionsOperationSchema, m as surveyAssistantModelOptionSchema, mt as surveyAssistantUpdateItemLabelOperationSchema, n as SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE, nt as removeItemOperationSchema, o as surveyAssistantApplyOutcomeSchema, ot as surveyAssistantOperationSchema, p as surveyAssistantModelCatalogSchema, pt as surveyAssistantUpdateItemKeyOperationSchema, q as assistantItemTypeManifestSchema, r as applyReceiptSchema, rt as reorderChoiceOptionsOperationSchema, s as surveyAssistantApplyPolicySchema, st as surveyAssistantRemoveChoiceOptionOperationSchema, t as SURVEY_ASSISTANT_TURN_FINAL_DATA_NAME, tt as removeChoiceOptionOperationSchema, u as surveyAssistantTurnTerminationReasonSchema, ut as surveyAssistantSurveyJsonPatchOperationSchema, v as surveyAssistantSuggestItemKeyResultSchema, vt as surveyJsonPatchOperationSchema, w as surveyAssistantTaskItemSummarySchema, wt as updateChoiceOptionLabelOperationSchema, x as surveyAssistantSuggestedTextSchema, xt as surveyPatchOperationSchema, y as surveyAssistantSuggestItemLabelInputSchema, yt as surveyOperationSchema, z as surveyAssistantSnapshotPayloadSchema } from "./protocol-
|
|
1
|
+
import { $ as jsonPatchOperationSchema, A as createSurveyAssistantThreadInputSchema, At as surveyContentSchema, B as surveyAssistantSnapshotSchema, C as surveyAssistantTaskInvocationModeSchema, Ct as surveyValidationResultSchema, D as surveyAssistantTranslateContentInputSchema, Dt as updateItemLabelOperationSchema, E as surveyAssistantTranslateContentEntrySchema, Et as updateItemKeyOperationSchema, F as SURVEY_ASSISTANT_PROTOCOL_VERSION, G as assistantItemAuthoringSchema, H as surveyDocumentVersionSchema, I as rawSurveyDocumentSchema, J as assistantResponseSlotSchema, K as assistantItemCreateModeSchema, L as surveyAssistantDraftChangePreconditionSchema, M as surveyAssistantThreadSchema, Mt as serializeSurveyAssistantError, N as surveyAssistantThreadTranscriptSchema, Nt as surveyAssistantErrorCodeSchema, O as surveyAssistantTranslateContentResultSchema, Ot as updateItemTranslationOperationSchema, P as updateSurveyAssistantThreadInputSchema, Pt as surveyAssistantErrorInfoSchema, Q as createItemOperationSchema, R as surveyAssistantProtocolVersionSchema, S as surveyAssistantTaskContextSchema, St as surveyValidationIssueSchema, T as surveyAssistantTaskRequestSchema, Tt as updateItemColorOperationSchema, U as surveyEditorUIContextSchema, V as surveyDocumentSnapshotSchema, W as assistantContentSurfaceSchema, X as SURVEY_OPERATION_KINDS, Y as surveyAssistantCapabilityManifestSchema, Z as addChoiceOptionOperationSchema, _ as surveyAssistantSuggestItemKeyInputSchema, _t as surveyAssistantValidationResultSchema, a as surveyApplyStatusSchema, at as surveyAssistantCreateItemOperationSchema, b as surveyAssistantSuggestItemLabelResultSchema, c as surveyAssistantDraftChangeEventSchema, ct as surveyAssistantRemoveItemOperationSchema, d as surveyBatchApplyResultSchema, dt as surveyAssistantUpdateChoiceOptionLabelOperationSchema, et as patchItemConfigOperationSchema, f as surveyChangeSetSchema, ft as surveyAssistantUpdateItemColorOperationSchema, g as surveyAssistantKeySuggestionSchema, gt as surveyAssistantValidationIssueSchema, h as surveyAssistantKeySuggestionCategorySchema, ht as surveyAssistantUpdateItemTranslationOperationSchema, i as surveyApplyResultSchema, it as surveyAssistantAddChoiceOptionOperationSchema, j as surveyAssistantThreadListSchema, jt as parseSurveyAssistantError, k as SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, kt as jsonValueSchema, l as surveyAssistantTurnFinalSchema, lt as surveyAssistantReorderChoiceOptionsOperationSchema, m as surveyAssistantModelOptionSchema, mt as surveyAssistantUpdateItemLabelOperationSchema, n as SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE, nt as removeItemOperationSchema, o as surveyAssistantApplyOutcomeSchema, ot as surveyAssistantOperationSchema, p as surveyAssistantModelCatalogSchema, pt as surveyAssistantUpdateItemKeyOperationSchema, q as assistantItemTypeManifestSchema, r as applyReceiptSchema, rt as reorderChoiceOptionsOperationSchema, s as surveyAssistantApplyPolicySchema, st as surveyAssistantRemoveChoiceOptionOperationSchema, t as SURVEY_ASSISTANT_TURN_FINAL_DATA_NAME, tt as removeChoiceOptionOperationSchema, u as surveyAssistantTurnTerminationReasonSchema, ut as surveyAssistantSurveyJsonPatchOperationSchema, v as surveyAssistantSuggestItemKeyResultSchema, vt as surveyJsonPatchOperationSchema, w as surveyAssistantTaskItemSummarySchema, wt as updateChoiceOptionLabelOperationSchema, x as surveyAssistantSuggestedTextSchema, xt as surveyPatchOperationSchema, y as surveyAssistantSuggestItemLabelInputSchema, yt as surveyOperationSchema, z as surveyAssistantSnapshotPayloadSchema } from "./protocol-DJUP4gc0.mjs";
|
|
2
2
|
export { SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, SURVEY_ASSISTANT_PROTOCOL_VERSION, SURVEY_ASSISTANT_TURN_FINAL_DATA_NAME, SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE, SURVEY_OPERATION_KINDS, addChoiceOptionOperationSchema, applyReceiptSchema, assistantContentSurfaceSchema, assistantItemAuthoringSchema, assistantItemCreateModeSchema, assistantItemTypeManifestSchema, assistantResponseSlotSchema, createItemOperationSchema, createSurveyAssistantThreadInputSchema, jsonPatchOperationSchema, jsonValueSchema, parseSurveyAssistantError, patchItemConfigOperationSchema, rawSurveyDocumentSchema, removeChoiceOptionOperationSchema, removeItemOperationSchema, reorderChoiceOptionsOperationSchema, serializeSurveyAssistantError, surveyApplyResultSchema, surveyApplyStatusSchema, surveyAssistantAddChoiceOptionOperationSchema, surveyAssistantApplyOutcomeSchema, surveyAssistantApplyPolicySchema, surveyAssistantCapabilityManifestSchema, surveyAssistantCreateItemOperationSchema, surveyAssistantDraftChangeEventSchema, surveyAssistantDraftChangePreconditionSchema, surveyAssistantErrorCodeSchema, surveyAssistantErrorInfoSchema, surveyAssistantKeySuggestionCategorySchema, surveyAssistantKeySuggestionSchema, surveyAssistantModelCatalogSchema, surveyAssistantModelOptionSchema, surveyAssistantOperationSchema, surveyAssistantProtocolVersionSchema, surveyAssistantRemoveChoiceOptionOperationSchema, surveyAssistantRemoveItemOperationSchema, surveyAssistantReorderChoiceOptionsOperationSchema, surveyAssistantSnapshotPayloadSchema, surveyAssistantSnapshotSchema, surveyAssistantSuggestItemKeyInputSchema, surveyAssistantSuggestItemKeyResultSchema, surveyAssistantSuggestItemLabelInputSchema, surveyAssistantSuggestItemLabelResultSchema, surveyAssistantSuggestedTextSchema, surveyAssistantSurveyJsonPatchOperationSchema, surveyAssistantTaskContextSchema, surveyAssistantTaskInvocationModeSchema, surveyAssistantTaskItemSummarySchema, surveyAssistantTaskRequestSchema, surveyAssistantThreadListSchema, surveyAssistantThreadSchema, surveyAssistantThreadTranscriptSchema, surveyAssistantTranslateContentEntrySchema, surveyAssistantTranslateContentInputSchema, surveyAssistantTranslateContentResultSchema, surveyAssistantTurnFinalSchema, surveyAssistantTurnTerminationReasonSchema, surveyAssistantUpdateChoiceOptionLabelOperationSchema, surveyAssistantUpdateItemColorOperationSchema, surveyAssistantUpdateItemKeyOperationSchema, surveyAssistantUpdateItemLabelOperationSchema, surveyAssistantUpdateItemTranslationOperationSchema, surveyAssistantValidationIssueSchema, surveyAssistantValidationResultSchema, surveyBatchApplyResultSchema, surveyChangeSetSchema, surveyContentSchema, surveyDocumentSnapshotSchema, surveyDocumentVersionSchema, surveyEditorUIContextSchema, surveyJsonPatchOperationSchema, surveyOperationSchema, surveyPatchOperationSchema, surveyValidationIssueSchema, surveyValidationResultSchema, updateChoiceOptionLabelOperationSchema, updateItemColorOperationSchema, updateItemKeyOperationSchema, updateItemLabelOperationSchema, updateItemTranslationOperationSchema, updateSurveyAssistantThreadInputSchema };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { H as surveyDocumentVersionSchema, M as surveyAssistantThreadSchema, N as surveyAssistantThreadTranscriptSchema, f as surveyChangeSetSchema, j as surveyAssistantThreadListSchema, l as surveyAssistantTurnFinalSchema, n as SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE, o as surveyAssistantApplyOutcomeSchema, p as surveyAssistantModelCatalogSchema, r as applyReceiptSchema } from "./protocol-
|
|
2
|
-
import { a as applySurveyAssistantLaunchUIContext, l as readSurveyAssistantJson } from "./controller-proxy-
|
|
1
|
+
import { H as surveyDocumentVersionSchema, M as surveyAssistantThreadSchema, N as surveyAssistantThreadTranscriptSchema, f as surveyChangeSetSchema, j as surveyAssistantThreadListSchema, l as surveyAssistantTurnFinalSchema, n as SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE, o as surveyAssistantApplyOutcomeSchema, p as surveyAssistantModelCatalogSchema, r as applyReceiptSchema } from "./protocol-DJUP4gc0.mjs";
|
|
2
|
+
import { a as applySurveyAssistantLaunchUIContext, l as readSurveyAssistantJson } from "./controller-proxy-jWIPOZAv.mjs";
|
|
3
3
|
import { DefaultChatTransport } from "ai";
|
|
4
4
|
import { useCallback, useEffect, useEffectEvent, useMemo, useReducer, useRef, useState } from "react";
|
|
5
5
|
import { useChat } from "@ai-sdk/react";
|
|
@@ -147,6 +147,11 @@ const createApplyReceipts = ({ afterSnapshot, beforeSnapshot, changeSets, result
|
|
|
147
147
|
const findLastUserMessage = (messages) => {
|
|
148
148
|
for (let index = messages.length - 1; index >= 0; index -= 1) if (messages[index]?.role === "user") return messages[index];
|
|
149
149
|
};
|
|
150
|
+
const fetchSurveyAssistantChat = async (input, init) => {
|
|
151
|
+
const response = await globalThis.fetch(input, init);
|
|
152
|
+
if (!response.ok) await readSurveyAssistantJson(response);
|
|
153
|
+
return response;
|
|
154
|
+
};
|
|
150
155
|
const createSurveyAssistantTransport = ({ api = "/api/survey-assistant/chat", resourceId, surveyId, threadId }) => new DefaultChatTransport({
|
|
151
156
|
api,
|
|
152
157
|
body: {
|
|
@@ -154,6 +159,7 @@ const createSurveyAssistantTransport = ({ api = "/api/survey-assistant/chat", re
|
|
|
154
159
|
...surveyId ? { surveyId } : {},
|
|
155
160
|
threadId
|
|
156
161
|
},
|
|
162
|
+
fetch: fetchSurveyAssistantChat,
|
|
157
163
|
prepareSendMessagesRequest: ({ api, body, credentials, headers, id, messageId, messages, trigger }) => {
|
|
158
164
|
const latestUserMessage = findLastUserMessage(messages);
|
|
159
165
|
return {
|
|
@@ -189,8 +195,15 @@ const createSurveyAssistantThreadClient = (api = "/api/survey-assistant/threads"
|
|
|
189
195
|
const body = await readSurveyAssistantJson(await fetch(api, { cache: "no-store" }));
|
|
190
196
|
return surveyAssistantThreadListSchema.parse(body).threads;
|
|
191
197
|
},
|
|
192
|
-
async
|
|
193
|
-
const
|
|
198
|
+
async listPage(options) {
|
|
199
|
+
const search = new URLSearchParams();
|
|
200
|
+
if (options?.cursor) search.set("cursor", options.cursor);
|
|
201
|
+
const body = await readSurveyAssistantJson(await fetch(`${api}${search.size ? `?${search}` : ""}`, { cache: "no-store" }));
|
|
202
|
+
return surveyAssistantThreadListSchema.parse(body);
|
|
203
|
+
},
|
|
204
|
+
async read(threadId, cursor) {
|
|
205
|
+
const search = cursor ? `?cursor=${encodeURIComponent(cursor)}` : "";
|
|
206
|
+
const body = await readSurveyAssistantJson(await fetch(`${api}/${encodeURIComponent(threadId)}${search}`, { cache: "no-store" }));
|
|
194
207
|
return surveyAssistantThreadTranscriptSchema.parse(body);
|
|
195
208
|
},
|
|
196
209
|
async rename(threadId, title) {
|
|
@@ -416,6 +429,12 @@ const useSurveyAssistantSession = ({ api, applyPolicy, controller, initialMessag
|
|
|
416
429
|
const notifyTurnActiveChange = useEffectEvent((active) => {
|
|
417
430
|
onTurnActiveChange?.(active);
|
|
418
431
|
});
|
|
432
|
+
const prependMessages = useCallback((olderMessages) => {
|
|
433
|
+
setMessages((current) => {
|
|
434
|
+
const currentIds = new Set(current.map((message) => message.id));
|
|
435
|
+
return [...olderMessages.filter((message) => !currentIds.has(message.id)), ...current];
|
|
436
|
+
});
|
|
437
|
+
}, [setMessages]);
|
|
419
438
|
const turnAuthorization = useMemo(() => resolveLatestSurveyTurnAuthorization(messages), [messages]);
|
|
420
439
|
const latestTurnOutcome = useMemo(() => resolveSurveyTurnOutcome({
|
|
421
440
|
applyResultsByChangeId,
|
|
@@ -735,6 +754,7 @@ const useSurveyAssistantSession = ({ api, applyPolicy, controller, initialMessag
|
|
|
735
754
|
isStreaming,
|
|
736
755
|
latestTurnOutcome,
|
|
737
756
|
messages,
|
|
757
|
+
prependMessages,
|
|
738
758
|
state,
|
|
739
759
|
status,
|
|
740
760
|
stop,
|
|
@@ -745,4 +765,4 @@ const useSurveyAssistantSession = ({ api, applyPolicy, controller, initialMessag
|
|
|
745
765
|
//#endregion
|
|
746
766
|
export { createSurveyAssistantTransport as a, getSurveyDocumentVersionFromSnapshot as c, resolveSurveyTurnOutcome as d, unwrapSurveyAssistantToolOutput as f, createSurveyAssistantThreadClient as i, parseSurveyChangeSet as l, reduceSurveyAssistantSessionState as m, createSurveyAssistantModelCatalogClient as n, collectSurveyChangeSets as o, isSurveyAssistantTurnActive as p, useSurveyAssistantModelCatalog as r, createApplyReceipts as s, useSurveyAssistantSession as t, resolveLatestSurveyTurnAuthorization as u };
|
|
747
767
|
|
|
748
|
-
//# sourceMappingURL=react-
|
|
768
|
+
//# sourceMappingURL=react-CY6N7lVi.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-CY6N7lVi.mjs","names":["findLastUserMessageIndex"],"sources":["../src/react/session-state.ts","../src/react/turn-authorization.ts","../src/react/transport.ts","../src/react/thread-client.ts","../src/react/model-catalog.ts","../src/react/document-baseline.ts","../src/react/use-survey-assistant-session.ts"],"sourcesContent":["export type SurveyAssistantSessionState =\n | \"idle\"\n | \"submitting\"\n | \"streaming\"\n | \"completed\"\n | \"failed\"\n | \"aborted\"\n | \"applying\"\n | \"applied\";\n\nexport type SurveyAssistantSessionEvent =\n | { type: \"submit\" }\n | { type: \"stream-started\" }\n | { type: \"completed\" }\n | { type: \"apply-started\" }\n | { type: \"applied\" }\n | { type: \"failed\" }\n | { type: \"aborted\" }\n | { type: \"reset\"; hasTranscript: boolean };\n\nexport const isSurveyAssistantTurnActive = ({\n isStreaming,\n state,\n}: {\n isStreaming: boolean;\n state: SurveyAssistantSessionState;\n}): boolean =>\n state !== \"aborted\" &&\n (isStreaming || state === \"submitting\" || state === \"streaming\" || state === \"applying\");\n\nexport const reduceSurveyAssistantSessionState = (\n _state: SurveyAssistantSessionState,\n event: SurveyAssistantSessionEvent,\n): SurveyAssistantSessionState => {\n switch (event.type) {\n case \"submit\":\n return \"submitting\";\n case \"stream-started\":\n return \"streaming\";\n case \"completed\":\n return \"completed\";\n case \"apply-started\":\n return \"applying\";\n case \"applied\":\n return \"applied\";\n case \"failed\":\n return \"failed\";\n case \"aborted\":\n return \"aborted\";\n case \"reset\":\n return event.hasTranscript ? \"completed\" : \"idle\";\n }\n};\n","import {\n SURVEY_ASSISTANT_PROTOCOL_VERSION,\n SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE,\n applyReceiptSchema,\n surveyAssistantTurnFinalSchema,\n surveyChangeSetSchema,\n type ApplyReceipt,\n type SurveyAssistantSnapshot,\n type SurveyAssistantTurnFinal,\n type SurveyApplyResult,\n type SurveyChangeSet,\n type SurveyDocumentVersion,\n} from \"../protocol\";\nimport type { UIMessage } from \"ai\";\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst isCompletedToolPart = (\n part: UIMessage[\"parts\"][number],\n): part is UIMessage[\"parts\"][number] & { state: \"output-available\"; output: unknown } =>\n (part.type === \"dynamic-tool\" || part.type.startsWith(\"tool-\")) &&\n \"state\" in part &&\n part.state === \"output-available\" &&\n \"output\" in part;\n\nexport const unwrapSurveyAssistantToolOutput = (output: unknown) => {\n if (isRecord(output) && \"output\" in output && output.output !== undefined) {\n return output.output;\n }\n return output;\n};\n\nexport const parseSurveyChangeSet = (output: unknown): SurveyChangeSet | null => {\n const parsed = surveyChangeSetSchema.safeParse(unwrapSurveyAssistantToolOutput(output));\n return parsed.success ? parsed.data : null;\n};\n\nexport const collectSurveyChangeSets = (messages: UIMessage[]): SurveyChangeSet[] => {\n const changes: SurveyChangeSet[] = [];\n for (const message of messages) {\n for (const part of message.parts) {\n if (!isCompletedToolPart(part)) {\n continue;\n }\n const change = parseSurveyChangeSet(part.output);\n if (change) {\n changes.push(change);\n }\n }\n }\n return changes;\n};\n\nconst findLastUserMessageIndex = (messages: UIMessage[]) => {\n for (let index = messages.length - 1; index >= 0; index -= 1) {\n if (messages[index]?.role === \"user\") return index;\n }\n return -1;\n};\n\nexport type SurveyTurnAuthorization =\n | { status: \"pending\" }\n | { status: \"invalid\"; reason: string; turnId?: string }\n | {\n status: \"failed\" | \"aborted\";\n turnFinal: SurveyAssistantTurnFinal;\n changeSets: [];\n }\n | {\n status: \"completed\";\n turnFinal: SurveyAssistantTurnFinal;\n changeSets: SurveyChangeSet[];\n };\n\nexport type SurveyTurnOutcome =\n | {\n status: \"failed\";\n terminationReason?: SurveyAssistantTurnFinal[\"terminationReason\"];\n }\n | {\n status: \"aborted\";\n terminationReason?: SurveyAssistantTurnFinal[\"terminationReason\"];\n }\n | {\n status: \"blocked\";\n blockedChangeSetCount: number;\n }\n | {\n status: \"apply-failed\";\n appliedChangeSetCount: number;\n failedChangeSetCount: number;\n };\n\nexport const resolveLatestSurveyTurnAuthorization = (\n messages: UIMessage[],\n): SurveyTurnAuthorization => {\n const lastUserIndex = findLastUserMessageIndex(messages);\n if (lastUserIndex < 0) {\n return { status: \"pending\" };\n }\n\n const turnMessages = messages.slice(lastUserIndex + 1);\n const finalParts = turnMessages\n .flatMap((message) => message.parts)\n .filter((part) => part.type === SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE);\n if (finalParts.length === 0) {\n return { status: \"pending\" };\n }\n if (finalParts.length !== 1) {\n return { status: \"invalid\", reason: \"The assistant returned multiple turn finals.\" };\n }\n\n const finalPart = finalParts[0];\n const finalParse = surveyAssistantTurnFinalSchema.safeParse(\n finalPart && \"data\" in finalPart ? finalPart.data : undefined,\n );\n if (!finalParse.success) {\n return { status: \"invalid\", reason: \"The assistant returned an invalid turn final.\" };\n }\n const turnFinal = finalParse.data;\n if (turnFinal.status !== \"completed\") {\n return { status: turnFinal.status, turnFinal, changeSets: [] };\n }\n\n const candidates = collectSurveyChangeSets(turnMessages).filter(\n (change) => change.turnId === turnFinal.turnId,\n );\n const candidatesById = new Map<string, SurveyChangeSet>();\n for (const candidate of candidates) {\n if (candidatesById.has(candidate.id)) {\n return {\n status: \"invalid\",\n turnId: turnFinal.turnId,\n reason: `The assistant returned duplicate change set \"${candidate.id}\".`,\n };\n }\n candidatesById.set(candidate.id, candidate);\n }\n\n for (const blockedChangeSetId of turnFinal.blockedChangeSetIds ?? []) {\n const candidate = candidatesById.get(blockedChangeSetId);\n if (!candidate || candidate.status !== \"rejected\" || candidate.validation.valid) {\n return {\n status: \"invalid\",\n turnId: turnFinal.turnId,\n reason: `The assistant did not provide blocked change set \"${blockedChangeSetId}\".`,\n };\n }\n }\n\n const changeSets: SurveyChangeSet[] = [];\n for (const changeSetId of turnFinal.executableChangeSetIds) {\n const candidate = candidatesById.get(changeSetId);\n if (!candidate || candidate.status !== \"validated\" || !candidate.validation.valid) {\n return {\n status: \"invalid\",\n turnId: turnFinal.turnId,\n reason: `The assistant did not provide authorized change set \"${changeSetId}\".`,\n };\n }\n changeSets.push(candidate);\n }\n\n return { status: \"completed\", turnFinal, changeSets };\n};\n\nexport const resolveSurveyTurnOutcome = ({\n applyResultsByChangeId,\n authorization,\n}: {\n applyResultsByChangeId: Record<string, SurveyApplyResult>;\n authorization: SurveyTurnAuthorization;\n}): SurveyTurnOutcome | null => {\n if (authorization.status === \"failed\" || authorization.status === \"aborted\") {\n return {\n status: authorization.status,\n terminationReason: authorization.turnFinal.terminationReason,\n };\n }\n if (authorization.status !== \"completed\") {\n return null;\n }\n\n const blockedChangeSetCount = authorization.turnFinal.blockedChangeSetIds?.length ?? 0;\n if (blockedChangeSetCount > 0) {\n return { status: \"blocked\", blockedChangeSetCount };\n }\n\n if (authorization.changeSets.length === 0) {\n return null;\n }\n\n const results = authorization.changeSets.map((change) => applyResultsByChangeId[change.id]);\n if (results.some((result) => result === undefined)) {\n return null;\n }\n\n const failedChangeSetCount = results.filter((result) => result.status !== \"applied\").length;\n if (failedChangeSetCount === 0) {\n return null;\n }\n\n return {\n status: \"apply-failed\",\n appliedChangeSetCount: results.length - failedChangeSetCount,\n failedChangeSetCount,\n };\n};\n\nexport const getSurveyDocumentVersionFromSnapshot = (\n snapshot: SurveyAssistantSnapshot,\n): SurveyDocumentVersion => ({ ...snapshot.version });\n\nexport const createApplyReceipts = ({\n afterSnapshot,\n beforeSnapshot,\n changeSets,\n results,\n turnFinal,\n createdAt = new Date().toISOString(),\n}: {\n afterSnapshot: SurveyAssistantSnapshot | null;\n beforeSnapshot: SurveyAssistantSnapshot;\n changeSets: SurveyChangeSet[];\n results: SurveyApplyResult[];\n turnFinal: SurveyAssistantTurnFinal;\n createdAt?: string;\n}): ApplyReceipt[] => {\n const beforeVersion = getSurveyDocumentVersionFromSnapshot(beforeSnapshot);\n const afterVersion = afterSnapshot\n ? getSurveyDocumentVersionFromSnapshot(afterSnapshot)\n : undefined;\n const resultsByChangeId = new Map(results.map((result) => [result.changeId, result]));\n\n return changeSets.map((changeSet) => {\n const result = resultsByChangeId.get(changeSet.id);\n const status = result?.status ?? \"failed\";\n return applyReceiptSchema.parse({\n protocolVersion: SURVEY_ASSISTANT_PROTOCOL_VERSION,\n turnId: turnFinal.turnId,\n changeSetId: changeSet.id,\n beforeVersion,\n ...(status === \"applied\" && afterVersion ? { afterVersion } : {}),\n status,\n operationCount: changeSet.operations.length,\n ...(status === \"applied\" && afterVersion?.historyIndex !== undefined\n ? { commit: { index: afterVersion.historyIndex } }\n : {}),\n ...(result?.issues ? { issues: result.issues } : {}),\n createdAt,\n });\n });\n};\n","import { DefaultChatTransport, type UIMessage } from \"ai\";\nimport { readSurveyAssistantJson } from \"./client-error\";\n\nconst findLastUserMessage = (messages: UIMessage[]): UIMessage | undefined => {\n for (let index = messages.length - 1; index >= 0; index -= 1) {\n if (messages[index]?.role === \"user\") return messages[index];\n }\n return undefined;\n};\n\nconst fetchSurveyAssistantChat: typeof fetch = async (input, init) => {\n const response = await globalThis.fetch(input, init);\n if (!response.ok) await readSurveyAssistantJson(response);\n return response;\n};\n\nexport const createSurveyAssistantTransport = ({\n api = \"/api/survey-assistant/chat\",\n resourceId,\n surveyId,\n threadId,\n}: {\n api?: string;\n resourceId: string;\n surveyId?: string;\n threadId: string;\n}) =>\n new DefaultChatTransport({\n api,\n body: { resourceId, ...(surveyId ? { surveyId } : {}), threadId },\n fetch: fetchSurveyAssistantChat,\n prepareSendMessagesRequest: ({\n api,\n body,\n credentials,\n headers,\n id,\n messageId,\n messages,\n trigger,\n }) => {\n const latestUserMessage = findLastUserMessage(messages);\n return {\n api,\n credentials,\n headers,\n body: {\n ...body,\n id,\n messages: latestUserMessage ? [latestUserMessage] : [],\n trigger,\n messageId,\n },\n };\n },\n });\n","import {\n surveyAssistantThreadListSchema,\n surveyAssistantThreadSchema,\n surveyAssistantThreadTranscriptSchema,\n type SurveyAssistantThread,\n type SurveyAssistantThreadList,\n type SurveyAssistantThreadTranscript,\n} from \"../protocol\";\nimport { readSurveyAssistantJson } from \"./client-error\";\n\nexport interface SurveyAssistantThreadClient {\n delete(threadId: string): Promise<void>;\n create(title?: string): Promise<SurveyAssistantThread>;\n list(): Promise<SurveyAssistantThread[]>;\n /** Paged history capability. Older custom clients may omit this method. */\n listPage?(options?: { cursor?: string }): Promise<SurveyAssistantThreadList>;\n read(threadId: string, cursor?: string): Promise<SurveyAssistantThreadTranscript>;\n rename(threadId: string, title: string): Promise<SurveyAssistantThread>;\n setAutomaticTitle(threadId: string, title?: string): Promise<SurveyAssistantThread>;\n}\n\nexport const createSurveyAssistantThreadClient = (\n api = \"/api/survey-assistant/threads\",\n): SurveyAssistantThreadClient => ({\n async delete(threadId) {\n const response = await fetch(`${api}/${encodeURIComponent(threadId)}`, { method: \"DELETE\" });\n if (!response.ok) await readSurveyAssistantJson(response);\n },\n async create(title) {\n const body = await readSurveyAssistantJson(\n await fetch(api, {\n body: JSON.stringify(title ? { title } : {}),\n headers: { \"content-type\": \"application/json\" },\n method: \"POST\",\n }),\n );\n return surveyAssistantThreadSchema.parse(body.thread);\n },\n async list() {\n const body = await readSurveyAssistantJson(await fetch(api, { cache: \"no-store\" }));\n return surveyAssistantThreadListSchema.parse(body).threads;\n },\n async listPage(options) {\n const search = new URLSearchParams();\n if (options?.cursor) search.set(\"cursor\", options.cursor);\n const body = await readSurveyAssistantJson(\n await fetch(`${api}${search.size ? `?${search}` : \"\"}`, { cache: \"no-store\" }),\n );\n return surveyAssistantThreadListSchema.parse(body);\n },\n async read(threadId, cursor) {\n const search = cursor ? `?cursor=${encodeURIComponent(cursor)}` : \"\";\n const body = await readSurveyAssistantJson(\n await fetch(`${api}/${encodeURIComponent(threadId)}${search}`, { cache: \"no-store\" }),\n );\n return surveyAssistantThreadTranscriptSchema.parse(body);\n },\n async rename(threadId, title) {\n const body = await readSurveyAssistantJson(\n await fetch(`${api}/${encodeURIComponent(threadId)}`, {\n body: JSON.stringify({ mode: \"manual\", title }),\n headers: { \"content-type\": \"application/json\" },\n method: \"PATCH\",\n }),\n );\n return surveyAssistantThreadSchema.parse(body.thread);\n },\n async setAutomaticTitle(threadId, title) {\n const body = await readSurveyAssistantJson(\n await fetch(`${api}/${encodeURIComponent(threadId)}`, {\n body: JSON.stringify({ mode: \"automatic\", ...(title ? { title } : {}) }),\n headers: { \"content-type\": \"application/json\" },\n method: \"PATCH\",\n }),\n );\n return surveyAssistantThreadSchema.parse(body.thread);\n },\n});\n","import { useCallback, useEffect, useState } from \"react\";\nimport {\n surveyAssistantModelCatalogSchema,\n type SurveyAssistantModelCatalog,\n type SurveyAssistantModelOption,\n} from \"../protocol\";\nimport { readSurveyAssistantJson } from \"./client-error\";\n\nconst DEFAULT_MODEL_STORAGE_KEY = \"survey-assistant-selected-model\";\n\nexport interface SurveyAssistantModelCatalogClient {\n get(): Promise<SurveyAssistantModelCatalog>;\n}\n\nexport const createSurveyAssistantModelCatalogClient = (\n api = \"/api/survey-assistant/models\",\n): SurveyAssistantModelCatalogClient => ({\n async get() {\n const body = await readSurveyAssistantJson(\n await fetch(api, { cache: \"no-store\" }),\n \"The assistant model catalog could not be loaded.\",\n );\n return surveyAssistantModelCatalogSchema.parse(body);\n },\n});\n\nexport interface UseSurveyAssistantModelCatalogOptions {\n api?: string;\n client?: SurveyAssistantModelCatalogClient;\n onModelChange?(modelId: string): void;\n storageKey?: string | false;\n}\n\nexport interface SurveyAssistantModelCatalogState {\n error: Error | null;\n loading: boolean;\n modelId?: string;\n models: SurveyAssistantModelOption[];\n reload(): void;\n selectModel(modelId: string): void;\n}\n\nexport const useSurveyAssistantModelCatalog = ({\n api,\n client: providedClient,\n onModelChange,\n storageKey = DEFAULT_MODEL_STORAGE_KEY,\n}: UseSurveyAssistantModelCatalogOptions = {}): SurveyAssistantModelCatalogState => {\n const [models, setModels] = useState<SurveyAssistantModelOption[]>([]);\n const [modelId, setModelId] = useState<string>();\n const [error, setError] = useState<Error | null>(null);\n const [loading, setLoading] = useState(true);\n const [reloadToken, setReloadToken] = useState(0);\n\n useEffect(() => {\n let cancelled = false;\n const client = providedClient ?? createSurveyAssistantModelCatalogClient(api);\n setLoading(true);\n setError(null);\n void client\n .get()\n .then((catalog) => {\n if (cancelled) return;\n const rememberedId =\n storageKey && typeof window !== \"undefined\"\n ? (window.localStorage.getItem(storageKey) ?? undefined)\n : undefined;\n const selectedId =\n rememberedId && catalog.models.some((model) => model.id === rememberedId)\n ? rememberedId\n : catalog.defaultModelId;\n setModels(catalog.models);\n setModelId(selectedId);\n onModelChange?.(selectedId);\n })\n .catch((reason: unknown) => {\n if (!cancelled) setError(reason instanceof Error ? reason : new Error(String(reason)));\n })\n .finally(() => {\n if (!cancelled) setLoading(false);\n });\n return () => {\n cancelled = true;\n };\n }, [api, onModelChange, providedClient, reloadToken, storageKey]);\n\n const selectModel = useCallback(\n (nextModelId: string) => {\n if (!models.some((model) => model.id === nextModelId)) return;\n setModelId(nextModelId);\n if (storageKey && typeof window !== \"undefined\") {\n window.localStorage.setItem(storageKey, nextModelId);\n }\n onModelChange?.(nextModelId);\n },\n [models, onModelChange, storageKey],\n );\n\n const reload = useCallback(() => setReloadToken((current) => current + 1), []);\n\n return { error, loading, modelId, models, reload, selectModel };\n};\n","\"use client\";\n\nimport {\n surveyDocumentVersionSchema,\n type SurveyAssistantSnapshot,\n type SurveyDocumentVersion,\n} from \"../protocol\";\n\nconst STORAGE_PREFIX = \"case-survey-assistant:settled-document:\";\nconst memoryBaselines = new Map<string, SurveyDocumentVersion>();\n\nconst getStorageKey = (resourceId: string, threadId: string) =>\n `${STORAGE_PREFIX}${encodeURIComponent(resourceId)}:${encodeURIComponent(threadId)}`;\n\nconst getSessionStorage = (): Storage | undefined => {\n if (typeof document === \"undefined\") return undefined;\n\n try {\n return window.sessionStorage;\n } catch {\n return undefined;\n }\n};\n\nexport const readSettledDocumentVersion = ({\n resourceId,\n threadId,\n}: {\n resourceId: string;\n threadId: string;\n}): SurveyDocumentVersion | undefined => {\n const storageKey = getStorageKey(resourceId, threadId);\n const storedInMemory = memoryBaselines.get(storageKey);\n if (storedInMemory) return { ...storedInMemory };\n\n const serialized = getSessionStorage()?.getItem(storageKey);\n if (!serialized) return undefined;\n\n try {\n const parsed = surveyDocumentVersionSchema.safeParse(JSON.parse(serialized));\n if (!parsed.success) return undefined;\n memoryBaselines.set(storageKey, parsed.data);\n return { ...parsed.data };\n } catch {\n return undefined;\n }\n};\n\nexport const writeSettledDocumentVersion = ({\n resourceId,\n snapshot,\n threadId,\n}: {\n resourceId: string;\n snapshot: SurveyAssistantSnapshot;\n threadId: string;\n}): void => {\n const storageKey = getStorageKey(resourceId, threadId);\n const version = surveyDocumentVersionSchema.parse(snapshot.version);\n memoryBaselines.set(storageKey, version);\n\n try {\n getSessionStorage()?.setItem(storageKey, JSON.stringify(version));\n } catch {\n // In-memory continuity still works when browser storage is disabled or full.\n }\n};\n","\"use client\";\n\nimport { useChat } from \"@ai-sdk/react\";\nimport {\n SURVEY_ASSISTANT_PROTOCOL_VERSION,\n surveyAssistantApplyOutcomeSchema,\n type ApplyReceipt,\n type SurveyAssistantApplyOutcome,\n type SurveyApplyResult,\n type SurveyAssistantApplyPolicy,\n type SurveyAssistantTurnFinal,\n type SurveyChangeSet,\n} from \"../protocol\";\nimport type { ChatStatus, FileUIPart, UIMessage } from \"ai\";\nimport {\n useCallback,\n useEffect,\n useEffectEvent,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport {\n collectSurveyChangeSets,\n createApplyReceipts,\n resolveLatestSurveyTurnAuthorization,\n resolveSurveyTurnOutcome,\n} from \"./turn-authorization\";\nimport { isSurveyAssistantTurnActive, reduceSurveyAssistantSessionState } from \"./session-state\";\nimport type { SurveyAssistantSessionState } from \"./session-state\";\nimport type { SurveyTurnOutcome } from \"./turn-authorization\";\nimport { createSurveyAssistantTransport } from \"./transport\";\nimport type { SurveyAssistantController } from \"./controller\";\nimport { readSettledDocumentVersion, writeSettledDocumentVersion } from \"./document-baseline\";\nimport {\n applySurveyAssistantLaunchUIContext,\n type SurveyAssistantLaunchUIContext,\n} from \"./thread-launcher\";\n\nconst createLocalId = (prefix: string) => {\n const id = globalThis.crypto?.randomUUID?.() ?? Math.random().toString(36).slice(2);\n return `${prefix}-${id}`;\n};\n\nconst compactOutcomeText = (value: string, maximum: number, fallback: string) => {\n const normalized = value.trim() || fallback;\n return normalized.length > maximum ? `${normalized.slice(0, maximum - 1)}…` : normalized;\n};\n\nconst createApplyOutcome = ({\n message,\n preparedChanges,\n results,\n status,\n turnId,\n}: {\n message: string;\n preparedChanges?: SurveyChangeSet[];\n results?: SurveyApplyResult[];\n status: SurveyAssistantApplyOutcome[\"status\"];\n turnId: string;\n}): SurveyAssistantApplyOutcome =>\n surveyAssistantApplyOutcomeSchema.parse({\n protocolVersion: SURVEY_ASSISTANT_PROTOCOL_VERSION,\n turnId,\n status,\n message: compactOutcomeText(message, 2_000, \"No lifecycle detail was reported.\"),\n ...(results && results.length > 0\n ? {\n results: results.slice(0, 100).map((result) => ({\n status: result.status,\n changeId: compactOutcomeText(result.changeId, 240, \"unknown-change\"),\n summary: compactOutcomeText(result.summary, 500, \"Survey change\"),\n message: compactOutcomeText(result.message, 2_000, \"No apply detail was reported.\"),\n appliedOperations: result.appliedOperations,\n })),\n }\n : {}),\n ...(preparedChanges && preparedChanges.length > 0\n ? {\n preparedChanges: preparedChanges.slice(-24).map((change) => ({\n changeId: compactOutcomeText(change.id, 240, \"unknown-change\"),\n status: change.status,\n summary: compactOutcomeText(change.summary, 500, \"Survey change\"),\n operationCount: change.operations.length,\n })),\n }\n : {}),\n createdAt: new Date().toISOString(),\n });\n\ntype AssistantTextPart = Extract<UIMessage[\"parts\"][number], { type: \"text\" }>;\n\nconst getAssistantTextParts = (message: UIMessage) =>\n message.parts.filter(\n (part): part is AssistantTextPart => part.type === \"text\" && part.text.trim().length > 0,\n );\n\nconst findLastAssistantTextMessageIndex = (\n messages: UIMessage[],\n endExclusive = messages.length,\n) => {\n for (let index = Math.min(messages.length, endExclusive) - 1; index >= 0; index -= 1) {\n const message = messages[index];\n if (message?.role === \"assistant\" && getAssistantTextParts(message).length > 0) return index;\n }\n return -1;\n};\n\nconst findLastUserMessageIndex = (messages: UIMessage[]) => {\n for (let index = messages.length - 1; index >= 0; index -= 1) {\n if (messages[index]?.role === \"user\") return index;\n }\n return -1;\n};\n\nconst pruneFailedMessagesForDisplay = (messages: UIMessage[]): UIMessage[] => {\n const lastUserIndex = findLastUserMessageIndex(messages);\n const lastCompletedAssistantIndex = findLastAssistantTextMessageIndex(messages);\n\n if (lastUserIndex > lastCompletedAssistantIndex) return messages.slice(0, lastUserIndex + 1);\n return lastCompletedAssistantIndex >= 0 ? messages.slice(0, lastCompletedAssistantIndex + 1) : [];\n};\n\nconst hasCompletedAssistantResponseAfterLastUser = (messages: UIMessage[]) => {\n const lastUserIndex = findLastUserMessageIndex(messages);\n return lastUserIndex >= 0 && findLastAssistantTextMessageIndex(messages) > lastUserIndex;\n};\n\nconst collectChangeSetsAfterLastUser = (messages: UIMessage[]) => {\n const lastUserIndex = findLastUserMessageIndex(messages);\n return lastUserIndex < 0 ? [] : collectSurveyChangeSets(messages.slice(lastUserIndex + 1));\n};\n\nconst getInitialSessionState = (messages: UIMessage[]): SurveyAssistantSessionState => {\n if (messages.length === 0) return \"idle\";\n const authorization = resolveLatestSurveyTurnAuthorization(messages);\n if (authorization.status === \"failed\") return \"failed\";\n if (authorization.status === \"aborted\") return \"aborted\";\n return \"completed\";\n};\n\nexport interface SurveyAssistantSessionOptions {\n api?: string;\n /** Explicit host decision: apply immediately, present for review, or deny mutations. */\n applyPolicy: SurveyAssistantApplyPolicy;\n controller?: SurveyAssistantController | null;\n initialMessages?: UIMessage[];\n modelId?: string;\n onApplyReceipts?: (receipts: ApplyReceipt[]) => void;\n /**\n * Production persistence/audit barrier. The turn remains active until this\n * resolves; rejection leaves the settled baseline unchanged.\n */\n onSettleApply?: (input: {\n changeSets: SurveyChangeSet[];\n receipts: ApplyReceipt[];\n turnFinal: SurveyAssistantTurnFinal;\n }) => void | Promise<void>;\n /**\n * Required for `review`. Resolve true to apply the authorized change sets,\n * or false to leave the editor unchanged.\n */\n onReviewChangeSets?: (\n changeSets: SurveyChangeSet[],\n turnFinal: SurveyAssistantTurnFinal,\n ) => boolean | Promise<boolean>;\n /** Reports when a turn owns the editor state, including submission, streaming, and apply. */\n onTurnActiveChange?: (active: boolean) => void;\n resourceId?: string;\n /** Host survey id sent as untrusted request context for server-side authorization. */\n surveyId?: string;\n threadId?: string;\n}\n\nexport const resolveSurveyAssistantReviewDecision = async ({\n changeSets,\n onReviewChangeSets,\n turnFinal,\n}: {\n changeSets: SurveyChangeSet[];\n onReviewChangeSets?: SurveyAssistantSessionOptions[\"onReviewChangeSets\"];\n turnFinal: SurveyAssistantTurnFinal;\n}) => {\n if (!onReviewChangeSets) {\n throw new Error(\"No survey assistant review adapter is available.\");\n }\n return onReviewChangeSets(changeSets, turnFinal);\n};\n\nexport interface SurveyAssistantSubmitMessage {\n text: string;\n files: FileUIPart[];\n /** Optional model used for this turn instead of the session's selected model. */\n modelId?: string;\n /** Turn-local UI context layered over the controller snapshot for this submission. */\n uiContext?: SurveyAssistantLaunchUIContext;\n}\n\nexport interface SurveyAssistantSession {\n applyResultsByChangeId: Record<string, SurveyApplyResult>;\n authorizationError: string | null;\n dismissError(): void;\n error: Error | undefined;\n isStreaming: boolean;\n latestTurnOutcome: SurveyTurnOutcome | null;\n messages: UIMessage[];\n prependMessages(messages: UIMessage[]): void;\n state: SurveyAssistantSessionState;\n status: ChatStatus;\n stop(): void;\n submit(message: SurveyAssistantSubmitMessage): boolean;\n retry(): void;\n}\n\nexport const useSurveyAssistantSession = ({\n api,\n applyPolicy,\n controller,\n initialMessages = [],\n modelId,\n onApplyReceipts,\n onSettleApply,\n onReviewChangeSets,\n onTurnActiveChange,\n resourceId: controlledResourceId,\n surveyId,\n threadId: controlledThreadId,\n}: SurveyAssistantSessionOptions): SurveyAssistantSession => {\n const [localResourceId] = useState(() => createLocalId(\"survey-assistant-local-user\"));\n const [localThreadId] = useState(() => createLocalId(\"survey-assistant-local-thread\"));\n const resourceId = controlledResourceId ?? localResourceId;\n const threadId = controlledThreadId ?? localThreadId;\n const applyOutcomeScopeKey = `${resourceId}\\u0000${threadId}`;\n const [state, dispatch] = useReducer(\n reduceSurveyAssistantSessionState,\n initialMessages,\n getInitialSessionState,\n );\n const [applyResultsByChangeId, setApplyResultsByChangeId] = useState<\n Record<string, SurveyApplyResult>\n >({});\n const [authorizationError, setAuthorizationError] = useState<string | null>(null);\n const handledTurnIdsRef = useRef<Set<string>>(new Set());\n const localTurnAwaitingApplyRef = useRef(false);\n const localTurnStreamStartedRef = useRef(false);\n const captureSettledVersionRef = useRef(false);\n const lastSubmittedUIContextRef = useRef<SurveyAssistantLaunchUIContext | undefined>(undefined);\n const lastSubmittedModelIdRef = useRef<string | undefined>(undefined);\n const previousApplyOutcomesRef = useRef<Map<string, SurveyAssistantApplyOutcome>>(new Map());\n\n const transport = useMemo(\n () => createSurveyAssistantTransport({ api, resourceId, surveyId, threadId }),\n [api, resourceId, surveyId, threadId],\n );\n const {\n messages,\n setMessages,\n sendMessage,\n status,\n stop: stopChat,\n error,\n clearError,\n regenerate,\n } = useChat({ id: threadId, messages: initialMessages, transport });\n const isStreaming = status === \"submitted\" || status === \"streaming\";\n const isTurnActive = isSurveyAssistantTurnActive({ isStreaming, state });\n const notifyTurnActiveChange = useEffectEvent((active: boolean) => {\n onTurnActiveChange?.(active);\n });\n const prependMessages = useCallback(\n (olderMessages: UIMessage[]) => {\n setMessages((current) => {\n const currentIds = new Set(current.map((message) => message.id));\n return [...olderMessages.filter((message) => !currentIds.has(message.id)), ...current];\n });\n },\n [setMessages],\n );\n const turnAuthorization = useMemo(\n () => resolveLatestSurveyTurnAuthorization(messages),\n [messages],\n );\n const latestTurnOutcome = useMemo(\n () => resolveSurveyTurnOutcome({ applyResultsByChangeId, authorization: turnAuthorization }),\n [applyResultsByChangeId, turnAuthorization],\n );\n const hasUsefulLatestAssistantResponse = useMemo(\n () =>\n hasCompletedAssistantResponseAfterLastUser(messages) ||\n collectChangeSetsAfterLastUser(messages).length > 0,\n [messages],\n );\n\n const reportAuthorizationError = useCallback((message: string) => {\n queueMicrotask(() => {\n setAuthorizationError(message);\n dispatch({ type: \"failed\" });\n });\n }, []);\n\n useEffect(() => {\n if (status === \"submitted\") dispatch({ type: \"submit\" });\n if (status === \"streaming\") dispatch({ type: \"stream-started\" });\n }, [status]);\n\n useEffect(() => {\n notifyTurnActiveChange(isTurnActive);\n\n return () => {\n if (isTurnActive) notifyTurnActiveChange(false);\n };\n }, [isTurnActive]);\n\n useEffect(() => {\n if (\n !captureSettledVersionRef.current ||\n isStreaming ||\n (state !== \"completed\" && state !== \"failed\" && state !== \"aborted\" && state !== \"applied\")\n ) {\n return;\n }\n\n captureSettledVersionRef.current = false;\n const snapshot = controller?.getSnapshot();\n if (snapshot) {\n writeSettledDocumentVersion({ resourceId, snapshot, threadId });\n }\n }, [controller, isStreaming, resourceId, state, threadId]);\n\n useEffect(() => {\n if (isStreaming) {\n localTurnStreamStartedRef.current = true;\n return;\n }\n if (!localTurnAwaitingApplyRef.current) return;\n\n if (turnAuthorization.status === \"pending\") {\n if (!localTurnStreamStartedRef.current) return;\n const timeoutId = window.setTimeout(() => {\n localTurnAwaitingApplyRef.current = false;\n localTurnStreamStartedRef.current = false;\n reportAuthorizationError(\"The assistant response ended without a valid turn final.\");\n }, 100);\n return () => window.clearTimeout(timeoutId);\n }\n\n localTurnAwaitingApplyRef.current = false;\n localTurnStreamStartedRef.current = false;\n if (turnAuthorization.status === \"invalid\") {\n reportAuthorizationError(turnAuthorization.reason);\n return;\n }\n\n const { turnFinal } = turnAuthorization;\n if (handledTurnIdsRef.current.has(turnFinal.turnId)) return;\n handledTurnIdsRef.current.add(turnFinal.turnId);\n const preparedChanges = collectChangeSetsAfterLastUser(messages).filter(\n (change) => change.turnId === turnFinal.turnId,\n );\n\n if (turnAuthorization.status === \"failed\") {\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"not-applied\",\n message:\n \"The previous assistant turn failed before editor authorization. Every request-scoped draft change from that turn was discarded and was not applied.\",\n preparedChanges,\n }),\n );\n dispatch({ type: \"failed\" });\n return;\n }\n if (turnAuthorization.status === \"aborted\") {\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"not-applied\",\n message:\n \"The previous assistant turn was interrupted before editor authorization. Every request-scoped draft change from that turn was discarded and was not applied.\",\n preparedChanges,\n }),\n );\n dispatch({ type: \"aborted\" });\n return;\n }\n if (turnAuthorization.changeSets.length === 0) {\n if ((turnFinal.blockedChangeSetIds?.length ?? 0) > 0) {\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"not-applied\",\n message:\n \"The previous assistant turn ended with unresolved rejected changes. No request-scoped draft change from that turn was authorized or applied.\",\n preparedChanges,\n }),\n );\n }\n dispatch({ type: \"completed\" });\n return;\n }\n if (applyPolicy === \"deny\") {\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"not-applied\",\n message: \"The host apply policy did not authorize editor mutations for this turn.\",\n preparedChanges,\n }),\n );\n dispatch({ type: \"completed\" });\n return;\n }\n dispatch({ type: \"apply-started\" });\n void (async () => {\n if (applyPolicy === \"review\") {\n let approved: boolean;\n try {\n approved = await resolveSurveyAssistantReviewDecision({\n changeSets: turnAuthorization.changeSets,\n onReviewChangeSets,\n turnFinal,\n });\n } catch (error) {\n const message =\n error instanceof Error &&\n error.message === \"No survey assistant review adapter is available.\"\n ? error.message\n : \"The survey assistant review could not be completed.\";\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"not-applied\",\n message,\n preparedChanges,\n }),\n );\n reportAuthorizationError(message);\n return;\n }\n if (!approved) {\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"not-applied\",\n message: \"The proposed editor changes were not approved during review.\",\n preparedChanges,\n }),\n );\n dispatch({ type: \"completed\" });\n return;\n }\n }\n\n if (!controller?.applyAssistantChange && !controller?.applyAssistantChanges) {\n const message = \"No survey editor apply adapter is available.\";\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"apply-failed\",\n message,\n preparedChanges,\n }),\n );\n reportAuthorizationError(message);\n return;\n }\n const beforeSnapshot = controller.getSnapshot();\n if (!beforeSnapshot) {\n const message = \"The editor state was unavailable when applying the assistant change.\";\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"apply-failed\",\n message,\n preparedChanges,\n }),\n );\n reportAuthorizationError(message);\n return;\n }\n\n const result = controller.applyAssistantChanges?.(turnAuthorization.changeSets) ?? {\n results: turnAuthorization.changeSets\n .map((change) => controller.applyAssistantChange?.(change))\n .filter((applyResult): applyResult is SurveyApplyResult => Boolean(applyResult)),\n };\n queueMicrotask(() =>\n setApplyResultsByChangeId((current) => ({\n ...current,\n ...Object.fromEntries(\n result.results.map((applyResult) => [applyResult.changeId, applyResult]),\n ),\n })),\n );\n const receipts = createApplyReceipts({\n beforeSnapshot,\n afterSnapshot: controller.getSnapshot(),\n changeSets: turnAuthorization.changeSets,\n results: result.results,\n turnFinal,\n });\n onApplyReceipts?.(receipts);\n if (!result.results.every((applyResult) => applyResult.status === \"applied\")) {\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"apply-failed\",\n message: \"One or more authorized survey changes could not be applied to the editor.\",\n preparedChanges,\n results: result.results,\n }),\n );\n dispatch({ type: \"completed\" });\n return;\n }\n try {\n await onSettleApply?.({\n changeSets: turnAuthorization.changeSets,\n receipts,\n turnFinal,\n });\n previousApplyOutcomesRef.current.delete(applyOutcomeScopeKey);\n dispatch({ type: \"applied\" });\n } catch {\n const message =\n \"The assistant changes were applied locally but could not be settled by the host.\";\n previousApplyOutcomesRef.current.set(\n applyOutcomeScopeKey,\n createApplyOutcome({\n turnId: turnFinal.turnId,\n status: \"settle-failed\",\n message,\n results: result.results,\n }),\n );\n reportAuthorizationError(message);\n }\n })();\n }, [\n applyPolicy,\n applyOutcomeScopeKey,\n controller,\n isStreaming,\n onApplyReceipts,\n onReviewChangeSets,\n onSettleApply,\n reportAuthorizationError,\n messages,\n turnAuthorization,\n ]);\n\n useEffect(() => {\n if (!error) return;\n localTurnAwaitingApplyRef.current = false;\n localTurnStreamStartedRef.current = false;\n dispatch({ type: \"failed\" });\n if (!hasUsefulLatestAssistantResponse) setMessages(pruneFailedMessagesForDisplay);\n }, [error, hasUsefulLatestAssistantResponse, setMessages]);\n\n const submit = useCallback(\n ({\n files,\n modelId: submittedModelId,\n text: rawText,\n uiContext,\n }: SurveyAssistantSubmitMessage) => {\n const text = rawText.trim();\n if (!text && files.length === 0) return false;\n if (isStreaming || localTurnAwaitingApplyRef.current) return false;\n\n localTurnAwaitingApplyRef.current = true;\n localTurnStreamStartedRef.current = false;\n setAuthorizationError(null);\n if (authorizationError || error) setMessages(pruneFailedMessagesForDisplay);\n clearError();\n dispatch({ type: \"submit\" });\n captureSettledVersionRef.current = true;\n lastSubmittedUIContextRef.current = uiContext;\n lastSubmittedModelIdRef.current = submittedModelId ?? modelId;\n\n const controllerSnapshot = controller?.getSnapshot() ?? null;\n const snapshot = applySurveyAssistantLaunchUIContext(controllerSnapshot, uiContext);\n void sendMessage(files.length > 0 ? (text ? { text, files } : { files }) : { text }, {\n body: {\n snapshot,\n previousSettledVersion: readSettledDocumentVersion({ resourceId, threadId }),\n previousApplyOutcome: previousApplyOutcomesRef.current.get(applyOutcomeScopeKey),\n ...(lastSubmittedModelIdRef.current ? { modelId: lastSubmittedModelIdRef.current } : {}),\n },\n });\n return true;\n },\n [\n authorizationError,\n applyOutcomeScopeKey,\n clearError,\n controller,\n error,\n isStreaming,\n modelId,\n resourceId,\n sendMessage,\n setMessages,\n threadId,\n ],\n );\n\n const stop = useCallback(() => {\n localTurnAwaitingApplyRef.current = false;\n localTurnStreamStartedRef.current = false;\n dispatch({ type: \"aborted\" });\n void stopChat();\n }, [stopChat]);\n\n const retry = useCallback(() => {\n localTurnAwaitingApplyRef.current = true;\n localTurnStreamStartedRef.current = false;\n setAuthorizationError(null);\n clearError();\n dispatch({ type: \"submit\" });\n captureSettledVersionRef.current = true;\n const controllerSnapshot = controller?.getSnapshot() ?? null;\n const uiContext = lastSubmittedUIContextRef.current;\n const snapshot = applySurveyAssistantLaunchUIContext(controllerSnapshot, uiContext);\n void regenerate({\n body: {\n snapshot,\n previousSettledVersion: readSettledDocumentVersion({ resourceId, threadId }),\n previousApplyOutcome: previousApplyOutcomesRef.current.get(applyOutcomeScopeKey),\n ...(lastSubmittedModelIdRef.current ? { modelId: lastSubmittedModelIdRef.current } : {}),\n },\n });\n }, [applyOutcomeScopeKey, clearError, controller, modelId, regenerate, resourceId, threadId]);\n\n const dismissError = useCallback(() => {\n localTurnAwaitingApplyRef.current = false;\n localTurnStreamStartedRef.current = false;\n setMessages(pruneFailedMessagesForDisplay);\n setAuthorizationError(null);\n clearError();\n dispatch({ type: \"reset\", hasTranscript: messages.length > 0 });\n }, [clearError, messages.length, setMessages]);\n\n return {\n applyResultsByChangeId,\n authorizationError,\n dismissError,\n error,\n isStreaming,\n latestTurnOutcome,\n messages,\n prependMessages,\n state,\n status,\n stop,\n submit,\n retry,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as createSurveyAssistantThreadLauncher, a as SurveyAssistantController, c as SurveyAssistantTaskExecutionOptions, d as SurveyAssistantTaskExecutorRequestOptions, f as createSurveyAssistantTaskClient, g as SurveyAssistantThreadLauncher, h as SurveyAssistantThreadLaunch, i as createSurveyAssistantControllerProxy, l as SurveyAssistantTaskExecutor, m as SurveyAssistantLaunchUIContext, n as SurveyAssistantControllerBridge, o as SurveyAssistantTaskClient, p as createSurveyAssistantTaskExecutor, r as createSurveyAssistantControllerBridge, s as SurveyAssistantTaskClientOptions, t as CreateSurveyAssistantControllerProxyOptions, u as SurveyAssistantTaskExecutorCacheContext } from "./controller-proxy-
|
|
1
|
+
import { _ as createSurveyAssistantThreadLauncher, a as SurveyAssistantController, c as SurveyAssistantTaskExecutionOptions, d as SurveyAssistantTaskExecutorRequestOptions, f as createSurveyAssistantTaskClient, g as SurveyAssistantThreadLauncher, h as SurveyAssistantThreadLaunch, i as createSurveyAssistantControllerProxy, l as SurveyAssistantTaskExecutor, m as SurveyAssistantLaunchUIContext, n as SurveyAssistantControllerBridge, o as SurveyAssistantTaskClient, p as createSurveyAssistantTaskExecutor, r as createSurveyAssistantControllerBridge, s as SurveyAssistantTaskClientOptions, t as CreateSurveyAssistantControllerProxyOptions, u as SurveyAssistantTaskExecutorCacheContext } from "./controller-proxy-BdKF2yrq.mjs";
|
|
2
2
|
export { type CreateSurveyAssistantControllerProxyOptions, type SurveyAssistantController, type SurveyAssistantControllerBridge, type SurveyAssistantLaunchUIContext, type SurveyAssistantTaskClient, type SurveyAssistantTaskClientOptions, type SurveyAssistantTaskExecutionOptions, type SurveyAssistantTaskExecutor, type SurveyAssistantTaskExecutorCacheContext, type SurveyAssistantTaskExecutorRequestOptions, type SurveyAssistantThreadLaunch, type SurveyAssistantThreadLauncher, createSurveyAssistantControllerBridge, createSurveyAssistantControllerProxy, createSurveyAssistantTaskClient, createSurveyAssistantTaskExecutor, createSurveyAssistantThreadLauncher };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { i as createSurveyAssistantTaskExecutor, n as createSurveyAssistantControllerProxy, r as createSurveyAssistantTaskClient, s as createSurveyAssistantThreadLauncher, t as createSurveyAssistantControllerBridge } from "./controller-proxy-
|
|
2
|
+
import { i as createSurveyAssistantTaskExecutor, n as createSurveyAssistantControllerProxy, r as createSurveyAssistantTaskClient, s as createSurveyAssistantThreadLauncher, t as createSurveyAssistantControllerBridge } from "./controller-proxy-jWIPOZAv.mjs";
|
|
3
3
|
export { createSurveyAssistantControllerBridge, createSurveyAssistantControllerProxy, createSurveyAssistantTaskClient, createSurveyAssistantTaskExecutor, createSurveyAssistantThreadLauncher };
|
package/dist/react.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as SurveyAssistantSessionEvent, E as reduceSurveyAssistantSessionState, S as unwrapSurveyAssistantToolOutput, T as isSurveyAssistantTurnActive, _ as createApplyReceipts, a as SurveyAssistantModelCatalogClient, b as resolveLatestSurveyTurnAuthorization, c as createSurveyAssistantModelCatalogClient, d as SurveyAssistantThreadClient, f as createSurveyAssistantThreadClient, g as collectSurveyChangeSets, h as SurveyTurnOutcome, i as useSurveyAssistantSession, l as useSurveyAssistantModelCatalog, m as SurveyTurnAuthorization, n as SurveyAssistantSessionOptions, o as SurveyAssistantModelCatalogState, p as createSurveyAssistantTransport, r as SurveyAssistantSubmitMessage, s as UseSurveyAssistantModelCatalogOptions, t as SurveyAssistantSession, u as SurveyAssistantClientError, v as getSurveyDocumentVersionFromSnapshot, w as SurveyAssistantSessionState, x as resolveSurveyTurnOutcome, y as parseSurveyChangeSet } from "./index-
|
|
2
|
-
import { _ as createSurveyAssistantThreadLauncher, a as SurveyAssistantController, c as SurveyAssistantTaskExecutionOptions, d as SurveyAssistantTaskExecutorRequestOptions, f as createSurveyAssistantTaskClient, g as SurveyAssistantThreadLauncher, h as SurveyAssistantThreadLaunch, i as createSurveyAssistantControllerProxy, l as SurveyAssistantTaskExecutor, m as SurveyAssistantLaunchUIContext, n as SurveyAssistantControllerBridge, o as SurveyAssistantTaskClient, p as createSurveyAssistantTaskExecutor, r as createSurveyAssistantControllerBridge, s as SurveyAssistantTaskClientOptions, t as CreateSurveyAssistantControllerProxyOptions, u as SurveyAssistantTaskExecutorCacheContext } from "./controller-proxy-
|
|
1
|
+
import { C as SurveyAssistantSessionEvent, E as reduceSurveyAssistantSessionState, S as unwrapSurveyAssistantToolOutput, T as isSurveyAssistantTurnActive, _ as createApplyReceipts, a as SurveyAssistantModelCatalogClient, b as resolveLatestSurveyTurnAuthorization, c as createSurveyAssistantModelCatalogClient, d as SurveyAssistantThreadClient, f as createSurveyAssistantThreadClient, g as collectSurveyChangeSets, h as SurveyTurnOutcome, i as useSurveyAssistantSession, l as useSurveyAssistantModelCatalog, m as SurveyTurnAuthorization, n as SurveyAssistantSessionOptions, o as SurveyAssistantModelCatalogState, p as createSurveyAssistantTransport, r as SurveyAssistantSubmitMessage, s as UseSurveyAssistantModelCatalogOptions, t as SurveyAssistantSession, u as SurveyAssistantClientError, v as getSurveyDocumentVersionFromSnapshot, w as SurveyAssistantSessionState, x as resolveSurveyTurnOutcome, y as parseSurveyChangeSet } from "./index-dV6df0W3.mjs";
|
|
2
|
+
import { _ as createSurveyAssistantThreadLauncher, a as SurveyAssistantController, c as SurveyAssistantTaskExecutionOptions, d as SurveyAssistantTaskExecutorRequestOptions, f as createSurveyAssistantTaskClient, g as SurveyAssistantThreadLauncher, h as SurveyAssistantThreadLaunch, i as createSurveyAssistantControllerProxy, l as SurveyAssistantTaskExecutor, m as SurveyAssistantLaunchUIContext, n as SurveyAssistantControllerBridge, o as SurveyAssistantTaskClient, p as createSurveyAssistantTaskExecutor, r as createSurveyAssistantControllerBridge, s as SurveyAssistantTaskClientOptions, t as CreateSurveyAssistantControllerProxyOptions, u as SurveyAssistantTaskExecutorCacheContext } from "./controller-proxy-BdKF2yrq.mjs";
|
|
3
3
|
export { CreateSurveyAssistantControllerProxyOptions, SurveyAssistantClientError, SurveyAssistantController, SurveyAssistantControllerBridge, SurveyAssistantLaunchUIContext, SurveyAssistantModelCatalogClient, SurveyAssistantModelCatalogState, SurveyAssistantSession, SurveyAssistantSessionEvent, SurveyAssistantSessionOptions, SurveyAssistantSessionState, SurveyAssistantSubmitMessage, SurveyAssistantTaskClient, SurveyAssistantTaskClientOptions, SurveyAssistantTaskExecutionOptions, SurveyAssistantTaskExecutor, SurveyAssistantTaskExecutorCacheContext, SurveyAssistantTaskExecutorRequestOptions, SurveyAssistantThreadClient, SurveyAssistantThreadLaunch, SurveyAssistantThreadLauncher, SurveyTurnAuthorization, SurveyTurnOutcome, UseSurveyAssistantModelCatalogOptions, collectSurveyChangeSets, createApplyReceipts, createSurveyAssistantControllerBridge, createSurveyAssistantControllerProxy, createSurveyAssistantModelCatalogClient, createSurveyAssistantTaskClient, createSurveyAssistantTaskExecutor, createSurveyAssistantThreadClient, createSurveyAssistantThreadLauncher, createSurveyAssistantTransport, getSurveyDocumentVersionFromSnapshot, isSurveyAssistantTurnActive, parseSurveyChangeSet, reduceSurveyAssistantSessionState, resolveLatestSurveyTurnAuthorization, resolveSurveyTurnOutcome, unwrapSurveyAssistantToolOutput, useSurveyAssistantModelCatalog, useSurveyAssistantSession };
|
package/dist/react.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { a as createSurveyAssistantTransport, c as getSurveyDocumentVersionFromSnapshot, d as resolveSurveyTurnOutcome, f as unwrapSurveyAssistantToolOutput, i as createSurveyAssistantThreadClient, l as parseSurveyChangeSet, m as reduceSurveyAssistantSessionState, n as createSurveyAssistantModelCatalogClient, o as collectSurveyChangeSets, p as isSurveyAssistantTurnActive, r as useSurveyAssistantModelCatalog, s as createApplyReceipts, t as useSurveyAssistantSession, u as resolveLatestSurveyTurnAuthorization } from "./react-
|
|
3
|
-
import { c as SurveyAssistantClientError, i as createSurveyAssistantTaskExecutor, n as createSurveyAssistantControllerProxy, r as createSurveyAssistantTaskClient, s as createSurveyAssistantThreadLauncher, t as createSurveyAssistantControllerBridge } from "./controller-proxy-
|
|
2
|
+
import { a as createSurveyAssistantTransport, c as getSurveyDocumentVersionFromSnapshot, d as resolveSurveyTurnOutcome, f as unwrapSurveyAssistantToolOutput, i as createSurveyAssistantThreadClient, l as parseSurveyChangeSet, m as reduceSurveyAssistantSessionState, n as createSurveyAssistantModelCatalogClient, o as collectSurveyChangeSets, p as isSurveyAssistantTurnActive, r as useSurveyAssistantModelCatalog, s as createApplyReceipts, t as useSurveyAssistantSession, u as resolveLatestSurveyTurnAuthorization } from "./react-CY6N7lVi.mjs";
|
|
3
|
+
import { c as SurveyAssistantClientError, i as createSurveyAssistantTaskExecutor, n as createSurveyAssistantControllerProxy, r as createSurveyAssistantTaskClient, s as createSurveyAssistantThreadLauncher, t as createSurveyAssistantControllerBridge } from "./controller-proxy-jWIPOZAv.mjs";
|
|
4
4
|
export { SurveyAssistantClientError, collectSurveyChangeSets, createApplyReceipts, createSurveyAssistantControllerBridge, createSurveyAssistantControllerProxy, createSurveyAssistantModelCatalogClient, createSurveyAssistantTaskClient, createSurveyAssistantTaskExecutor, createSurveyAssistantThreadClient, createSurveyAssistantThreadLauncher, createSurveyAssistantTransport, getSurveyDocumentVersionFromSnapshot, isSurveyAssistantTurnActive, parseSurveyChangeSet, reduceSurveyAssistantSessionState, resolveLatestSurveyTurnAuthorization, resolveSurveyTurnOutcome, unwrapSurveyAssistantToolOutput, useSurveyAssistantModelCatalog, useSurveyAssistantSession };
|