@case-framework/survey-assistant 0.3.0 → 0.4.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 (76) hide show
  1. package/README.md +12 -4
  2. package/dist/capabilities-default.d.mts +1 -1
  3. package/dist/capabilities-default.mjs +1 -1
  4. package/dist/{constants-DrGZXtQf.d.mts → constants-k1b_evIb.d.mts} +5 -2
  5. package/dist/constants-k1b_evIb.d.mts.map +1 -0
  6. package/dist/{controller-proxy-CpkQRezb.mjs → controller-proxy-jWIPOZAv.mjs} +17 -8
  7. package/dist/controller-proxy-jWIPOZAv.mjs.map +1 -0
  8. package/dist/{controller-proxy-DmBdzqKs.d.mts → controller-proxy-quQjtA7j.d.mts} +2 -2
  9. package/dist/{controller-proxy-DmBdzqKs.d.mts.map → controller-proxy-quQjtA7j.d.mts.map} +1 -1
  10. package/dist/{engine-CWTuN3o2.mjs → engine-BvfUx_Jx.mjs} +85 -12
  11. package/dist/engine-BvfUx_Jx.mjs.map +1 -0
  12. package/dist/engine.d.mts +2 -2
  13. package/dist/engine.mjs +3 -3
  14. package/dist/{form-authoring-DCd9XfXf.mjs → form-authoring-BQh40yDb.mjs} +2 -2
  15. package/dist/{form-authoring-DCd9XfXf.mjs.map → form-authoring-BQh40yDb.mjs.map} +1 -1
  16. package/dist/{index-D4OitUg4.d.mts → index-8x1Eqlnz.d.mts} +4 -1
  17. package/dist/index-8x1Eqlnz.d.mts.map +1 -0
  18. package/dist/{index-Dxgg0-D_.d.mts → index-BDp6S7r9.d.mts} +11 -5
  19. package/dist/index-BDp6S7r9.d.mts.map +1 -0
  20. package/dist/{index-DZk20e3k.d.mts → index-biZnRl-h.d.mts} +3 -3
  21. package/dist/{index-DZk20e3k.d.mts.map → index-biZnRl-h.d.mts.map} +1 -1
  22. package/dist/{index-Bo4dHAo8.d.mts → index-r8HVcn5b.d.mts} +8 -4
  23. package/dist/index-r8HVcn5b.d.mts.map +1 -0
  24. package/dist/{memory-thread-repository-acbz6HZJ.mjs → memory-thread-repository-xBZOog_q.mjs} +49 -21
  25. package/dist/memory-thread-repository-xBZOog_q.mjs.map +1 -0
  26. package/dist/{protocol-DATvkr1S.mjs → protocol-DJUP4gc0.mjs} +10 -4
  27. package/dist/protocol-DJUP4gc0.mjs.map +1 -0
  28. package/dist/protocol.d.mts +1 -1
  29. package/dist/protocol.mjs +1 -1
  30. package/dist/{react-Br5YE8H-.mjs → react-CY6N7lVi.mjs} +25 -5
  31. package/dist/react-CY6N7lVi.mjs.map +1 -0
  32. package/dist/react-integration.d.mts +1 -1
  33. package/dist/react-integration.mjs +1 -1
  34. package/dist/react.d.mts +2 -2
  35. package/dist/react.mjs +2 -2
  36. package/dist/{request-context-BEjnaaFr.mjs → request-context-DixY5DYu.mjs} +3 -3
  37. package/dist/request-context-DixY5DYu.mjs.map +1 -0
  38. package/dist/server-agent.d.mts +4 -4
  39. package/dist/server-agent.d.mts.map +1 -1
  40. package/dist/server-agent.mjs +4 -3
  41. package/dist/server-agent.mjs.map +1 -1
  42. package/dist/server-runtime.d.mts +340 -7
  43. package/dist/server-runtime.d.mts.map +1 -1
  44. package/dist/server-runtime.mjs +321 -23
  45. package/dist/server-runtime.mjs.map +1 -1
  46. package/dist/server-tasks.d.mts +1 -1
  47. package/dist/server-tasks.mjs +5 -4
  48. package/dist/server-tasks.mjs.map +1 -1
  49. package/dist/server-tools.d.mts +1 -1
  50. package/dist/server-tools.mjs +1 -1
  51. package/dist/server.d.mts +6 -6
  52. package/dist/server.d.mts.map +1 -1
  53. package/dist/server.mjs +2 -2
  54. package/dist/{tasks-DQgL449A.d.mts → tasks-BWmTMXoK.d.mts} +3 -3
  55. package/dist/{tasks-DQgL449A.d.mts.map → tasks-BWmTMXoK.d.mts.map} +1 -1
  56. package/dist/{thread-handlers-CeYl45xG.d.mts → thread-handlers-D8gkLfU6.d.mts} +13 -5
  57. package/dist/{thread-handlers-CeYl45xG.d.mts.map → thread-handlers-D8gkLfU6.d.mts.map} +1 -1
  58. package/dist/{tools-Dg9HZrYU.mjs → tools-TXI8bfzZ.mjs} +25 -6
  59. package/dist/{tools-Dg9HZrYU.mjs.map → tools-TXI8bfzZ.mjs.map} +1 -1
  60. package/dist/ui.css +1 -1
  61. package/dist/ui.d.mts +3 -3
  62. package/dist/ui.d.mts.map +1 -1
  63. package/dist/ui.mjs +370 -127
  64. package/dist/ui.mjs.map +1 -1
  65. package/docs/integration.md +83 -62
  66. package/package.json +3 -3
  67. package/dist/constants-DrGZXtQf.d.mts.map +0 -1
  68. package/dist/controller-proxy-CpkQRezb.mjs.map +0 -1
  69. package/dist/engine-CWTuN3o2.mjs.map +0 -1
  70. package/dist/index-Bo4dHAo8.d.mts.map +0 -1
  71. package/dist/index-D4OitUg4.d.mts.map +0 -1
  72. package/dist/index-Dxgg0-D_.d.mts.map +0 -1
  73. package/dist/memory-thread-repository-acbz6HZJ.mjs.map +0 -1
  74. package/dist/protocol-DATvkr1S.mjs.map +0 -1
  75. package/dist/react-Br5YE8H-.mjs.map +0 -1
  76. package/dist/request-context-BEjnaaFr.mjs.map +0 -1
package/dist/engine.d.mts CHANGED
@@ -1,3 +1,3 @@
1
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-Bo4dHAo8.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 };
2
+ import { $ as getRawSurveyItems, A as FormFieldGroupDetails, At as SurveyAssistantInspectionIndex, B as buildEmbeddedFormDetails, Bt as AssistantItemInspection, C as buildSurveyDocumentVersion, Ct as deriveSurveyExpressionResponseSlots, D as ChoiceOptionDetails, Dt as CreateSurveyAssistantEngineContextOptions, E as normalizeSurveyChangeOperations, Et as validateExpression, F as SurveyInspectionIndex, Ft as createSurveyAssistantEngineContext, G as clampLimit, Gt as createUnsupportedItemCapability, H as buildItemTranslationEntries, Ht as SurveyAssistantCapabilitySet, I as SurveyKeyIndexEntry, It as deriveResponseSlotTypes, J as formFieldGroupDetailsSchema, Jt as resolveAssistantCapabilityReference, K as findDirectChildrenByFullKey, Kt as getDeterministicCreateItemTypes, L as SurveyOutlineNode, Lt as AssistantCapabilityReference, M as ItemSummary, Mt as SurveyAssistantInspectionKeyEntry, N as MAX_LIMIT, Nt as SurveyAssistantInspectionOutlineNode, O as DEFAULT_LIMIT, Ot as SurveyAssistantEngineContext, P as SurveyFocusItemNode, Pt as SurveyAssistantResponseSlotTypes, Q as getRawSurvey, R as TranslationEntry, Rt as AssistantItemCapabilityAdapter, S as applyValidatedSurveyOperationsToDraft, St as analyzeSurveyAssistantExpressionReferences, T as validateSurveyOperations, Tt as inferExpressionReturnType, U as buildSurveyTranslations, Ut as assertSurveyAssistantCapabilities, V as buildItemConfigDetails, Vt as SurveyAssistantCapabilityMismatchError, W as choiceOptionDetailsSchema, Wt as createSurveyAssistantCapabilities, X as formSelectOptionDetailsSchema, Y as formFieldGroupLayoutSchema, Yt as resolveAssistantItemCreation, 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 SurveyAssistantInspectionItemNode, k as FormFieldDetails, kt as SurveyAssistantInspectionFocus, 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 inspectAssistantItem, 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 ResponseSlotTypeLookup, x as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, xt as expressionSchema, y as TurnSurveyDraft, yt as buildExpressionMutationPatches, z as buildConfigSearchText, zt as AssistantItemCreationResolution } from "./index-r8HVcn5b.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, analyzeSurveyAssistantExpressionReferences, applyValidatedSurveyOperationsToDraft, assertSurveyAssistantCapabilities, auditSurvey, buildCapabilityDigest, buildConfigSearchText, buildEmbeddedFormDetails, buildExpressionMutationPatches, buildItemConfigDetails, buildItemTranslationEntries, buildSurveyAssistantTaskContext, buildSurveyDocumentVersion, buildSurveyTranslations, choiceOptionDetailsSchema, clampLimit, createSurveyAssistantCapabilities, createSurveyAssistantEngineContext, createSurveyChangeSet, createUnsupportedItemCapability, deriveResponseSlotTypes, deriveSurveyExpressionResponseSlots, 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 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 };
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-BQh40yDb.mjs";
3
+ import { $ as validateExpression, 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 inferExpressionReturnType, R as normalizeText, S as choiceOptionDetailsSchema, T as formFieldDetailsSchema, U as summarizeItemById, V as sliceWithCursor, W as summarizeKeyIndexEntries, X as analyzeSurveyAssistantExpressionReferences, Y as unique, Z as deriveSurveyExpressionResponseSlots, _ as buildConfigSearchText, a as MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, b as buildItemTranslationEntries, c as buildSurveyDocumentVersion, d as normalizeSurveyChangeOperations, et as createSurveyAssistantEngineContext, 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, tt as deriveResponseSlotTypes, u as validateSurveyOperations, v as buildEmbeddedFormDetails, w as findDirectChildrenByFullKey, x as buildSurveyTranslations, y as buildItemConfigDetails, z as parseCursor } from "./engine-BvfUx_Jx.mjs";
4
+ export { DEFAULT_LIMIT, MAX_LIMIT, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT, SurveyAssistantCapabilityMismatchError, SurveyAssistantTaskResultCache, TurnSurveyDraft, analyzeSurveyAssistantExpressionReferences, applyValidatedSurveyOperationsToDraft, assertSurveyAssistantCapabilities, auditSurvey, buildCapabilityDigest, buildConfigSearchText, buildEmbeddedFormDetails, buildExpressionMutationPatches, buildItemConfigDetails, buildItemTranslationEntries, buildSurveyAssistantTaskContext, buildSurveyDocumentVersion, buildSurveyTranslations, choiceOptionDetailsSchema, clampLimit, createSurveyAssistantCapabilities, createSurveyAssistantEngineContext, createSurveyChangeSet, createUnsupportedItemCapability, deriveResponseSlotTypes, deriveSurveyExpressionResponseSlots, 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 };
@@ -1,4 +1,4 @@
1
- import { q as assistantItemTypeManifestSchema } from "./protocol-DATvkr1S.mjs";
1
+ import { q as assistantItemTypeManifestSchema } from "./protocol-DJUP4gc0.mjs";
2
2
  import { buildCapabilityDigest, stableStringify } from "./digest.mjs";
3
3
  //#region src/engine/capabilities.ts
4
4
  const resolveAssistantCapabilityReference = ({ capabilities, itemType, topic }) => capabilities?.byItemType.get(itemType)?.references?.find((reference) => reference.topic === topic);
@@ -152,4 +152,4 @@ const transitionFormAuthoringMode = ({ config, fieldGroups, preserveSimpleMode =
152
152
  //#endregion
153
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
154
 
155
- //# sourceMappingURL=form-authoring-DCd9XfXf.mjs.map
155
+ //# sourceMappingURL=form-authoring-BQh40yDb.mjs.map
@@ -1 +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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"}
1
+ {"version":3,"file":"form-authoring-BQh40yDb.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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"}
@@ -18,6 +18,7 @@ declare const surveyAssistantErrorInfoSchema: z.ZodObject<{
18
18
  rate_limited: "rate_limited";
19
19
  }>;
20
20
  detail: z.ZodOptional<z.ZodString>;
21
+ retryable: z.ZodOptional<z.ZodBoolean>;
21
22
  }, z.core.$strip>;
22
23
  type SurveyAssistantErrorInfo = z.infer<typeof surveyAssistantErrorInfoSchema>;
23
24
  declare const serializeSurveyAssistantError: (error: SurveyAssistantErrorInfo) => string;
@@ -42,6 +43,7 @@ declare const surveyAssistantThreadSchema: z.ZodObject<{
42
43
  updatedAt: z.ZodString;
43
44
  }, z.core.$strip>;
44
45
  declare const surveyAssistantThreadListSchema: z.ZodObject<{
46
+ nextCursor: z.ZodOptional<z.ZodString>;
45
47
  threads: z.ZodArray<z.ZodObject<{
46
48
  id: z.ZodString;
47
49
  title: z.ZodString;
@@ -54,6 +56,7 @@ declare const surveyAssistantThreadListSchema: z.ZodObject<{
54
56
  }, z.core.$strip>>;
55
57
  }, z.core.$strip>;
56
58
  declare const surveyAssistantThreadTranscriptSchema: z.ZodObject<{
59
+ nextCursor: z.ZodOptional<z.ZodString>;
57
60
  thread: z.ZodObject<{
58
61
  id: z.ZodString;
59
62
  title: z.ZodString;
@@ -735,4 +738,4 @@ type SurveyAssistantModelOption = z.infer<typeof surveyAssistantModelOptionSchem
735
738
  type SurveyAssistantModelCatalog = z.infer<typeof surveyAssistantModelCatalogSchema>;
736
739
  //#endregion
737
740
  export { surveyAssistantTaskRequestSchema as A, SurveyAssistantThreadTranscript as B, surveyAssistantSuggestItemKeyResultSchema as C, surveyAssistantTaskContextSchema as D, surveyAssistantSuggestedTextSchema as E, SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE as F, surveyAssistantThreadTranscriptSchema as G, createSurveyAssistantThreadInputSchema as H, SurveyAssistantAttachmentReference as I, SurveyAssistantErrorInfo as J, updateSurveyAssistantThreadInputSchema as K, SurveyAssistantThread as L, surveyAssistantTranslateContentInputSchema as M, surveyAssistantTranslateContentResultSchema as N, surveyAssistantTaskInvocationModeSchema as O, CreateSurveyAssistantThreadInput as P, surveyAssistantErrorInfoSchema as Q, SurveyAssistantThreadList as R, surveyAssistantSuggestItemKeyInputSchema as S, surveyAssistantSuggestItemLabelResultSchema as T, surveyAssistantThreadListSchema as U, UpdateSurveyAssistantThreadInput as V, surveyAssistantThreadSchema as W, serializeSurveyAssistantError as X, parseSurveyAssistantError as Y, surveyAssistantErrorCodeSchema as Z, SurveyAssistantTranslateContentEntry as _, SurveyAssistantKeySuggestion as a, surveyAssistantKeySuggestionCategorySchema as b, SurveyAssistantSuggestItemKeyInput as c, SurveyAssistantSuggestItemLabelResult as d, SurveyAssistantSuggestedText as f, SurveyAssistantTaskRequest as g, SurveyAssistantTaskItemSummary as h, surveyAssistantModelOptionSchema as i, surveyAssistantTranslateContentEntrySchema as j, surveyAssistantTaskItemSummarySchema as k, SurveyAssistantSuggestItemKeyResult as l, SurveyAssistantTaskInvocationMode as m, SurveyAssistantModelOption as n, SurveyAssistantKeySuggestionCategory as o, SurveyAssistantTaskContext as p, SurveyAssistantErrorCode as q, surveyAssistantModelCatalogSchema as r, SurveyAssistantLabelSuggestion as s, SurveyAssistantModelCatalog as t, SurveyAssistantSuggestItemLabelInput as u, SurveyAssistantTranslateContentInput as v, surveyAssistantSuggestItemLabelInputSchema as w, surveyAssistantKeySuggestionSchema as x, SurveyAssistantTranslateContentResult as y, SurveyAssistantThreadTitleMode as z };
738
- //# sourceMappingURL=index-D4OitUg4.d.mts.map
741
+ //# sourceMappingURL=index-8x1Eqlnz.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-8x1Eqlnz.d.mts","names":[],"sources":["../src/protocol/errors.ts","../src/protocol/threads.ts","../src/protocol/tasks.ts","../src/protocol/models.ts"],"mappings":";;;cAEa,8BAAA,EAA8B,CAAA,CAAA,OAAA;;;;;;;KAQ/B,wBAAA,GAA2B,CAAA,CAAE,KAAA,QAAa,8BAAA;AAAA,cAEzC,8BAAA,EAA8B,CAAA,CAAA,SAAA;;;;;;;;;;;KAM/B,wBAAA,GAA2B,CAAA,CAAE,KAAA,QAAa,8BAAA;AAAA,cAIzC,6BAAA,GAAiC,KAAA,EAAO,wBAAA;AAAA,cAGxC,yBAAA,GAA6B,KAAA,cAAiB,wBAAA;;;cCvB9C,qCAAA;AAAA,UAEI,kCAAA;EACf,UAAA;EACA,QAAA;EACA,SAAA;EACA,KAAA;AAAA;AAAA,cAGW,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;cAQ3B,+BAAA,EAA+B,CAAA,CAAA,SAAA;;;;;;;;;;;;;cAK/B,qCAAA,EAAqC,CAAA,CAAA,SAAA;;;;;;;;;;;;;;cAMrC,sCAAA,EAAsC,CAAA,CAAA,SAAA;;;cAItC,sCAAA,EAAsC,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA;;;;;;;KAWvC,8BAAA;AAAA,KACA,qBAAA,GAAwB,CAAA,CAAE,KAAA,QAAa,2BAAA;AAAA,KACvC,yBAAA,GAA4B,CAAA,CAAE,KAAA,QAAa,+BAAA;AAAA,KAC3C,+BAAA,GAAkC,CAAA,CAAE,KAAA,QAAa,qCAAA;AAAA,KACjD,gCAAA,GAAmC,CAAA,CAAE,KAAA,QACxC,sCAAA;AAAA,KAEG,gCAAA,GAAmC,CAAA,CAAE,KAAA,QACxC,sCAAA;;;cCnDI,uCAAA,EAAuC,CAAA,CAAA,OAAA;;;;KAExC,iCAAA,GAAoC,CAAA,CAAE,KAAA,QACzC,uCAAA;AAAA,cAGI,kCAAA,EAAkC,CAAA,CAAA,SAAA;;;KAEnC,4BAAA,GAA+B,CAAA,CAAE,KAAA,QAAa,kCAAA;AAAA,cAE7C,0CAAA,EAA0C,CAAA,CAAA,OAAA;;;;;;KAO3C,oCAAA,GAAuC,CAAA,CAAE,KAAA,QAC5C,0CAAA;AAAA,cAGI,kCAAA,EAAkC,CAAA,CAAA,SAAA;;;;;;;;;;KAKnC,4BAAA,GAA+B,CAAA,CAAE,KAAA,QAAa,kCAAA;AAAA,cAE7C,wCAAA,EAAwC,CAAA,CAAA,SAAA;;;;;;;KAQzC,kCAAA,GAAqC,CAAA,CAAE,KAAA,QAC1C,wCAAA;AAAA,cAGI,yCAAA,EAAyC,CAAA,CAAA,SAAA;;;;;;;;;;;;KAI1C,mCAAA,GAAsC,CAAA,CAAE,KAAA,QAC3C,yCAAA;AAAA,KAGG,8BAAA,GAAiC,4BAAA;AAAA,cAEhC,0CAAA,EAA0C,CAAA,CAAA,SAAA;;;;;;;KAQ3C,oCAAA,GAAuC,CAAA,CAAE,KAAA,QAC5C,0CAAA;AAAA,cAGI,2CAAA,EAA2C,CAAA,CAAA,SAAA;;;;;KAI5C,qCAAA,GAAwC,CAAA,CAAE,KAAA,QAC7C,2CAAA;AAAA,cAGI,0CAAA,EAA0C,CAAA,CAAA,SAAA;;;;;KAM3C,oCAAA,GAAuC,CAAA,CAAE,KAAA,QAC5C,0CAAA;AAAA,cAGI,0CAAA,EAA0C,CAAA,CAAA,SAAA;;;;;;;;;KAM3C,oCAAA,GAAuC,CAAA,CAAE,KAAA,QAC5C,0CAAA;AAAA,cAGI,2CAAA,EAA2C,CAAA,CAAA,SAAA;;;KAI5C,qCAAA,GAAwC,CAAA,CAAE,KAAA,QAC7C,2CAAA;AAAA,cAGI,oCAAA,EAAoC,CAAA,CAAA,SAAA;;;;;;;;;;;;;KAgBrC,8BAAA,GAAiC,CAAA,CAAE,KAAA,QAAa,oCAAA;AAAA,cAI/C,gCAAA,EAAgC,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkEjC,0BAAA,GAA6B,CAAA,CAAE,KAAA,QAAa,gCAAA;AAAA,cAU3C,gCAAA,EAAgC,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkBjC,0BAAA,GAA6B,CAAA,CAAE,KAAA,QAAa,gCAAA;;;cCpN3C,gCAAA,EAAgC,CAAA,CAAA,SAAA;;;;cAKhC,iCAAA,EAAiC,CAAA,CAAA,SAAA;;;;;;;KAUlC,0BAAA,GAA6B,CAAA,CAAE,KAAA,QAAa,gCAAA;AAAA,KAC5C,2BAAA,GAA8B,CAAA,CAAE,KAAA,QAAa,iCAAA"}
@@ -1,6 +1,6 @@
1
- import { B as SurveyAssistantThreadTranscript, L as SurveyAssistantThread, n as SurveyAssistantModelOption, q as SurveyAssistantErrorCode, t as SurveyAssistantModelCatalog } from "./index-D4OitUg4.mjs";
1
+ import { B as SurveyAssistantThreadTranscript, L as SurveyAssistantThread, R as SurveyAssistantThreadList, n as SurveyAssistantModelOption, q as SurveyAssistantErrorCode, t as SurveyAssistantModelCatalog } from "./index-8x1Eqlnz.mjs";
2
2
  import { f as SurveyAssistantTurnFinal, h as SurveyChangeSet, i as SurveyApplyResult, s as SurveyAssistantApplyPolicy, t as ApplyReceipt, wt as SurveyDocumentVersion, xt as SurveyAssistantSnapshot } from "./lifecycle-DWv5CiSu.mjs";
3
- import { a as SurveyAssistantController, m as SurveyAssistantLaunchUIContext } from "./controller-proxy-DmBdzqKs.mjs";
3
+ import { a as SurveyAssistantController, m as SurveyAssistantLaunchUIContext } from "./controller-proxy-quQjtA7j.mjs";
4
4
  import * as _$ai from "ai";
5
5
  import { ChatStatus, DefaultChatTransport, FileUIPart, UIMessage } from "ai";
6
6
 
@@ -109,7 +109,11 @@ interface SurveyAssistantThreadClient {
109
109
  delete(threadId: string): Promise<void>;
110
110
  create(title?: string): Promise<SurveyAssistantThread>;
111
111
  list(): Promise<SurveyAssistantThread[]>;
112
- read(threadId: string): Promise<SurveyAssistantThreadTranscript>;
112
+ /** Paged history capability. Older custom clients may omit this method. */
113
+ listPage?(options?: {
114
+ cursor?: string;
115
+ }): Promise<SurveyAssistantThreadList>;
116
+ read(threadId: string, cursor?: string): Promise<SurveyAssistantThreadTranscript>;
113
117
  rename(threadId: string, title: string): Promise<SurveyAssistantThread>;
114
118
  setAutomaticTitle(threadId: string, title?: string): Promise<SurveyAssistantThread>;
115
119
  }
@@ -118,7 +122,8 @@ declare const createSurveyAssistantThreadClient: (api?: string) => SurveyAssista
118
122
  //#region src/react/client-error.d.ts
119
123
  declare class SurveyAssistantClientError extends Error {
120
124
  readonly code: SurveyAssistantErrorCode;
121
- constructor(code: SurveyAssistantErrorCode, message: string);
125
+ readonly retryable: boolean;
126
+ constructor(code: SurveyAssistantErrorCode, message: string, retryable?: boolean);
122
127
  }
123
128
  //#endregion
124
129
  //#region src/react/model-catalog.d.ts
@@ -193,6 +198,7 @@ interface SurveyAssistantSession {
193
198
  isStreaming: boolean;
194
199
  latestTurnOutcome: SurveyTurnOutcome | null;
195
200
  messages: UIMessage[];
201
+ prependMessages(messages: UIMessage[]): void;
196
202
  state: SurveyAssistantSessionState;
197
203
  status: ChatStatus;
198
204
  stop(): void;
@@ -215,4 +221,4 @@ declare const useSurveyAssistantSession: ({
215
221
  }: SurveyAssistantSessionOptions) => SurveyAssistantSession;
216
222
  //#endregion
217
223
  export { SurveyAssistantSessionEvent as C, reduceSurveyAssistantSessionState as E, unwrapSurveyAssistantToolOutput as S, isSurveyAssistantTurnActive as T, createApplyReceipts as _, SurveyAssistantModelCatalogClient as a, resolveLatestSurveyTurnAuthorization as b, createSurveyAssistantModelCatalogClient as c, SurveyAssistantThreadClient as d, createSurveyAssistantThreadClient as f, collectSurveyChangeSets as g, SurveyTurnOutcome as h, useSurveyAssistantSession as i, useSurveyAssistantModelCatalog as l, SurveyTurnAuthorization as m, SurveyAssistantSessionOptions as n, SurveyAssistantModelCatalogState as o, createSurveyAssistantTransport as p, SurveyAssistantSubmitMessage as r, UseSurveyAssistantModelCatalogOptions as s, SurveyAssistantSession as t, SurveyAssistantClientError as u, getSurveyDocumentVersionFromSnapshot as v, SurveyAssistantSessionState as w, resolveSurveyTurnOutcome as x, parseSurveyChangeSet as y };
218
- //# sourceMappingURL=index-Dxgg0-D_.d.mts.map
224
+ //# sourceMappingURL=index-BDp6S7r9.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BDp6S7r9.d.mts","names":[],"sources":["../src/react/session-state.ts","../src/react/turn-authorization.ts","../src/react/transport.ts","../src/react/thread-client.ts","../src/react/client-error.ts","../src/react/model-catalog.ts","../src/react/use-survey-assistant-session.ts"],"mappings":"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"}
@@ -28,7 +28,7 @@ declare const surveyAssetTool: _$_mastra_core_tools0.Tool<{
28
28
  declare const SURVEY_ASSISTANT_TOOL_IDS: readonly ["survey_inspect", "survey_change", "survey_expression", "survey_authoring_reference", "survey_attachment", "survey_audit", "survey_asset"];
29
29
  declare const surveyAssistantTools: Readonly<{
30
30
  survey_inspect: _$_mastra_core_tools0.Tool<{
31
- action: "current-context" | "search-items" | "item-details" | "localization" | "assets" | "raw-json";
31
+ action: "current-context" | "search-items" | "item-details" | "localization" | "assets" | "expression-diagnostics" | "raw-json";
32
32
  reason?: string | undefined;
33
33
  scopes?: ("summary" | "selected-item" | "outline" | "response-slots" | "ui-context" | "history")[] | undefined;
34
34
  query?: string | undefined;
@@ -44,7 +44,7 @@ declare const surveyAssistantTools: Readonly<{
44
44
  limit?: number | undefined;
45
45
  }, {
46
46
  ok: boolean;
47
- action: "current-context" | "search-items" | "item-details" | "localization" | "assets" | "raw-json";
47
+ action: "current-context" | "search-items" | "item-details" | "localization" | "assets" | "expression-diagnostics" | "raw-json";
48
48
  modelSummary: string;
49
49
  reason?: string | undefined;
50
50
  result?: unknown;
@@ -137,4 +137,4 @@ declare const surveyAssistantTools: Readonly<{
137
137
  }>;
138
138
  //#endregion
139
139
  export { surveyAuditTool as i, surveyAssistantTools as n, surveyAssetTool as r, SURVEY_ASSISTANT_TOOL_IDS as t };
140
- //# sourceMappingURL=index-DZk20e3k.d.mts.map
140
+ //# sourceMappingURL=index-biZnRl-h.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DZk20e3k.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,wBAAe,IAAA;;;;;;;;GA6H1B,oBAAA;;;cCvRW,yBAAA;AAAA,cAUA,oBAAA,EAAoB,QAAA;;;;;;;;;;;;;;;;;;;;;;uBAQ/B,qBAAA,CAAA,oBAAA"}
1
+ {"version":3,"file":"index-biZnRl-h.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,wBAAe,IAAA;;;;;;;;GA6H1B,oBAAA;;;cCvRW,yBAAA;AAAA,cAUA,oBAAA,EAAoB,QAAA;;;;;;;;;;;;;;;;;;;;;;uBAQ/B,qBAAA,CAAA,oBAAA"}
@@ -1,8 +1,8 @@
1
1
  import { i as AssistantItemTypeManifest, o as SurveyAssistantCapabilityManifest } from "./capabilities-CnsVuJ1k.mjs";
2
- import { p as SurveyAssistantTaskContext } from "./index-D4OitUg4.mjs";
2
+ import { p as SurveyAssistantTaskContext } from "./index-8x1Eqlnz.mjs";
3
3
  import { Ct as SurveyDocumentSnapshot, F as SurveyValidationIssue, I as SurveyValidationResult, N as SurveyOperation, Pt as JsonValue$1, f as SurveyAssistantTurnFinal, h as SurveyChangeSet, wt as SurveyDocumentVersion } from "./lifecycle-DWv5CiSu.mjs";
4
4
  import { z } from "zod";
5
- import { JsonExpression, JsonPatchOperation, RawSurvey, RawSurveyItem, ResponseValue, SurveyTranslations, ValueType } from "@case-framework/survey-core";
5
+ import { JsonExpression, JsonPatchOperation, RawSurvey, RawSurveyItem, ResponseValue, SurveyExpressionReferenceDiagnostic, SurveyExpressionResponseSlot, SurveyTranslations, ValueType } from "@case-framework/survey-core";
6
6
 
7
7
  //#region src/engine/capabilities.d.ts
8
8
  interface AssistantCapabilityReference {
@@ -178,6 +178,10 @@ declare const validateExpression: ({
178
178
  scope: string;
179
179
  }) => void;
180
180
  //#endregion
181
+ //#region src/engine/expression-reference-integrity.d.ts
182
+ declare const deriveSurveyExpressionResponseSlots: (survey: RawSurvey, trustedCapabilities?: SurveyAssistantCapabilitySet) => SurveyExpressionResponseSlot[];
183
+ declare const analyzeSurveyAssistantExpressionReferences: (survey: RawSurvey, trustedCapabilities?: SurveyAssistantCapabilitySet) => SurveyExpressionReferenceDiagnostic[];
184
+ //#endregion
181
185
  //#region src/engine/expression-mutations.d.ts
182
186
  declare const expressionSchema: z.ZodType<JsonExpression>;
183
187
  declare const expressionMutationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -743,5 +747,5 @@ declare const auditSurvey: (context: SurveyAssistantEngineContext, options?: {
743
747
  maxFindings?: number;
744
748
  }) => SurveyAuditReport;
745
749
  //#endregion
746
- 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 };
747
- //# sourceMappingURL=index-Bo4dHAo8.d.mts.map
750
+ export { getRawSurveyItems as $, FormFieldGroupDetails as A, SurveyAssistantInspectionIndex as At, buildEmbeddedFormDetails as B, AssistantItemInspection as Bt, buildSurveyDocumentVersion as C, deriveSurveyExpressionResponseSlots as Ct, ChoiceOptionDetails as D, CreateSurveyAssistantEngineContextOptions as Dt, normalizeSurveyChangeOperations as E, validateExpression as Et, SurveyInspectionIndex as F, createSurveyAssistantEngineContext as Ft, clampLimit as G, createUnsupportedItemCapability as Gt, buildItemTranslationEntries as H, SurveyAssistantCapabilitySet as Ht, SurveyKeyIndexEntry as I, deriveResponseSlotTypes as It, formFieldGroupDetailsSchema as J, resolveAssistantCapabilityReference as Jt, findDirectChildrenByFullKey as K, getDeterministicCreateItemTypes as Kt, SurveyOutlineNode as L, AssistantCapabilityReference as Lt, ItemSummary as M, SurveyAssistantInspectionKeyEntry as Mt, MAX_LIMIT as N, SurveyAssistantInspectionOutlineNode as Nt, DEFAULT_LIMIT as O, SurveyAssistantEngineContext as Ot, SurveyFocusItemNode as P, SurveyAssistantResponseSlotTypes as Pt, getRawSurvey as Q, TranslationEntry as R, AssistantItemCapabilityAdapter as Rt, applyValidatedSurveyOperationsToDraft as S, analyzeSurveyAssistantExpressionReferences as St, validateSurveyOperations as T, inferExpressionReturnType as Tt, buildSurveyTranslations as U, assertSurveyAssistantCapabilities as Ut, buildItemConfigDetails as V, SurveyAssistantCapabilityMismatchError as Vt, choiceOptionDetailsSchema as W, createSurveyAssistantCapabilities as Wt, formSelectOptionDetailsSchema as X, formFieldGroupLayoutSchema as Y, resolveAssistantItemCreation as Yt, 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, SurveyAssistantInspectionItemNode as jt, FormFieldDetails as k, SurveyAssistantInspectionFocus 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, inspectAssistantItem 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, ResponseSlotTypeLookup as wt, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT as x, expressionSchema as xt, TurnSurveyDraft as y, buildExpressionMutationPatches as yt, buildConfigSearchText as z, AssistantItemCreationResolution as zt };
751
+ //# sourceMappingURL=index-r8HVcn5b.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-r8HVcn5b.d.mts","names":[],"sources":["../src/engine/capabilities.ts","../src/engine/context.ts","../src/engine/expression-validation.ts","../src/engine/expression-reference-integrity.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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"}
@@ -1,8 +1,8 @@
1
- import { A as createSurveyAssistantThreadInputSchema, Mt as serializeSurveyAssistantError, P as updateSurveyAssistantThreadInputSchema, k as SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, n as SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE } from "./protocol-DATvkr1S.mjs";
2
- import { s as SurveyAssistantCapabilityMismatchError } from "./form-authoring-DCd9XfXf.mjs";
3
- import { r as TurnSurveyDraft } from "./engine-CWTuN3o2.mjs";
1
+ import { A as createSurveyAssistantThreadInputSchema, Mt as serializeSurveyAssistantError, P as updateSurveyAssistantThreadInputSchema, k as SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, n as SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE } from "./protocol-DJUP4gc0.mjs";
2
+ import { s as SurveyAssistantCapabilityMismatchError } from "./form-authoring-BQh40yDb.mjs";
3
+ import { r as TurnSurveyDraft } from "./engine-BvfUx_Jx.mjs";
4
4
  import "./constants-CFUWrRtl.mjs";
5
- import { a as parseSurveyAssistantPreviousSettledVersion, i as parseSurveyAssistantPreviousApplyOutcome, o as parseSurveyAssistantSnapshot, t as buildSurveyAssistantRequestContext } from "./request-context-BEjnaaFr.mjs";
5
+ import { a as parseSurveyAssistantPreviousSettledVersion, i as parseSurveyAssistantPreviousApplyOutcome, o as parseSurveyAssistantSnapshot, t as buildSurveyAssistantRequestContext } from "./request-context-DixY5DYu.mjs";
6
6
  import { d as readSurveyAssistantRequestJson, f as validateSurveyAssistantMessages, n as SURVEY_ASSISTANT_DEFAULT_REQUEST_LIMITS, u as SurveyAssistantRequestError } from "./request-guardrails-h4t6u8mP.mjs";
7
7
  import { createUIMessageStreamResponse } from "ai";
8
8
  import { handleChatStream } from "@mastra/ai-sdk";
@@ -301,7 +301,7 @@ const loadSurveyAssistantDocuments = async ({ documents, repository, resourceId,
301
301
  //#endregion
302
302
  //#region src/server/handler.ts
303
303
  const DEFAULT_MAX_STEPS = 48;
304
- const DEFAULT_MAX_CONCURRENT_REQUESTS = 4;
304
+ const DEFAULT_MAX_CONCURRENT_REQUESTS = 8;
305
305
  const DEFAULT_FIRST_RESPONSE_TIMEOUT_MS = 900 * 1e3;
306
306
  const DEFAULT_IDLE_TIMEOUT_MS = 300 * 1e3;
307
307
  const DEFAULT_MAX_DURATION_MS = 3600 * 1e3;
@@ -366,9 +366,14 @@ const validateModelSelection = (selection) => {
366
366
  ...shared
367
367
  };
368
368
  })();
369
+ const providerName = selection.providerName === void 0 ? void 0 : optionalRequestedId(selection.providerName);
370
+ const providerOptions = selection.providerOptions;
371
+ if (selection.providerName !== void 0 && !providerName || providerOptions !== void 0 && !isRecord(providerOptions)) return null;
369
372
  return id && (stringModel || objectModel) ? {
370
373
  id,
371
- model: stringModel ?? objectModel
374
+ model: stringModel ?? objectModel,
375
+ ...providerName ? { providerName } : {},
376
+ ...providerOptions ? { providerOptions } : {}
372
377
  } : null;
373
378
  };
374
379
  const readNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
@@ -462,9 +467,11 @@ const formatSurveyAssistantStreamError = (error) => {
462
467
  const statusCode = Number(statusLevel?.statusCode);
463
468
  const detail = messageLevel ? extractUserErrorMessageFromLevel(messageLevel) : void 0;
464
469
  const formattedDetail = detail ? formatKnownProviderError(detail) : void 0;
470
+ const code = classifyStreamError(formattedDetail ?? "", Number.isFinite(statusCode) ? statusCode : void 0);
465
471
  return serializeSurveyAssistantError({
466
- code: classifyStreamError(formattedDetail ?? "", Number.isFinite(statusCode) ? statusCode : void 0),
467
- ...formattedDetail ? { detail: formattedDetail } : {}
472
+ code,
473
+ ...formattedDetail ? { detail: formattedDetail } : {},
474
+ retryable: code === "rate_limited" || code === "request_failed" && (!Number.isFinite(statusCode) || statusCode >= 500)
468
475
  });
469
476
  };
470
477
  const requestErrorResponse = (error, fallback) => {
@@ -707,7 +714,7 @@ const createSurveyAssistantChatHandler = (options) => {
707
714
  defaultOptions: {
708
715
  activeTools: [...options.activeTools],
709
716
  maxSteps,
710
- ...options.providerOptions ? { providerOptions: options.providerOptions } : {}
717
+ ...modelSelection?.providerOptions ?? options.providerOptions ? { providerOptions: modelSelection?.providerOptions ?? options.providerOptions } : {}
711
718
  },
712
719
  sendReasoning: options.sendReasoning ?? true,
713
720
  messageMetadata: ({ part }) => {
@@ -741,7 +748,7 @@ const createSurveyAssistantChatHandler = (options) => {
741
748
  options.onTurnMetrics?.({
742
749
  identity,
743
750
  metrics,
744
- provider: options.providerName,
751
+ provider: modelSelection?.providerName ?? options.providerName,
745
752
  turnId: turnDraft.turnId
746
753
  });
747
754
  } catch (error) {
@@ -798,7 +805,12 @@ const createSurveyAssistantThreadHandlers = ({ authorize, repository }) => {
798
805
  const list = async (request) => {
799
806
  try {
800
807
  const identity = await authorize(request);
801
- return json({ threads: (await repository.list(identity.resourceId, identity.metadata)).filter((thread) => ownsThread(thread, identity) && typeof thread.metadata?.archivedAt !== "string").map(asThread) });
808
+ const cursor = new URL(request.url).searchParams.get("cursor")?.trim() || void 0;
809
+ const result = await repository.list(identity.resourceId, identity.metadata, { ...cursor ? { cursor } : {} });
810
+ return json({
811
+ threads: (Array.isArray(result) ? result : result.threads).filter((thread) => ownsThread(thread, identity) && typeof thread.metadata?.archivedAt !== "string").map(asThread),
812
+ ...!Array.isArray(result) && result.nextCursor ? { nextCursor: result.nextCursor } : {}
813
+ });
802
814
  } catch (error) {
803
815
  return errorResponse(error);
804
816
  }
@@ -826,9 +838,12 @@ const createSurveyAssistantThreadHandlers = ({ authorize, repository }) => {
826
838
  const identity = await authorize(request);
827
839
  const thread = await getOwnedThread(repository, identity, threadId);
828
840
  if (!thread || typeof thread.metadata?.archivedAt === "string") return json({ error: "Chat not found." }, 404);
841
+ const cursor = new URL(request.url).searchParams.get("cursor")?.trim() || void 0;
842
+ const result = await repository.readMessages(threadId, identity.resourceId, cursor);
829
843
  return json({
830
844
  thread: asThread(thread),
831
- messages: await repository.readMessages(threadId, identity.resourceId)
845
+ messages: Array.isArray(result) ? result : result.messages,
846
+ ...!Array.isArray(result) && result.nextCursor ? { nextCursor: result.nextCursor } : {}
832
847
  });
833
848
  } catch (error) {
834
849
  return errorResponse(error);
@@ -883,7 +898,7 @@ const createSurveyAssistantThreadHandlers = ({ authorize, repository }) => {
883
898
  };
884
899
  //#endregion
885
900
  //#region src/server/memory-thread-repository.ts
886
- const createMastraMemoryThreadRepository = ({ getMemory, maxMessagesPerTranscript = 1e3, maxThreadsPerList = 100, threadDocuments }) => ({
901
+ const createMastraMemoryThreadRepository = ({ getMemory, maxMessagesPerTranscript = 100, maxThreadsPerList = 30, threadDocuments }) => ({
887
902
  async create({ metadata, resourceId, title }) {
888
903
  return (await getMemory()).createThread({
889
904
  metadata,
@@ -895,8 +910,10 @@ const createMastraMemoryThreadRepository = ({ getMemory, maxMessagesPerTranscrip
895
910
  async get(threadId) {
896
911
  return (await getMemory()).getThreadById({ threadId });
897
912
  },
898
- async list(resourceId, metadata) {
899
- return (await (await getMemory()).listThreads({
913
+ async list(resourceId, metadata, options) {
914
+ const page = Number.parseInt(options?.cursor ?? "0", 10);
915
+ const perPage = Math.max(1, Math.min(200, maxThreadsPerList));
916
+ const result = await (await getMemory()).listThreads({
900
917
  filter: {
901
918
  metadata,
902
919
  resourceId
@@ -905,19 +922,30 @@ const createMastraMemoryThreadRepository = ({ getMemory, maxMessagesPerTranscrip
905
922
  field: "updatedAt",
906
923
  direction: "DESC"
907
924
  },
908
- perPage: Math.max(1, Math.min(1e3, maxThreadsPerList))
909
- })).threads;
925
+ page: Number.isFinite(page) && page >= 0 ? page : 0,
926
+ perPage
927
+ });
928
+ return {
929
+ ...result.hasMore ? { nextCursor: String(result.page + 1) } : {},
930
+ threads: result.threads
931
+ };
910
932
  },
911
- async readMessages(threadId, resourceId) {
912
- return toAISdkMessages([...(await (await getMemory()).recall({
933
+ async readMessages(threadId, resourceId, cursor) {
934
+ const page = Number.parseInt(cursor ?? "0", 10);
935
+ const result = await (await getMemory()).recall({
913
936
  threadId,
914
937
  resourceId,
938
+ page: Number.isFinite(page) && page >= 0 ? page : 0,
915
939
  perPage: Math.max(1, Math.min(5e3, maxMessagesPerTranscript)),
916
940
  orderBy: {
917
941
  field: "createdAt",
918
942
  direction: "DESC"
919
943
  }
920
- })).messages].reverse(), { version: "v6" });
944
+ });
945
+ return {
946
+ messages: toAISdkMessages([...result.messages].reverse(), { version: "v6" }),
947
+ ...result.hasMore ? { nextCursor: String(result.page + 1) } : {}
948
+ };
921
949
  },
922
950
  async delete(threadId) {
923
951
  const memory = await getMemory();
@@ -939,4 +967,4 @@ const createMastraMemoryThreadRepository = ({ getMemory, maxMessagesPerTranscrip
939
967
  //#endregion
940
968
  export { describeSurveyAssistantStreamError as a, loadSurveyAssistantDocuments as c, removeHistoricalSurveyAssistantAttachments as d, replaceCurrentSurveyAssistantAttachmentsWithReferences as f, createSurveyAssistantChatHandler as i, loadSurveyAssistantThreadAttachments as l, createSurveyAssistantThreadHandlers as n, formatSurveyAssistantStreamError as o, createSurveyAssistantTurnStream as p, SurveyAssistantAuthorizationError as r, getSurveyAssistantReplayableDocuments as s, createMastraMemoryThreadRepository as t, registerSurveyAssistantThreadAttachments as u };
941
969
 
942
- //# sourceMappingURL=memory-thread-repository-acbz6HZJ.mjs.map
970
+ //# sourceMappingURL=memory-thread-repository-xBZOog_q.mjs.map