@case-framework/survey-assistant 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +8 -0
  2. package/dist/capabilities-default.d.mts +1 -1
  3. package/dist/{constants-k1b_evIb.d.mts → constants-DbrJxxOh.d.mts} +2 -2
  4. package/dist/{constants-k1b_evIb.d.mts.map → constants-DbrJxxOh.d.mts.map} +1 -1
  5. package/dist/{controller-proxy-quQjtA7j.d.mts → controller-proxy-BdKF2yrq.d.mts} +2 -2
  6. package/dist/{controller-proxy-quQjtA7j.d.mts.map → controller-proxy-BdKF2yrq.d.mts.map} +1 -1
  7. package/dist/{engine-BvfUx_Jx.mjs → engine-DcSdLRle.mjs} +88 -1
  8. package/dist/{engine-BvfUx_Jx.mjs.map → engine-DcSdLRle.mjs.map} +1 -1
  9. package/dist/engine.d.mts +2 -2
  10. package/dist/engine.mjs +1 -1
  11. package/dist/{index-8x1Eqlnz.d.mts → index-BApnIiCI.d.mts} +4 -4
  12. package/dist/{index-8x1Eqlnz.d.mts.map → index-BApnIiCI.d.mts.map} +1 -1
  13. package/dist/{index-r8HVcn5b.d.mts → index-Da_Hb9-1.d.mts} +23 -3
  14. package/dist/{index-r8HVcn5b.d.mts.map → index-Da_Hb9-1.d.mts.map} +1 -1
  15. package/dist/{index-biZnRl-h.d.mts → index-DhNQKOwr.d.mts} +9 -5
  16. package/dist/index-DhNQKOwr.d.mts.map +1 -0
  17. package/dist/{index-BDp6S7r9.d.mts → index-dV6df0W3.d.mts} +3 -3
  18. package/dist/{index-BDp6S7r9.d.mts.map → index-dV6df0W3.d.mts.map} +1 -1
  19. package/dist/{memory-thread-repository-xBZOog_q.mjs → memory-thread-repository-CvYZwni6.mjs} +41 -10
  20. package/dist/{memory-thread-repository-xBZOog_q.mjs.map → memory-thread-repository-CvYZwni6.mjs.map} +1 -1
  21. package/dist/protocol.d.mts +1 -1
  22. package/dist/react-integration.d.mts +1 -1
  23. package/dist/react.d.mts +2 -2
  24. package/dist/{request-context-DixY5DYu.mjs → request-context-D1sC54ZA.mjs} +2 -2
  25. package/dist/{request-context-DixY5DYu.mjs.map → request-context-D1sC54ZA.mjs.map} +1 -1
  26. package/dist/server-agent.d.mts +8 -6
  27. package/dist/server-agent.mjs +2 -2
  28. package/dist/server-agent.mjs.map +1 -1
  29. package/dist/server-runtime.d.mts +19 -5
  30. package/dist/server-runtime.d.mts.map +1 -1
  31. package/dist/server-runtime.mjs +45 -6
  32. package/dist/server-runtime.mjs.map +1 -1
  33. package/dist/server-tasks.d.mts +1 -1
  34. package/dist/server-tools.d.mts +1 -1
  35. package/dist/server-tools.mjs +1 -1
  36. package/dist/server.d.mts +5 -5
  37. package/dist/server.mjs +2 -2
  38. package/dist/storage-postgres.mjs +3 -0
  39. package/dist/storage-postgres.mjs.map +1 -1
  40. package/dist/{tasks-BWmTMXoK.d.mts → tasks-CCtxjhwh.d.mts} +3 -3
  41. package/dist/{tasks-BWmTMXoK.d.mts.map → tasks-CCtxjhwh.d.mts.map} +1 -1
  42. package/dist/{thread-handlers-D8gkLfU6.d.mts → thread-handlers-Bt9cDo-F.d.mts} +11 -4
  43. package/dist/{thread-handlers-D8gkLfU6.d.mts.map → thread-handlers-Bt9cDo-F.d.mts.map} +1 -1
  44. package/dist/{tools-TXI8bfzZ.mjs → tools-3tq-XqI0.mjs} +10 -4
  45. package/dist/{tools-TXI8bfzZ.mjs.map → tools-3tq-XqI0.mjs.map} +1 -1
  46. package/dist/ui.css +1 -1
  47. package/dist/ui.d.mts +3 -3
  48. package/dist/ui.d.mts.map +1 -1
  49. package/dist/ui.mjs +70 -15
  50. package/dist/ui.mjs.map +1 -1
  51. package/docs/integration.md +34 -0
  52. package/package.json +1 -1
  53. package/dist/index-biZnRl-h.d.mts.map +0 -1
package/README.md CHANGED
@@ -278,3 +278,11 @@ custom authentication, provider policy, UI, or storage.
278
278
 
279
279
  The high-level APIs are thin composition helpers over the same exported
280
280
  primitives. They do not introduce a second runtime or hide Mastra.
281
+
282
+ Importing hosts can optionally require the additional
283
+ `SURVEY_ASSISTANT_ALLOW_EXPERIMENTAL_IDENTITY=true` production rollout gate by
284
+ passing `requireExperimentalIdentityOptIn: true` to a configuration parser.
285
+ The option does not choose or authorize an identity, and most authenticated
286
+ hosts should omit it unless they want that extra deployment switch. See
287
+ [Real-host integration](./docs/integration.md#optional-experimental-identity-rollout-gate)
288
+ for the exact enablement rules.
@@ -1,4 +1,4 @@
1
- import { Ht as SurveyAssistantCapabilitySet, Rt as AssistantItemCapabilityAdapter } from "./index-r8HVcn5b.mjs";
1
+ import { Ut as SurveyAssistantCapabilitySet, zt as AssistantItemCapabilityAdapter } from "./index-Da_Hb9-1.mjs";
2
2
 
3
3
  //#region src/capabilities/default.d.ts
4
4
  declare const rootItemAssistantCapability: AssistantItemCapabilityAdapter;
@@ -1,5 +1,5 @@
1
1
  import { Ct as SurveyDocumentSnapshot, o as SurveyAssistantApplyOutcome, wt as SurveyDocumentVersion } from "./lifecycle-DWv5CiSu.mjs";
2
- import { Ht as SurveyAssistantCapabilitySet, Ot as SurveyAssistantEngineContext, y as TurnSurveyDraft } from "./index-r8HVcn5b.mjs";
2
+ import { Ut as SurveyAssistantCapabilitySet, b as TurnSurveyDraft, kt as SurveyAssistantEngineContext } from "./index-Da_Hb9-1.mjs";
3
3
  import { n as SurveyAssistantModelAttachment, t as SurveyAssistantAttachmentAccess } from "./thread-documents-Dvo6XS7o.mjs";
4
4
  import { RequestContext } from "@mastra/core/request-context";
5
5
  import { AgentExecutionOptions } from "@mastra/core/agent";
@@ -99,4 +99,4 @@ declare const SURVEY_ASSISTANT_AGENT_ID = "survey-assistant-agent";
99
99
  declare const SURVEY_ASSISTANT_TASK_AGENT_ID = "survey-assistant-task-agent";
100
100
  //#endregion
101
101
  export { SurveyAssistantModelSelection as a, deriveSurveyAssistantDocumentTransition as c, parseSurveyAssistantSnapshot as d, requireSurveyAssistantTurnState as f, SurveyAssistantIdentityContext as i, parseSurveyAssistantPreviousApplyOutcome as l, SURVEY_ASSISTANT_TASK_AGENT_ID as n, SurveyAssistantRequestContext as o, SurveyAssistantDocumentTransition as r, buildSurveyAssistantRequestContext as s, SURVEY_ASSISTANT_AGENT_ID as t, parseSurveyAssistantPreviousSettledVersion as u };
102
- //# sourceMappingURL=constants-k1b_evIb.d.mts.map
102
+ //# sourceMappingURL=constants-DbrJxxOh.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-k1b_evIb.d.mts","names":[],"sources":["../src/server/request-context.ts","../src/server/constants.ts"],"mappings":";;;;;;;;UA2BiB,gCAAA;EACf,IAAA;AAAA;AAAA,UAGe,8BAAA;EACf,SAAA;EACA,UAAA;EACA,QAAA;EACA,QAAA;AAAA;AAAA,UAGe,6BAAA;EACf,EAAA;EACA,KAAA,WAAgB,sBAAA;EAChB,YAAA;EACA,eAAA,GAAkB,qBAAA;AAAA;AAAA,KAGR,iCAAA;EACN,MAAA;AAAA;EAEA,MAAA;EACA,oBAAA;EACA,mBAAA;AAAA;EAGA,MAAA;EACA,oBAAA;EACA,mBAAA;EACA,mBAAA;AAAA;EAGA,MAAA;EACA,oBAAA;EACA,mBAAA;EACA,gBAAA;EACA,eAAA,EAAiB,KAAA;EACjB,mBAAA;AAAA;AAAA,UAGW,6BAAA;EACf,UAAA,EAAY,gCAAA;EACZ,MAAA;EACA,SAAA,EAAW,eAAA;EACX,QAAA,EAAU,8BAAA;EACV,uBAAA;EACA,kBAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,kBAAA,GAAqB,iCAAA;EACrB,aAAA,GAAgB,4BAAA;EAChB,gBAAA,GAAmB,sBAAA;EACnB,gBAAA,GAAmB,8BAAA;EACnB,gBAAA,GAAmB,+BAAA;EACnB,cAAA,GAAiB,6BAAA;EACjB,oBAAA,GAAuB,2BAAA;AAAA;AAAA,cAGZ,4BAAA,GAAgC,KAAA,cAAiB,sBAAA;AAAA,cAQjD,0CAAA,GACX,KAAA,cACC,qBAAA;AAAA,cAQU,wCAAA,GACX,KAAA,cACC,2BAAA;AAAA,cAQU,uCAAA;EAA2C,OAAA;EAAA;AAAA;EAItD,OAAA,EAAS,sBAAA;EACT,QAAA,EAAU,qBAAA;AAAA,MACR,iCAAA;AAAA,cAqDS,kCAAA;EAAsC,SAAA;EAAA,QAAA;EAAA,QAAA;EAAA,sBAAA;EAAA,mBAAA;EAAA,gBAAA;EAAA,gBAAA;EAAA,cAAA;EAAA;AAAA;EAWjD,SAAA,EAAW,eAAA;EACX,QAAA,EAAU,8BAAA;EACV,QAAA,EAAU,sBAAA;EACV,sBAAA,GAAyB,qBAAA;EACzB,mBAAA,GAAsB,4BAAA;EACtB,gBAAA,GAAmB,+BAAA;EACnB,gBAAA,GAAmB,8BAAA;EACnB,cAAA,GAAiB,6BAAA;EACjB,oBAAA,GAAuB,2BAAA;AAAA,MACrB,cAAA,CAAe,6BAAA;AAAA,cAuDN,+BAAA,GACX,cAAA,EAAgB,cAAA,CAAe,6BAAA;;;;;;cCzPpB,yBAAA;AAAA,cACA,8BAAA"}
1
+ {"version":3,"file":"constants-DbrJxxOh.d.mts","names":[],"sources":["../src/server/request-context.ts","../src/server/constants.ts"],"mappings":";;;;;;;;UA2BiB,gCAAA;EACf,IAAA;AAAA;AAAA,UAGe,8BAAA;EACf,SAAA;EACA,UAAA;EACA,QAAA;EACA,QAAA;AAAA;AAAA,UAGe,6BAAA;EACf,EAAA;EACA,KAAA,WAAgB,sBAAA;EAChB,YAAA;EACA,eAAA,GAAkB,qBAAA;AAAA;AAAA,KAGR,iCAAA;EACN,MAAA;AAAA;EAEA,MAAA;EACA,oBAAA;EACA,mBAAA;AAAA;EAGA,MAAA;EACA,oBAAA;EACA,mBAAA;EACA,mBAAA;AAAA;EAGA,MAAA;EACA,oBAAA;EACA,mBAAA;EACA,gBAAA;EACA,eAAA,EAAiB,KAAA;EACjB,mBAAA;AAAA;AAAA,UAGW,6BAAA;EACf,UAAA,EAAY,gCAAA;EACZ,MAAA;EACA,SAAA,EAAW,eAAA;EACX,QAAA,EAAU,8BAAA;EACV,uBAAA;EACA,kBAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,kBAAA,GAAqB,iCAAA;EACrB,aAAA,GAAgB,4BAAA;EAChB,gBAAA,GAAmB,sBAAA;EACnB,gBAAA,GAAmB,8BAAA;EACnB,gBAAA,GAAmB,+BAAA;EACnB,cAAA,GAAiB,6BAAA;EACjB,oBAAA,GAAuB,2BAAA;AAAA;AAAA,cAGZ,4BAAA,GAAgC,KAAA,cAAiB,sBAAA;AAAA,cAQjD,0CAAA,GACX,KAAA,cACC,qBAAA;AAAA,cAQU,wCAAA,GACX,KAAA,cACC,2BAAA;AAAA,cAQU,uCAAA;EAA2C,OAAA;EAAA;AAAA;EAItD,OAAA,EAAS,sBAAA;EACT,QAAA,EAAU,qBAAA;AAAA,MACR,iCAAA;AAAA,cAqDS,kCAAA;EAAsC,SAAA;EAAA,QAAA;EAAA,QAAA;EAAA,sBAAA;EAAA,mBAAA;EAAA,gBAAA;EAAA,gBAAA;EAAA,cAAA;EAAA;AAAA;EAWjD,SAAA,EAAW,eAAA;EACX,QAAA,EAAU,8BAAA;EACV,QAAA,EAAU,sBAAA;EACV,sBAAA,GAAyB,qBAAA;EACzB,mBAAA,GAAsB,4BAAA;EACtB,gBAAA,GAAmB,+BAAA;EACnB,gBAAA,GAAmB,8BAAA;EACnB,cAAA,GAAiB,6BAAA;EACjB,oBAAA,GAAuB,2BAAA;AAAA,MACrB,cAAA,CAAe,6BAAA;AAAA,cAuDN,+BAAA,GACX,cAAA,EAAgB,cAAA,CAAe,6BAAA;;;;;;cCzPpB,yBAAA;AAAA,cACA,8BAAA"}
@@ -1,4 +1,4 @@
1
- import { L as SurveyAssistantThread, c as SurveyAssistantSuggestItemKeyInput, d as SurveyAssistantSuggestItemLabelResult, l as SurveyAssistantSuggestItemKeyResult, m as SurveyAssistantTaskInvocationMode, p as SurveyAssistantTaskContext, u as SurveyAssistantSuggestItemLabelInput, v as SurveyAssistantTranslateContentInput, y as SurveyAssistantTranslateContentResult } from "./index-8x1Eqlnz.mjs";
1
+ import { L as SurveyAssistantThread, c as SurveyAssistantSuggestItemKeyInput, d as SurveyAssistantSuggestItemLabelResult, l as SurveyAssistantSuggestItemKeyResult, m as SurveyAssistantTaskInvocationMode, p as SurveyAssistantTaskContext, u as SurveyAssistantSuggestItemLabelInput, v as SurveyAssistantTranslateContentInput, y as SurveyAssistantTranslateContentResult } from "./index-BApnIiCI.mjs";
2
2
  import { Tt as SurveyEditorUIContext, h as SurveyChangeSet, i as SurveyApplyResult, m as SurveyBatchApplyResult, xt as SurveyAssistantSnapshot } from "./lifecycle-DWv5CiSu.mjs";
3
3
  import { FileUIPart } from "ai";
4
4
 
@@ -82,4 +82,4 @@ declare const createSurveyAssistantControllerProxy: (getController: () => Survey
82
82
  declare const createSurveyAssistantControllerBridge: (options?: CreateSurveyAssistantControllerProxyOptions) => SurveyAssistantControllerBridge;
83
83
  //#endregion
84
84
  export { createSurveyAssistantThreadLauncher as _, SurveyAssistantController as a, SurveyAssistantTaskExecutionOptions as c, SurveyAssistantTaskExecutorRequestOptions as d, createSurveyAssistantTaskClient as f, SurveyAssistantThreadLauncher as g, SurveyAssistantThreadLaunch as h, createSurveyAssistantControllerProxy as i, SurveyAssistantTaskExecutor as l, SurveyAssistantLaunchUIContext as m, SurveyAssistantControllerBridge as n, SurveyAssistantTaskClient as o, createSurveyAssistantTaskExecutor as p, createSurveyAssistantControllerBridge as r, SurveyAssistantTaskClientOptions as s, CreateSurveyAssistantControllerProxyOptions as t, SurveyAssistantTaskExecutorCacheContext as u };
85
- //# sourceMappingURL=controller-proxy-quQjtA7j.d.mts.map
85
+ //# sourceMappingURL=controller-proxy-BdKF2yrq.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller-proxy-quQjtA7j.d.mts","names":[],"sources":["../src/react/thread-launcher.ts","../src/react/task-client.ts","../src/react/controller.ts","../src/react/controller-proxy.ts"],"mappings":";;;;;KAOY,8BAAA,GAAiC,OAAA,CAAQ,IAAA,CAAK,qBAAA;AAAA,UAEzC,2BAAA;;EAEf,MAAA;EACA,KAAA,GAAQ,UAAA;;EAER,OAAA;EAPmD;EASnD,KAAA;EATkD;EAWlD,SAAA,GAAY,8BAAA;AAAA;AAAA,UAGG,6BAAA;EAdyC;;;AAE1D;EAiBE,WAAA,CAAY,KAAA,EAAO,2BAAA,GAA8B,OAAA,CAAQ,qBAAA;AAAA;AAAA,cA6D9C,mCAAA,QAA0C,6BAAA;;;UCxEtC,gCAAA;EACf,GAAA;EACA,UAAA;EACA,UAAA;EACA,QAAA;AAAA;AAAA,UAGe,mCAAA;EACf,IAAA,GAAO,iCAAA;EACP,OAAA;EACA,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,yBAAA;EACf,cAAA,CACE,KAAA,EAAO,kCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,mCAAA,GACT,OAAA,CAAQ,mCAAA;EACX,gBAAA,CACE,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,mCAAA,GACT,OAAA,CAAQ,qCAAA;EACX,gBAAA,CACE,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,mCAAA,GACT,OAAA,CAAQ,qCAAA;AAAA;AAAA,UAGI,yCAAA;EACf,IAAA,GAAO,iCAAA;EACP,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,uCAAA;EACf,UAAA;AAAA;AAAA,UAGe,2BAAA;EACf,cAAA,CACE,KAAA,EAAO,kCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,yCAAA,EACV,KAAA,GAAQ,uCAAA,GACP,OAAA,CAAQ,mCAAA;EACX,gBAAA,CACE,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,yCAAA,EACV,KAAA,GAAQ,uCAAA,GACP,OAAA,CAAQ,qCAAA;EACX,gBAAA,CACE,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,yCAAA,EACV,KAAA,GAAQ,uCAAA,GACP,OAAA,CAAQ,qCAAA;AAAA;AAAA,cAGA,+BAAA;EAAmC,GAAA;EAAA,UAAA;EAAA,UAAA;EAAA;AAAA,IAK7C,gCAAA,KAAwC,yBAAA;AAAA,cA8C9B,iCAAA,GACX,OAAA,GAAS,gCAAA,KACR,2BAAA;;;UC1Hc,yBAAA;EACf,WAAA,IAAe,uBAAA;EACf,oBAAA,EAAsB,MAAA,EAAQ,eAAA,GAAkB,iBAAA;EAChD,qBAAA,EAAuB,OAAA,EAAS,eAAA,KAAoB,sBAAA;AAAA;;;UCPrC,2CAAA;EACf,eAAA;AAAA;AAAA,UAGe,+BAAA;EACf,UAAA,EAAY,yBAAA;EACZ,aAAA,CAAc,UAAA,EAAY,yBAAA;AAAA;AAAA,cAWf,oCAAA,GACX,aAAA,QAAqB,yBAAA;EACrB;AAAA,IAEG,2CAAA,KACF,yBAAA;AAAA,cAUU,qCAAA,GACX,OAAA,GAAU,2CAAA,KACT,+BAAA"}
1
+ {"version":3,"file":"controller-proxy-BdKF2yrq.d.mts","names":[],"sources":["../src/react/thread-launcher.ts","../src/react/task-client.ts","../src/react/controller.ts","../src/react/controller-proxy.ts"],"mappings":";;;;;KAOY,8BAAA,GAAiC,OAAA,CAAQ,IAAA,CAAK,qBAAA;AAAA,UAEzC,2BAAA;;EAEf,MAAA;EACA,KAAA,GAAQ,UAAA;;EAER,OAAA;EAPmD;EASnD,KAAA;EATkD;EAWlD,SAAA,GAAY,8BAAA;AAAA;AAAA,UAGG,6BAAA;EAdyC;;;AAE1D;EAiBE,WAAA,CAAY,KAAA,EAAO,2BAAA,GAA8B,OAAA,CAAQ,qBAAA;AAAA;AAAA,cA6D9C,mCAAA,QAA0C,6BAAA;;;UCxEtC,gCAAA;EACf,GAAA;EACA,UAAA;EACA,UAAA;EACA,QAAA;AAAA;AAAA,UAGe,mCAAA;EACf,IAAA,GAAO,iCAAA;EACP,OAAA;EACA,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,yBAAA;EACf,cAAA,CACE,KAAA,EAAO,kCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,mCAAA,GACT,OAAA,CAAQ,mCAAA;EACX,gBAAA,CACE,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,mCAAA,GACT,OAAA,CAAQ,qCAAA;EACX,gBAAA,CACE,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,mCAAA,GACT,OAAA,CAAQ,qCAAA;AAAA;AAAA,UAGI,yCAAA;EACf,IAAA,GAAO,iCAAA;EACP,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,uCAAA;EACf,UAAA;AAAA;AAAA,UAGe,2BAAA;EACf,cAAA,CACE,KAAA,EAAO,kCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,yCAAA,EACV,KAAA,GAAQ,uCAAA,GACP,OAAA,CAAQ,mCAAA;EACX,gBAAA,CACE,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,yCAAA,EACV,KAAA,GAAQ,uCAAA,GACP,OAAA,CAAQ,qCAAA;EACX,gBAAA,CACE,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,0BAAA,EACT,OAAA,GAAU,yCAAA,EACV,KAAA,GAAQ,uCAAA,GACP,OAAA,CAAQ,qCAAA;AAAA;AAAA,cAGA,+BAAA;EAAmC,GAAA;EAAA,UAAA;EAAA,UAAA;EAAA;AAAA,IAK7C,gCAAA,KAAwC,yBAAA;AAAA,cA8C9B,iCAAA,GACX,OAAA,GAAS,gCAAA,KACR,2BAAA;;;UC1Hc,yBAAA;EACf,WAAA,IAAe,uBAAA;EACf,oBAAA,EAAsB,MAAA,EAAQ,eAAA,GAAkB,iBAAA;EAChD,qBAAA,EAAuB,OAAA,EAAS,eAAA,KAAoB,sBAAA;AAAA;;;UCPrC,2CAAA;EACf,eAAA;AAAA;AAAA,UAGe,+BAAA;EACf,UAAA,EAAY,yBAAA;EACZ,aAAA,CAAc,UAAA,EAAY,yBAAA;AAAA;AAAA,cAWf,oCAAA,GACX,aAAA,QAAqB,yBAAA;EACrB;AAAA,IAEG,2CAAA,KACF,yBAAA;AAAA,cAUU,qCAAA,GACX,OAAA,GAAU,2CAAA,KACT,+BAAA"}
@@ -5170,6 +5170,11 @@ const QUALITY_PRINCIPLES = [
5170
5170
  title: "Response option quality",
5171
5171
  prompt: "Are options mutually exclusive, collectively sufficient, balanced, ordered, and consistently scaled?"
5172
5172
  },
5173
+ {
5174
+ id: "key-semantic-consistency",
5175
+ title: "Coding-key consistency",
5176
+ prompt: "Do item, option, and field keys follow the survey's established convention and avoid contradicting the content they currently identify? Generic, numeric, or opaque keys are acceptable when that is the survey's consistent pattern; flag descriptive keys when they have become stale or misleading, and mixed conventions when the inconsistency appears accidental."
5177
+ },
5173
5178
  {
5174
5179
  id: "flow",
5175
5180
  title: "Flow and completeness",
@@ -5207,6 +5212,75 @@ const translationText = (context, locale, itemId, contentKey) => {
5207
5212
  const content = (isRecord$1(itemTranslations?.[itemId]) ? itemTranslations[itemId] : void 0)?.[contentKey];
5208
5213
  return content ? getContentPlainText(content).trim() : "";
5209
5214
  };
5215
+ const summarizeItemContent = (context, locale, item) => {
5216
+ if (!locale) return {};
5217
+ const itemContent = context.survey.translations?.[locale]?.itemTranslations?.[item.id];
5218
+ if (!isRecord$1(itemContent)) return {};
5219
+ for (const contentKey of [
5220
+ "title",
5221
+ "content",
5222
+ "subtitle",
5223
+ "topContent",
5224
+ "bottomContent"
5225
+ ]) {
5226
+ const content = itemContent[contentKey];
5227
+ if (!content) continue;
5228
+ const text = getContentPlainText(content).trim();
5229
+ if (text) return {
5230
+ contentKey,
5231
+ content: text
5232
+ };
5233
+ }
5234
+ return {};
5235
+ };
5236
+ const collectKeyReviewEntries = (context, sourceLocale) => {
5237
+ const entries = [];
5238
+ const addFormFields = (item, groups, contentPrefix) => {
5239
+ for (const group of groups) for (const field of records(group.fields)) {
5240
+ if (typeof field.id !== "string" || typeof field.key !== "string") continue;
5241
+ const contentKey = `${contentPrefix}fields.${field.id}.label`;
5242
+ const content = sourceLocale ? translationText(context, sourceLocale, item.id, contentKey) : "";
5243
+ entries.push({
5244
+ kind: "form-field",
5245
+ itemId: item.id,
5246
+ itemKey: item.key,
5247
+ key: field.key,
5248
+ keySource: "explicit",
5249
+ contentKey,
5250
+ ...content ? { content } : {}
5251
+ });
5252
+ }
5253
+ };
5254
+ for (const item of context.survey.surveyItems) {
5255
+ entries.push({
5256
+ kind: "item",
5257
+ itemId: item.id,
5258
+ itemKey: item.key,
5259
+ key: item.key,
5260
+ keySource: "explicit",
5261
+ ...summarizeItemContent(context, sourceLocale, item)
5262
+ });
5263
+ const config = isRecord$1(item.config) ? item.config : {};
5264
+ if (item.itemType === "choiceItem") for (const option of records(config.options)) {
5265
+ if (typeof option.id !== "string") continue;
5266
+ const explicitKey = typeof option.key === "string" && option.key.trim() ? option.key : null;
5267
+ const contentKey = `options.${option.id}.label`;
5268
+ const content = sourceLocale ? translationText(context, sourceLocale, item.id, contentKey) : "";
5269
+ entries.push({
5270
+ kind: "choice-option",
5271
+ itemId: item.id,
5272
+ itemKey: item.key,
5273
+ key: explicitKey ?? option.id,
5274
+ keySource: explicitKey ? "explicit" : "fallback-id",
5275
+ contentKey,
5276
+ ...content ? { content } : {}
5277
+ });
5278
+ if (option.embeddedForm) addFormFields(item, getGroups(item, option.id), `embeddedForms.${option.id}.`);
5279
+ }
5280
+ else if (item.itemType === "formItem") addFormFields(item, getGroups(item), "");
5281
+ }
5282
+ return entries;
5283
+ };
5210
5284
  const getGroups = (item, optionId) => {
5211
5285
  const config = isRecord$1(item.config) ? item.config : {};
5212
5286
  if (!optionId) return records(config.fieldGroups);
@@ -5285,6 +5359,10 @@ const auditSurvey = (context, options = {}) => {
5285
5359
  const locales = context.inspection.locales;
5286
5360
  const sourceLocale = options.sourceLocale ?? context.ui.selectedLocale ?? locales[0];
5287
5361
  const targetLocales = options.targetLocales ?? locales.filter((locale) => locale !== sourceLocale);
5362
+ const allKeyReviewEntries = collectKeyReviewEntries(context, sourceLocale);
5363
+ const keyReviewOffset = Math.min(options.keyReviewOffset ?? 0, allKeyReviewEntries.length);
5364
+ const keyReviewLimit = options.keyReviewLimit ?? 30;
5365
+ const keyReviewEntries = allKeyReviewEntries.slice(keyReviewOffset, keyReviewOffset + keyReviewLimit);
5288
5366
  const manifests = new Map(context.capabilities.itemTypes.map((entry) => [entry.itemType, entry]));
5289
5367
  for (const item of items) {
5290
5368
  const manifest = manifests.get(item.itemType);
@@ -5416,6 +5494,15 @@ const auditSurvey = (context, options = {}) => {
5416
5494
  },
5417
5495
  findings: limited,
5418
5496
  qualityReviewPrinciples: QUALITY_PRINCIPLES,
5497
+ keyReview: {
5498
+ sourceLocale,
5499
+ entryCount: allKeyReviewEntries.length,
5500
+ offset: keyReviewOffset,
5501
+ returnedEntryCount: keyReviewEntries.length,
5502
+ truncated: keyReviewOffset + keyReviewEntries.length < allKeyReviewEntries.length,
5503
+ entries: keyReviewEntries,
5504
+ note: "These key/content pairs are evidence for qualitative review, not deterministic defects. Judge them against the survey's own naming pattern; generic or opaque keys are not inherently problematic."
5505
+ },
5419
5506
  note: "Technical findings are deterministic. Quality principles are a structured review rubric; apply them with human/model judgment and domain context, and do not present them as psychometric validation."
5420
5507
  };
5421
5508
  };
@@ -5939,4 +6026,4 @@ var SurveyAssistantTaskResultCache = class {
5939
6026
  //#endregion
5940
6027
  export { validateExpression as $, getRawSurvey$1 as A, resolveItemSummary as B, clampLimit as C, formFieldGroupLayoutSchema as D, formFieldGroupDetailsSchema as E, mapKeyIndexById as F, summarizeKeyIndexEntry as G, summarizeFocusItemNode as H, mapOutlineById as I, translationEntrySchema as J, summarizeOutlineNode as K, mapRawItemsById as L, itemConfigDetailsSchema as M, itemMatchesQuery as N, formSelectOptionDetailsSchema as O, itemSummarySchema as P, inferExpressionReturnType as Q, normalizeText as R, choiceOptionDetailsSchema as S, formFieldDetailsSchema as T, summarizeItemById as U, sliceWithCursor as V, summarizeKeyIndexEntries as W, analyzeSurveyAssistantExpressionReferences as X, unique as Y, deriveSurveyExpressionResponseSlots as Z, buildConfigSearchText as _, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_PROPOSAL as a, buildItemTranslationEntries as b, buildSurveyDocumentVersion as c, normalizeSurveyChangeOperations as d, createSurveyAssistantEngineContext as et, buildExpressionMutationPatches as f, MAX_LIMIT as g, DEFAULT_LIMIT as h, auditSurvey as i, getRawSurveyItems as j, getKeyIndexEntries as k, createSurveyChangeSet as l, expressionSchema as m, buildSurveyAssistantTaskContext as n, MAX_SURVEY_ASSISTANT_OPERATIONS_PER_TURN_DRAFT as o, expressionMutationSchema as p, summarizeRawItem as q, TurnSurveyDraft as r, applyValidatedSurveyOperationsToDraft as s, SurveyAssistantTaskResultCache as t, deriveResponseSlotTypes as tt, validateSurveyOperations as u, buildEmbeddedFormDetails as v, findDirectChildrenByFullKey as w, buildSurveyTranslations as x, buildItemConfigDetails as y, parseCursor as z };
5941
6028
 
5942
- //# sourceMappingURL=engine-BvfUx_Jx.mjs.map
6029
+ //# sourceMappingURL=engine-DcSdLRle.mjs.map