@case-framework/survey-assistant 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/attachments-B0hg3vpT.mjs +11 -0
  2. package/dist/attachments-B0hg3vpT.mjs.map +1 -0
  3. package/dist/authoring-references-CW38pYzK.mjs +115 -0
  4. package/dist/authoring-references-CW38pYzK.mjs.map +1 -0
  5. package/dist/{capabilities-CnsVuJ1k.d.mts → capabilities-DVTfogjv.d.mts} +1 -1
  6. package/dist/{capabilities-CnsVuJ1k.d.mts.map → capabilities-DVTfogjv.d.mts.map} +1 -1
  7. package/dist/capabilities-default.d.mts +1 -1
  8. package/dist/capabilities-default.d.mts.map +1 -1
  9. package/dist/capabilities-default.mjs +39 -9
  10. package/dist/capabilities-default.mjs.map +1 -1
  11. package/dist/{constants-CFUWrRtl.mjs → constants-0UHGFcRJ.mjs} +1 -1
  12. package/dist/{constants-CFUWrRtl.mjs.map → constants-0UHGFcRJ.mjs.map} +1 -1
  13. package/dist/{constants-DbrJxxOh.d.mts → constants-BMGTgfjv.d.mts} +4 -4
  14. package/dist/{constants-DbrJxxOh.d.mts.map → constants-BMGTgfjv.d.mts.map} +1 -1
  15. package/dist/{controller-proxy-jWIPOZAv.mjs → controller-proxy-DMTqer6T.mjs} +1 -1
  16. package/dist/{controller-proxy-jWIPOZAv.mjs.map → controller-proxy-DMTqer6T.mjs.map} +1 -1
  17. package/dist/{controller-proxy-BdKF2yrq.d.mts → controller-proxy-mRvez2qw.d.mts} +3 -3
  18. package/dist/{controller-proxy-BdKF2yrq.d.mts.map → controller-proxy-mRvez2qw.d.mts.map} +1 -1
  19. package/dist/{digest-Dyjch_sC.d.mts → digest-SJmoYVaK.d.mts} +2 -2
  20. package/dist/{digest-Dyjch_sC.d.mts.map → digest-SJmoYVaK.d.mts.map} +1 -1
  21. package/dist/digest.d.mts +1 -1
  22. package/dist/{engine-DcSdLRle.mjs → engine-CQwOAcwK.mjs} +80 -24
  23. package/dist/engine-CQwOAcwK.mjs.map +1 -0
  24. package/dist/engine.d.mts +3 -3
  25. package/dist/engine.mjs +3 -3
  26. package/dist/{fair-guidance-CEdJYccK.mjs → fair-guidance-CRYCRxQm.mjs} +1 -1
  27. package/dist/{fair-guidance-CEdJYccK.mjs.map → fair-guidance-CRYCRxQm.mjs.map} +1 -1
  28. package/dist/{form-authoring-BQh40yDb.mjs → form-authoring-kQDgC5oz.mjs} +1 -1
  29. package/dist/{form-authoring-BQh40yDb.mjs.map → form-authoring-kQDgC5oz.mjs.map} +1 -1
  30. package/dist/{index-DhNQKOwr.d.mts → index-B0lxsAzx.d.mts} +2 -2
  31. package/dist/{index-DhNQKOwr.d.mts.map → index-B0lxsAzx.d.mts.map} +1 -1
  32. package/dist/{index-dV6df0W3.d.mts → index-BS-Xjk1h.d.mts} +4 -4
  33. package/dist/{index-dV6df0W3.d.mts.map → index-BS-Xjk1h.d.mts.map} +1 -1
  34. package/dist/{index-Da_Hb9-1.d.mts → index-D6nqkz0O.d.mts} +29 -8
  35. package/dist/{index-Da_Hb9-1.d.mts.map → index-D6nqkz0O.d.mts.map} +1 -1
  36. package/dist/{index-BApnIiCI.d.mts → index-DvTqML-0.d.mts} +7 -2
  37. package/dist/index-DvTqML-0.d.mts.map +1 -0
  38. package/dist/{lifecycle-DWv5CiSu.d.mts → lifecycle-BmGAIUlv.d.mts} +2 -2
  39. package/dist/{lifecycle-DWv5CiSu.d.mts.map → lifecycle-BmGAIUlv.d.mts.map} +1 -1
  40. package/dist/{memory-thread-repository-CvYZwni6.mjs → memory-thread-repository-CjFGVNZh.mjs} +6 -6
  41. package/dist/{memory-thread-repository-CvYZwni6.mjs.map → memory-thread-repository-CjFGVNZh.mjs.map} +1 -1
  42. package/dist/protocol.d.mts +4 -4
  43. package/dist/protocol.mjs +2 -1
  44. package/dist/{react-CY6N7lVi.mjs → react-Dqlmasrs.mjs} +2 -2
  45. package/dist/{react-CY6N7lVi.mjs.map → react-Dqlmasrs.mjs.map} +1 -1
  46. package/dist/react-integration.d.mts +1 -1
  47. package/dist/react-integration.mjs +1 -1
  48. package/dist/react.d.mts +2 -2
  49. package/dist/react.mjs +2 -2
  50. package/dist/{request-context-D1sC54ZA.mjs → request-context-BjTHNcDd.mjs} +2 -2
  51. package/dist/{request-context-D1sC54ZA.mjs.map → request-context-BjTHNcDd.mjs.map} +1 -1
  52. package/dist/{request-guardrails-h4t6u8mP.mjs → request-guardrails-TmgQtqp4.mjs} +5 -12
  53. package/dist/request-guardrails-TmgQtqp4.mjs.map +1 -0
  54. package/dist/server-agent.d.mts +3 -3
  55. package/dist/server-agent.d.mts.map +1 -1
  56. package/dist/server-agent.mjs +7 -5
  57. package/dist/server-agent.mjs.map +1 -1
  58. package/dist/server-runtime.d.mts +14 -14
  59. package/dist/server-runtime.mjs +4 -4
  60. package/dist/server-tasks.d.mts +1 -1
  61. package/dist/server-tasks.mjs +4 -4
  62. package/dist/server-tools.d.mts +1 -1
  63. package/dist/server-tools.mjs +1 -1
  64. package/dist/server.d.mts +7 -7
  65. package/dist/server.mjs +6 -6
  66. package/dist/storage-postgres.d.mts +1 -1
  67. package/dist/storage-postgres.mjs +1 -1
  68. package/dist/{tasks-CCtxjhwh.d.mts → tasks-DxzD25Zc.d.mts} +16 -4
  69. package/dist/tasks-DxzD25Zc.d.mts.map +1 -0
  70. package/dist/{thread-documents-Dvo6XS7o.d.mts → thread-documents-rmd6nyX9.d.mts} +1 -1
  71. package/dist/{thread-documents-Dvo6XS7o.d.mts.map → thread-documents-rmd6nyX9.d.mts.map} +1 -1
  72. package/dist/{thread-handlers-Bt9cDo-F.d.mts → thread-handlers-AbQbt4sX.d.mts} +5 -5
  73. package/dist/{thread-handlers-Bt9cDo-F.d.mts.map → thread-handlers-AbQbt4sX.d.mts.map} +1 -1
  74. package/dist/{tools-3tq-XqI0.mjs → tools-CFh35R4d.mjs} +7 -5
  75. package/dist/tools-CFh35R4d.mjs.map +1 -0
  76. package/dist/ui.css +1 -1
  77. package/dist/ui.d.mts +3 -3
  78. package/dist/ui.d.mts.map +1 -1
  79. package/dist/ui.mjs +128 -68
  80. package/dist/ui.mjs.map +1 -1
  81. package/docs/integration.md +3 -3
  82. package/package.json +2 -2
  83. package/dist/authoring-references-yyYC4Ydi.mjs +0 -98
  84. package/dist/authoring-references-yyYC4Ydi.mjs.map +0 -1
  85. package/dist/engine-DcSdLRle.mjs.map +0 -1
  86. package/dist/index-BApnIiCI.d.mts.map +0 -1
  87. package/dist/request-guardrails-h4t6u8mP.mjs.map +0 -1
  88. package/dist/tasks-CCtxjhwh.d.mts.map +0 -1
  89. package/dist/tools-3tq-XqI0.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { I as rawSurveyDocumentSchema, f as surveyChangeSetSchema, l as surveyAssistantTurnFinalSchema } from "./protocol-DJUP4gc0.mjs";
2
- import { a as normalizeFormAuthoringConfig, c as assertSurveyAssistantCapabilities, i as isValidSimpleFormConfig, o as transitionFormAuthoringMode, r as isCompatibleSimpleFieldUpsert, t as getFormAuthoringMode } from "./form-authoring-BQh40yDb.mjs";
2
+ import { a as normalizeFormAuthoringConfig, c as assertSurveyAssistantCapabilities, i as isValidSimpleFormConfig, o as transitionFormAuthoringMode, r as isCompatibleSimpleFieldUpsert, t as getFormAuthoringMode } from "./form-authoring-kQDgC5oz.mjs";
3
3
  import { z } from "zod";
4
4
  import { ContentType, Expression, ExpressionType, FunctionExpressionNames, JsonPatchError, ReservedSurveyItemTypes, SurveyItemTranslations, SurveyTranslations, ValueReference, ValueReferenceMethod, ValueType, analyzeSurveyExpressionReferences, applyJsonPatch, findIntroducedExpressionReferenceDiagnostics, generateId, getContentPlainText, isContentEmpty, parseJsonPointer, structuredCloneMethod } from "@case-framework/survey-core";
5
5
  //#region src/engine/context.ts
@@ -2398,10 +2398,20 @@ const validateSurveyTreeStructure = (survey, operationId, availableItemTypes) =>
2398
2398
  for (const item of itemsById.values()) {
2399
2399
  const childRefs = (isRecord$2(item.config) ? item.config : void 0)?.items;
2400
2400
  if (childRefs === void 0) continue;
2401
- if (item.itemType !== ReservedSurveyItemTypes.Group || !Array.isArray(childRefs)) {
2401
+ if (!Array.isArray(childRefs)) {
2402
2402
  issues.push(createStructureIssue({
2403
2403
  code: "invalid-group-items",
2404
- message: `Item "${item.id}" has an items array but is not a valid group item.`,
2404
+ message: `Item "${item.id}" has an invalid group items value.`,
2405
+ operationId,
2406
+ itemId: item.id
2407
+ }));
2408
+ continue;
2409
+ }
2410
+ if (item.itemType !== ReservedSurveyItemTypes.Group) {
2411
+ if (childRefs.length === 0) continue;
2412
+ issues.push(createStructureIssue({
2413
+ code: "invalid-group-items",
2414
+ message: `Item "${item.id}" has child references but is not a valid group item.`,
2405
2415
  operationId,
2406
2416
  itemId: item.id
2407
2417
  }));
@@ -2510,7 +2520,7 @@ const collectIntroducedExpressionIntegrityIssues = ({ after, before, operationId
2510
2520
  operationId,
2511
2521
  itemId: diagnostic.ownerItemId
2512
2522
  }));
2513
- const validateSurveyJsonPatchOperation = ({ operation, snapshot }) => {
2523
+ const validateSurveyJsonPatchOperation = ({ allowExpressionJsonPatches, operation, snapshot }) => {
2514
2524
  const operationId = getOperationId(operation);
2515
2525
  const issues = [];
2516
2526
  const warnings = [];
@@ -2525,6 +2535,19 @@ const validateSurveyJsonPatchOperation = ({ operation, snapshot }) => {
2525
2535
  operationIndex: 0,
2526
2536
  operationId
2527
2537
  }));
2538
+ const segments = parseJsonPointer(path);
2539
+ const expressionOwnedPath = segments[0] === "templateValues" || segments[0] === "surveyItems" && [
2540
+ "displayConditions",
2541
+ "disabledConditions",
2542
+ "validations",
2543
+ "prefills"
2544
+ ].includes(segments[2] ?? "");
2545
+ if (!allowExpressionJsonPatches && expressionOwnedPath) issues.push(createIssue({
2546
+ code: "expression-patch-requires-specialized-tool",
2547
+ message: "Use survey_expression for display conditions, disabled conditions, expression validations, prefills, and template values. A raw survey patch cannot modify an expression-owned location.",
2548
+ operationIndex: 0,
2549
+ operationId
2550
+ }));
2528
2551
  } catch (error) {
2529
2552
  issues.push(createIssue({
2530
2553
  code: "invalid-json-pointer",
@@ -3456,7 +3479,7 @@ const getDeletedAncestor = (itemId, parentByChildId, deletedItemIds) => {
3456
3479
  };
3457
3480
  const buildSurveyDocumentVersion = (snapshot) => ({ ...snapshot.version });
3458
3481
  const resolveEngineContext = (snapshot) => "document" in snapshot ? snapshot : createSurveyAssistantEngineContext(snapshot);
3459
- const validateSurveyOperations = ({ maxOperations = 200, operations, snapshot: snapshotInput }) => {
3482
+ const validateSurveyOperations = ({ allowExpressionJsonPatches = false, maxOperations = 200, operations, snapshot: snapshotInput }) => {
3460
3483
  if (!snapshotInput) return createEmptyValidationResult(createIssue({
3461
3484
  code: "missing-snapshot",
3462
3485
  message: "No live editor snapshot was provided for this assistant turn."
@@ -3479,6 +3502,7 @@ const validateSurveyOperations = ({ maxOperations = 200, operations, snapshot: s
3479
3502
  operationId: surveyJsonPatchOperations[0]?.id
3480
3503
  }), operations);
3481
3504
  return validateSurveyJsonPatchOperation({
3505
+ allowExpressionJsonPatches,
3482
3506
  operation: surveyJsonPatchOperations[0],
3483
3507
  snapshot
3484
3508
  });
@@ -4675,7 +4699,7 @@ const validateSurveyOperations = ({ maxOperations = 200, operations, snapshot: s
4675
4699
  }
4676
4700
  });
4677
4701
  if (issues.length === 0) try {
4678
- const prospectiveSurvey = applyValidatedSurveyOperationsToDraft({
4702
+ const prospectiveSurvey = executeSurveyOperationsOnRawSurvey({
4679
4703
  operations: normalizedOperations,
4680
4704
  survey: snapshot.survey
4681
4705
  });
@@ -4719,11 +4743,12 @@ const removeDraftTranslationPrefix = ({ itemId, prefix, survey }) => {
4719
4743
  survey.translations = surveyTranslations.serialize();
4720
4744
  };
4721
4745
  /**
4722
- * Applies already-normalized, validated operations to a request-local raw
4723
- * survey. This is simulation only; the editor remains the final mutation and
4724
- * undo/redo owner.
4746
+ * Canonical pure executor for already-normalized, validated survey operation
4747
+ * semantics. Raw-draft simulation uses the returned survey directly; editor
4748
+ * adapters use it to decide domain results before recording them through the
4749
+ * editor's normal mutation and history APIs.
4725
4750
  */
4726
- const applyValidatedSurveyOperationsToDraft = ({ operations, survey: inputSurvey }) => {
4751
+ const executeSurveyOperationsOnRawSurvey = ({ operations, survey: inputSurvey }) => {
4727
4752
  let survey = structuredCloneMethod(inputSurvey);
4728
4753
  const getItem = (itemId) => {
4729
4754
  const item = survey.surveyItems.find((candidate) => candidate.id === itemId);
@@ -4957,12 +4982,21 @@ const applyValidatedSurveyOperationsToDraft = ({ operations, survey: inputSurvey
4957
4982
  translations: operation.translations
4958
4983
  });
4959
4984
  } else if (operation.kind === "remove-form-field-group") {
4985
+ const removedGroup = groups.find((group) => group.id === operation.groupId);
4960
4986
  groups = groups.filter((group) => group.id !== operation.groupId);
4961
4987
  removeDraftTranslationPrefix({
4962
4988
  itemId: item.id,
4963
4989
  prefix: `${operation.target.optionId ? `embeddedForms.${operation.target.optionId}.` : ""}fieldGroups.${operation.groupId}`,
4964
4990
  survey
4965
4991
  });
4992
+ for (const field of removedGroup?.fields ?? []) {
4993
+ if (typeof field.id !== "string") continue;
4994
+ removeDraftTranslationPrefix({
4995
+ itemId: item.id,
4996
+ prefix: `${operation.target.optionId ? `embeddedForms.${operation.target.optionId}.` : ""}fields.${field.id}`,
4997
+ survey
4998
+ });
4999
+ }
4966
5000
  } else if (operation.kind === "reorder-form-field-groups") {
4967
5001
  const byId = new Map(groups.map((group) => [group.id, group]));
4968
5002
  groups = operation.groupIds.map((groupId) => byId.get(groupId));
@@ -5008,13 +5042,17 @@ const applyValidatedSurveyOperationsToDraft = ({ operations, survey: inputSurvey
5008
5042
  case "remove-item": {
5009
5043
  const removeIds = collectDescendantIds(operation.itemId, new Map(survey.surveyItems.map((item) => [item.id, item])));
5010
5044
  removeIds.add(operation.itemId);
5011
- survey.surveyItems = survey.surveyItems.filter((item) => !removeIds.has(item.id)).map((item) => ({
5012
- ...item,
5013
- config: isRecord$2(item.config) ? {
5014
- ...item.config,
5015
- items: getGroupChildren(item).filter((id) => !removeIds.has(id))
5016
- } : item.config
5017
- }));
5045
+ survey.surveyItems = survey.surveyItems.filter((item) => !removeIds.has(item.id)).map((item) => {
5046
+ if (!isRecord$2(item.config) || !Array.isArray(item.config.items)) return item;
5047
+ const items = item.config.items.filter((itemId) => typeof itemId === "string" && !removeIds.has(itemId));
5048
+ return items.length === item.config.items.length ? item : {
5049
+ ...item,
5050
+ config: {
5051
+ ...item.config,
5052
+ items
5053
+ }
5054
+ };
5055
+ });
5018
5056
  const translations = new SurveyTranslations(survey.translations);
5019
5057
  for (const itemId of removeIds) translations.setItemTranslations(itemId, void 0);
5020
5058
  survey.translations = translations.serialize();
@@ -5121,8 +5159,11 @@ const applyValidatedSurveyOperationsToDraft = ({ operations, survey: inputSurvey
5121
5159
  }
5122
5160
  return rawSurveyDocumentSchema.parse(survey);
5123
5161
  };
5124
- const createSurveyChangeSet = ({ maxOperations, operations, snapshot, summary, turnId }) => {
5162
+ /** @deprecated Prefer `executeSurveyOperationsOnRawSurvey` for new integrations. */
5163
+ const applyValidatedSurveyOperationsToDraft = executeSurveyOperationsOnRawSurvey;
5164
+ const createSurveyChangeSet = ({ allowExpressionJsonPatches, maxOperations, operations, snapshot, summary, turnId }) => {
5125
5165
  const validation = validateSurveyOperations({
5166
+ allowExpressionJsonPatches,
5126
5167
  maxOperations,
5127
5168
  operations,
5128
5169
  snapshot
@@ -5545,6 +5586,16 @@ const operationTargets = (operation) => {
5545
5586
  }
5546
5587
  };
5547
5588
  const collectOperationTargets = (operations) => new Set(operations.flatMap(operationTargets));
5589
+ const mutationRecoveryRouteByIssueCode = { "expression-patch-requires-specialized-tool": "expression" };
5590
+ const mutationRouteTarget = (route) => `mutation-route:${route}`;
5591
+ const collectExclusiveMutationRecoveryTargets = (changeSet) => {
5592
+ const errorIssues = changeSet.validation.issues.filter((issue) => issue.severity === "error");
5593
+ if (errorIssues.length === 0) return void 0;
5594
+ const routes = errorIssues.map((issue) => mutationRecoveryRouteByIssueCode[issue.code]);
5595
+ const knownRoutes = routes.filter((route) => route !== void 0);
5596
+ if (knownRoutes.length !== routes.length) return void 0;
5597
+ return new Set(knownRoutes.map(mutationRouteTarget));
5598
+ };
5548
5599
  const MAX_POST_CHANGE_TARGETS = 16;
5549
5600
  const MAX_POST_CHANGE_ITEMS = 6;
5550
5601
  const MAX_POST_CHANGE_TRANSLATIONS = 12;
@@ -5671,18 +5722,23 @@ var TurnSurveyDraft = class {
5671
5722
  if (this.#context) throw new Error("The survey turn draft was initialized more than once.");
5672
5723
  this.#context = context;
5673
5724
  }
5674
- stage({ addressedTargets = [], operations, snapshot, summary }) {
5725
+ stage({ addressedTargets = [], allowExpressionJsonPatches = false, handledMutationRoutes = [], operations, snapshot, summary }) {
5675
5726
  this.#assertOpen();
5676
5727
  if (!this.#context && snapshot && "document" in snapshot && "trustedCapabilities" in snapshot) this.#context = snapshot;
5677
5728
  const currentContext = this.#context ?? snapshot;
5678
- const targets = new Set([...collectOperationTargets(operations), ...addressedTargets]);
5729
+ const targets = new Set([
5730
+ ...collectOperationTargets(operations),
5731
+ ...addressedTargets,
5732
+ ...handledMutationRoutes.map(mutationRouteTarget)
5733
+ ]);
5679
5734
  const delta = createSurveyChangeSet({
5735
+ allowExpressionJsonPatches,
5680
5736
  operations,
5681
5737
  snapshot: currentContext,
5682
5738
  summary,
5683
5739
  turnId: this.turnId
5684
5740
  });
5685
- if (delta.status !== "validated" || !delta.validation.valid) return this.reject(delta, targets);
5741
+ if (delta.status !== "validated" || !delta.validation.valid) return this.reject(delta, collectExclusiveMutationRecoveryTargets(delta) ?? targets);
5686
5742
  const cumulativeOperations = [...this.#draftOperations, ...delta.operations];
5687
5743
  if (cumulativeOperations.length > 1e3) return this.reject(createSurveyChangeSet({
5688
5744
  maxOperations: MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT,
@@ -5693,7 +5749,7 @@ var TurnSurveyDraft = class {
5693
5749
  }), targets);
5694
5750
  const beforeContext = this.#context;
5695
5751
  if (this.#context) {
5696
- const survey = applyValidatedSurveyOperationsToDraft({
5752
+ const survey = executeSurveyOperationsOnRawSurvey({
5697
5753
  operations: delta.operations,
5698
5754
  survey: this.#context.survey
5699
5755
  });
@@ -6024,6 +6080,6 @@ var SurveyAssistantTaskResultCache = class {
6024
6080
  }
6025
6081
  };
6026
6082
  //#endregion
6027
- export { validateExpression as $, getRawSurvey$1 as A, resolveItemSummary as B, clampLimit as C, formFieldGroupLayoutSchema as D, formFieldGroupDetailsSchema as E, mapKeyIndexById as F, summarizeKeyIndexEntry as G, summarizeFocusItemNode as H, mapOutlineById as I, translationEntrySchema as J, summarizeOutlineNode as K, mapRawItemsById as L, itemConfigDetailsSchema as M, itemMatchesQuery as N, formSelectOptionDetailsSchema as O, itemSummarySchema as P, inferExpressionReturnType as Q, normalizeText as R, choiceOptionDetailsSchema as S, formFieldDetailsSchema as T, summarizeItemById as U, sliceWithCursor as V, summarizeKeyIndexEntries as W, analyzeSurveyAssistantExpressionReferences as X, unique as Y, deriveSurveyExpressionResponseSlots as Z, buildConfigSearchText as _, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL as a, buildItemTranslationEntries as b, buildSurveyDocumentVersion as c, normalizeSurveyChangeOperations as d, createSurveyAssistantEngineContext as et, buildExpressionMutationPatches as f, MAX_LIMIT as g, DEFAULT_LIMIT as h, auditSurvey as i, getRawSurveyItems as j, getKeyIndexEntries as k, createSurveyChangeSet as l, expressionSchema as m, buildSurveyAssistantTaskContext as n, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT as o, expressionMutationSchema as p, summarizeRawItem as q, TurnSurveyDraft as r, applyValidatedSurveyOperationsToDraft as s, SurveyAssistantTaskResultCache as t, deriveResponseSlotTypes as tt, validateSurveyOperations as u, buildEmbeddedFormDetails as v, findDirectChildrenByFullKey as w, buildSurveyTranslations as x, buildItemConfigDetails as y, parseCursor as z };
6083
+ export { inferExpressionReturnType as $, getKeyIndexEntries as A, parseCursor as B, choiceOptionDetailsSchema as C, formFieldGroupDetailsSchema as D, formFieldDetailsSchema as E, itemSummarySchema as F, summarizeKeyIndexEntries as G, sliceWithCursor as H, mapKeyIndexById as I, summarizeRawItem as J, summarizeKeyIndexEntry as K, mapOutlineById as L, getRawSurveyItems as M, itemConfigDetailsSchema as N, formFieldGroupLayoutSchema as O, itemMatchesQuery as P, deriveSurveyExpressionResponseSlots as Q, mapRawItemsById as R, buildSurveyTranslations as S, findDirectChildrenByFullKey as T, summarizeFocusItemNode as U, resolveItemSummary as V, summarizeItemById as W, unique as X, translationEntrySchema as Y, analyzeSurveyAssistantExpressionReferences as Z, MAX_LIMIT as _, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL as a, buildItemConfigDetails as b, buildSurveyDocumentVersion as c, validateSurveyOperations as d, validateExpression as et, normalizeSurveyChangeOperations as f, DEFAULT_LIMIT as g, expressionSchema as h, auditSurvey as i, getRawSurvey$1 as j, formSelectOptionDetailsSchema as k, createSurveyChangeSet as l, expressionMutationSchema as m, buildSurveyAssistantTaskContext as n, deriveResponseSlotTypes as nt, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT as o, buildExpressionMutationPatches as p, summarizeOutlineNode as q, TurnSurveyDraft as r, applyValidatedSurveyOperationsToDraft as s, SurveyAssistantTaskResultCache as t, createSurveyAssistantEngineContext as tt, executeSurveyOperationsOnRawSurvey as u, buildConfigSearchText as v, clampLimit as w, buildItemTranslationEntries as x, buildEmbeddedFormDetails as y, normalizeText as z };
6028
6084
 
6029
- //# sourceMappingURL=engine-DcSdLRle.mjs.map
6085
+ //# sourceMappingURL=engine-CQwOAcwK.mjs.map