cbrowser 20.2.2 → 21.0.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 (302) hide show
  1. package/README.md +2 -2
  2. package/dist/analysis/accessibility-empathy.d.ts +29 -1
  3. package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
  4. package/dist/analysis/accessibility-empathy.js +69 -35
  5. package/dist/analysis/accessibility-empathy.js.map +1 -1
  6. package/dist/browser.d.ts.map +1 -1
  7. package/dist/browser.js +11 -7
  8. package/dist/browser.js.map +1 -1
  9. package/dist/cif-score.d.ts +56 -5
  10. package/dist/cif-score.d.ts.map +1 -1
  11. package/dist/cif-score.js +595 -346
  12. package/dist/cif-score.js.map +1 -1
  13. package/dist/cli.js +10 -8
  14. package/dist/cli.js.map +1 -1
  15. package/dist/cognitive/default-traits.d.ts +14 -0
  16. package/dist/cognitive/default-traits.d.ts.map +1 -0
  17. package/dist/cognitive/default-traits.js +36 -0
  18. package/dist/cognitive/default-traits.js.map +1 -0
  19. package/dist/cognitive/emotions.d.ts.map +1 -1
  20. package/dist/cognitive/emotions.js +104 -174
  21. package/dist/cognitive/emotions.js.map +1 -1
  22. package/dist/cognitive/index.d.ts +28 -0
  23. package/dist/cognitive/index.d.ts.map +1 -1
  24. package/dist/cognitive/index.js +353 -287
  25. package/dist/cognitive/index.js.map +1 -1
  26. package/dist/cognitive/temporal.d.ts +0 -24
  27. package/dist/cognitive/temporal.d.ts.map +1 -1
  28. package/dist/cognitive/temporal.js +45 -35
  29. package/dist/cognitive/temporal.js.map +1 -1
  30. package/dist/data/ctc-reference-v2-2026-10-24.d.ts +16 -0
  31. package/dist/data/ctc-reference-v2-2026-10-24.d.ts.map +1 -0
  32. package/dist/data/ctc-reference-v2-2026-10-24.js +1004 -0
  33. package/dist/data/ctc-reference-v2-2026-10-24.js.map +1 -0
  34. package/dist/ideal-profiles-gap.d.ts +1 -0
  35. package/dist/ideal-profiles-gap.d.ts.map +1 -1
  36. package/dist/ideal-profiles-gap.js +9 -1
  37. package/dist/ideal-profiles-gap.js.map +1 -1
  38. package/dist/ideal-profiles.d.ts +8 -0
  39. package/dist/ideal-profiles.d.ts.map +1 -1
  40. package/dist/ideal-profiles.js +28 -24
  41. package/dist/ideal-profiles.js.map +1 -1
  42. package/dist/mcp-server-remote.d.ts.map +1 -1
  43. package/dist/mcp-server-remote.js +7 -8
  44. package/dist/mcp-server-remote.js.map +1 -1
  45. package/dist/mcp-tools/account-personas.d.ts.map +1 -1
  46. package/dist/mcp-tools/account-personas.js +3 -1
  47. package/dist/mcp-tools/account-personas.js.map +1 -1
  48. package/dist/mcp-tools/base/answer-provenance.d.ts +28 -0
  49. package/dist/mcp-tools/base/answer-provenance.d.ts.map +1 -0
  50. package/dist/mcp-tools/base/answer-provenance.js +32 -0
  51. package/dist/mcp-tools/base/answer-provenance.js.map +1 -0
  52. package/dist/mcp-tools/base/audit-tools.d.ts +0 -3
  53. package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
  54. package/dist/mcp-tools/base/audit-tools.js +152 -84
  55. package/dist/mcp-tools/base/audit-tools.js.map +1 -1
  56. package/dist/mcp-tools/base/capture-tools.js +1 -1
  57. package/dist/mcp-tools/base/capture-tools.js.map +1 -1
  58. package/dist/mcp-tools/base/chain-values.d.ts +38 -0
  59. package/dist/mcp-tools/base/chain-values.d.ts.map +1 -0
  60. package/dist/mcp-tools/base/chain-values.js +85 -0
  61. package/dist/mcp-tools/base/chain-values.js.map +1 -0
  62. package/dist/mcp-tools/base/cognitive-tools.d.ts.map +1 -1
  63. package/dist/mcp-tools/base/cognitive-tools.js +126 -120
  64. package/dist/mcp-tools/base/cognitive-tools.js.map +1 -1
  65. package/dist/mcp-tools/base/gif-tools.d.ts.map +1 -1
  66. package/dist/mcp-tools/base/gif-tools.js +23 -5
  67. package/dist/mcp-tools/base/gif-tools.js.map +1 -1
  68. package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
  69. package/dist/mcp-tools/base/persona-comparison-tools.js +229 -172
  70. package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
  71. package/dist/mcp-tools/base/site-familiarity.d.ts +31 -0
  72. package/dist/mcp-tools/base/site-familiarity.d.ts.map +1 -0
  73. package/dist/mcp-tools/base/site-familiarity.js +30 -0
  74. package/dist/mcp-tools/base/site-familiarity.js.map +1 -0
  75. package/dist/mcp-tools/base/site-knowledge-tools.js +1 -1
  76. package/dist/mcp-tools/base/site-knowledge-tools.js.map +1 -1
  77. package/dist/mcp-tools/base/story-narrative.d.ts +50 -0
  78. package/dist/mcp-tools/base/story-narrative.d.ts.map +1 -0
  79. package/dist/mcp-tools/base/story-narrative.js +88 -0
  80. package/dist/mcp-tools/base/story-narrative.js.map +1 -0
  81. package/dist/mcp-tools/base/values-tools.d.ts.map +1 -1
  82. package/dist/mcp-tools/base/values-tools.js +19 -5
  83. package/dist/mcp-tools/base/values-tools.js.map +1 -1
  84. package/dist/mcp-tools/base/visual-testing-tools.d.ts +5 -5
  85. package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
  86. package/dist/mcp-tools/base/visual-testing-tools.js +38 -11
  87. package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
  88. package/dist/mcp-tools/persona-creation-tools.js +6 -6
  89. package/dist/mcp-tools/persona-creation-tools.js.map +1 -1
  90. package/dist/mcp-tools/persona-lifecycle-tools.d.ts.map +1 -1
  91. package/dist/mcp-tools/persona-lifecycle-tools.js +5 -1
  92. package/dist/mcp-tools/persona-lifecycle-tools.js.map +1 -1
  93. package/dist/mcp-tools/tier-gate.js +1 -1
  94. package/dist/mcp-tools/tool-result-saver.d.ts +7 -0
  95. package/dist/mcp-tools/tool-result-saver.d.ts.map +1 -1
  96. package/dist/mcp-tools/tool-result-saver.js +11 -0
  97. package/dist/mcp-tools/tool-result-saver.js.map +1 -1
  98. package/dist/mcp-tools/trait-provenance.d.ts +109 -0
  99. package/dist/mcp-tools/trait-provenance.d.ts.map +1 -0
  100. package/dist/mcp-tools/trait-provenance.js +187 -0
  101. package/dist/mcp-tools/trait-provenance.js.map +1 -0
  102. package/dist/mcp-tools/ui-resources.d.ts +6 -7
  103. package/dist/mcp-tools/ui-resources.d.ts.map +1 -1
  104. package/dist/mcp-tools/ui-resources.js +162 -12
  105. package/dist/mcp-tools/ui-resources.js.map +1 -1
  106. package/dist/mcp-tools/widget-kit.d.ts +129 -3
  107. package/dist/mcp-tools/widget-kit.d.ts.map +1 -1
  108. package/dist/mcp-tools/widget-kit.js +507 -28
  109. package/dist/mcp-tools/widget-kit.js.map +1 -1
  110. package/dist/performance/metrics.d.ts.map +1 -1
  111. package/dist/performance/metrics.js +4 -1
  112. package/dist/performance/metrics.js.map +1 -1
  113. package/dist/persona-questionnaire.js +1 -1
  114. package/dist/persona-questionnaire.js.map +1 -1
  115. package/dist/personas.d.ts.map +1 -1
  116. package/dist/personas.js +133 -82
  117. package/dist/personas.js.map +1 -1
  118. package/dist/recording/engine.d.ts.map +1 -1
  119. package/dist/recording/engine.js +5 -2
  120. package/dist/recording/engine.js.map +1 -1
  121. package/dist/recording/saliency-overlay.d.ts +8 -3
  122. package/dist/recording/saliency-overlay.d.ts.map +1 -1
  123. package/dist/recording/saliency-overlay.js +14 -5
  124. package/dist/recording/saliency-overlay.js.map +1 -1
  125. package/dist/recording/types.js +1 -1
  126. package/dist/testing/nl-test-suite.d.ts.map +1 -1
  127. package/dist/testing/nl-test-suite.js +2 -1
  128. package/dist/testing/nl-test-suite.js.map +1 -1
  129. package/dist/trait-reference.d.ts +19 -2
  130. package/dist/trait-reference.d.ts.map +1 -1
  131. package/dist/trait-reference.js +19 -2
  132. package/dist/trait-reference.js.map +1 -1
  133. package/dist/types.d.ts +32 -21
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/types.js +62 -52
  136. package/dist/types.js.map +1 -1
  137. package/dist/values/persona-completeness.js +1 -1
  138. package/dist/values/persona-completeness.js.map +1 -1
  139. package/dist/visual/ab-comparison.d.ts.map +1 -1
  140. package/dist/visual/ab-comparison.js +4 -1
  141. package/dist/visual/ab-comparison.js.map +1 -1
  142. package/dist/visual/attention-quality.d.ts +1 -1
  143. package/dist/visual/attention-quality.js +1 -1
  144. package/dist/visual/attention-transport.d.ts +74 -10
  145. package/dist/visual/attention-transport.d.ts.map +1 -1
  146. package/dist/visual/attention-transport.js +353 -193
  147. package/dist/visual/attention-transport.js.map +1 -1
  148. package/dist/visual/cognitive-models.d.ts +77 -55
  149. package/dist/visual/cognitive-models.d.ts.map +1 -1
  150. package/dist/visual/cognitive-models.js +231 -104
  151. package/dist/visual/cognitive-models.js.map +1 -1
  152. package/dist/visual/cognitive-transport-chain.d.ts +328 -30
  153. package/dist/visual/cognitive-transport-chain.d.ts.map +1 -1
  154. package/dist/visual/cognitive-transport-chain.js +576 -353
  155. package/dist/visual/cognitive-transport-chain.js.map +1 -1
  156. package/dist/visual/cognitive-transport.d.ts +446 -13
  157. package/dist/visual/cognitive-transport.d.ts.map +1 -1
  158. package/dist/visual/cognitive-transport.js +1085 -245
  159. package/dist/visual/cognitive-transport.js.map +1 -1
  160. package/dist/visual/cross-browser.d.ts.map +1 -1
  161. package/dist/visual/cross-browser.js +8 -6
  162. package/dist/visual/cross-browser.js.map +1 -1
  163. package/dist/visual/ctc-bands.d.ts +91 -0
  164. package/dist/visual/ctc-bands.d.ts.map +1 -0
  165. package/dist/visual/ctc-bands.js +117 -0
  166. package/dist/visual/ctc-bands.js.map +1 -0
  167. package/dist/visual/ctc-reference.d.ts +287 -0
  168. package/dist/visual/ctc-reference.d.ts.map +1 -0
  169. package/dist/visual/ctc-reference.js +376 -0
  170. package/dist/visual/ctc-reference.js.map +1 -0
  171. package/dist/visual/demand-laws.d.ts +145 -0
  172. package/dist/visual/demand-laws.d.ts.map +1 -0
  173. package/dist/visual/demand-laws.js +220 -0
  174. package/dist/visual/demand-laws.js.map +1 -0
  175. package/dist/visual/distance-metrics.d.ts +23 -1
  176. package/dist/visual/distance-metrics.d.ts.map +1 -1
  177. package/dist/visual/distance-metrics.js +49 -18
  178. package/dist/visual/distance-metrics.js.map +1 -1
  179. package/dist/visual/dro-bound.d.ts +220 -0
  180. package/dist/visual/dro-bound.d.ts.map +1 -0
  181. package/dist/visual/dro-bound.js +341 -0
  182. package/dist/visual/dro-bound.js.map +1 -0
  183. package/dist/visual/exact-w1.d.ts +60 -0
  184. package/dist/visual/exact-w1.d.ts.map +1 -0
  185. package/dist/visual/exact-w1.js +247 -0
  186. package/dist/visual/exact-w1.js.map +1 -0
  187. package/dist/visual/human-input.d.ts.map +1 -1
  188. package/dist/visual/human-input.js +45 -41
  189. package/dist/visual/human-input.js.map +1 -1
  190. package/dist/visual/index.d.ts +2 -0
  191. package/dist/visual/index.d.ts.map +1 -1
  192. package/dist/visual/index.js +2 -0
  193. package/dist/visual/index.js.map +1 -1
  194. package/dist/visual/law-times-report.d.ts +49 -0
  195. package/dist/visual/law-times-report.d.ts.map +1 -0
  196. package/dist/visual/law-times-report.js +38 -0
  197. package/dist/visual/law-times-report.js.map +1 -0
  198. package/dist/visual/model-provenance.d.ts +151 -0
  199. package/dist/visual/model-provenance.d.ts.map +1 -0
  200. package/dist/visual/model-provenance.js +334 -0
  201. package/dist/visual/model-provenance.js.map +1 -0
  202. package/dist/visual/normal-cdf.d.ts +14 -0
  203. package/dist/visual/normal-cdf.d.ts.map +1 -0
  204. package/dist/visual/normal-cdf.js +26 -0
  205. package/dist/visual/normal-cdf.js.map +1 -0
  206. package/dist/visual/perceptual-transport.d.ts +28 -4
  207. package/dist/visual/perceptual-transport.d.ts.map +1 -1
  208. package/dist/visual/perceptual-transport.js +66 -32
  209. package/dist/visual/perceptual-transport.js.map +1 -1
  210. package/dist/visual/provenance/attention.d.ts +55 -0
  211. package/dist/visual/provenance/attention.d.ts.map +1 -0
  212. package/dist/visual/provenance/attention.js +188 -0
  213. package/dist/visual/provenance/attention.js.map +1 -0
  214. package/dist/visual/provenance/chain.d.ts +41 -0
  215. package/dist/visual/provenance/chain.d.ts.map +1 -0
  216. package/dist/visual/provenance/chain.js +66 -0
  217. package/dist/visual/provenance/chain.js.map +1 -0
  218. package/dist/visual/provenance/cif.d.ts +42 -0
  219. package/dist/visual/provenance/cif.d.ts.map +1 -0
  220. package/dist/visual/provenance/cif.js +116 -0
  221. package/dist/visual/provenance/cif.js.map +1 -0
  222. package/dist/visual/provenance/ctc-reference.d.ts +36 -0
  223. package/dist/visual/provenance/ctc-reference.d.ts.map +1 -0
  224. package/dist/visual/provenance/ctc-reference.js +96 -0
  225. package/dist/visual/provenance/ctc-reference.js.map +1 -0
  226. package/dist/visual/provenance/distance.d.ts +10 -0
  227. package/dist/visual/provenance/distance.d.ts.map +1 -0
  228. package/dist/visual/provenance/distance.js +72 -0
  229. package/dist/visual/provenance/distance.js.map +1 -0
  230. package/dist/visual/provenance/dro.d.ts +10 -0
  231. package/dist/visual/provenance/dro.d.ts.map +1 -0
  232. package/dist/visual/provenance/dro.js +2 -0
  233. package/dist/visual/provenance/dro.js.map +1 -0
  234. package/dist/visual/provenance/emotion.d.ts +26 -0
  235. package/dist/visual/provenance/emotion.d.ts.map +1 -0
  236. package/dist/visual/provenance/emotion.js +99 -0
  237. package/dist/visual/provenance/emotion.js.map +1 -0
  238. package/dist/visual/provenance/human-input.d.ts +19 -0
  239. package/dist/visual/provenance/human-input.d.ts.map +1 -0
  240. package/dist/visual/provenance/human-input.js +84 -0
  241. package/dist/visual/provenance/human-input.js.map +1 -0
  242. package/dist/visual/provenance/journey-group.d.ts +15 -0
  243. package/dist/visual/provenance/journey-group.d.ts.map +1 -0
  244. package/dist/visual/provenance/journey-group.js +15 -0
  245. package/dist/visual/provenance/journey-group.js.map +1 -0
  246. package/dist/visual/provenance/journey-mcp.d.ts +24 -0
  247. package/dist/visual/provenance/journey-mcp.d.ts.map +1 -0
  248. package/dist/visual/provenance/journey-mcp.js +54 -0
  249. package/dist/visual/provenance/journey-mcp.js.map +1 -0
  250. package/dist/visual/provenance/journey.d.ts +34 -0
  251. package/dist/visual/provenance/journey.d.ts.map +1 -0
  252. package/dist/visual/provenance/journey.js +184 -0
  253. package/dist/visual/provenance/journey.js.map +1 -0
  254. package/dist/visual/provenance/laws.d.ts +38 -0
  255. package/dist/visual/provenance/laws.d.ts.map +1 -0
  256. package/dist/visual/provenance/laws.js +40 -0
  257. package/dist/visual/provenance/laws.js.map +1 -0
  258. package/dist/visual/provenance/page-metrics.d.ts +42 -0
  259. package/dist/visual/provenance/page-metrics.d.ts.map +1 -0
  260. package/dist/visual/provenance/page-metrics.js +79 -0
  261. package/dist/visual/provenance/page-metrics.js.map +1 -0
  262. package/dist/visual/provenance/perceptual.d.ts +63 -0
  263. package/dist/visual/provenance/perceptual.d.ts.map +1 -0
  264. package/dist/visual/provenance/perceptual.js +115 -0
  265. package/dist/visual/provenance/perceptual.js.map +1 -0
  266. package/dist/visual/provenance/persona-rates.d.ts +84 -0
  267. package/dist/visual/provenance/persona-rates.d.ts.map +1 -0
  268. package/dist/visual/provenance/persona-rates.js +112 -0
  269. package/dist/visual/provenance/persona-rates.js.map +1 -0
  270. package/dist/visual/provenance/personas.d.ts +122 -0
  271. package/dist/visual/provenance/personas.d.ts.map +1 -0
  272. package/dist/visual/provenance/personas.js +298 -0
  273. package/dist/visual/provenance/personas.js.map +1 -0
  274. package/dist/visual/provenance/profiles.d.ts +39 -0
  275. package/dist/visual/provenance/profiles.d.ts.map +1 -0
  276. package/dist/visual/provenance/profiles.js +37 -0
  277. package/dist/visual/provenance/profiles.js.map +1 -0
  278. package/dist/visual/provenance/temporal.d.ts +21 -0
  279. package/dist/visual/provenance/temporal.d.ts.map +1 -0
  280. package/dist/visual/provenance/temporal.js +56 -0
  281. package/dist/visual/provenance/temporal.js.map +1 -0
  282. package/dist/visual/provenance/visual-distance.d.ts +22 -0
  283. package/dist/visual/provenance/visual-distance.d.ts.map +1 -0
  284. package/dist/visual/provenance/visual-distance.js +30 -0
  285. package/dist/visual/provenance/visual-distance.js.map +1 -0
  286. package/dist/visual/regression.d.ts.map +1 -1
  287. package/dist/visual/regression.js +14 -9
  288. package/dist/visual/regression.js.map +1 -1
  289. package/dist/visual/responsive.d.ts.map +1 -1
  290. package/dist/visual/responsive.js +4 -1
  291. package/dist/visual/responsive.js.map +1 -1
  292. package/dist/visual/scope-prose.js +2 -2
  293. package/dist/visual/scope-prose.js.map +1 -1
  294. package/dist/visual/seeded-random.d.ts +16 -0
  295. package/dist/visual/seeded-random.d.ts.map +1 -0
  296. package/dist/visual/seeded-random.js +25 -0
  297. package/dist/visual/seeded-random.js.map +1 -0
  298. package/dist/visual/stored-accessibility-traits.d.ts +27 -0
  299. package/dist/visual/stored-accessibility-traits.d.ts.map +1 -0
  300. package/dist/visual/stored-accessibility-traits.js +35 -0
  301. package/dist/visual/stored-accessibility-traits.js.map +1 -0
  302. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-result-saver.js","sourceRoot":"","sources":["../../src/mcp-tools/tool-result-saver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAwB;IACrD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO;IAEhD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAC;IAE9D,KAAK,CAAC,GAAG,MAAM,mBAAmB,EAAE;QAClC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;YAC1C,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,UAAU;SAC/B,CAAC;KACH,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACZ,gCAAgC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"tool-result-saver.js","sourceRoot":"","sources":["../../src/mcp-tools/tool-result-saver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC;AAYD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAwB;IACrD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO;IAEhD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAC;IAE9D,KAAK,CAAC,GAAG,MAAM,mBAAmB,EAAE;QAClC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;YAC1C,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC;SAC1C,CAAC;KACH,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACZ,gCAAgC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Where a persona's trait values come from, in the compact form the persona
3
+ * views render.
4
+ *
5
+ * Every built-in persona trait value is registered in MODEL_PROVENANCE as
6
+ * `persona.<name>.<trait>`, status hypothesis: set by hand on a scale no
7
+ * instrument defines (provenance/personas.ts). A custom persona's values were
8
+ * set by whoever made it and are not registered at all. The persona views drew
9
+ * both kinds as bare numbers on the same meters, which reads as measurement.
10
+ *
11
+ * Compact on purpose. persona_manager ships every persona's traits in one
12
+ * result under the host's ~150k cap, and the registry's source text runs to
13
+ * about 600 characters a value, so it stays in MODEL_PROVENANCE. What travels
14
+ * is the status, the citation personas.ts places beside a value (evidence for
15
+ * the direction of the persona's difference, never for the number), and which
16
+ * shown values the persona does not set at all.
17
+ *
18
+ * The status is read from the registry per value, not assumed: a value the
19
+ * registry records as something other than a hypothesis is named in
20
+ * `statuses`, and the block's own status is then that status or "mixed". A
21
+ * norm-anchored value (NORM_ANCHORS: the percentile a published population
22
+ * mean implies on a normed instrument) stays a hypothesis but is not set by
23
+ * hand, so it is named in `anchored` with its source and interval, and the
24
+ * note does not call it hand-set.
25
+ *
26
+ * @copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com https://cbrowser.ai
27
+ * @license MIT
28
+ */
29
+ import { type ProvenanceEntry, type ProvenanceStatus } from "../visual/model-provenance.js";
30
+ export declare const CUSTOM_LABEL = "custom (user-set)";
31
+ export interface TraitCitation {
32
+ /** The source as personas.ts names it. */
33
+ cite: string;
34
+ /** What it is cited for, in personas.ts's own terms. */
35
+ for: string;
36
+ }
37
+ /** A norm-anchored value: where the number comes from, compactly. */
38
+ export interface TraitAnchor {
39
+ /** The source, as provenance/personas.ts names it. */
40
+ cite: string;
41
+ /** Where the number is printed in the source, and the number as printed. */
42
+ reported: string;
43
+ /** The value's interval from the source's 95% CI, Phi(zLo) to Phi(zHi), three decimals. */
44
+ interval: [number, number];
45
+ }
46
+ /** The anchor behind `<persona>.<trait>`, or undefined for a value set by hand. */
47
+ export declare function anchorOf(persona: string, trait: string): TraitAnchor | undefined;
48
+ export interface TraitProvenance {
49
+ /**
50
+ * The registry status every value this persona sets shares; "mixed" when
51
+ * they differ (see `statuses`); custom: set by whoever made the persona.
52
+ */
53
+ status: ProvenanceStatus | "mixed" | "custom";
54
+ label: string;
55
+ note: string;
56
+ /** Per trait, the citation beside the value. Built-in personas only. */
57
+ cited?: Record<string, TraitCitation>;
58
+ /** Shown traits the persona does not set: the value on screen is the model's default. */
59
+ unset?: string[];
60
+ /** Per trait, a registry status other than hypothesis. Absent while every value is a hypothesis. */
61
+ statuses?: Record<string, ProvenanceStatus>;
62
+ /** Per trait, a value norm-anchored to a published population mean rather than set by hand. Built-in personas only. */
63
+ anchored?: Record<string, TraitAnchor>;
64
+ }
65
+ /** The citation a registry source names for one value, or undefined. */
66
+ export declare function citationOf(source: string): TraitCitation | undefined;
67
+ /**
68
+ * True when `record` is the object the package ships under `name`.
69
+ *
70
+ * By identity, not by name: a custom persona saved under a built-in's name
71
+ * shadows it wherever names resolve, and the registry describes the shipped
72
+ * values, not the user's.
73
+ */
74
+ export declare function isShippedPersona(name: string, record: unknown): boolean;
75
+ /**
76
+ * The provenance block for one trait group of one persona.
77
+ *
78
+ * `shown` is what the view will draw, which may be more than the persona sets:
79
+ * getCognitiveProfile fills the traits a persona leaves out with defaults.
80
+ */
81
+ export declare function traitProvenance(name: string, record: unknown, shown: Record<string, unknown> | undefined, group: "cognitiveTraits" | "accessibilityTraits",
82
+ /** The registry to read statuses from; tests pass a modified copy. */
83
+ registry?: Readonly<Record<string, ProvenanceEntry>>): TraitProvenance;
84
+ export interface BuiltinTraitValue {
85
+ persona: string;
86
+ value: number;
87
+ status: ProvenanceStatus;
88
+ /** How the number was chosen. A norm-anchored value is still a hypothesis. */
89
+ basis: "set by hand" | "norm-anchored";
90
+ /**
91
+ * As one line a table cell can hold: the anchor's source and the value's
92
+ * interval, or the citation beside a hand-set value and what it is cited for.
93
+ */
94
+ citation?: string;
95
+ }
96
+ /**
97
+ * Every built-in persona's value for one cognitive trait, lowest first, each
98
+ * with its registry status and the citation beside it. The trait view shows
99
+ * where the shipped personas sit on the scale it explains, and that each of
100
+ * those places was set by hand, not measured.
101
+ */
102
+ export declare function builtinTraitValues(trait: string, registry?: Readonly<Record<string, ProvenanceEntry>>): BuiltinTraitValue[];
103
+ /**
104
+ * What a trait's `researchBasis` covers, and what it does not, for the trait
105
+ * view. The sentence about the built-in values is computed from their
106
+ * statuses, so it cannot say "all hypotheses" once one is not.
107
+ */
108
+ export declare function traitScaleNote(values: BuiltinTraitValue[]): string;
109
+ //# sourceMappingURL=trait-provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trait-provenance.d.ts","sourceRoot":"","sources":["../../src/mcp-tools/trait-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAoB,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAI9G,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED,mFAAmF;AACnF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAKhF;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,MAAM,EAAE,gBAAgB,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC5C,uHAAuH;IACvH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACxC;AAUD,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAGvE;AAeD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC1C,KAAK,EAAE,iBAAiB,GAAG,qBAAqB;AAChD,sEAAsE;AACtE,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAoB,GACrE,eAAe,CAuDjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,8EAA8E;IAC9E,KAAK,EAAE,aAAa,GAAG,eAAe,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAoB,GACrE,iBAAiB,EAAE,CAerB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAelE"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Where a persona's trait values come from, in the compact form the persona
3
+ * views render.
4
+ *
5
+ * Every built-in persona trait value is registered in MODEL_PROVENANCE as
6
+ * `persona.<name>.<trait>`, status hypothesis: set by hand on a scale no
7
+ * instrument defines (provenance/personas.ts). A custom persona's values were
8
+ * set by whoever made it and are not registered at all. The persona views drew
9
+ * both kinds as bare numbers on the same meters, which reads as measurement.
10
+ *
11
+ * Compact on purpose. persona_manager ships every persona's traits in one
12
+ * result under the host's ~150k cap, and the registry's source text runs to
13
+ * about 600 characters a value, so it stays in MODEL_PROVENANCE. What travels
14
+ * is the status, the citation personas.ts places beside a value (evidence for
15
+ * the direction of the persona's difference, never for the number), and which
16
+ * shown values the persona does not set at all.
17
+ *
18
+ * The status is read from the registry per value, not assumed: a value the
19
+ * registry records as something other than a hypothesis is named in
20
+ * `statuses`, and the block's own status is then that status or "mixed". A
21
+ * norm-anchored value (NORM_ANCHORS: the percentile a published population
22
+ * mean implies on a normed instrument) stays a hypothesis but is not set by
23
+ * hand, so it is named in `anchored` with its source and interval, and the
24
+ * note does not call it hand-set.
25
+ *
26
+ * @copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com https://cbrowser.ai
27
+ * @license MIT
28
+ */
29
+ import { MODEL_PROVENANCE } from "../visual/model-provenance.js";
30
+ import { PERSONA_TABLES, NORM_ANCHORS } from "../visual/provenance/personas.js";
31
+ import { _normalCDF as Phi } from "../visual/cognitive-models.js";
32
+ export const CUSTOM_LABEL = "custom (user-set)";
33
+ /** The anchor behind `<persona>.<trait>`, or undefined for a value set by hand. */
34
+ export function anchorOf(persona, trait) {
35
+ const a = NORM_ANCHORS[`${persona}.${trait}`];
36
+ if (!a)
37
+ return undefined;
38
+ const r3 = (x) => Math.round(x * 1000) / 1000;
39
+ return { cite: a.cite, reported: a.reported, interval: [r3(Phi(a.zLo)), r3(Phi(a.zHi))] };
40
+ }
41
+ /**
42
+ * The sentence sourceFor() in provenance/personas.ts writes for a value with a
43
+ * citation beside it. tests/trait-provenance.test.ts checks every registered
44
+ * value against the registry's own list of cited values, so a change to that
45
+ * sentence fails there rather than silently dropping every citation.
46
+ */
47
+ const CITED = /Cited beside the value in personas\.ts: (.+?), for (.+?)\. That is a finding about direction/;
48
+ /** The citation a registry source names for one value, or undefined. */
49
+ export function citationOf(source) {
50
+ const m = CITED.exec(source);
51
+ return m ? { cite: m[1], for: m[2] } : undefined;
52
+ }
53
+ /**
54
+ * True when `record` is the object the package ships under `name`.
55
+ *
56
+ * By identity, not by name: a custom persona saved under a built-in's name
57
+ * shadows it wherever names resolve, and the registry describes the shipped
58
+ * values, not the user's.
59
+ */
60
+ export function isShippedPersona(name, record) {
61
+ if (!record)
62
+ return false;
63
+ return Object.values(PERSONA_TABLES).some((t) => t[name] === record);
64
+ }
65
+ function numericKeys(o) {
66
+ if (!o || typeof o !== "object")
67
+ return [];
68
+ return Object.keys(o).filter((k) => typeof o[k] === "number");
69
+ }
70
+ /** What a status means, in the words the block's note uses. */
71
+ const STATUS_GLOSS = {
72
+ hypothesis: "set by hand and registered as a hypothesis",
73
+ fitted: "fitted to named data",
74
+ published: "taken from a cited published measurement",
75
+ definition: "a definition of units or scale",
76
+ };
77
+ /**
78
+ * The provenance block for one trait group of one persona.
79
+ *
80
+ * `shown` is what the view will draw, which may be more than the persona sets:
81
+ * getCognitiveProfile fills the traits a persona leaves out with defaults.
82
+ */
83
+ export function traitProvenance(name, record, shown, group,
84
+ /** The registry to read statuses from; tests pass a modified copy. */
85
+ registry = MODEL_PROVENANCE) {
86
+ const rec = (record ?? {});
87
+ const own = (group === "accessibilityTraits" ? rec.accessibilityTraits ?? rec.accessibility_traits : rec.cognitiveTraits);
88
+ const set = new Set(numericKeys(own));
89
+ const unset = numericKeys(shown).filter((t) => !set.has(t)).sort();
90
+ const unsetNote = unset.length
91
+ ? ` ${unset.length} shown value${unset.length === 1 ? " is" : "s are"} the model's default, because this persona does not set ${unset.length === 1 ? "it" : "them"}.`
92
+ : "";
93
+ if (!isShippedPersona(name, record)) {
94
+ return {
95
+ status: "custom",
96
+ label: CUSTOM_LABEL,
97
+ note: `Set by whoever created this persona. Custom values are not registered in the model's provenance registry; cbrowser did not fit or measure them.${unsetNote}`,
98
+ ...(unset.length ? { unset } : {}),
99
+ };
100
+ }
101
+ const cited = {};
102
+ const statuses = {};
103
+ const anchored = {};
104
+ const seen = new Set();
105
+ for (const t of set) {
106
+ const e = registry[`persona.${name}.${t}`];
107
+ if (!e)
108
+ continue;
109
+ seen.add(e.status);
110
+ if (e.status !== "hypothesis")
111
+ statuses[t] = e.status;
112
+ const c = citationOf(e.source);
113
+ if (c)
114
+ cited[t] = c;
115
+ const a = anchorOf(name, t);
116
+ if (a)
117
+ anchored[t] = a;
118
+ }
119
+ const status = seen.size === 1 ? [...seen][0] : seen.size === 0 ? "hypothesis" : "mixed";
120
+ const others = Object.keys(statuses).length;
121
+ const anchors = Object.keys(anchored).length;
122
+ // "Set by hand" is the hypothesis gloss; a norm-anchored value is a
123
+ // hypothesis that was not set by hand, so the sentence names the exception.
124
+ const hypothesisGloss = anchors
125
+ ? `registered as a hypothesis: set by hand, except ${anchors} norm-anchored to a published population mean on a normed instrument (marked anchored), which stay${anchors === 1 ? "s a hypothesis" : " hypotheses"} because mapping the instrument onto the trait is cbrowser's choice`
126
+ : STATUS_GLOSS.hypothesis;
127
+ const body = status === "mixed"
128
+ ? `Built into the package. ${set.size - others} of ${set.size} values are ${hypothesisGloss}; the rest are named in statuses, each with its registry status.`
129
+ : status === "hypothesis"
130
+ ? `Built into the package. Each value is ${hypothesisGloss} (persona.${name}.<trait> in MODEL_PROVENANCE), with the measure that would test it.`
131
+ : `Built into the package. Each value is ${STATUS_GLOSS[status]} (persona.${name}.<trait> in MODEL_PROVENANCE).`;
132
+ return {
133
+ status,
134
+ label: status,
135
+ note: `${body} A citation beside a value supports the direction of this persona's difference from typical users, not the number.${unsetNote}`,
136
+ ...(Object.keys(cited).length ? { cited } : {}),
137
+ ...(unset.length ? { unset } : {}),
138
+ ...(others ? { statuses } : {}),
139
+ ...(anchors ? { anchored } : {}),
140
+ };
141
+ }
142
+ /**
143
+ * Every built-in persona's value for one cognitive trait, lowest first, each
144
+ * with its registry status and the citation beside it. The trait view shows
145
+ * where the shipped personas sit on the scale it explains, and that each of
146
+ * those places was set by hand, not measured.
147
+ */
148
+ export function builtinTraitValues(trait, registry = MODEL_PROVENANCE) {
149
+ const out = [];
150
+ for (const table of Object.values(PERSONA_TABLES)) {
151
+ for (const [persona, def] of Object.entries(table)) {
152
+ const v = def.cognitiveTraits?.[trait];
153
+ if (typeof v !== "number")
154
+ continue;
155
+ const e = registry[`persona.${persona}.${trait}`];
156
+ if (!e)
157
+ continue;
158
+ const a = anchorOf(persona, trait);
159
+ const c = citationOf(e.source);
160
+ const citation = a ? `${a.cite}; value interval ${a.interval[0]}-${a.interval[1]}` : c ? `${c.cite}, cited for ${c.for}` : undefined;
161
+ out.push({ persona, value: v, status: e.status, basis: a ? "norm-anchored" : "set by hand", ...(citation ? { citation } : {}) });
162
+ }
163
+ }
164
+ return out.sort((a, b) => a.value - b.value || a.persona.localeCompare(b.persona));
165
+ }
166
+ /**
167
+ * What a trait's `researchBasis` covers, and what it does not, for the trait
168
+ * view. The sentence about the built-in values is computed from their
169
+ * statuses, so it cannot say "all hypotheses" once one is not.
170
+ */
171
+ export function traitScaleNote(values) {
172
+ const hyp = values.filter((v) => v.status === "hypothesis").length;
173
+ const anchored = values.filter((v) => v.basis === "norm-anchored").length;
174
+ const cited = values.filter((v) => v.basis === "set by hand" && v.citation).length;
175
+ const hand = values.length - anchored;
176
+ const where = values.length === 0
177
+ ? "No built-in persona sets this trait."
178
+ : hyp === values.length
179
+ ? `All ${values.length} built-in personas' values on it are registered as hypotheses. `
180
+ + (anchored
181
+ ? `${hand} are set by hand and ${anchored} norm-anchored: the percentile a published population mean implies on a normed instrument, mapped onto this scale by cbrowser`
182
+ : "Each is set by hand")
183
+ + `${cited ? `; ${cited} of the hand-set values cite a finding for the direction of the persona's difference, not for the number` : ""}.`
184
+ : `${hyp} of the ${values.length} built-in personas' values on it are registered as hypotheses; builtinValues gives each one's status and basis.`;
185
+ return "The scale source (researchBasis) names the work this trait's scale is drawn from: it says what the scale means. The level labels and behaviours were written by hand for cbrowser, and the 0-1 scale is cbrowser's own: no instrument reports on it. " + where;
186
+ }
187
+ //# sourceMappingURL=trait-provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trait-provenance.js","sourceRoot":"","sources":["../../src/mcp-tools/trait-provenance.ts"],"names":[],"mappings":"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"}
@@ -93,15 +93,13 @@ export declare const PERSONA_CREATED_SPEC: WidgetSpec;
93
93
  * reported and the decision left alone. (2026-08-01)
94
94
  */
95
95
  export declare const PERSONA_UPDATED_SPEC: WidgetSpec;
96
+ export declare const ATTENTION_SPEC: WidgetSpec;
96
97
  /**
97
- * Attention heatmap view.
98
- *
99
- * The image is the finding here -- a JSON list of scores is a lossy
100
- * description of where a persona actually looks. It is fetched through
101
- * artifact_fetch rather than embedded or linked: the result cannot carry it
102
- * past the host's size cap, and the sandbox will not load cbrowser.ai.
98
+ * Attention compare: the two personas' maps differenced, each persona's
99
+ * perceptual filter, and what the maps rest on. attention_compare returned
100
+ * JSON only, so neither filter nor the block reached a reader. (21.0)
103
101
  */
104
- export declare const ATTENTION_SPEC: WidgetSpec;
102
+ export declare const ATTENTION_COMPARE_SPEC: WidgetSpec;
105
103
  /**
106
104
  * Screenshot view.
107
105
  *
@@ -155,6 +153,7 @@ export declare function buildEmpathyTemplate(): string;
155
153
  export declare function buildTraitTemplate(): string;
156
154
  export declare function buildScreenshotTemplate(): string;
157
155
  export declare function buildAttentionTemplate(): string;
156
+ export declare function buildAttentionCompareTemplate(): string;
158
157
  export declare function buildPersonaTemplate(): string;
159
158
  export declare function buildPersonaManagerTemplate(): string;
160
159
  export declare function buildPersonaCreatedTemplate(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-resources.d.ts","sourceRoot":"","sources":["../../src/mcp-tools/ui-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAoD,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIpG,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAClD,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AA6B1D,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASnE;AACD,eAAO,MAAM,YAAY,8BAAW,CAAC;AAqDrC;;;;;;;;;;;;;GAaG;AACH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,UAwCzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,UAqC1B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAiBlC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,EAAE,UA+BlC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,UA6BlC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,UAmC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,UA6B7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,EAAE,UAqCxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,UAgCvB,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,UAkC1B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,EAAE,UAsEzB,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7D;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8J3D"}
1
+ {"version":3,"file":"ui-resources.d.ts","sourceRoot":"","sources":["../../src/mcp-tools/ui-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAoD,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAapG,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAClD,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AA6B1D,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASnE;AACD,eAAO,MAAM,YAAY,8BAAW,CAAC;AAqDrC;;;;;;;;;;;;;GAaG;AACH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,UAwCzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,UA0C1B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAiBlC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,EAAE,UA+BlC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,UA6BlC,CAAC;AA8BF,eAAO,MAAM,cAAc,EAAE,UA4C5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAqCpC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,UA6B7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,EAAE,UA+CxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,UAgCvB,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,UAkC1B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,EAAE,UAwHzB,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7D;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuK3D"}