@case-framework/survey-assistant 0.2.2 → 0.2.3

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 (102) hide show
  1. package/dist/{authoring-references-DYuOAdVx.mjs → authoring-references-ChDTVnms.mjs} +8 -2
  2. package/dist/authoring-references-ChDTVnms.mjs.map +1 -0
  3. package/dist/{capabilities-DlC1l6qy.d.mts → capabilities-CnsVuJ1k.d.mts} +12 -4
  4. package/dist/capabilities-CnsVuJ1k.d.mts.map +1 -0
  5. package/dist/capabilities-default.d.mts +1 -1
  6. package/dist/capabilities-default.d.mts.map +1 -1
  7. package/dist/capabilities-default.mjs +38 -4
  8. package/dist/capabilities-default.mjs.map +1 -1
  9. package/dist/{constants-D-5m_KGB.d.mts → constants-BK1-g6pR.d.mts} +12 -7
  10. package/dist/constants-BK1-g6pR.d.mts.map +1 -0
  11. package/dist/{controller-proxy-Hkuub9dt.d.mts → controller-proxy-CIDRd8Wu.d.mts} +2 -2
  12. package/dist/{controller-proxy-Hkuub9dt.d.mts.map → controller-proxy-CIDRd8Wu.d.mts.map} +1 -1
  13. package/dist/{controller-proxy-0WJZUZYx.mjs → controller-proxy-DY36XFV3.mjs} +2 -2
  14. package/dist/{controller-proxy-0WJZUZYx.mjs.map → controller-proxy-DY36XFV3.mjs.map} +1 -1
  15. package/dist/{digest-BvXpeWcR.d.mts → digest-Dyjch_sC.d.mts} +2 -2
  16. package/dist/{digest-BvXpeWcR.d.mts.map → digest-Dyjch_sC.d.mts.map} +1 -1
  17. package/dist/digest.d.mts +1 -1
  18. package/dist/{engine-0AJrv0hI.mjs → engine-CWTuN3o2.mjs} +866 -663
  19. package/dist/engine-CWTuN3o2.mjs.map +1 -0
  20. package/dist/engine.d.mts +3 -3
  21. package/dist/engine.mjs +3 -3
  22. package/dist/fair-guidance-CEdJYccK.mjs +21 -0
  23. package/dist/fair-guidance-CEdJYccK.mjs.map +1 -0
  24. package/dist/form-authoring-DCd9XfXf.mjs +155 -0
  25. package/dist/form-authoring-DCd9XfXf.mjs.map +1 -0
  26. package/dist/{index-BcyfBeDj.d.mts → index-Bp5W_oPa.d.mts} +25 -5
  27. package/dist/index-Bp5W_oPa.d.mts.map +1 -0
  28. package/dist/{index-JXH-t2EJ.d.mts → index-CPOQgkTN.d.mts} +67 -6
  29. package/dist/index-CPOQgkTN.d.mts.map +1 -0
  30. package/dist/{index-MEOL9_Gr.d.mts → index-EDL1V168.d.mts} +98 -4
  31. package/dist/{index-MEOL9_Gr.d.mts.map → index-EDL1V168.d.mts.map} +1 -1
  32. package/dist/{index-CneD8ibB.d.mts → index-SPHf3OoJ.d.mts} +9 -3
  33. package/dist/index-SPHf3OoJ.d.mts.map +1 -0
  34. package/dist/{memory-thread-repository-1ocPOda8.mjs → memory-thread-repository-acbz6HZJ.mjs} +181 -26
  35. package/dist/memory-thread-repository-acbz6HZJ.mjs.map +1 -0
  36. package/dist/{protocol-DpCYmCjr.mjs → protocol-DATvkr1S.mjs} +125 -6
  37. package/dist/protocol-DATvkr1S.mjs.map +1 -0
  38. package/dist/protocol.d.mts +3 -3
  39. package/dist/protocol.mjs +2 -2
  40. package/dist/{react-DXK5zWNo.mjs → react-3kSE6WtS.mjs} +127 -9
  41. package/dist/react-3kSE6WtS.mjs.map +1 -0
  42. package/dist/react-integration.d.mts +1 -1
  43. package/dist/react-integration.mjs +1 -1
  44. package/dist/react.d.mts +2 -2
  45. package/dist/react.mjs +2 -2
  46. package/dist/references/assistant-operations.md +13 -18
  47. package/dist/references/embedded-forms.md +41 -2
  48. package/dist/references/expressions.md +17 -9
  49. package/dist/references/fair-by-design.md +80 -0
  50. package/dist/references/item-types.md +19 -3
  51. package/dist/references/localization.md +7 -4
  52. package/dist/references/source-material-surveys.md +6 -4
  53. package/dist/{request-context-BBzU3VdG.mjs → request-context-BEjnaaFr.mjs} +10 -5
  54. package/dist/request-context-BEjnaaFr.mjs.map +1 -0
  55. package/dist/server-agent.d.mts +26 -6
  56. package/dist/server-agent.d.mts.map +1 -1
  57. package/dist/server-agent.mjs +70 -13
  58. package/dist/server-agent.mjs.map +1 -1
  59. package/dist/server-runtime.d.mts +22 -11
  60. package/dist/server-runtime.d.mts.map +1 -1
  61. package/dist/server-runtime.mjs +47 -19
  62. package/dist/server-runtime.mjs.map +1 -1
  63. package/dist/server-tasks.d.mts +1 -1
  64. package/dist/server-tasks.mjs +4 -3
  65. package/dist/server-tasks.mjs.map +1 -1
  66. package/dist/server-tools.d.mts +1 -1
  67. package/dist/server-tools.mjs +1 -1
  68. package/dist/server.d.mts +16 -7
  69. package/dist/server.d.mts.map +1 -1
  70. package/dist/server.mjs +4 -4
  71. package/dist/storage-postgres.d.mts +1 -1
  72. package/dist/{tasks-DcfQNJwO.d.mts → tasks-DIZgr4nD.d.mts} +8 -4
  73. package/dist/tasks-DIZgr4nD.d.mts.map +1 -0
  74. package/dist/{thread-documents-BlxNjc7S.d.mts → thread-documents-C3kf0Vds.d.mts} +1 -1
  75. package/dist/{thread-documents-BlxNjc7S.d.mts.map → thread-documents-C3kf0Vds.d.mts.map} +1 -1
  76. package/dist/{thread-handlers-uddXwQjp.d.mts → thread-handlers-DZ1WsorO.d.mts} +9 -4
  77. package/dist/thread-handlers-DZ1WsorO.d.mts.map +1 -0
  78. package/dist/{tools-wgLen05n.mjs → tools-GDd5_GUh.mjs} +403 -77
  79. package/dist/tools-GDd5_GUh.mjs.map +1 -0
  80. package/dist/ui.css +1 -1
  81. package/dist/ui.d.mts +3 -3
  82. package/dist/ui.d.mts.map +1 -1
  83. package/dist/ui.mjs +152 -36
  84. package/dist/ui.mjs.map +1 -1
  85. package/docs/integration.md +73 -5
  86. package/package.json +3 -3
  87. package/dist/authoring-references-DYuOAdVx.mjs.map +0 -1
  88. package/dist/capabilities-DKbNCnBf.mjs +0 -66
  89. package/dist/capabilities-DKbNCnBf.mjs.map +0 -1
  90. package/dist/capabilities-DlC1l6qy.d.mts.map +0 -1
  91. package/dist/constants-D-5m_KGB.d.mts.map +0 -1
  92. package/dist/engine-0AJrv0hI.mjs.map +0 -1
  93. package/dist/index-BcyfBeDj.d.mts.map +0 -1
  94. package/dist/index-CneD8ibB.d.mts.map +0 -1
  95. package/dist/index-JXH-t2EJ.d.mts.map +0 -1
  96. package/dist/memory-thread-repository-1ocPOda8.mjs.map +0 -1
  97. package/dist/protocol-DpCYmCjr.mjs.map +0 -1
  98. package/dist/react-DXK5zWNo.mjs.map +0 -1
  99. package/dist/request-context-BBzU3VdG.mjs.map +0 -1
  100. package/dist/tasks-DcfQNJwO.d.mts.map +0 -1
  101. package/dist/thread-handlers-uddXwQjp.d.mts.map +0 -1
  102. package/dist/tools-wgLen05n.mjs.map +0 -1
package/dist/engine.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { n as hashString, r as stableStringify, t as buildCapabilityDigest } from "./digest-BvXpeWcR.mjs";
2
- import { $ as normalizeText, A as SurveyOutlineNode, At as AssistantItemCreationResolution, B as formFieldDetailsSchema, Bt as resolveAssistantItemCreation, C as FormFieldGroupDetails, Ct as SurveyAssistantInspectionKeyEntry, D as SurveyFocusItemNode, Dt as deriveResponseSlotTypes, E as MAX_LIMIT, Et as createSurveyAssistantEngineContext, F as buildItemTranslationEntries, Ft as createSurveyAssistantCapabilities, G as getRawSurvey, H as formFieldGroupLayoutSchema, I as buildSurveyTranslations, It as createUnsupportedItemCapability, J as itemMatchesQuery, K as getRawSurveyItems, L as choiceOptionDetailsSchema, Lt as getDeterministicCreateItemTypes, M as buildConfigSearchText, Mt as SurveyAssistantCapabilityMismatchError, N as buildEmbeddedFormDetails, Nt as SurveyAssistantCapabilitySet, O as SurveyInspectionIndex, Ot as AssistantCapabilityReference, P as buildItemConfigDetails, Pt as assertSurveyAssistantCapabilities, Q as mapRawItemsById, R as clampLimit, Rt as inspectAssistantItem, S as FormFieldDetails, St as SurveyAssistantInspectionItemNode, T as ItemSummary, Tt as SurveyAssistantResponseSlotTypes, U as formSelectOptionDetailsSchema, V as formFieldGroupDetailsSchema, W as getKeyIndexEntries, X as mapKeyIndexById, Y as itemSummarySchema, Z as mapOutlineById, _ as createSurveyChangeSet, _t as validateExpression, a as SurveyQualityReviewPrinciple, at as summarizeKeyIndexEntries, b as ChoiceOptionDetails, bt as SurveyAssistantInspectionFocus, c as SurveyAssistantTaskResultCacheOptions, ct as summarizeRawItem, d as buildSurveyAssistantTaskContext, dt as ExpressionMutation, et as parseCursor, f as TurnSurveyDraft, ft as buildExpressionMutationPatches, g as buildSurveyDocumentVersion, gt as inferExpressionReturnType, h as applyValidatedSurveyOperationsToDraft, ht as ResponseSlotTypeLookup, i as SurveyAuditSeverity, it as summarizeItemById, j as TranslationEntry, jt as AssistantItemInspection, k as SurveyKeyIndexEntry, kt as AssistantItemCapabilityAdapter, l as BuildSurveyAssistantTaskContextOptions, lt as translationEntrySchema, m as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, mt as expressionSchema, n as SurveyAuditFinding, nt as sliceWithCursor, o as auditSurvey, ot as summarizeKeyIndexEntry, p as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, pt as expressionMutationSchema, q as itemConfigDetailsSchema, r as SurveyAuditReport, rt as summarizeFocusItemNode, s as SurveyAssistantTaskResultCache, st as summarizeOutlineNode, t as SurveyAuditCategory, tt as resolveItemSummary, u as SurveyAssistantTaskPurpose, ut as unique, v as validateSurveyOperations, vt as CreateSurveyAssistantEngineContextOptions, w as ItemConfigDetails, wt as SurveyAssistantInspectionOutlineNode, x as DEFAULT_LIMIT, xt as SurveyAssistantInspectionIndex, y as normalizeSurveyChangeOperations, yt as SurveyAssistantEngineContext, z as findDirectChildrenByFullKey, zt as resolveAssistantCapabilityReference } from "./index-JXH-t2EJ.mjs";
3
- export { AssistantCapabilityReference, AssistantItemCapabilityAdapter, AssistantItemCreationResolution, AssistantItemInspection, BuildSurveyAssistantTaskContextOptions, ChoiceOptionDetails, CreateSurveyAssistantEngineContextOptions, DEFAULT_LIMIT, ExpressionMutation, FormFieldDetails, FormFieldGroupDetails, ItemConfigDetails, ItemSummary, MAX_LIMIT, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, ResponseSlotTypeLookup, SurveyAssistantCapabilityMismatchError, SurveyAssistantCapabilitySet, SurveyAssistantEngineContext, SurveyAssistantInspectionFocus, SurveyAssistantInspectionIndex, SurveyAssistantInspectionItemNode, SurveyAssistantInspectionKeyEntry, SurveyAssistantInspectionOutlineNode, SurveyAssistantResponseSlotTypes, SurveyAssistantTaskPurpose, SurveyAssistantTaskResultCache, SurveyAssistantTaskResultCacheOptions, SurveyAuditCategory, SurveyAuditFinding, SurveyAuditReport, SurveyAuditSeverity, SurveyFocusItemNode, SurveyInspectionIndex, SurveyKeyIndexEntry, SurveyOutlineNode, SurveyQualityReviewPrinciple, TranslationEntry, TurnSurveyDraft, applyValidatedSurveyOperationsToDraft, assertSurveyAssistantCapabilities, auditSurvey, buildCapabilityDigest, buildConfigSearchText, buildEmbeddedFormDetails, buildExpressionMutationPatches, buildItemConfigDetails, buildItemTranslationEntries, buildSurveyAssistantTaskContext, buildSurveyDocumentVersion, buildSurveyTranslations, choiceOptionDetailsSchema, clampLimit, createSurveyAssistantCapabilities, createSurveyAssistantEngineContext, createSurveyChangeSet, createUnsupportedItemCapability, deriveResponseSlotTypes, expressionMutationSchema, expressionSchema, findDirectChildrenByFullKey, formFieldDetailsSchema, formFieldGroupDetailsSchema, formFieldGroupLayoutSchema, formSelectOptionDetailsSchema, getDeterministicCreateItemTypes, getKeyIndexEntries, getRawSurvey, getRawSurveyItems, hashString, inferExpressionReturnType, inspectAssistantItem, itemConfigDetailsSchema, itemMatchesQuery, itemSummarySchema, mapKeyIndexById, mapOutlineById, mapRawItemsById, normalizeSurveyChangeOperations, normalizeText, parseCursor, resolveAssistantCapabilityReference, resolveAssistantItemCreation, resolveItemSummary, sliceWithCursor, stableStringify, summarizeFocusItemNode, summarizeItemById, summarizeKeyIndexEntries, summarizeKeyIndexEntry, summarizeOutlineNode, summarizeRawItem, translationEntrySchema, unique, validateExpression, validateSurveyOperations };
1
+ import { n as hashString, r as stableStringify, t as buildCapabilityDigest } from "./digest-Dyjch_sC.mjs";
2
+ import { $ as getRawSurveyItems, A as FormFieldGroupDetails, At as SurveyAssistantInspectionKeyEntry, B as buildEmbeddedFormDetails, Bt as SurveyAssistantCapabilitySet, C as buildSurveyDocumentVersion, Ct as inferExpressionReturnType, D as ChoiceOptionDetails, Dt as SurveyAssistantInspectionFocus, E as normalizeSurveyChangeOperations, Et as SurveyAssistantEngineContext, F as SurveyInspectionIndex, Ft as AssistantCapabilityReference, G as clampLimit, Gt as inspectAssistantItem, H as buildItemTranslationEntries, Ht as createSurveyAssistantCapabilities, I as SurveyKeyIndexEntry, It as AssistantItemCapabilityAdapter, J as formFieldGroupDetailsSchema, K as findDirectChildrenByFullKey, Kt as resolveAssistantCapabilityReference, L as SurveyOutlineNode, Lt as AssistantItemCreationResolution, M as ItemSummary, Mt as SurveyAssistantResponseSlotTypes, N as MAX_LIMIT, Nt as createSurveyAssistantEngineContext, O as DEFAULT_LIMIT, Ot as SurveyAssistantInspectionIndex, P as SurveyFocusItemNode, Pt as deriveResponseSlotTypes, Q as getRawSurvey, R as TranslationEntry, Rt as AssistantItemInspection, S as applyValidatedSurveyOperationsToDraft, St as ResponseSlotTypeLookup, T as validateSurveyOperations, Tt as CreateSurveyAssistantEngineContextOptions, U as buildSurveyTranslations, Ut as createUnsupportedItemCapability, V as buildItemConfigDetails, Vt as assertSurveyAssistantCapabilities, W as choiceOptionDetailsSchema, Wt as getDeterministicCreateItemTypes, X as formSelectOptionDetailsSchema, Y as formFieldGroupLayoutSchema, Z as getKeyIndexEntries, _ as SurveyAssistantTaskPurpose, _t as unique, a as SurveyQualityReviewPrinciple, at as mapRawItemsById, b as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, bt as expressionMutationSchema, c as getFormAuthoringMode, ct as resolveItemSummary, d as isValidSimpleFormConfig, dt as summarizeItemById, et as itemConfigDetailsSchema, f as normalizeFormAuthoringConfig, ft as summarizeKeyIndexEntries, g as BuildSurveyAssistantTaskContextOptions, gt as translationEntrySchema, h as SurveyAssistantTaskResultCacheOptions, ht as summarizeRawItem, i as SurveyAuditSeverity, it as mapOutlineById, j as ItemConfigDetails, jt as SurveyAssistantInspectionOutlineNode, k as FormFieldDetails, kt as SurveyAssistantInspectionItemNode, l as hasSingleFormField, lt as sliceWithCursor, m as SurveyAssistantTaskResultCache, mt as summarizeOutlineNode, n as SurveyAuditFinding, nt as itemSummarySchema, o as auditSurvey, ot as normalizeText, p as transitionFormAuthoringMode, pt as summarizeKeyIndexEntry, q as formFieldDetailsSchema, qt as resolveAssistantItemCreation, r as SurveyAuditReport, rt as mapKeyIndexById, s as FormAuthoringMode, st as parseCursor, t as SurveyAuditCategory, tt as itemMatchesQuery, u as isCompatibleSimpleFieldUpsert, ut as summarizeFocusItemNode, v as buildSurveyAssistantTaskContext, vt as ExpressionMutation, w as createSurveyChangeSet, wt as validateExpression, x as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, xt as expressionSchema, y as TurnSurveyDraft, yt as buildExpressionMutationPatches, z as buildConfigSearchText, zt as SurveyAssistantCapabilityMismatchError } from "./index-CPOQgkTN.mjs";
3
+ export { AssistantCapabilityReference, AssistantItemCapabilityAdapter, AssistantItemCreationResolution, AssistantItemInspection, BuildSurveyAssistantTaskContextOptions, ChoiceOptionDetails, CreateSurveyAssistantEngineContextOptions, DEFAULT_LIMIT, ExpressionMutation, FormAuthoringMode, FormFieldDetails, FormFieldGroupDetails, ItemConfigDetails, ItemSummary, MAX_LIMIT, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, ResponseSlotTypeLookup, SurveyAssistantCapabilityMismatchError, SurveyAssistantCapabilitySet, SurveyAssistantEngineContext, SurveyAssistantInspectionFocus, SurveyAssistantInspectionIndex, SurveyAssistantInspectionItemNode, SurveyAssistantInspectionKeyEntry, SurveyAssistantInspectionOutlineNode, SurveyAssistantResponseSlotTypes, SurveyAssistantTaskPurpose, SurveyAssistantTaskResultCache, SurveyAssistantTaskResultCacheOptions, SurveyAuditCategory, SurveyAuditFinding, SurveyAuditReport, SurveyAuditSeverity, SurveyFocusItemNode, SurveyInspectionIndex, SurveyKeyIndexEntry, SurveyOutlineNode, SurveyQualityReviewPrinciple, TranslationEntry, TurnSurveyDraft, applyValidatedSurveyOperationsToDraft, assertSurveyAssistantCapabilities, auditSurvey, buildCapabilityDigest, buildConfigSearchText, buildEmbeddedFormDetails, buildExpressionMutationPatches, buildItemConfigDetails, buildItemTranslationEntries, buildSurveyAssistantTaskContext, buildSurveyDocumentVersion, buildSurveyTranslations, choiceOptionDetailsSchema, clampLimit, createSurveyAssistantCapabilities, createSurveyAssistantEngineContext, createSurveyChangeSet, createUnsupportedItemCapability, deriveResponseSlotTypes, expressionMutationSchema, expressionSchema, findDirectChildrenByFullKey, formFieldDetailsSchema, formFieldGroupDetailsSchema, formFieldGroupLayoutSchema, formSelectOptionDetailsSchema, getDeterministicCreateItemTypes, getFormAuthoringMode, getKeyIndexEntries, getRawSurvey, getRawSurveyItems, hasSingleFormField, hashString, inferExpressionReturnType, inspectAssistantItem, isCompatibleSimpleFieldUpsert, isValidSimpleFormConfig, itemConfigDetailsSchema, itemMatchesQuery, itemSummarySchema, mapKeyIndexById, mapOutlineById, mapRawItemsById, normalizeFormAuthoringConfig, normalizeSurveyChangeOperations, normalizeText, parseCursor, resolveAssistantCapabilityReference, resolveAssistantItemCreation, resolveItemSummary, sliceWithCursor, stableStringify, summarizeFocusItemNode, summarizeItemById, summarizeKeyIndexEntries, summarizeKeyIndexEntry, summarizeOutlineNode, summarizeRawItem, transitionFormAuthoringMode, translationEntrySchema, unique, validateExpression, validateSurveyOperations };
package/dist/engine.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  import { buildCapabilityDigest, hashString, stableStringify } from "./digest.mjs";
2
- import { a as getDeterministicCreateItemTypes, c as resolveAssistantItemCreation, i as createUnsupportedItemCapability, n as assertSurveyAssistantCapabilities, o as inspectAssistantItem, r as createSurveyAssistantCapabilities, s as resolveAssistantCapabilityReference, t as SurveyAssistantCapabilityMismatchError } from "./capabilities-DKbNCnBf.mjs";
3
- import { $ as deriveResponseSlotTypes, A as getRawSurvey, B as resolveItemSummary, C as clampLimit, D as formFieldGroupLayoutSchema, E as formFieldGroupDetailsSchema, F as mapKeyIndexById, G as summarizeKeyIndexEntry, H as summarizeFocusItemNode, I as mapOutlineById, J as translationEntrySchema, K as summarizeOutlineNode, L as mapRawItemsById, M as itemConfigDetailsSchema, N as itemMatchesQuery, O as formSelectOptionDetailsSchema, P as itemSummarySchema, Q as createSurveyAssistantEngineContext, R as normalizeText, S as choiceOptionDetailsSchema, T as formFieldDetailsSchema, U as summarizeItemById, V as sliceWithCursor, W as summarizeKeyIndexEntries, X as inferExpressionReturnType, Y as unique, Z as validateExpression, _ as buildConfigSearchText, a as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, b as buildItemTranslationEntries, c as buildSurveyDocumentVersion, d as normalizeSurveyChangeOperations, f as buildExpressionMutationPatches, g as MAX_LIMIT, h as DEFAULT_LIMIT, i as TurnSurveyDraft, j as getRawSurveyItems, k as getKeyIndexEntries, l as createSurveyChangeSet, m as expressionSchema, n as SurveyAssistantTaskResultCache, o as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, p as expressionMutationSchema, q as summarizeRawItem, r as buildSurveyAssistantTaskContext, s as applyValidatedSurveyOperationsToDraft, t as auditSurvey, u as validateSurveyOperations, v as buildEmbeddedFormDetails, w as findDirectChildrenByFullKey, x as buildSurveyTranslations, y as buildItemConfigDetails, z as parseCursor } from "./engine-0AJrv0hI.mjs";
4
- export { DEFAULT_LIMIT, MAX_LIMIT, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, SurveyAssistantCapabilityMismatchError, SurveyAssistantTaskResultCache, TurnSurveyDraft, applyValidatedSurveyOperationsToDraft, assertSurveyAssistantCapabilities, auditSurvey, buildCapabilityDigest, buildConfigSearchText, buildEmbeddedFormDetails, buildExpressionMutationPatches, buildItemConfigDetails, buildItemTranslationEntries, buildSurveyAssistantTaskContext, buildSurveyDocumentVersion, buildSurveyTranslations, choiceOptionDetailsSchema, clampLimit, createSurveyAssistantCapabilities, createSurveyAssistantEngineContext, createSurveyChangeSet, createUnsupportedItemCapability, deriveResponseSlotTypes, expressionMutationSchema, expressionSchema, findDirectChildrenByFullKey, formFieldDetailsSchema, formFieldGroupDetailsSchema, formFieldGroupLayoutSchema, formSelectOptionDetailsSchema, getDeterministicCreateItemTypes, getKeyIndexEntries, getRawSurvey, getRawSurveyItems, hashString, inferExpressionReturnType, inspectAssistantItem, itemConfigDetailsSchema, itemMatchesQuery, itemSummarySchema, mapKeyIndexById, mapOutlineById, mapRawItemsById, normalizeSurveyChangeOperations, normalizeText, parseCursor, resolveAssistantCapabilityReference, resolveAssistantItemCreation, resolveItemSummary, sliceWithCursor, stableStringify, summarizeFocusItemNode, summarizeItemById, summarizeKeyIndexEntries, summarizeKeyIndexEntry, summarizeOutlineNode, summarizeRawItem, translationEntrySchema, unique, validateExpression, validateSurveyOperations };
2
+ import { a as normalizeFormAuthoringConfig, c as assertSurveyAssistantCapabilities, d as getDeterministicCreateItemTypes, f as inspectAssistantItem, i as isValidSimpleFormConfig, l as createSurveyAssistantCapabilities, m as resolveAssistantItemCreation, n as hasSingleFormField, o as transitionFormAuthoringMode, p as resolveAssistantCapabilityReference, r as isCompatibleSimpleFieldUpsert, s as SurveyAssistantCapabilityMismatchError, t as getFormAuthoringMode, u as createUnsupportedItemCapability } from "./form-authoring-DCd9XfXf.mjs";
3
+ import { $ as deriveResponseSlotTypes, A as getRawSurvey, B as resolveItemSummary, C as clampLimit, D as formFieldGroupLayoutSchema, E as formFieldGroupDetailsSchema, F as mapKeyIndexById, G as summarizeKeyIndexEntry, H as summarizeFocusItemNode, I as mapOutlineById, J as translationEntrySchema, K as summarizeOutlineNode, L as mapRawItemsById, M as itemConfigDetailsSchema, N as itemMatchesQuery, O as formSelectOptionDetailsSchema, P as itemSummarySchema, Q as createSurveyAssistantEngineContext, R as normalizeText, S as choiceOptionDetailsSchema, T as formFieldDetailsSchema, U as summarizeItemById, V as sliceWithCursor, W as summarizeKeyIndexEntries, X as inferExpressionReturnType, Y as unique, Z as validateExpression, _ as buildConfigSearchText, a as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, b as buildItemTranslationEntries, c as buildSurveyDocumentVersion, d as normalizeSurveyChangeOperations, f as buildExpressionMutationPatches, g as MAX_LIMIT, h as DEFAULT_LIMIT, i as auditSurvey, j as getRawSurveyItems, k as getKeyIndexEntries, l as createSurveyChangeSet, m as expressionSchema, n as buildSurveyAssistantTaskContext, o as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, p as expressionMutationSchema, q as summarizeRawItem, r as TurnSurveyDraft, s as applyValidatedSurveyOperationsToDraft, t as SurveyAssistantTaskResultCache, u as validateSurveyOperations, v as buildEmbeddedFormDetails, w as findDirectChildrenByFullKey, x as buildSurveyTranslations, y as buildItemConfigDetails, z as parseCursor } from "./engine-CWTuN3o2.mjs";
4
+ export { DEFAULT_LIMIT, MAX_LIMIT, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, SurveyAssistantCapabilityMismatchError, SurveyAssistantTaskResultCache, TurnSurveyDraft, applyValidatedSurveyOperationsToDraft, assertSurveyAssistantCapabilities, auditSurvey, buildCapabilityDigest, buildConfigSearchText, buildEmbeddedFormDetails, buildExpressionMutationPatches, buildItemConfigDetails, buildItemTranslationEntries, buildSurveyAssistantTaskContext, buildSurveyDocumentVersion, buildSurveyTranslations, choiceOptionDetailsSchema, clampLimit, createSurveyAssistantCapabilities, createSurveyAssistantEngineContext, createSurveyChangeSet, createUnsupportedItemCapability, deriveResponseSlotTypes, expressionMutationSchema, expressionSchema, findDirectChildrenByFullKey, formFieldDetailsSchema, formFieldGroupDetailsSchema, formFieldGroupLayoutSchema, formSelectOptionDetailsSchema, getDeterministicCreateItemTypes, getFormAuthoringMode, getKeyIndexEntries, getRawSurvey, getRawSurveyItems, hasSingleFormField, hashString, inferExpressionReturnType, inspectAssistantItem, isCompatibleSimpleFieldUpsert, isValidSimpleFormConfig, itemConfigDetailsSchema, itemMatchesQuery, itemSummarySchema, mapKeyIndexById, mapOutlineById, mapRawItemsById, normalizeFormAuthoringConfig, normalizeSurveyChangeOperations, normalizeText, parseCursor, resolveAssistantCapabilityReference, resolveAssistantItemCreation, resolveItemSummary, sliceWithCursor, stableStringify, summarizeFocusItemNode, summarizeItemById, summarizeKeyIndexEntries, summarizeKeyIndexEntry, summarizeOutlineNode, summarizeRawItem, transitionFormAuthoringMode, translationEntrySchema, unique, validateExpression, validateSurveyOperations };
@@ -0,0 +1,21 @@
1
+ const FAIR_ITEM_KEY_RULES_TEXT = [
2
+ "start with a letter",
3
+ "use lowercase ASCII letters, digits, and underscores only",
4
+ "use lowercase snake_case",
5
+ "stay at or below 32 characters",
6
+ "avoid programming and database reserved words",
7
+ "prefer a stable, language-neutral English concept name",
8
+ "reuse the same concept name across waves and studies",
9
+ "use established instrument prefixes and sortable item numbers when applicable",
10
+ "distinguish raw variables from derived variables"
11
+ ].join("; ");
12
+ const FAIR_BY_DESIGN_REFERENCE_ROUTING_INSTRUCTION = [
13
+ "FAIR-by-design is optional task context, not a universal authoring rule.",
14
+ "Load the fair-by-design reference before advising or editing when the user mentions FAIR or born-FAIR data, interoperability, reuse, standardization, harmonization, cross-study or cross-wave comparability, codebooks or data export, stable identifiers or codes, missing-value semantics, metadata, provenance, versioning, standard instruments, controlled vocabularies, units, or standard country, language, and date codes.",
15
+ "It may also help when the user asks how survey data will remain machine-readable across languages or tools.",
16
+ "Do not load or impose it for ordinary wording, layout, ordering, or localization work unless one of those concerns is material."
17
+ ].join(" ");
18
+ //#endregion
19
+ export { FAIR_ITEM_KEY_RULES_TEXT as n, FAIR_BY_DESIGN_REFERENCE_ROUTING_INSTRUCTION as t };
20
+
21
+ //# sourceMappingURL=fair-guidance-CEdJYccK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fair-guidance-CEdJYccK.mjs","names":[],"sources":["../src/server/fair-guidance.ts"],"sourcesContent":["const FAIR_ITEM_KEY_RULES = [\n \"start with a letter\",\n \"use lowercase ASCII letters, digits, and underscores only\",\n \"use lowercase snake_case\",\n \"stay at or below 32 characters\",\n \"avoid programming and database reserved words\",\n \"prefer a stable, language-neutral English concept name\",\n \"reuse the same concept name across waves and studies\",\n \"use established instrument prefixes and sortable item numbers when applicable\",\n \"distinguish raw variables from derived variables\",\n] as const;\n\nexport const FAIR_ITEM_KEY_RULES_TEXT = FAIR_ITEM_KEY_RULES.join(\"; \");\n\nexport const FAIR_BY_DESIGN_REFERENCE_ROUTING_INSTRUCTION = [\n \"FAIR-by-design is optional task context, not a universal authoring rule.\",\n \"Load the fair-by-design reference before advising or editing when the user mentions FAIR or born-FAIR data, interoperability, reuse, standardization, harmonization, cross-study or cross-wave comparability, codebooks or data export, stable identifiers or codes, missing-value semantics, metadata, provenance, versioning, standard instruments, controlled vocabularies, units, or standard country, language, and date codes.\",\n \"It may also help when the user asks how survey data will remain machine-readable across languages or tools.\",\n \"Do not load or impose it for ordinary wording, layout, ordering, or localization work unless one of those concerns is material.\",\n].join(\" \");\n"],"mappings":"AAYA,MAAa,2BAA2B;CAXtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAGsC,CAAoB,KAAK,KAAK;AAEtE,MAAa,+CAA+C;CAC1D;CACA;CACA;CACA;CACD,CAAC,KAAK,IAAI"}
@@ -0,0 +1,155 @@
1
+ import { q as assistantItemTypeManifestSchema } from "./protocol-DATvkr1S.mjs";
2
+ import { buildCapabilityDigest, stableStringify } from "./digest.mjs";
3
+ //#region src/engine/capabilities.ts
4
+ const resolveAssistantCapabilityReference = ({ capabilities, itemType, topic }) => capabilities?.byItemType.get(itemType)?.references?.find((reference) => reference.topic === topic);
5
+ const inspectAssistantItem = ({ capabilities, item }) => capabilities?.byItemType.get(item.itemType)?.inspectItem?.(item);
6
+ const createSurveyAssistantCapabilities = (capabilities) => {
7
+ const byItemType = /* @__PURE__ */ new Map();
8
+ const normalizedManifests = [];
9
+ for (const capability of capabilities) {
10
+ const manifest = assistantItemTypeManifestSchema.parse(capability.manifest);
11
+ const itemType = manifest.itemType;
12
+ if (byItemType.has(itemType)) throw new Error(`Duplicate survey assistant capability for item type "${itemType}".`);
13
+ if (manifest.create === "deterministic" && !manifest.supportedOperations.includes("create-item")) throw new Error(`Deterministically creatable item type "${itemType}" must support "create-item".`);
14
+ const declaredReferenceTopics = new Set(manifest.referenceTopics ?? []);
15
+ for (const reference of capability.references ?? []) if (!declaredReferenceTopics.has(reference.topic)) throw new Error(`Capability reference "${reference.topic}" for item type "${itemType}" is missing from manifest.referenceTopics.`);
16
+ byItemType.set(itemType, capability);
17
+ normalizedManifests.push(assistantItemTypeManifestSchema.parse(JSON.parse(JSON.stringify(manifest))));
18
+ }
19
+ const manifestWithoutDigest = { itemTypes: normalizedManifests.sort((left, right) => left.itemType.localeCompare(right.itemType)) };
20
+ return {
21
+ manifest: {
22
+ ...manifestWithoutDigest,
23
+ digest: buildCapabilityDigest(manifestWithoutDigest)
24
+ },
25
+ byItemType
26
+ };
27
+ };
28
+ const getDeterministicCreateItemTypes = (manifest) => manifest.itemTypes.filter((entry) => entry.create === "deterministic").map((entry) => entry.itemType);
29
+ const resolveAssistantItemCreation = ({ itemType, manifest, parentItemId }) => {
30
+ const capability = manifest.itemTypes.find((entry) => entry.itemType === itemType);
31
+ if (capability?.create === "deterministic") return { kind: "deterministic" };
32
+ if (capability?.create === "interactive-only") return {
33
+ kind: "ui-intent",
34
+ intent: {
35
+ kind: "open-create-item",
36
+ itemType,
37
+ parentItemId
38
+ }
39
+ };
40
+ return {
41
+ kind: "unsupported",
42
+ reason: capability ? `Item type "${itemType}" does not support assistant creation.` : `Item type "${itemType}" is not installed.`
43
+ };
44
+ };
45
+ const createUnsupportedItemCapability = ({ displayName, itemType }) => ({ manifest: {
46
+ itemType,
47
+ capabilityVersion: "unsupported-v1",
48
+ displayName,
49
+ create: "unsupported",
50
+ supportedOperations: [],
51
+ contentSurfaces: []
52
+ } });
53
+ var SurveyAssistantCapabilityMismatchError = class extends Error {
54
+ code = "survey-assistant-capability-mismatch";
55
+ constructor(message = "Survey assistant capabilities changed; start a fresh turn and retry.") {
56
+ super(message);
57
+ this.name = "SurveyAssistantCapabilityMismatchError";
58
+ }
59
+ };
60
+ const assertSurveyAssistantCapabilities = ({ manifest, trustedCapabilities, versionDigest }) => {
61
+ const { digest: claimedDigest, ...manifestWithoutDigest } = manifest;
62
+ if (claimedDigest !== buildCapabilityDigest(manifestWithoutDigest) || versionDigest !== claimedDigest) throw new SurveyAssistantCapabilityMismatchError();
63
+ if (trustedCapabilities) {
64
+ const withoutContextualPresets = ({ creationPresets: _creationPresets, ...capability }) => capability;
65
+ const claimedBaseCapabilities = manifest.itemTypes.map(withoutContextualPresets);
66
+ const trustedBaseCapabilities = trustedCapabilities.manifest.itemTypes.map(withoutContextualPresets);
67
+ if (stableStringify(claimedBaseCapabilities) !== stableStringify(trustedBaseCapabilities)) throw new SurveyAssistantCapabilityMismatchError("The editor and server use different survey assistant capabilities; refresh and retry.");
68
+ }
69
+ };
70
+ //#endregion
71
+ //#region src/engine/form-authoring.ts
72
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
73
+ const SIMPLE_FORM_FIELD_TYPES = new Set([
74
+ "input",
75
+ "textarea",
76
+ "number",
77
+ "slider",
78
+ "select",
79
+ "datepicker",
80
+ "switch"
81
+ ]);
82
+ const getFormAuthoringMode = (config) => isRecord(config) && config.authoringMode === "simple" ? "simple" : "custom";
83
+ const hasSingleFormField = (config) => {
84
+ if (!isRecord(config) || !Array.isArray(config.fieldGroups) || config.fieldGroups.length !== 1) return false;
85
+ const [group] = config.fieldGroups;
86
+ if (!isRecord(group) || !Array.isArray(group.fields) || group.fields.length !== 1) return false;
87
+ const layout = isRecord(group.layout) ? group.layout : void 0;
88
+ if (group.hasDisplayCondition === true || layout && [
89
+ "base",
90
+ "xs",
91
+ "sm",
92
+ "md",
93
+ "xl"
94
+ ].some((breakpoint) => layout[breakpoint] !== void 0 && layout[breakpoint] !== 1)) return false;
95
+ const [field] = group.fields;
96
+ return isRecord(field) && typeof field.id === "string" && field.id.length > 0 && typeof field.key === "string" && field.key.length > 0 && typeof field.type === "string" && SIMPLE_FORM_FIELD_TYPES.has(field.type) && isRecord(field.controller) && field.controller.type === field.type;
97
+ };
98
+ const isValidSimpleFormConfig = (config) => getFormAuthoringMode(config) !== "simple" || hasSingleFormField(config);
99
+ /**
100
+ * Canonicalizes the editor-facing mode without modifying groups, fields, or translations.
101
+ * Missing modes and malformed simple forms become custom; valid simple forms stay simple.
102
+ */
103
+ const normalizeFormAuthoringConfig = (config) => {
104
+ if (!isRecord(config)) return;
105
+ return {
106
+ ...config,
107
+ authoringMode: config.authoringMode === "simple" && hasSingleFormField(config) ? "simple" : "custom"
108
+ };
109
+ };
110
+ /**
111
+ * Returns true only for an in-place edit of the existing sole field that the
112
+ * simple editor can still represent. Adding, moving, retyping, or exposing
113
+ * hidden field configuration is structural and must promote the form.
114
+ */
115
+ const isCompatibleSimpleFieldUpsert = ({ config, field, groupId, index }) => {
116
+ if (getFormAuthoringMode(config) !== "simple" || !isRecord(config) || !Array.isArray(config.fieldGroups) || config.fieldGroups.length !== 1 || (index ?? 0) > 0) return false;
117
+ const [group] = config.fieldGroups;
118
+ if (!isRecord(group) || group.id !== groupId || !Array.isArray(group.fields)) return false;
119
+ const [existingField] = group.fields;
120
+ if (!isRecord(existingField) || group.fields.length !== 1) return false;
121
+ const controller = isRecord(field.controller) ? field.controller : void 0;
122
+ const validationsUnchanged = field.validations === void 0 || JSON.stringify(field.validations) === JSON.stringify(existingField.validations);
123
+ const simpleEditableKeys = new Set([
124
+ "id",
125
+ "key",
126
+ "type",
127
+ "controller",
128
+ "required",
129
+ "validations"
130
+ ]);
131
+ const hiddenConfigUnchanged = Object.keys(field).filter((key) => !simpleEditableKeys.has(key)).every((key) => JSON.stringify(field[key]) === JSON.stringify(existingField[key]));
132
+ return existingField.id === field.id && existingField.key === field.key && existingField.type === field.type && controller?.type === field.type && validationsUnchanged && hiddenConfigUnchanged;
133
+ };
134
+ /**
135
+ * Structural form operations are a one-way transition out of simple mode unless the caller has
136
+ * proved that the same sole field remains compatible with the simple editor.
137
+ */
138
+ const transitionFormAuthoringMode = ({ config, fieldGroups, preserveSimpleMode = false }) => {
139
+ const nextConfig = {
140
+ ...config,
141
+ fieldGroups
142
+ };
143
+ if (getFormAuthoringMode(config) !== "simple") return {
144
+ ...nextConfig,
145
+ authoringMode: "custom"
146
+ };
147
+ return {
148
+ ...nextConfig,
149
+ authoringMode: preserveSimpleMode && hasSingleFormField(nextConfig) ? "simple" : "custom"
150
+ };
151
+ };
152
+ //#endregion
153
+ export { normalizeFormAuthoringConfig as a, assertSurveyAssistantCapabilities as c, getDeterministicCreateItemTypes as d, inspectAssistantItem as f, isValidSimpleFormConfig as i, createSurveyAssistantCapabilities as l, resolveAssistantItemCreation as m, hasSingleFormField as n, transitionFormAuthoringMode as o, resolveAssistantCapabilityReference as p, isCompatibleSimpleFieldUpsert as r, SurveyAssistantCapabilityMismatchError as s, getFormAuthoringMode as t, createUnsupportedItemCapability as u };
154
+
155
+ //# sourceMappingURL=form-authoring-DCd9XfXf.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-authoring-DCd9XfXf.mjs","names":[],"sources":["../src/engine/capabilities.ts","../src/engine/form-authoring.ts"],"sourcesContent":["import type { RawSurveyItem, ValueType } from \"@case-framework/survey-core\";\nimport type {\n AssistantItemTypeManifest,\n JsonValue,\n SurveyAssistantCapabilityManifest,\n SurveyOperation,\n SurveyValidationIssue,\n} from \"../protocol\";\nimport { assistantItemTypeManifestSchema } from \"../protocol\";\nimport { buildCapabilityDigest, stableStringify } from \"../protocol/digest\";\n\nexport interface AssistantCapabilityReference {\n topic: string;\n title?: string;\n markdown: string;\n}\n\nexport interface AssistantItemInspection {\n summary: string;\n details?: JsonValue;\n}\n\nexport interface AssistantItemCapabilityAdapter {\n manifest: AssistantItemTypeManifest;\n references?: AssistantCapabilityReference[];\n normalizeCreate?: (item: RawSurveyItem) => RawSurveyItem;\n validateItem?: (item: RawSurveyItem) => SurveyValidationIssue[];\n supportsOperation?: (operation: SurveyOperation) => boolean;\n deriveResponseSlots?: (item: RawSurveyItem) => Record<string, ValueType>;\n inspectItem?: (item: RawSurveyItem) => AssistantItemInspection;\n}\n\nexport interface SurveyAssistantCapabilitySet {\n manifest: SurveyAssistantCapabilityManifest;\n byItemType: ReadonlyMap<string, AssistantItemCapabilityAdapter>;\n}\n\nexport const resolveAssistantCapabilityReference = ({\n capabilities,\n itemType,\n topic,\n}: {\n capabilities: SurveyAssistantCapabilitySet | undefined;\n itemType: string;\n topic: string;\n}): AssistantCapabilityReference | undefined =>\n capabilities?.byItemType\n .get(itemType)\n ?.references?.find((reference) => reference.topic === topic);\n\nexport const inspectAssistantItem = ({\n capabilities,\n item,\n}: {\n capabilities: SurveyAssistantCapabilitySet | undefined;\n item: RawSurveyItem;\n}): AssistantItemInspection | undefined =>\n capabilities?.byItemType.get(item.itemType)?.inspectItem?.(item);\n\nexport type AssistantItemCreationResolution =\n | { kind: \"deterministic\" }\n | {\n kind: \"ui-intent\";\n intent: { kind: \"open-create-item\"; itemType: string; parentItemId?: string };\n }\n | { kind: \"unsupported\"; reason: string };\n\nexport const createSurveyAssistantCapabilities = (\n capabilities: readonly AssistantItemCapabilityAdapter[],\n): SurveyAssistantCapabilitySet => {\n const byItemType = new Map<string, AssistantItemCapabilityAdapter>();\n const normalizedManifests: AssistantItemTypeManifest[] = [];\n\n for (const capability of capabilities) {\n const manifest = assistantItemTypeManifestSchema.parse(capability.manifest);\n const itemType = manifest.itemType;\n if (byItemType.has(itemType)) {\n throw new Error(`Duplicate survey assistant capability for item type \"${itemType}\".`);\n }\n if (\n manifest.create === \"deterministic\" &&\n !manifest.supportedOperations.includes(\"create-item\")\n ) {\n throw new Error(\n `Deterministically creatable item type \"${itemType}\" must support \"create-item\".`,\n );\n }\n const declaredReferenceTopics = new Set(manifest.referenceTopics ?? []);\n for (const reference of capability.references ?? []) {\n if (!declaredReferenceTopics.has(reference.topic)) {\n throw new Error(\n `Capability reference \"${reference.topic}\" for item type \"${itemType}\" is missing from manifest.referenceTopics.`,\n );\n }\n }\n byItemType.set(itemType, capability);\n normalizedManifests.push(\n assistantItemTypeManifestSchema.parse(JSON.parse(JSON.stringify(manifest))),\n );\n }\n\n const itemTypes = normalizedManifests.sort((left, right) =>\n left.itemType.localeCompare(right.itemType),\n );\n const manifestWithoutDigest = { itemTypes };\n\n return {\n manifest: {\n ...manifestWithoutDigest,\n digest: buildCapabilityDigest(manifestWithoutDigest),\n },\n byItemType,\n };\n};\n\nexport const getDeterministicCreateItemTypes = (\n manifest: SurveyAssistantCapabilityManifest,\n): string[] =>\n manifest.itemTypes\n .filter((entry) => entry.create === \"deterministic\")\n .map((entry) => entry.itemType);\n\nexport const resolveAssistantItemCreation = ({\n itemType,\n manifest,\n parentItemId,\n}: {\n itemType: string;\n manifest: SurveyAssistantCapabilityManifest;\n parentItemId?: string;\n}): AssistantItemCreationResolution => {\n const capability = manifest.itemTypes.find((entry) => entry.itemType === itemType);\n if (capability?.create === \"deterministic\") {\n return { kind: \"deterministic\" };\n }\n if (capability?.create === \"interactive-only\") {\n return {\n kind: \"ui-intent\",\n intent: { kind: \"open-create-item\", itemType, parentItemId },\n };\n }\n return {\n kind: \"unsupported\",\n reason: capability\n ? `Item type \"${itemType}\" does not support assistant creation.`\n : `Item type \"${itemType}\" is not installed.`,\n };\n};\n\nexport const createUnsupportedItemCapability = ({\n displayName,\n itemType,\n}: {\n displayName: string;\n itemType: string;\n}): AssistantItemCapabilityAdapter => ({\n manifest: {\n itemType,\n capabilityVersion: \"unsupported-v1\",\n displayName,\n create: \"unsupported\",\n supportedOperations: [],\n contentSurfaces: [],\n },\n});\n\nexport class SurveyAssistantCapabilityMismatchError extends Error {\n readonly code = \"survey-assistant-capability-mismatch\";\n\n constructor(message = \"Survey assistant capabilities changed; start a fresh turn and retry.\") {\n super(message);\n this.name = \"SurveyAssistantCapabilityMismatchError\";\n }\n}\n\nexport const assertSurveyAssistantCapabilities = ({\n manifest,\n trustedCapabilities,\n versionDigest,\n}: {\n manifest: SurveyAssistantCapabilityManifest;\n trustedCapabilities?: SurveyAssistantCapabilitySet;\n versionDigest: string;\n}): void => {\n const { digest: claimedDigest, ...manifestWithoutDigest } = manifest;\n const computedDigest = buildCapabilityDigest(manifestWithoutDigest);\n if (claimedDigest !== computedDigest || versionDigest !== claimedDigest) {\n throw new SurveyAssistantCapabilityMismatchError();\n }\n\n if (trustedCapabilities) {\n const withoutContextualPresets = ({\n creationPresets: _creationPresets,\n ...capability\n }: AssistantItemTypeManifest): Omit<AssistantItemTypeManifest, \"creationPresets\"> => capability;\n const claimedBaseCapabilities = manifest.itemTypes.map(withoutContextualPresets);\n const trustedBaseCapabilities =\n trustedCapabilities.manifest.itemTypes.map(withoutContextualPresets);\n\n // Creation presets are editor-registry context for the model. They do not\n // grant operations or install executable adapters, so the server validates\n // the stable capability contract while retaining its own trusted adapters.\n if (stableStringify(claimedBaseCapabilities) !== stableStringify(trustedBaseCapabilities)) {\n throw new SurveyAssistantCapabilityMismatchError(\n \"The editor and server use different survey assistant capabilities; refresh and retry.\",\n );\n }\n }\n};\n","export type FormAuthoringMode = \"simple\" | \"custom\";\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst SIMPLE_FORM_FIELD_TYPES = new Set([\n \"input\",\n \"textarea\",\n \"number\",\n \"slider\",\n \"select\",\n \"datepicker\",\n \"switch\",\n]);\n\nexport const getFormAuthoringMode = (config: unknown): FormAuthoringMode =>\n isRecord(config) && config.authoringMode === \"simple\" ? \"simple\" : \"custom\";\n\nexport const hasSingleFormField = (config: unknown): boolean => {\n if (!isRecord(config) || !Array.isArray(config.fieldGroups) || config.fieldGroups.length !== 1) {\n return false;\n }\n\n const [group] = config.fieldGroups;\n if (!isRecord(group) || !Array.isArray(group.fields) || group.fields.length !== 1) {\n return false;\n }\n const layout = isRecord(group.layout) ? group.layout : undefined;\n if (\n group.hasDisplayCondition === true ||\n (layout &&\n [\"base\", \"xs\", \"sm\", \"md\", \"xl\"].some(\n (breakpoint) => layout[breakpoint] !== undefined && layout[breakpoint] !== 1,\n ))\n ) {\n return false;\n }\n\n const [field] = group.fields;\n return (\n isRecord(field) &&\n typeof field.id === \"string\" &&\n field.id.length > 0 &&\n typeof field.key === \"string\" &&\n field.key.length > 0 &&\n typeof field.type === \"string\" &&\n SIMPLE_FORM_FIELD_TYPES.has(field.type) &&\n isRecord(field.controller) &&\n field.controller.type === field.type\n );\n};\n\nexport const isValidSimpleFormConfig = (config: unknown): boolean =>\n getFormAuthoringMode(config) !== \"simple\" || hasSingleFormField(config);\n\n/**\n * Canonicalizes the editor-facing mode without modifying groups, fields, or translations.\n * Missing modes and malformed simple forms become custom; valid simple forms stay simple.\n */\nexport const normalizeFormAuthoringConfig = (\n config: unknown,\n): Record<string, unknown> | undefined => {\n if (!isRecord(config)) {\n return undefined;\n }\n\n return {\n ...config,\n authoringMode:\n config.authoringMode === \"simple\" && hasSingleFormField(config) ? \"simple\" : \"custom\",\n };\n};\n\n/**\n * Returns true only for an in-place edit of the existing sole field that the\n * simple editor can still represent. Adding, moving, retyping, or exposing\n * hidden field configuration is structural and must promote the form.\n */\nexport const isCompatibleSimpleFieldUpsert = ({\n config,\n field,\n groupId,\n index,\n}: {\n config: unknown;\n field: Record<string, unknown> & { id: string; key: string; type: string };\n groupId: string;\n index?: number;\n}): boolean => {\n if (\n getFormAuthoringMode(config) !== \"simple\" ||\n !isRecord(config) ||\n !Array.isArray(config.fieldGroups) ||\n config.fieldGroups.length !== 1 ||\n (index ?? 0) > 0\n ) {\n return false;\n }\n\n const [group] = config.fieldGroups;\n if (!isRecord(group) || group.id !== groupId || !Array.isArray(group.fields)) {\n return false;\n }\n const [existingField] = group.fields;\n if (!isRecord(existingField) || group.fields.length !== 1) {\n return false;\n }\n\n const controller = isRecord(field.controller) ? field.controller : undefined;\n const validationsUnchanged =\n field.validations === undefined ||\n JSON.stringify(field.validations) === JSON.stringify(existingField.validations);\n const simpleEditableKeys = new Set([\n \"id\",\n \"key\",\n \"type\",\n \"controller\",\n \"required\",\n \"validations\",\n ]);\n const hiddenConfigUnchanged = Object.keys(field)\n .filter((key) => !simpleEditableKeys.has(key))\n .every((key) => JSON.stringify(field[key]) === JSON.stringify(existingField[key]));\n\n return (\n existingField.id === field.id &&\n existingField.key === field.key &&\n existingField.type === field.type &&\n controller?.type === field.type &&\n validationsUnchanged &&\n hiddenConfigUnchanged\n );\n};\n\n/**\n * Structural form operations are a one-way transition out of simple mode unless the caller has\n * proved that the same sole field remains compatible with the simple editor.\n */\nexport const transitionFormAuthoringMode = ({\n config,\n fieldGroups,\n preserveSimpleMode = false,\n}: {\n config: Record<string, unknown>;\n fieldGroups: Record<string, unknown>[];\n preserveSimpleMode?: boolean;\n}): Record<string, unknown> => {\n const nextConfig = { ...config, fieldGroups };\n if (getFormAuthoringMode(config) !== \"simple\") {\n return { ...nextConfig, authoringMode: \"custom\" };\n }\n\n return {\n ...nextConfig,\n authoringMode: preserveSimpleMode && hasSingleFormField(nextConfig) ? \"simple\" : \"custom\",\n };\n};\n"],"mappings":"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"}
@@ -27,10 +27,13 @@ declare const surveyAssetTool: _$_mastra_core_tools0.Tool<{
27
27
  declare const SURVEY_ASSISTANT_TOOL_IDS: readonly ["survey_inspect", "survey_change", "survey_expression", "survey_authoring_reference", "survey_attachment", "survey_audit", "survey_asset"];
28
28
  declare const surveyAssistantTools: Readonly<{
29
29
  survey_inspect: _$_mastra_core_tools0.Tool<{
30
- action: "current-context" | "search-items" | "item-details" | "assets" | "raw-json";
30
+ action: "localization" | "current-context" | "search-items" | "item-details" | "assets" | "raw-json";
31
31
  reason: unknown;
32
32
  scopes: unknown;
33
33
  query: unknown;
34
+ sourceLocale: unknown;
35
+ targetLocale: unknown;
36
+ missingOnly: unknown;
34
37
  itemRef: unknown;
35
38
  cursor: unknown;
36
39
  outlineMode: unknown;
@@ -39,10 +42,13 @@ declare const surveyAssistantTools: Readonly<{
39
42
  includeItemConfig: unknown;
40
43
  limit: unknown;
41
44
  } | {
42
- action: "current-context" | "search-items" | "item-details" | "assets" | "raw-json";
45
+ action: "localization" | "current-context" | "search-items" | "item-details" | "assets" | "raw-json";
43
46
  reason?: string | undefined;
44
47
  scopes?: ("summary" | "selected-item" | "outline" | "response-slots" | "ui-context" | "history")[] | undefined;
45
48
  query?: string | undefined;
49
+ sourceLocale?: string | undefined;
50
+ targetLocale?: string | undefined;
51
+ missingOnly?: boolean | undefined;
46
52
  itemRef?: string | undefined;
47
53
  cursor?: string | undefined;
48
54
  outlineMode?: "full" | "focused" | "children" | undefined;
@@ -52,7 +58,7 @@ declare const surveyAssistantTools: Readonly<{
52
58
  limit?: number | undefined;
53
59
  }, {
54
60
  ok: boolean;
55
- action: "current-context" | "search-items" | "item-details" | "assets" | "raw-json";
61
+ action: "localization" | "current-context" | "search-items" | "item-details" | "assets" | "raw-json";
56
62
  modelSummary: string;
57
63
  reason?: string | undefined;
58
64
  result?: unknown;
@@ -85,13 +91,27 @@ declare const surveyAssistantTools: Readonly<{
85
91
  mutations?: Record<string, unknown>[] | undefined;
86
92
  }, unknown, unknown, unknown, _$_mastra_core_tools0.ToolExecutionContext<unknown, unknown, unknown>, "survey_expression", unknown>;
87
93
  survey_attachment: _$_mastra_core_tools0.Tool<{
88
- documentIds: string[];
94
+ documentIds?: string[] | undefined;
95
+ documentRequests?: {
96
+ documentId: string;
97
+ pages?: {
98
+ start: number;
99
+ end: number;
100
+ } | undefined;
101
+ focus?: string | undefined;
102
+ }[] | undefined;
89
103
  }, {
90
104
  loaded: {
91
105
  id: string;
92
106
  filename: string;
93
107
  mediaType: string;
108
+ pages?: {
109
+ start: number;
110
+ end: number;
111
+ } | undefined;
112
+ focus?: string | undefined;
94
113
  }[];
114
+ warnings?: string[] | undefined;
95
115
  }, unknown, unknown, _$_mastra_core_tools0.ToolExecutionContext<unknown, unknown, unknown>, "survey_attachment", unknown>;
96
116
  survey_audit: _$_mastra_core_tools0.Tool<{
97
117
  sourceLocale?: string | undefined;
@@ -115,4 +135,4 @@ declare const surveyAssistantTools: Readonly<{
115
135
  }>;
116
136
  //#endregion
117
137
  export { surveyAuditTool as i, surveyAssistantTools as n, surveyAssetTool as r, SURVEY_ASSISTANT_TOOL_IDS as t };
118
- //# sourceMappingURL=index-BcyfBeDj.d.mts.map
138
+ //# sourceMappingURL=index-Bp5W_oPa.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Bp5W_oPa.d.mts","names":[],"sources":["../src/server/tools/survey-audit-tool.ts","../src/server/tools/survey-asset-tool.ts","../src/server/tools/index.ts"],"mappings":";;;cA4Ga,eAAA,EAwBX,qBAAA,CAxB0B,IAAA;;;;;;;;;qBAwB1B,qBAAA,CAAA,oBAAA;;;cCiCW,eAAA,EA6HX,qBAAA,CA7H0B,IAAA;;;;;;;;8BA6H1B,qBAAA,CAAA,oBAAA;;;cCvRW,yBAAA;AAAA,cAUA,oBAAA,EAAoB,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAQ/B,qBAAA,CAAA,oBAAA"}
@@ -1,5 +1,5 @@
1
- import { i as AssistantItemTypeManifest, o as SurveyAssistantCapabilityManifest } from "./capabilities-DlC1l6qy.mjs";
2
- import { Ct as SurveyValidationResult, P as SurveyAssistantTaskContext, St as SurveyValidationIssue, bt as SurveyOperation, d as SurveyAssistantTurnFinal, dn as SurveyDocumentVersion, p as SurveyChangeSet, un as SurveyDocumentSnapshot, xn as JsonValue$1 } from "./index-MEOL9_Gr.mjs";
1
+ import { i as AssistantItemTypeManifest, o as SurveyAssistantCapabilityManifest } from "./capabilities-CnsVuJ1k.mjs";
2
+ import { Dt as SurveyValidationResult, Et as SurveyValidationIssue, R as SurveyAssistantTaskContext, Tn as JsonValue$1, f as SurveyAssistantTurnFinal, h as SurveyChangeSet, hn as SurveyDocumentVersion, mn as SurveyDocumentSnapshot, wt as SurveyOperation } from "./index-EDL1V168.mjs";
3
3
  import { z } from "zod";
4
4
  import { JsonExpression, JsonPatchOperation, RawSurvey, RawSurveyItem, ResponseValue, SurveyTranslations, ValueType } from "@case-framework/survey-core";
5
5
 
@@ -275,8 +275,8 @@ declare const expressionMutationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
275
275
  number: "number";
276
276
  boolean: "boolean";
277
277
  date: "date";
278
- duration: "duration";
279
278
  reference: "reference";
279
+ duration: "duration";
280
280
  "string[]": "string[]";
281
281
  "duration[]": "duration[]";
282
282
  "reference[]": "reference[]";
@@ -337,6 +337,11 @@ declare const choiceOptionDetailsSchema: z.ZodObject<{
337
337
  hasDisplayCondition: z.ZodOptional<z.ZodBoolean>;
338
338
  embeddedFormItemId: z.ZodOptional<z.ZodString>;
339
339
  embeddedFormFieldGroupCount: z.ZodOptional<z.ZodNumber>;
340
+ embeddedFormAuthoringMode: z.ZodOptional<z.ZodEnum<{
341
+ custom: "custom";
342
+ simple: "simple";
343
+ }>>;
344
+ embeddedFormSimpleModeValid: z.ZodOptional<z.ZodBoolean>;
340
345
  embeddedFormTranslationPrefix: z.ZodOptional<z.ZodString>;
341
346
  embeddedFormResponseSlotPrefix: z.ZodOptional<z.ZodString>;
342
347
  }, z.core.$strip>;
@@ -423,6 +428,11 @@ declare const itemConfigDetailsSchema: z.ZodObject<{
423
428
  generic: "generic";
424
429
  }>;
425
430
  summary: z.ZodArray<z.ZodString>;
431
+ authoringMode: z.ZodOptional<z.ZodEnum<{
432
+ custom: "custom";
433
+ simple: "simple";
434
+ }>>;
435
+ simpleModeValid: z.ZodOptional<z.ZodBoolean>;
426
436
  mainResponseSlotId: z.ZodOptional<z.ZodString>;
427
437
  choiceOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
428
438
  position: z.ZodNumber;
@@ -432,6 +442,11 @@ declare const itemConfigDetailsSchema: z.ZodObject<{
432
442
  hasDisplayCondition: z.ZodOptional<z.ZodBoolean>;
433
443
  embeddedFormItemId: z.ZodOptional<z.ZodString>;
434
444
  embeddedFormFieldGroupCount: z.ZodOptional<z.ZodNumber>;
445
+ embeddedFormAuthoringMode: z.ZodOptional<z.ZodEnum<{
446
+ custom: "custom";
447
+ simple: "simple";
448
+ }>>;
449
+ embeddedFormSimpleModeValid: z.ZodOptional<z.ZodBoolean>;
435
450
  embeddedFormTranslationPrefix: z.ZodOptional<z.ZodString>;
436
451
  embeddedFormResponseSlotPrefix: z.ZodOptional<z.ZodString>;
437
452
  }, z.core.$strip>>>;
@@ -606,7 +621,7 @@ declare class TurnSurveyDraft {
606
621
  summary: string;
607
622
  }): SurveyChangeSet;
608
623
  reject(candidate: SurveyChangeSet, addressedTargets?: Iterable<string>): SurveyChangeSet;
609
- finalize(status: SurveyAssistantTurnFinal["status"], createdAt?: string): SurveyAssistantTurnFinal;
624
+ finalize(status: SurveyAssistantTurnFinal["status"], createdAt?: string, details?: Pick<SurveyAssistantTurnFinal, "durationMs" | "startedAt" | "terminationReason">): SurveyAssistantTurnFinal;
610
625
  getCandidate(changeSetId: string): SurveyChangeSet | undefined;
611
626
  get draftOperations(): readonly SurveyOperation[];
612
627
  get context(): SurveyAssistantEngineContext | undefined;
@@ -642,6 +657,50 @@ declare class SurveyAssistantTaskResultCache {
642
657
  clear(): void;
643
658
  }
644
659
  //#endregion
660
+ //#region src/engine/form-authoring.d.ts
661
+ type FormAuthoringMode = "simple" | "custom";
662
+ declare const getFormAuthoringMode: (config: unknown) => FormAuthoringMode;
663
+ declare const hasSingleFormField: (config: unknown) => boolean;
664
+ declare const isValidSimpleFormConfig: (config: unknown) => boolean;
665
+ /**
666
+ * Canonicalizes the editor-facing mode without modifying groups, fields, or translations.
667
+ * Missing modes and malformed simple forms become custom; valid simple forms stay simple.
668
+ */
669
+ declare const normalizeFormAuthoringConfig: (config: unknown) => Record<string, unknown> | undefined;
670
+ /**
671
+ * Returns true only for an in-place edit of the existing sole field that the
672
+ * simple editor can still represent. Adding, moving, retyping, or exposing
673
+ * hidden field configuration is structural and must promote the form.
674
+ */
675
+ declare const isCompatibleSimpleFieldUpsert: ({
676
+ config,
677
+ field,
678
+ groupId,
679
+ index
680
+ }: {
681
+ config: unknown;
682
+ field: Record<string, unknown> & {
683
+ id: string;
684
+ key: string;
685
+ type: string;
686
+ };
687
+ groupId: string;
688
+ index?: number;
689
+ }) => boolean;
690
+ /**
691
+ * Structural form operations are a one-way transition out of simple mode unless the caller has
692
+ * proved that the same sole field remains compatible with the simple editor.
693
+ */
694
+ declare const transitionFormAuthoringMode: ({
695
+ config,
696
+ fieldGroups,
697
+ preserveSimpleMode
698
+ }: {
699
+ config: Record<string, unknown>;
700
+ fieldGroups: Record<string, unknown>[];
701
+ preserveSimpleMode?: boolean;
702
+ }) => Record<string, unknown>;
703
+ //#endregion
645
704
  //#region src/engine/audit.d.ts
646
705
  type SurveyAuditSeverity = "error" | "warning" | "info";
647
706
  type SurveyAuditCategory = "structure" | "content" | "localization" | "logic" | "responses" | "assets" | "quality";
@@ -664,6 +723,8 @@ interface SurveyAuditReport {
664
723
  summary: Record<SurveyAuditSeverity, number> & {
665
724
  total: number;
666
725
  };
726
+ findingCount: number;
727
+ truncated: boolean;
667
728
  metrics: {
668
729
  itemCount: number;
669
730
  localeCount: number;
@@ -681,5 +742,5 @@ declare const auditSurvey: (context: SurveyAssistantEngineContext, options?: {
681
742
  maxFindings?: number;
682
743
  }) => SurveyAuditReport;
683
744
  //#endregion
684
- export { normalizeText as $, SurveyOutlineNode as A, AssistantItemCreationResolution as At, formFieldDetailsSchema as B, resolveAssistantItemCreation as Bt, FormFieldGroupDetails as C, SurveyAssistantInspectionKeyEntry as Ct, SurveyFocusItemNode as D, deriveResponseSlotTypes as Dt, MAX_LIMIT as E, createSurveyAssistantEngineContext as Et, buildItemTranslationEntries as F, createSurveyAssistantCapabilities as Ft, getRawSurvey as G, formFieldGroupLayoutSchema as H, buildSurveyTranslations as I, createUnsupportedItemCapability as It, itemMatchesQuery as J, getRawSurveyItems as K, choiceOptionDetailsSchema as L, getDeterministicCreateItemTypes as Lt, buildConfigSearchText as M, SurveyAssistantCapabilityMismatchError as Mt, buildEmbeddedFormDetails as N, SurveyAssistantCapabilitySet as Nt, SurveyInspectionIndex as O, AssistantCapabilityReference as Ot, buildItemConfigDetails as P, assertSurveyAssistantCapabilities as Pt, mapRawItemsById as Q, clampLimit as R, inspectAssistantItem as Rt, FormFieldDetails as S, SurveyAssistantInspectionItemNode as St, ItemSummary as T, SurveyAssistantResponseSlotTypes as Tt, formSelectOptionDetailsSchema as U, formFieldGroupDetailsSchema as V, getKeyIndexEntries as W, mapKeyIndexById as X, itemSummarySchema as Y, mapOutlineById as Z, createSurveyChangeSet as _, validateExpression as _t, SurveyQualityReviewPrinciple as a, summarizeKeyIndexEntries as at, ChoiceOptionDetails as b, SurveyAssistantInspectionFocus as bt, SurveyAssistantTaskResultCacheOptions as c, summarizeRawItem as ct, buildSurveyAssistantTaskContext as d, ExpressionMutation as dt, parseCursor as et, TurnSurveyDraft as f, buildExpressionMutationPatches as ft, buildSurveyDocumentVersion as g, inferExpressionReturnType as gt, applyValidatedSurveyOperationsToDraft as h, ResponseSlotTypeLookup as ht, SurveyAuditSeverity as i, summarizeItemById as it, TranslationEntry as j, AssistantItemInspection as jt, SurveyKeyIndexEntry as k, AssistantItemCapabilityAdapter as kt, BuildSurveyAssistantTaskContextOptions as l, translationEntrySchema as lt, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT as m, expressionSchema as mt, SurveyAuditFinding as n, sliceWithCursor as nt, auditSurvey as o, summarizeKeyIndexEntry as ot, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL as p, expressionMutationSchema as pt, itemConfigDetailsSchema as q, SurveyAuditReport as r, summarizeFocusItemNode as rt, SurveyAssistantTaskResultCache as s, summarizeOutlineNode as st, SurveyAuditCategory as t, resolveItemSummary as tt, SurveyAssistantTaskPurpose as u, unique as ut, validateSurveyOperations as v, CreateSurveyAssistantEngineContextOptions as vt, ItemConfigDetails as w, SurveyAssistantInspectionOutlineNode as wt, DEFAULT_LIMIT as x, SurveyAssistantInspectionIndex as xt, normalizeSurveyChangeOperations as y, SurveyAssistantEngineContext as yt, findDirectChildrenByFullKey as z, resolveAssistantCapabilityReference as zt };
685
- //# sourceMappingURL=index-JXH-t2EJ.d.mts.map
745
+ export { getRawSurveyItems as $, FormFieldGroupDetails as A, SurveyAssistantInspectionKeyEntry as At, buildEmbeddedFormDetails as B, SurveyAssistantCapabilitySet as Bt, buildSurveyDocumentVersion as C, inferExpressionReturnType as Ct, ChoiceOptionDetails as D, SurveyAssistantInspectionFocus as Dt, normalizeSurveyChangeOperations as E, SurveyAssistantEngineContext as Et, SurveyInspectionIndex as F, AssistantCapabilityReference as Ft, clampLimit as G, inspectAssistantItem as Gt, buildItemTranslationEntries as H, createSurveyAssistantCapabilities as Ht, SurveyKeyIndexEntry as I, AssistantItemCapabilityAdapter as It, formFieldGroupDetailsSchema as J, findDirectChildrenByFullKey as K, resolveAssistantCapabilityReference as Kt, SurveyOutlineNode as L, AssistantItemCreationResolution as Lt, ItemSummary as M, SurveyAssistantResponseSlotTypes as Mt, MAX_LIMIT as N, createSurveyAssistantEngineContext as Nt, DEFAULT_LIMIT as O, SurveyAssistantInspectionIndex as Ot, SurveyFocusItemNode as P, deriveResponseSlotTypes as Pt, getRawSurvey as Q, TranslationEntry as R, AssistantItemInspection as Rt, applyValidatedSurveyOperationsToDraft as S, ResponseSlotTypeLookup as St, validateSurveyOperations as T, CreateSurveyAssistantEngineContextOptions as Tt, buildSurveyTranslations as U, createUnsupportedItemCapability as Ut, buildItemConfigDetails as V, assertSurveyAssistantCapabilities as Vt, choiceOptionDetailsSchema as W, getDeterministicCreateItemTypes as Wt, formSelectOptionDetailsSchema as X, formFieldGroupLayoutSchema as Y, getKeyIndexEntries as Z, SurveyAssistantTaskPurpose as _, unique as _t, SurveyQualityReviewPrinciple as a, mapRawItemsById as at, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL as b, expressionMutationSchema as bt, getFormAuthoringMode as c, resolveItemSummary as ct, isValidSimpleFormConfig as d, summarizeItemById as dt, itemConfigDetailsSchema as et, normalizeFormAuthoringConfig as f, summarizeKeyIndexEntries as ft, BuildSurveyAssistantTaskContextOptions as g, translationEntrySchema as gt, SurveyAssistantTaskResultCacheOptions as h, summarizeRawItem as ht, SurveyAuditSeverity as i, mapOutlineById as it, ItemConfigDetails as j, SurveyAssistantInspectionOutlineNode as jt, FormFieldDetails as k, SurveyAssistantInspectionItemNode as kt, hasSingleFormField as l, sliceWithCursor as lt, SurveyAssistantTaskResultCache as m, summarizeOutlineNode as mt, SurveyAuditFinding as n, itemSummarySchema as nt, auditSurvey as o, normalizeText as ot, transitionFormAuthoringMode as p, summarizeKeyIndexEntry as pt, formFieldDetailsSchema as q, resolveAssistantItemCreation as qt, SurveyAuditReport as r, mapKeyIndexById as rt, FormAuthoringMode as s, parseCursor as st, SurveyAuditCategory as t, itemMatchesQuery as tt, isCompatibleSimpleFieldUpsert as u, summarizeFocusItemNode as ut, buildSurveyAssistantTaskContext as v, ExpressionMutation as vt, createSurveyChangeSet as w, validateExpression as wt, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT as x, expressionSchema as xt, TurnSurveyDraft as y, buildExpressionMutationPatches as yt, buildConfigSearchText as z, SurveyAssistantCapabilityMismatchError as zt };
746
+ //# sourceMappingURL=index-CPOQgkTN.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CPOQgkTN.d.mts","names":[],"sources":["../src/engine/capabilities.ts","../src/engine/context.ts","../src/engine/expression-validation.ts","../src/engine/expression-mutations.ts","../src/engine/inspection.ts","../src/engine/normalization.ts","../src/engine/operations.ts","../src/engine/turn-survey-draft.ts","../src/engine/task-context.ts","../src/engine/task-result-cache.ts","../src/engine/form-authoring.ts","../src/engine/audit.ts"],"mappings":"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"}